ΠΊΠ°ΠΊ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° linux
ΠΠΈΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Linux
ΠΠ°Ρ Π²Π°Ρ ΠΠΎΠ»ΠΎΡΠΎΠ³ΠΎ ΠΠΎΠ»ΡΡΠ°-0
Linux ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΡΠ½ΡΠΉ ΠΈ ΠΎΠ±ΡΠΈΡΠ½ΡΠΉ API Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ. ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π½ΡΠΆΠ΅Π½ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΡΠ΄ΡΠ°.
ΠΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Linux β ΡΡΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π² ΡΠ΄ΡΠΎ Linux, ΡΠ°Π±ΠΎΡΠ°Ρ Π² ΠΊΠΎΠ»ΡΡΠ΅ 0, Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ ΠΈ Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π°ΡΠΈΡΡΠ½Π½ΠΎΠΌ ΠΊΠΎΠ»ΡΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ x86β64. ΠΠ΄Π΅ΡΡ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π±Π΅Π· Π²ΡΡΠΊΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ, Π½ΠΎ Π·Π°ΡΠΎ Π½Π° Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ Ρ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ Π»ΡΠ±ΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ΅ Π΄Π»Ρ ΠΏΡΠΎΡΡΡΡ ΡΠΌΠ΅ΡΡΠ½ΡΡ
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Linux β Π·Π°Π½ΡΡΠΈΠ΅ Π½Π΅ Π΄Π»Ρ ΡΠ»Π°Π±ΠΎΠ½Π΅ΡΠ²Π½ΡΡ . ΠΠ·ΠΌΠ΅Π½ΡΡ ΡΠ΄ΡΠΎ, Π²Ρ ΡΠΈΡΠΊΡΠ΅ΡΠ΅ ΠΏΠΎΡΠ΅ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅. Π ΠΊΠΎΠ΄Π΅ ΡΠ΄ΡΠ° Π½Π΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π·Π°ΡΠΈΡΡ, ΠΊΠ°ΠΊ Π² ΠΎΠ±ΡΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ Linux. ΠΡΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΡΠΎ ΠΏΠΎΠ²Π΅ΡΠΈΡΠ΅ Π²ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
Π‘ΠΈΡΡΠ°ΡΠΈΡ ΡΡ ΡΠ΄ΡΠ°Π΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π·Ρ. ΠΡΠ»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Π΅ΡΠ°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ, ΡΠΎ ΡΡΠΎ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΡΠ±ΠΎΡ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°ΠΌ ΠΊΠΎΠ΄Π°, ΡΠ΅ΠΌ Π²ΡΡΠ΅ ΡΠΈΡΠΊ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΡ ΡΠΈΠΊΠ»ΠΎΠ² ΠΈ ΡΡΠ΅ΡΠ΅ΠΊ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ, ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΡΠ°Π½ΡΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ Π½Π°ΡΠ°ΡΡΠ°ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΠΌΠ°ΡΠΈΠ½Ρ. Π ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΠΎΠ² Π²Π°ΠΆΠ½ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ Π΄Π°ΠΆΠ΅ Π±ΡΡΠ΅ΡΠ° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½Ρ.
ΠΠΎΠΆΠ½ΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π·Π°Π±ΡΡΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎΠΌΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, Π° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΄ΡΠΎΠΌ Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ API, Π° Π½Π΅ ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π£ Π²Π°Ρ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅. Π₯ΠΎΡΡ ΡΠ΄ΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠΎΠ΄Π΅ printk (ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ»ΡΠΆΠΈΡ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ printf ) ΠΈ kmalloc (ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΡ ΠΎΠΆΠ΅ Π½Π° malloc ), Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π²Ρ ΠΎΡΡΠ°ΡΡΠ΅ΡΡ Π½Π°Π΅Π΄ΠΈΠ½Π΅ Ρ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ. ΠΠ΄ΠΎΠ±Π°Π²ΠΎΠΊ, ΠΏΠΎΡΠ»Π΅ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΡΠΈΡΡΠΈΡΡ Π·Π° ΡΠΎΠ±ΠΎΠΉ. ΠΠ΄Π΅ΡΡ Π½Π΅Ρ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ°.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°ΡΠ°ΡΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ Π² Π½Π°Π»ΠΈΡΠΈΠΈ Π²ΡΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ. Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅, Π½ΡΠΆΠ½Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΏΠΎΠ΄ Linux. ΠΠ½Π°Ρ, ΡΡΠΎ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ! Π₯ΠΎΡΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄ΡΡ Π»ΡΠ±ΠΎΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ² Linux, Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Ubuntu 16.04 LTS, ΡΠ°ΠΊ ΡΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΡΡΠ³ΠΈΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ»Π΅Π³ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ.
ΠΠΎ-Π²ΡΠΎΡΡΡ , Π½ΡΠΆΠ½Π° ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½Π°Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΌΠ°ΡΠΈΠ½Π°, ΠΈΠ»ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π°. ΠΠΈΡΠ½ΠΎ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅, Π½ΠΎ Π²ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΌΠΈ. ΠΠ΅ ΡΠΎΠ²Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈΠ·-Π·Π° ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΠ³Π΄Π° ΡΠ΄Π΅Π»Π°Π΅ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ. Π― Π³ΠΎΠ²ΠΎΡΡ Β«ΠΊΠΎΠ³Π΄Π°Β», Π° Π½Π΅ Β«Π΅ΡΠ»ΠΈΒ», ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π²Π΅ΡΠΈΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ Ρ ΠΎΡΡ Π±Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅. ΠΠ°ΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠ³ΡΡ Π΅ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π² Π±ΡΡΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠ°Π½ΠΈΠΊΠΈ ΡΠ΄ΡΠ°, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²ΡΠ΅Π΄ΠΈΡΡΡΡ ΠΈ Π²Π°ΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΡΡΠΈ ΡΠΈΡΠΊΠΈ.
Π Π½Π°ΠΊΠΎΠ½Π΅Ρ, Π½ΡΠΆΠ½ΠΎ Ρ ΠΎΡΡ Π±Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΡ C. Π Π°Π±ΠΎΡΠ°Ρ ΡΡΠ΅Π΄Π° C++ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊΠ° Π΄Π»Ρ ΡΠ΄ΡΠ°, ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° ΡΠΈΡΡΠΎΠΌ Π³ΠΎΠ»ΠΎΠΌ C. ΠΠ»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π½Π°Π½ΠΈΠ΅ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠ°.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΠ° Ubuntu Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ:
Π£ΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΡΠ΄ΡΠ°, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°.
ΠΡΠΈΠΌΠ΅ΡΡ Π½ΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ ΠΈΠ·-ΠΏΠΎΠ΄ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° Π½Π΅ ΡΡΡΠ°, Π½ΠΎ ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ sudo. Sudo Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ°, Π½ΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΡΡΡΠ°.
ΠΠ°ΡΠΈΠ½Π°Π΅ΠΌ
ΠΡΠΈΡΡΡΠΏΠΈΠΌ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΠΌ Π½Π°ΡΡ ΡΡΠ΅Π΄Ρ:
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ Π»ΡΠ±ΠΈΠΌΡΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ (Π² ΠΌΠΎΡΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠΎ vim) ΠΈ ΡΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» lkm_example.c ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΡ:
ΠΡ ΡΠΊΠΎΠ½ΡΡΡΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠ°ΠΌΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ Π΅Π³ΠΎ ΡΠ°ΡΡΠΈ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½Π΅Π΄ΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΅Π³ΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ:
ΠΡΠ»ΠΈ Π²ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ, ΡΠΎ Π²Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅. Π€ΡΠ½ΠΊΡΠΈΡ printk ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΡΠ΄Π°ΡΡ Π½Π΅ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ, Π° Π² ΠΆΡΡΠ½Π°Π» ΡΠ΄ΡΠ°. ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ:
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΡΠΎΠΊΡ βHello, World!β Ρ ΠΌΠ΅ΡΠΊΠΎΠΉ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² Π½Π°ΡΠ°Π»Π΅. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π½Π°Ρ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Π·Π°Π³ΡΡΠ·ΠΈΠ»ΡΡ ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°Π» Π·Π°ΠΏΠΈΡΡ Π² ΠΆΡΡΠ½Π°Π» ΡΠ΄ΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π΅ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ:
ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ:
ΠΡΠ»ΠΈ Π²Ρ ΡΠ½ΠΎΠ²Π° Π·Π°ΠΏΡΡΡΠΈΡΠ΅ dmesg, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π² ΠΆΡΡΠ½Π°Π»Π΅ Π·Π°ΠΏΠΈΡΡ βGoodbye, World!β. ΠΠΎΠΆΠ½ΠΎ ΡΠ½ΠΎΠ²Π° Π·Π°ΠΏΡΡΡΠΈΡΡ lsmod ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π²ΡΠ³ΡΡΠ·ΠΈΠ»ΡΡ.
ΠΠ°ΠΊ Π²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅Π³ΠΊΠ° ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½Π°, Π½ΠΎ Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ²:
Π² ΠΊΠΎΠ½ΡΠ΅ Makefile, Π° ΠΏΠΎΡΠΎΠΌ Π·Π°ΠΏΡΡΡΠΈΠ²:
Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΡΠ΄Π°ΡΠΈ Π² ΠΆΡΡΠ½Π°Π» ΡΠ΄ΡΠ° Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΉ, Ρ ΠΎΡΡ ΠΈ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΡΠΈΠ²ΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ°!
ΠΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π΅Π΅
ΠΠΎΠΏΠ½ΡΠΌ ΡΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅. Π₯ΠΎΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΄ΡΠ° ΡΠΏΠΎΡΠΎΠ±Π½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²ΡΠ΅ Π²ΠΈΠ΄Ρ Π·Π°Π΄Π°Ρ, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½ΠΎ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΠ°ΠΌΡΡΡ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΡΠ΄ΡΠ°, Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π½ΠΈΠΌΠΈ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ API. Π₯ΠΎΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ°ΠΊΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΠ²ΡΡΠ½ΡΠΉ β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ βHello, Worldβ. Π₯ΠΎΡΡ ΡΡΠΎ Π½Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ½Π° Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· ΡΠ°ΠΉΠ» ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
ΠΠΎΡ ΠΏΠΎΠ»Π½ΡΠΉ Π»ΠΈΡΡΠΈΠ½Π³:
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ»ΡΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Ρ ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅Π΅, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΈ Π²ΡΠ³ΡΡΠ·ΠΊΠ΅, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΠΎΠ³Π°Ρ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ Makefile ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, Π±Π΅Π· Π΅Π³ΠΎ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° make test Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π²ΡΠ΄Π°ΡΡ ΡΡΠ°ΡΡΠ΅Π³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ° ΡΡΡΡΠΎΠΉΡΡΠ²Π°. Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΅Π³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΡΠ΄ΡΠΎ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΡ Π½ΠΎΠΌΠ΅Ρ Π½ΡΠΆΠ΅Π½ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
(Π² ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ MAJOR Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ make test ΠΈΠ»ΠΈ dmesg )
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ c Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ mknod Π³ΠΎΠ²ΠΎΡΠΈΡ mknod, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°:
ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ dd :
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β Π΄Π°ΠΆΠ΅ Ρ ΡΠΊΡΠΈΠΏΡΠΎΠ² Python, Ruby ΠΈ PHP Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΈΠΌ Π΄Π°Π½Π½ΡΠΌ.
ΠΠΎΠ³Π΄Π° ΠΌΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ Ρ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ, ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΈ Π²ΡΠ³ΡΡΠΆΠ°Π΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ:
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°Π΄Π΅ΡΡΡ, Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΠΈΡΡ Π½Π°ΡΠΈ ΡΠ°Π»ΠΎΡΡΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΡΠ΄ΡΠ°. Π₯ΠΎΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½Ρ, ΡΡΠΈ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΠΎΡΡΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅, ΡΡΠΎ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΡΠ΄ΡΠ° Π²ΡΡ ΠΏΠΎΠ΄ Π²Π°ΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ. Π’Π°ΠΌ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° Π½Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ»ΠΈ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ°Π½ΡΠ°. ΠΡΠ»ΠΈ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Π΄Π»Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π°ΠΏΠ»Π°Π½ΠΈΡΡΠΉΡΠ΅ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅, Π΅ΡΠ»ΠΈ Π½Π΅ ΡΡΠΎΠΉΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΡ. ΠΠΎΠ΄ ΡΠ΄ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΠ΄Π΅Π°Π»Π΅Π½, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π½Π°Π΄ΡΠΆΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ½ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΄ΡΠ° Linux
ΠΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠ° ΡΠ΄ΡΠ° Linux Π΄Π΅Π»ΠΎ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ ΡΠ°ΡΡΠΎ ΠΎΡΠΏΡΠ³ΠΈΠ²Π°Π΅Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΠΎ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Π² ΡΡΠΎΠΌ Π½Π΅Ρ, ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΄ΡΠΎ Linux Π±ΡΠ²Π°Π΅Ρ Π½Π΅ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΡΠΎΠ±ΡΠ°ΡΡ (ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ) Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ². ΠΠ΅ΡΠ΅ΡΠ±ΠΎΡΠΊΠ° ΡΠ΄ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ ΡΡΠ΅Π±ΡΡΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡΠ΄Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠ΄ΡΠΎ, ΠΈΠ»ΠΈ ΠΆΠ΅, Π½Π°ΠΎΠ±ΠΎΡΠΎΡ, Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΠΎ-ΡΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ. ΠΡΠ΅ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π² Ubuntu Linux.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΡΠΈΠ»ΠΈΡ
Π‘ΠΊΠ°ΡΠΈΠ²Π°Π΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ΄ΡΠ°
ΠΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ:
ΠΠΌΡ ΠΏΠ°ΠΊΠ΅ΡΠ°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΊΠΎΠ΄Ρ ΡΠ΄ΡΠ° ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄: linux-source-ΠΠ΅ΡΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ΄ΡΠ° Π²Π΅ΡΡΠΈΠΈ 2.6.24: linux-source-2.6.24. Π‘Π°ΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ΄ΡΠ° Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ Ubuntu Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΡΡΠΎ linux-source, Π±Π΅Π· ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅. ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ΄ΡΠ° Ubuntu Linux, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π Π°ΡΠΏΠ°ΠΊΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ΄ΡΠ°
ΠΠ΅ΡΠ΅ΠΉΠ΄Π΅ΠΌ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ /usr/src ΠΈ ΡΠ°Π·Π°ΡΡ ΠΈΠ²ΠΈΡΡΠ΅ΠΌ ΡΠ΄ΡΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΄ΡΠ°
ΠΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠ°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΎΠΏΡΠΈΠΈ ΡΠ΄ΡΠ°:
Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«ExitΒ» (Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ ΠΠΏΡΠ°Π²ΠΎ ΠΈ Π·Π°ΡΠ΅ΠΌ Enter ) ΠΈ Π²ΡΠΉΠ΄ΠΈΡΠ΅ ΠΈΠ· ΡΡΠΈΠ»ΠΈΡΡ. ΠΠ΅ΡΠ΅Π΄ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΡΡΠΈΠ»ΠΈΡΡ Π²ΡΡΠΊΠΎΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ β ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΠΏΡΠΎΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Yes.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΄ΡΠ°
ΠΡΠΈΡΠ»ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΄ΡΠΎ Ρ ΡΠ΅ΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π²Π½Π΅ΡΠ»ΠΈ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ°Π³Π΅. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ΄Π°Π»ΠΈΡ ΡΠ°ΠΉΠ»Ρ (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡΡΡ), ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΄ΡΠ°, Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΄ΡΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π΄Π»ΠΈΡΡΡΡ ΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΠΌΠΈΠ½ΡΡ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΡΠΎΠ², Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° (ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΡ) ΡΠ΄ΡΠ°
ΠΠ°ΠΏΡΡΠΊ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π½ΠΎΠ²ΡΠΌ ΡΠ΄ΡΠΎΠΌ
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π½ΠΎΠ²ΡΠΌ ΡΠ΄ΡΠΎΠΌ. ΠΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ. Π ΠΌΠ΅Π½Ρ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠ° GRUB Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½ΠΎΠ²ΡΠΉ ΠΏΡΠ½ΠΊΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ Π²Π°ΡΠ΅ΠΌΡ Π½ΠΎΠ²ΠΎΠΌΡ ΡΠ΄ΡΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²ΡΠ΅ ΠΏΡΠΎΠΉΠ΄Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π°ΠΏΡΡΡΠΈΡΡΡ Ρ Π½ΠΎΠ²ΡΠΌ ΡΠ΄ΡΠΎΠΌ.
Π ΡΡΡΠΊΠΈΠ΅ ΠΠ»ΠΎΠ³ΠΈ
ΠΠ»Π°Π²Π° 1 Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°
1.1 ΠΡΠ½ΠΎΠ²Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ°
1.1.1 ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ°
1.1.2 Π‘ΡΡΡΠΊΡΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Linux
ΠΠΈΠ½ΠΈΠΌΡΠΌ Π΄Π²Π΅ ΡΠΎΡΠΊΠΈ Π²Ρ
ΠΎΠ΄Π°
* Π€ΡΠ½ΠΊΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ module_init ()
* Π€ΡΠ½ΠΊΡΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡΠ»Ρ module_exit ()
ΠΠ²Π° ΠΌΠ°ΠΊΡΠΎΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ module_init () ΠΈ module_exit () ΠΎΠ±ΡΡΠ²Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ Π² linux3.14 / include / linux / init.h. Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ module_init ΠΈ ΠΎΠ΄ΠΈΠ½ module_exit.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ ΡΠ΄ΡΠ°:
Π’Π°Π±Π»ΠΈΡΠ° 1
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° ΡΠ΅Π·ΡΠΌΠΈΡΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π’Π°Π±Π»ΠΈΡΠ° 2
1.1.3 Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Linux
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΠ΄ΡΠ° ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»Π°ΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ:
Makefile ΡΠ΄ΡΠ° linux3.14 ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° 5 ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²:
Makefile Π½Π° Π²Π΅ΡΡ
Π½Π΅ΠΌ ΡΡΠΎΠ²Π½Π΅ Makefile
3. ΠΡΠ΅ΡΠ°ΡΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°
ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ CONFIG_EXT2_FS ΡΠ°Π²Π½ΠΎ y ΠΈΠ»ΠΈ m, kbuild ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ext2 Π² Π½ΠΈΡΡ
ΠΎΠ΄ΡΡΠ΅ΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, Π½ΠΎ Π΅Π³ΠΎ ΡΠΎΠ»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π° ΡΡΠΈΠΌ. ΠΠΎΠ»ΠΆΠ½Ρ Π»ΠΈ ΡΠ°ΠΉΠ»Ρ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ext2 Π±ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Ρ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠ»ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΡΠ΄ΡΠΎΠΌ, ΠΈΠ»ΠΈ ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΡΠΌ Makefile Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ext2
4. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ.
ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π΅Π³ΠΎ Π² Π΄Π΅ΡΠ΅Π²ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Make modules Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠ°ΠΉΠ»ΠΎΠ², ΡΠ²ΡΠ·Π°Π½Π½ΡΡ
Ρ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ, Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π΄Π΅ΡΠ΅Π²Π° ΠΊΠΎΠ΄Π°. Location, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ:
1.2 ΠΠ°ΡΠ°Π»ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠ΅ΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Makefile
1.2.1 ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
1.2.2 ΠΠ½Π°Π»ΠΈΠ· ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
1.2.3 ΠΡΠΎΡΡΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ hello Π² ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ΄ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π² / usr / src / linux / driver /, Π±ΡΠ΄Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ KERNELRELEASE.
Π² / usr / src / linux / Makefile
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ hello Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ make, Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ make Π² ΡΠ΄ΡΠ΅. Π ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Ρ ΡΠ΄ΡΠΎΠΌ.
1.3 ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Ρ
1.3.1 ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ module_param ()
ΠΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΠΎ Π΅ΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠ΅ΡΠ΅Π· main (), Π° ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ°, Π²Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅ΡΠ΅Π· module_param ().
ΠΠ°ΠΊΡΠΎΡ module_param () Π½Π΅Π΄Π°Π²Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ΡΠ΄ΡΠΎ ββLinux 2.6. ΠΡΠΎΡ ΠΌΠ°ΠΊΡΠΎΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ Π² ΡΠ°ΠΉΠ»Π΅ include / linux / moduleparam.h ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠ°ΠΊ, ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΅ΡΠ΅Π· ΠΌΠ°ΠΊΡΠΎΡ module_param ():
1.3.2 ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ module_param ()
ΠΠ°ΠΊΡΠΎΡ module_param () Π½Π΅ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ°ΠΊΡΠΎΡΠ°. Π’ΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΠΏΠΈΡΠ°Π½Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠ΄ΡΠ»Ρ. Π’ΠΎ Π΅ΡΡΡ int_var ΡΠ²Π»ΡΠ΅ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ. Π’Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π²Π½ΡΡΡΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΈ ΠΈΠΌΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΡΠ°Π·Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ module_param_ named ().
a β module_param_named()
module_param_named(name, variable, type, perm);
ΠΈΠΌΡ Π²Π½Π΅ΡΠ½Π΅Π΅ (ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ) ΠΈΠΌΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°;
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΠΌΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅;
ΡΠΈΠΏ
ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΠΎΡΡΡΠΏ
Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ module_param ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ module_param_ named, Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΈΠΌΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
b-ΡΡΡΠΎΠΊΠΎΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ
ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠΎΠΊΠΎΠΉ, Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΈΠΏ charp. Π―Π΄ΡΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅Ρ ΡΡΡΠΎΠΊΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Π² ΠΏΠ°ΠΌΡΡΡ, ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΡΡ ΡΡΡΠΎΠΊΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ c-ΠΌΠ°ΡΡΠΈΠ²Π°
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² ΡΠΏΠΈΡΠΊΠ΅, ΡΠ°Π·Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ Π·Π°ΠΏΡΡΡΠΌΠΈ, ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ. Π§ΡΠΎΠ±Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
ΠΠΌΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΈΠΌΠ΅Π½ (ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°),
type Π’ΠΈΠΏ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π°,
num ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ,
ΠΠ±ΡΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ perm.
ΠΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅, num ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π²Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ
ΡΠΈΡΠ΅Π».ΠΠ°Π³ΡΡΠ·ΡΠΈΠΊ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΎΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΡΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΌΠ΅ΡΡΠΈΡΡ ΠΌΠ°ΡΡΠΈΠ².
1.3.3 ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΠΈ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠΉΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» hello
1.4 ΠΠΊΡΠΏΠΎΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
ΠΠ±Π° ΡΡΠΈΡ ΠΌΠ°ΠΊΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠΊΡΠΏΠΎΡΡΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π° Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ.ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ° Π²Π΅ΡΡΠΈΠΈ _GPL ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ» Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΌΠΎΠ΄ΡΠ»Ρ Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ GPL. Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΡΠ°ΡΡΡ ΡΠ°ΠΉΠ»Π° ΠΌΠΎΠ΄ΡΠ»Ρ, Π° Π½Π΅ Π² ΡΡΠ½ΠΊΡΠΈΡ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π΄Π²Π° Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΠΌΠ°ΠΊΡΠΎΡΠ° Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Ρ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅, Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ. ΠΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ (Β«ELF-ΡΠ°Π·Π΄Π΅Π»Β»). ΠΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΠ΄ΡΠΎ ββΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠΎΡ ΡΠ°Π·Π΄Π΅Π» Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ (Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΈΠ΄Π΅ΡΡ
1.4.1 ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡΠΎΡΠ° EXPORT_SYMBOL Π°Π½Π°Π»ΠΈΠ·
1. ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄
ΠΠ΅ΡΠ΅Π΄ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ ΡΠ½Π°ΡΠ°Π»Π° ΡΡΠ²ΠΎΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Π·Π½Π°Π½ΠΈΡ:
1) # ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ## ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ
ΠΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ # Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ°ΠΊΡΠΎΡΠ°. #abc ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΡΠΎΠΊΡ Β«abcΒ» ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅.
## ΠΠΏΠ΅ΡΠ°ΡΠΎΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ²ΡΠ·ΡΡΡΠΈΠΌ Π·Π²Π΅Π½ΠΎΠΌ ΠΏΡΠ΅ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΠΈ ΡΠΊΠ»Π΅ΠΉΠΊΠΈ Π΄Π²ΡΡ
ΡΠ°Π·Π½ΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²,
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: #define xName (n) x ## n
, ΡΠΎΠ³Π΄Π° xName (4) ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ x4
2) gcc_ attribute_ ΠΡΡΠΈΠ±ΡΡΡ:
_ attribute_Π€ΡΠ½ΠΊΡΠΈΡ ((section (Β«section_nameΒ»))) Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΡΠ°Π·Π΄Π΅Π» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«section_nameΒ».
_ attribute_ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ.
, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
int myvar__ attribute__((section(βmydataβ))) = 0;
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ myvar = 0 ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, Π° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Ρ
ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«mydataΒ»
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ gcc_attribute ΡΠΌ. ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ:
http://blog.sina.com.cn/s/blog_661314940100qujt.html
2. ΠΠ°ΠΊΠΎΠ²Π° ΡΠΎΠ»Ρ EXPORT_SYMBOL?
Π€ΡΠ½ΠΊΡΠΈΡ ΠΈΠ»ΠΈ ΡΠΈΠΌΠ²ΠΎΠ», ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠ΅Π³Π΅ EXPORT_SYMBOL, ΠΎΡΠΊΡΡΡΡ Π΄Π»Ρ Π²ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΡΠ΄ΡΠ° ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ Π²ΡΠ·Π²Π°Π½Ρ Π² Π²Π°ΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅ ΡΠ΄ΡΠ° Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΡΠ΄ΡΠ°, ΡΠΎ Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ EXPORT_SYMBOL ΠΌΠΎΠΆΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ΅ΡΠΊΠΈ ΠΠΊΡΠΏΠΎΡΡ Π² Π΄ΡΡΠ³ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠΎΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Ρ System.map: System.map ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π°Π΄ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ, Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ ΡΠ΄ΡΠ° 2.6 Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡ Π°Π΄ΡΠ΅ΡΡ.
Π‘ΠΈΠΌΠ²ΠΎΠ» EXPORT_SYMBOL ΡΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ°, ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π°Π΄ΡΠ΅ΡΠ° ΡΡΠΈΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΄ΡΠ°. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ Π΅Π³ΠΎ ΡΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ ΡΠ΄ΡΡ.ΠΡΠ»ΠΈ Π² ΠΌΠΎΠ΄ΡΠ»Π΅ Π΅ΡΡΡ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ΄ΡΠ° ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ EXPORT_SYMBOL, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΉΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅.
1.4.2 ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ EXPORT_SYMBOL
1.4.3 ΠΡΠΈΠΌΠ΅ΡΡ
ΠΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π·Π°Π³ΡΡΠ·ΠΈΡΠ΅ ΠΈ Π²ΡΠ³ΡΡΠ·ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ dmesg Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΠΏΠ΅ΡΠ°ΡΠΈ ΡΠ΄ΡΠ°.
ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ:
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°
2. ΠΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ include / asm ΡΠ°ΠΉΠ»ΠΎΠ² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ², ΠΎΡΠ½ΠΎΡΡΡΠΈΡ
ΡΡ ΠΊ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅.
ΠΡΠΈ ΡΠ°ΠΉΠ»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
, ΠΌΠ°ΠΊΡΠΎΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Π¦Π. ΠΡΠ΅Π³ΠΎ 4 ΡΠ°ΠΉΠ»Π°.
3. ΠΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠ΄ΡΠ° Linux include / linux
4. ΠΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠΎΠΉ Π΄Π°Π½Π½ΡΡ include / sys
Π‘Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ° Linux Π±Π΅Π· ΡΠΎΡΠ½ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²
ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ Ρ Π²Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π· ΡΠ΄ΡΠ° Linux Π΄Π»Ρ ΡΠ΅Π»Π΅ΡΠΎΠ½Π° Π½Π° Π±Π°Π·Π΅ Android, Π½ΠΎ Π²Ρ Π½Π΅ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΠ΅ Π½ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ, Π½ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΡΠ΄ΡΠ°. ΠΡΠ΅Π΄ΡΡΠ°Π²ΡΡΠ΅, ΡΡΠΎ ΡΠ΄ΡΠΎ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠΎΠ΄Π³ΡΡΠ·ΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ (ΠΊ ΡΡΠ°ΡΡΡΡ), ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ±ΡΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΄ΡΠ°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΈΡ ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠ±ΡΠ°ΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈ ΠΏΡΠΎΡΡΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ Π½Π° ΡΠΎΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠΌ ΡΠ΄ΡΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π²Π°ΠΆΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Π²ΡΠΎΠ΄Π΅ LCD ΠΈΠ»ΠΈ ΡΠ°ΡΡΠΊΡΠΈΠ½Π°). Π‘ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΌΠ΅Π½ΡΡΡΠΈΠΌΡΡ ABI ΡΠ΄ΡΠ° Linux ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ², Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, ΡΡΠΎ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π·Π°ΡΠ»ΠΈ Π² ΡΡΠΏΠΈΠΊ.
ΠΠ°ΠΊ ΠΊΠΎΠ½ΡΡΠ°ΡΠ°ΡΠΈΡ ΡΠ°ΠΊΡΠ°, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠ±Π΅ΡΠ΅ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΄ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ (Π½Π΅ΠΆΠ΅Π»ΠΈ ΡΠ΅, ΡΡΠΎ Π±ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π·Π° ΡΠ΄ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΠ΅, β ΠΏΡΠΈΠΌ. ΠΏΠ΅Ρ.), ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡΡ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ, Π·Π°Π²ΠΈΡΡΡΠΈΠΌΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΡΠ»ΠΈΡΠ°Π»ΠΈΡΡ ΠΎΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ . ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΆΠ°Π»ΠΎΠ²Π°ΡΡΡΡ ΠΎ ΠΏΠ»ΠΎΡ ΠΈΡ ΡΠΈΠ³Π½Π°ΡΡΡΠ°Ρ , ΠΏΠ»ΠΎΡ ΠΈΡ Π²Π΅ΡΡΠΈΡΡ ΠΈ ΠΎ ΠΏΡΠΎΡΠΈΡ Π²Π΅ΡΠ°Ρ .
ΠΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ± ΡΡΠΎΠΌ Π΄Π°Π»Π΅Π΅.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΄ΡΠ°
ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ arm-eabi-gcc Ρ Π²Π°Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΈΠ· ΠΏΡΡΠ΅ΠΉ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ PATH, ΠΈ ΡΡΠΎ ΡΠ΅ΡΠΌΠΈΠ½Π°Π» ΠΎΡΠΊΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΡΠ΄ΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΄ΡΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²:
ΠΠ°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡ Π² ΡΠ°ΠΉΠ» Makefile Π² ΡΠΎΠΉ ΠΆΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ:
Π‘Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½Π° ΠΏΡΠΎΡΡΠ°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡΡ.
Π‘Π±ΠΎΡΠΊΠ° ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠ°Π»Π΅Π΅, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π΅ΠΌ Π·Π΄Π΅ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ:
ΠΠ°ΡΠΈΠ½Π°Π΅ΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΡΠ΅ ΠΆΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π±ΡΠ»ΠΎ ΡΠΎΠ±ΡΠ°Π½ΠΎ Π½Π°ΡΠ΅ ΡΠ΄ΡΠΎ?
ΠΠ°Π»Π΅Π΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²:
Π’Π°ΠΊ, Π΅ΡΠ»ΠΈ ΠΌΡ ΡΠΎΠ±Π΅ΡΠ΅ΠΌ ΡΠ΄ΡΠΎ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±Π»ΠΈΠ·ΠΊΠΈΠΌΠΈ ΠΊ ΡΠ΅ΠΌ, ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ» ΡΠΎΠ±ΡΠ°Π½ ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ Ρ Π½Π°Ρ ΠΎΠ±ΡΠ°Π· ΡΠ΄ΡΠ°, Π΅ΡΡΡ ΡΠ°Π½Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅ ΠΆΠ΅ ΡΠ°ΠΌΡΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ, ΡΡΠΎ ΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΠΎΠ±ΡΠ°Π·Π΅ ΡΠ΄ΡΠ°, ΠΈ ΠΎΠ½ΠΎ ΡΡΠ³Π½ΡΠ»ΠΎΡΡ Π±Ρ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΌΠΎΠ΄ΡΠ»Ρ:
ΠΠ·ΡΡΠ°Π΅ΠΌ ΡΠ΄ΡΠΎ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΄ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΎΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠ΅Ρ ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ. ΠΠΎΠ³Π΄Π° ΡΠ΄ΡΠΎ Π·Π°Π³ΡΡΠΆΠ°Π΅Ρ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΎΠ½ΠΎ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΈΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠΈΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ) ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ.
Π―Π΄ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² (Π² kernel/module.c):
Π‘ΡΡΡΠΊΡΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π² include/linux/module.h:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΡΠ΄ΡΠ° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π·Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΠ΅ Π³ΠΎΠ΄Π° (Π²ΠΈΠ΄ΠΈΠΌΠΎ, Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠ΅Π»ΠΈΠ·Π° ΡΠ΄ΡΠ° 3.0, β ΠΏΡΠΈΠΌ. ΠΏΠ΅Ρ.).
Π’ΠΎ, ΡΡΠΎ ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ Π²ΡΡΠ΅ Π² ΡΡΠ½ΠΊΡΠΈΠΈ each_symbol_section β ΡΡΠΈ (ΠΈΠ»ΠΈ ΠΏΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ CONFIG_UNUSED_SYMBOLS Π²ΠΊΠ»ΡΡΠ΅Π½) ΠΏΠΎΠ»Ρ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°ΡΠ°Π»ΠΎ ΡΠ°Π±Π»ΠΈΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π΅Π΅ ΠΊΠΎΠ½Π΅Ρ ΠΈ Π΄Π²Π° ΡΠ»Π°Π³Π°.
Π Π½Π΅ΡΡΠ°ΡΡΡΡ, Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΄Π΅Ρ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΠΆΠ°ΡΡΠ΅ ( zImage ), ΡΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠΆΠ°ΡΠΎΠΌΡ ΠΎΠ±ΡΠ°Π·Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½. Π‘ΠΆΠ°ΡΠΎΠ΅ ΡΠ΄ΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ, ΡΠ»Π΅Π΄ΠΎΠΌ Π·Π° ΠΊΠΎΡΠΎΡΡΠΌ ΠΈΠ΄Π΅Ρ ΡΠΆΠ°ΡΡΠΉ ΠΏΠΎΡΠΎΠΊ. ΠΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» zImage Ρ ΡΠ΅ΠΌ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠΆΠ°ΡΡΠΉ ΠΏΠΎΡΠΎΠΊ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ°Π·.
Π― Π½Π°ΠΏΠΈΡΠ°Π» ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ Π΄Π΅ΠΊΠΎΠΌΠΏΡΠ΅ΡΡΠΈΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°Ρ ΡΠ΄ΡΠ° Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. ΠΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π»ΡΠ±ΠΎΠΉ ΡΠ²Π΅ΠΆΠ΅ΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ ΡΠ΄ΡΠ°, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΡΠ΄ΡΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌΠΎΠ΅ (relocatable) ΠΈ Π²Ρ Π·Π½Π°Π΅ΡΠ΅ Π±Π°Π·ΠΎΠ²ΡΠΉ Π°Π΄ΡΠ΅Ρ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΡΠ΄Π° ΠΎΠ½ΠΎ Π³ΡΡΠ·ΠΈΡΡΡ. Π‘ΠΊΡΠΈΠΏΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΏΡΠΈΠΈ Π΄Π»Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΈ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΡΠΎΠ² (endianness) Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π΄Π»Ρ ARM. ΠΠ°Π·ΠΎΠ²ΡΠΉ Π°Π΄ΡΠ΅Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΠΉΠ΄Π΅Π½, Π½Π° ΡΠ΄ΡΠ°Ρ ARM, Π² dmesg :
(ΠΏΡΠΈΠΌ. ΠΏΠ΅Ρ. β ΠΎΠ΄Π½Π°ΠΊΠΎ, Π½Π΅ Π²ΡΠ΅ ΡΠ΄ΡΠ° Π²ΡΠ²ΠΎΠ΄ΡΡ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² Π»ΠΎΠ³, ΠΌΠ½Π΅ Π΄ΠΎΠ²Π΅Π»ΠΎΡΡ Π²ΡΡΡΠ΅ΡΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ, ΠΊΠΎΠ³Π΄Π°, Π²ΠΈΠ΄ΠΈΠΌΠΎ, Π²Π²ΠΈΠ΄Ρ ΡΡΠ΅Π·Π°Π½Π½ΡΡ ΠΎΠΏΡΠΈΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡ, Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΊΠΎΠ½ΡΠΈΠ³Ρ PAGE_OFFSET Π² ΡΠ°ΠΉΠ»Π΅ arch/arm/Kconfig ΠΈ ΠΏΡΠΎΡΡΠΎ Π½Π°Π΄Π΅ΡΡΡΡΡ, ΡΡΠΎ Π²Π΅Π½Π΄ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π΅ΡΠΎΠ»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ).
ΠΡΠ»ΠΈ ΠΊΠ°ΠΊ Ρ, Π²Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Π½Π° Π΄Π΅Π²Π°ΠΉΡΠ΅ Android, ΡΠΎΠ³Π΄Π° Π±ΠΈΠ½Π°ΡΠ½ΠΈΠΊ ΡΠ΄ΡΠ°, ΡΡΠΎ Π²Ρ ΠΈΠΌΠ΅Π΅ΡΠ΅ β ΠΏΠΎΠ»Π½ΡΠΉ ΠΎΠ±ΡΠ°Π· boot. ΠΠ±ΡΠ°Π· boot ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΄ΡΡΠ³ΠΈΠ΅ Π²Π΅ΡΠΈ ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΠ΄ΡΠ°, ΡΠ°ΠΊ ΡΡΠΎ Π²Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΡΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠΌ Π²ΡΡΠ΅. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ, Π΅ΡΠ»ΠΈ ΡΠ΄ΡΠΎ Π² ΠΎΠ±ΡΠ°Π·Π΅ boot ΡΠΆΠ°ΡΠΎ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΠ°ΡΡΡ ΡΠΊΡΠΈΠΏΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ Π½Π° Π²Ρ ΠΎΠ΄Π΅ ΡΠΆΠ°ΡΡΠΉ ΠΎΠ±ΡΠ°Π·, Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π°ΠΉΠ΄Π΅Ρ ΡΠ΄ΡΠΎ.
ΠΡΠ»ΠΈ ΡΠ΄ΡΠΎ Π½Π΅ ΡΠΆΠ°ΡΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ unbootimg ΠΊΠ°ΠΊ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΅, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ°Π· ΡΠ΄ΡΠ° ΠΈΠ· Π²Π°ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ°Π·Π° boot. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π· ΡΠ΄ΡΠ°, ΡΠΊΡΠΈΠΏΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π·Π°ΠΏΡΡΠ΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π‘Π±ΠΎΡΠΊΠ° ΡΠ΄ΡΠ° Linux
Π‘Π°ΠΌΡΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Linux Π΅ΡΡΡ ΡΠ΄ΡΠΎ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ΄ΡΠΎ Π²ΡΡΡΡΠΏΠ°Π΅Ρ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΌ Π·Π²Π΅Π½ΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ ΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°. ΠΠΎ Π²ΡΠ΅Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ ΡΠ±ΠΎΡΠΊΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΡΠ΄ΡΠ°, Π²ΡΠ΅ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π·Π° Π½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΌΡΡ ΡΠ²Π΅ΠΆΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ΄ΡΠ° ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ΄ ΡΠ΅Π±Ρ ΡΠ΄Π°Π»ΠΈΠ² ΠΎΡ ΡΡΠ΄Π° Π²ΡΡ Π»ΠΈΡΠ½Π΅Π΅, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΠΎΠ±ΡΠ°ΡΡ Π΅Π³ΠΎ Π²ΡΡΡΠ½ΡΡ.
Π Π°Π½ΡΡΠ΅ ΡΠ΄ΡΠΎ ΡΠΎΠ±ΠΈΡΠ°Π»ΠΈ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΎΡ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, Π½ΠΎ ΡΠ΅ΠΉΡΠ°Ρ, ΡΡΠΈΡΡΠ²Π°Ρ ΡΡΡΠ΅ΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ ΡΠ΄ΡΠ° ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ½ΠΎ. Π‘Π΅ΠΉΡΠ°Ρ ΡΠ±ΠΎΡΠΊΠ° ΡΠ΄ΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π½Π΅ Π±ΠΈΠ½Π°ΡΠ½ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Gentoo, ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ Π²Π½Π΅ΡΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΠ΄ΡΠΎ, ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΡΡ ΡΠ°ΠΌΡΡ ΡΠ²Π΅ΠΆΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ΄ΡΠ° ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΆΠ΅ ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠ΄ΡΠΎ Linux Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Ubuntu.
Π‘Π±ΠΎΡΠΊΠ° ΡΠ΄ΡΠ° Linux ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ²
1. Π’Π΅ΠΊΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ ΡΠ΄ΡΠ°
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ΅ΠΊΡΡΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ΄ΡΠ°, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
2. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
ΠΠ»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Π΅Π΄ΠΈΡΡΡ, ΡΡΠΎ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, Π½ΡΠΆΠ½ΡΠ΅ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
sudo apt install libncurses-dev libncurses dwarves build-essential gcc bc bison flex libssl-dev libelf-dev
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΡΠ΄ΡΠ°.
3. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² ΡΠ΄ΡΠ°
ΠΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π»ΡΡΡΠΈΠ΅ Π±ΡΠ°ΡΡ Ρ ΡΠ°ΠΉΡΠ° Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΠ°ΠΌ Π΅ΡΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° ΡΠ΄ΡΠ°: kernel.org. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π° Π·Π°Π³ΡΡΠ·ΠΊΠ° ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² Ρ kernel.org.
ΠΡΠ°ΠΊ ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡ Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π·Π°ΠΉΠ΄ΠΈΡΠ΅ Π½Π° kernel.org ΠΈ ΡΠΊΠ°ΡΠ°ΠΉΡΠ΅ Π½ΡΠΆΠ½ΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΈ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ tarball:
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π° ΡΠ°ΠΌΠ°Ρ Π½ΠΎΠ²Π°Ρ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ 5.13.7. ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Π°ΡΡ ΠΈΠ² Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ Π·Π°Π³ΡΡΠ·ΠΎΠΊ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΈ:
ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡ Ρ ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΡΠ΄ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΈ 5.13.7 ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ Π²ΠΎΡ ΡΠ°ΠΊ:
4. Π’Π΅ΠΊΡΡΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΄ΡΠ°
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ°ΠΌΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΡΠ΄ΡΠΎ Ρ Π½ΡΠ»Ρ, Π½ΠΎ ΡΡΠΎ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π·Π°ΠΉΠΌΠ΅Ρ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΠΎΡΠ½ΠΎ Π½Π΅ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΠΎΡΡΠΎΠΌΡ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ Π²Π·ΡΡΡ ΡΠ΅ΠΊΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΄ΡΠ° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π±Π°Π·Ρ Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ. ΠΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ /proc/config.gz. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π±ΡΠ»Π° Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΎΠΏΡΠΈΡ ΡΠ΄ΡΠ°. ΠΠ·Π²Π»Π΅ΡΡ ΡΠ°ΠΊΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π§Π°ΡΡΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°. ΠΠΎ Π² Ubuntu ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ , ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΡΠ΄ΡΠ° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ /boot, Π² ΡΠ°ΠΉΠ»Π΅ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ config ΠΈ Π²Π΅ΡΡΠΈΡ ΡΠ΄ΡΠ°. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄Π΅Ρ, ΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, config-5.11.0-25-generic:
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΡ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
5. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΠ΄ΡΠ°. Π Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡΡ ΡΠ΄ΡΠ°, ΠΎΠ±ΡΡΠ½ΠΎ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΎΠΏΡΠΈΠΈ, Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡ Π½Π΅Ρ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΄ΡΠ° Π²Π°ΡΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΊΡΠΈΠΏΡΠΎΠ². Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π°: oldconfig ΠΈ localmodulesconfig. ΠΠ΅ΡΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΠ»Ρ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΡΠ΄ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠΊΡΠΈΠΏΡΠ° Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° Π½ΠΈΡ . ΠΠ±ΡΡΠ½ΠΎ ΡΠΊΡΠΈΠΏΡ ΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠ°ΠΊ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΠΈ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΎΠΌΠ½Π΅Π²Π°Π΅ΡΠ΅ΡΡ, ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΈΡ Π²ΡΠ±ΡΠ°ΡΡ Π² Google. ΠΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΡΠΉΡΠ΅ ΠΏΡΠ½ΠΊΡΠ°ΠΌ, Π½Π΅ ΠΎΡΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌ ΠΊΠ°ΠΊ NEW, ΡΠ°ΠΊΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π΅ Π½ΠΎΠ²ΡΠ΅ ΠΈ ΡΡΠ΅Π±ΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π°.
ΠΠΎΡΠ»Π΅ ΠΎΡΠ²Π΅ΡΠ° Π½Π° Π²ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°Π³Ρ. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΄ΡΠ° ΠΎΡΡΠ°Π½ΡΡΡΡ Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΠΌΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ, Π° Π·Π½Π°ΡΠΈΡ ΡΠ±ΠΎΡΠΊΠ° Π·Π°ΠΉΠΌΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π½Π° Π΄ΠΈΡΠΊΠ΅ (Π΄ΠΎ 20 ΠΠ±) ΠΈ ΡΠ°ΠΌΠΎ ΡΠ΄ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ localmodulesconfig ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΡΠΎ ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΠ°ΡΡ ΡΠ΄ΡΠΎ Linux ΠΏΠΎΠ΄ ΡΠ²ΠΎΠ΅ ΠΆΠ΅Π»Π΅Π·ΠΎ ΠΏΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ. ΠΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ, ΡΠΎΠ»ΡΠΊΠΎ Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΠ΄ΡΠ° ΡΠ΅ΠΉΡΠ°Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½Ρ ΠΈ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΡΠ½Π½ΡΠΌΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡ , ΡΠ±ΠΎΡΠΊΡ Π²ΡΠ΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ. Π’Π°ΠΊΠΎΠ΅ ΡΠ΄ΡΠΎ ΡΠΎΠ±Π΅ΡΠ΅ΡΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅, Π΄Π° ΠΈ Π²ΠΎΠΏΡΠΎΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π΄ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π±ΡΠ΄Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅.
ΠΠ΄Π΅ΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΆΠ°ΡΠΈΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΠ΄ΡΠ°. ΠΡΡΡΠ΅ ΠΎΡΡΠ°Π²ΠΈΡΡ Π±Π΅Π· ΡΠΆΠ°ΡΠΈΡ:
6. Π ΡΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΄ΡΠ°
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΄ΡΠ°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Ρ ΠΎΡΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΡΠΎ-ΡΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° menuconfig. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΄ΡΠ° Π² ΠΏΡΠ²Π΅Π²Π΄ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΌΠ΅Π½Ρ. ΠΠ»Ρ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
ΠΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΡΠ½ΠΊΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΡΠ°Π²ΠΊΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ Help ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Enter:
ΠΡΠ½ΠΊΡ Support for paging of anonymous memory (swap) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΠΎΠ΄ΠΊΠ°ΡΠΊΠΈ:
ΠΠΎΠ·Π²ΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ Π½Π°Π·Π°Π΄ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Exit, Π° Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΏΡΠ½ΠΊΡ File systems. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ext4 ΠΈ ext3, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ Btrfs ΠΈ F2FS:
6. Π‘Π±ΠΎΡΠΊΠ° ΡΠ΄ΡΠ° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π²ΡΡΡΠ½ΡΡ
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΄ΡΠΎ Π²ΡΡΡΠ½ΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄Π»Ρ Π΅Π³ΠΎ ΡΠ±ΠΎΡΠΊΠΈ:
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΡΠ΄ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΊΠΎΡΠΈΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΏΠΎΠΏΡΠΎΡΠΈΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΄Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΡΠΈΠΈ -j. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ±ΠΎΡΠΊΠΈ Π² 8 ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ±ΠΎΡΠΊΠ° ΡΠ΄ΡΠ° Linux Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, Π΄Π°Π»ΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΄ΡΠΎ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
Π‘ΠΊΡΠΈΠΏΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Grub ΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ:
ΠΠΎ ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΈΠ΄ΡΠΈ Π΄Π°Π»ΡΡΠ΅, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΅ΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ°.
7. Π‘Π±ΠΎΡΠΊΠ° ΠΏΠ°ΠΊΠ΅ΡΠ° Π΄Π»Ρ Ubuntu
ΠΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅ΡΠ»ΠΈ Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ΄ΡΠΎ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΡΡΡΠ½ΡΡ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ±ΡΠ°ΡΡ ΠΏΠ°ΠΊΠ΅Ρ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°. ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ deb ΠΏΠ°ΠΊΠ΅ΡΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ° Linux ΠΏΠ°ΠΊΠ΅ΡΡ ΠΏΠΎΡΠ²ΡΡΡΡ Π½Π° ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π²ΡΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ:
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ°ΠΊΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΠ°ΡΠ΅ΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡ, ΡΡΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ:
ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ΄ΡΠ°, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ΄ΡΠΎΠΌ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠ΄ΡΠ° ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
sudo apt remove linux-headers-5.13.7 linux-image-5.13.7 linux-image-5.13.7-dbg linux-libc-dev
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ Π΅ΡΠ»ΠΈ ΡΠ΄ΡΠΎ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΡΠΎΠ±ΡΠ°Π½Π½ΠΎΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠ΄ΡΠΎ Π½Π΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ, ΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ ΡΡΡΠ°ΡΠ½ΠΎΠ³ΠΎ Π΅ΡΡ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ ΡΠΎ ΡΡΠ°ΡΡΠΌ ΡΠ΄ΡΠΎΠΌ ΠΈ Π½Π°ΡΠ°ΡΡ Π²ΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΎ ΡΡΠ°ΡΡΠΌ ΡΠ΄ΡΠΎΠΌ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΠΌΠ΅Π½Ρ Grub Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠ½ΠΊΡ ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, Π° ΠΏΠΎΡΠΎΠΌ Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ΄ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: 5.11.0.25:
ΠΡΠ»ΠΈ ΠΌΠ΅Π½Ρ Grub Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π·Π°ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠ»Π°Π²ΠΈΡΡ Shift. ΠΠΎΡΠ»Π΅ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΄Π°Π»ΠΈΡΡ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΠΊΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ°, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΅Π³ΠΎ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ»ΠΈ Π²ΡΡΡΠ½ΡΡ. ΠΠ»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π²ΡΡΡΠ½ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠ΄ΡΠ° ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ /boot. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
Π Π·Π°ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Grub:
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΡΡΠ°Π½ΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΡΠ΅ ΡΠ΄ΡΠ°.
ΠΡΠ²ΠΎΠ΄Ρ
ΠΠΎΡ ΠΈ Π²ΡΠ΅. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ±ΠΎΡΠΊΠ° ΡΠ΄ΡΠ° Linux ΠΈΠ· ΠΈΡΡ ΠΎΠ΄Π½ΠΈΠΊΠΎΠ². ΠΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²ΡΠ΅ΠΌ ΠΆΠ΅Π»Π°ΡΡΠΈΠΌ Π»ΡΡΡΠΈΠ΅ ΠΏΠΎΠ½ΡΡΡ ΡΠ²ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈ ΡΠ΅ΠΌ, ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΌΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ ΡΠ΄ΡΠ° Π² ΡΠ²ΠΎΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. ΠΡΠ»ΠΈ ΠΎΡΡΠ°Π»ΠΈΡΡ Π²ΠΎΠΏΡΠΎΡΡ, Π·Π°Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ!
ΠΠ΅Ρ ΠΏΠΎΡ ΠΎΠΆΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ
ΠΡΠ΅Π½ΠΈΡΠ΅ ΡΡΠ°ΡΡΡ:
ΠΠ± Π°Π²ΡΠΎΡΠ΅
ΠΡΠ½ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ ΡΠ°ΠΉΡΠ° losst.ru, ΡΠ²Π»Π΅ΠΊΠ°ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ Linux. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΠ‘ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Ubuntu. ΠΡΠΎΠΌΠ΅ Linux, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΡ Π²ΡΠ΅ΠΌ, ΡΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ ΠΈ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π°ΡΠΊΠΎΠΉ.
47 ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ²ΠΎΠ΅Π³ΠΎ Π»ΠΈΠ½ΡΠΊΡΠ° Π½Π°ΡΠΈΠ½Π°Π» Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ°. Π£ΠΆΠ΅ ΠΈ Π½Π΅ ΠΏΠΎΠΌΠ½Ρ ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠΏΡΡΠΎΠΊ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠ½ΠΎ «Π·Π°Π²Π΅Π»ΠΎΡΡ»:) ΠΠ΄Π΅-ΡΠΎ Π½Π΅Π΄Π΅Π»Ρ ΠΏΠΎ Π²Π΅ΡΠ΅ΡΠ°ΠΌ ΠΏΠΎΡΠ»Π΅ ΡΠ°Π±ΠΎΡΡ Ρ Π΅Π³ΠΎ ΡΠΎΠ±ΠΈΡΠ°Π» Π½Π° Π΄ΠΎΠΌΠ°ΡΠ½Π΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΡΠΈΡΠ°Ρ Ρ ΡΠ½Π΄Π±ΡΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ 🙂 ΠΡΠΎ Π² 2008-ΠΌ Π³ΠΎΠ΄Ρ Π±ΡΠ»ΠΎ. Π‘ Π²ΠΈΠ½Π΄Ρ ΡΠ΅Π» Π½Π° gentoo. ΠΠ° ΡΠ±ΠΎΡΠΊΡ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄ΠΎ ΡΠ·Π°Π±Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ Ρ ΠΌΠ΅Π½Ρ ΡΡΠ»ΠΎ Π½Π΅Π΄Π΅Π»ΠΈ 3. Π‘ ΡΠ΅Ρ ΠΏΠΎΡ ΠΈ ΠΊΠΎΠ²ΡΡΡΡΡΡ Π² Π½ΠΈΠΊΡΠ°Ρ .
ΠΠ΅ΡΠ΅ΠΉΡΠΈ Ρ ΠΎΠΊΠ½ΠΎΡΠ·Π° ΠΈ ΡΡΠ°Π·Ρ Π½Π° Π³Π΅Π½ΡΡ ΡΡΠΎ ΡΠΆΠ΅ ΡΠ΅Π»Π°Ρ Π±ΠΈΠΎΠ³ΡΠ°ΡΠΈΡ
ΠΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π²Π΅ ΡΡΠΎ ΠΏΡΠΈΠΊΡΡΡΠΈΡΡ ΡΡΠ°ΡΠΎΠ΅ ΡΠ΄ΡΠΎ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΠ»ΠΈ Π·Π½Π°Π΅ΡΠ΅ Π‘ΠΈ, ΡΡΠΎΠ± Π²ΡΡΡΠ½ΡΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ ΠΈ ΠΊΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΏΠΎΠΏΡΠ°Π²ΠΈΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΡΠ΄ΡΠ°. ΠΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΊΠΎΠΉ Π²ΡΡΠΎΠΌ Π²Π΅Π»ΠΈΠΊΠΈΠΉ ΡΠΌΡΡΠ» Π΄Π»Ρ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π³ΠΎ ΠΠ, Π½Π°Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎΡΡ Π·Π° NAT ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° ΠΈ Π·Π° NAT ΡΠΎΡΡΠ΅ΡΠ°? ΠΠ»ΠΈ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ΄ΡΠ°, Π΄ΡΡΠ³ΠΈΠ΅ Π΄ΠΎΠΌΠ°ΡΠ°Π΄ΡΡ Π±ΡΠ΄ΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠΈΡΠΎΠ²Π°ΡΡ?
Π₯ΠΎΡΠΎΡΠΎ ΡΡΠΎ ΡΠΊΠ°Π·Π°Π»ΠΈ, ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡΠ½Π΅Π³ΠΎ, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΠΏΡΠ°Π²ΠΈΡΡ ΡΡΡΠ»ΠΊΡ.
Π― ΡΠ°ΠΊ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΈ Π²ΠΌΠ΅ΡΡΠΎ lscpi Π½ΡΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡΡ lspci
Π‘ΠΌΠΎΡΡΡ Π²Ρ ΡΠ°ΠΊ ΡΡΡΠ»ΠΊΡ ΠΈ Π½Π΅ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈ. ΠΡΠΈ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈΡΠ½Π΅Π³ΠΎ.
Π‘ΡΡΠ»ΠΊΡ ΠΏΠΎΠΌΠ΅Π½ΡΠ» Π½Π° Github, Π½ΠΎ ΡΠ°ΠΌ ΡΠΎΠΆΠ΅ ΡΠΊΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ. Π’Π°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½Π° ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠΉ Π΅ΡΠ΅ Π½Π΅Ρ Π½Π° ΡΠ°ΠΉΡΠ΅, ΡΠΎ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΊΠ°ΡΠ°ΡΡ Π²ΡΠ΅.
Π ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ½ΡΡΠ°Π»ΡΡΠΈΠΈ
$ sudo make install && sudo make modules_install
ΠΠ°ΠΊ Π·Π°ΡΠ΅ΠΌ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠ΄ΡΠΎ ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ Π·Π°ΡΡΠΎΠ½ΡΠ² ΠΌΠΎΠ΄ΡΠ»ΠΈ ΡΡΠ°ΡΠΎΠ³ΠΎ ΡΠ΄ΡΠ°?
Π£ ΠΌΠ΅Π½Ρ ΠΠ‘ ROSA Linux Fresh.
admin, ΡΠ°ΡΡΠΊΠ°ΠΆΠΈ, ΡΠ΅Π°Π»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠ΄Π°Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ»ΠΎΠΌΠ°Π²
Π½Π΅Π΅Π΅Π΅, ΡΠ΅ΡΡ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎ ΠΌΠΎΠ΄ΡΠ»ΠΈ sudo make modules_install ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠΈΡΡ ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ?
Π― Π½Π°ΡΠ΅Π» ΠΎΡΠ²Π΅Ρ Π΅ΡΠ»ΠΈ ΠΊΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π±ΡΠ΄Π΅Ρ, ΡΠ΄Π°Π»ΡΠ΅ΡΠ΅ ΡΠ΄ΡΠ° ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ Π±ΠΎΠ»ΡΡΠ΅, Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ /boot ΡΠ°ΠΊ ΠΆΠ΅ ΡΠ΄Π°Π»ΡΠ΅ΡΠ΅ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°ΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΡΠ΄Π°Π»ΡΠ΅ΠΌΡΡ ΡΠ΄Π΅Ρ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ: system.map ΠΈ initramfs. ΠΠ°Π»Π΅Π΅ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ Π² ΡΠΏΡΡΡ make modules_install: Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ /lib/modules ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π°Π»ΡΠ΅ΡΠ΅ ΠΏΠ°ΠΏΠΊΡ Ρ ΠΌΠΎΠ΄ΡΠ»ΡΠΌΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΡΠ΄ΡΠ° ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ΄Π°Π»ΡΠ΅ΡΠ΅. Π Π²ΡΠ΅, ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ, Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ΄ΡΠ° Π² ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠΎΡ ΡΠ°Π½Π½ΠΎΡΡΠΈ ΠΈ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΡΡΠ΅Π½Π½ΠΎ. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π²Π·ΡΡΠ° ΠΈΠ· ΠΆΡΡΠ½Π°Π»Π° LinuxFormat Π·Π° ΠΎΠΊΡΡΠ±ΡΡ 2016 Π³ΠΎΠ΄Π°, ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π²Π΅ΡΡ(Π½Π΅ ΡΠ΅ΠΊΠ»Π°ΠΌΠ°, ΡΠΎΠ²Π΅Ρ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ).
ΠΠΎΡΡΠ°Π²ΠΈΠ» ΡΠ΅Π±Π΅ Ubuntu 16.04 Π½Π° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ ΡΠΊΠ°ΡΠ°Π» ΡΠ΄ΡΠΎ 4.11. ΠΠ°ΡΠ°Π» ΡΠΎΠ±ΠΈΡΠ°ΡΡ, ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅. ΠΠΎΠΆΠ΅Ρ, ΠΊΠΎΠΌΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ.
sudo apt-get install libssl-dev build-essential kernel-package libncurses-dev
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Π½Π° Ubuntu 16.04 Ρ ΠΌΠ΅Π½Ρ Π²ΡΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΈ ΡΠ΄ΡΠΎ Π½Π°ΡΠ°Π»ΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ.
ΠΠ΄ΠΌΠΈΠ½, ΡΡΠ°ΡΡΡ Ρ ΠΎΡΠΎΡΠ°Ρ, ΠΌΠ½Π΅ Π½Π΅ Ρ Π²Π°ΡΠΈΠ»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠ°ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠ±ΠΎΡΠΊΠΎΠΉ ΡΠ΄ΡΠ°, Π΅ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ, Π±ΡΠ΄Π΅Ρ ΡΡΠ°ΡΡΡ ΠΎΡ Π Π΄ΠΎ Π―.
Π’Π°ΠΊ Π²ΠΎΡ ΠΎΠ½ΠΎ ΡΡΠΎ! ΠΠ½Π΅ ΠΏΡΠΈ ΡΠ±ΠΎΡΠΊΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ make && make modules Π²ΡΠ΄Π°Π²Π°Π»ΠΎ ΠΎΡΠΈΠ±ΠΊΡ ΠΏΡΠΎ ΠΎΡΡΡΡΡΠ²ΠΈΠ΅ openssl, ΡΠ΄ΡΠΎ 4.19.2. ΠΡΡ Π·Π°ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ
Π ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ Π²ΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ RAID NTFS? Π―Π΄ΡΠΎ 4.9.
Π― ΡΠΎΡΡ ΡΠ΅ΠΉΠ΄-1 Π΄Π΅Π»Π°Π» Ρ ΠΏΠΎΠΌΠΎΡΡΡ mdadm
ΠΠ°ΠΊ ΡΠ°Π· ΡΡΠΎΠΉ ΡΡΡΠΎΡΠΊΠΈ ΠΌΠ½Π΅ ΠΈ Π½Π΅ Ρ
Π²Π°ΡΠ°Π»ΠΎ «sudo apt-get install libssl-dev build-essential kernel-package libncurses-dev».
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
ΠΠ°ΠΊ Π²ΡΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΌΠΎ ΡΠ΄ΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎ cp arch/x86_64/boot/bzImage /boot/vmlinuz, Π° ΠΊΠ°ΠΊ Π² ΡΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π΄Π»Ρ ΡΠ΄ΡΠ°?
Ρ
ΠΌ, Π΅ΡΠ»ΠΈ ΡΡΠΎ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ ΡΠΎ ΠΏΠΎΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±Ρ Π½Π΅ ΡΡΠ°Π²ΡΡ ΡΠ°ΠΌΠΎΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ ΡΠ΄ΡΠΎ?
Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° Linux Mint ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΄ΡΠΎ 4.15 Π° Π½Π° kernel.org ΡΠΆΠ΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠ΅ 4.17
ΠΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ API ΡΠ΄ΡΠ° ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΠΌ Π½Π°Π΄ΠΎ ΠΊΡΡΡ ΡΠΎΡΡΠ° ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎΠ± ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΡΠ΄ΡΠ΅. Π½Π΅ Π²ΡΡ ΡΠ°ΠΊ Π±ΡΡΡΡΠΎ. ΠΡ ΠΆΠ΅ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π²Π΅ΡΠ½ΠΎ Π³Π»ΡΡΠ½ΡΠΉ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²?
Π ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΠ΄ΡΠΎ ML?
ΠΠΎ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠ°ΡΠ΅ΠΉ Π·Π΄Π΅ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ ΡΠ΄ΡΠΎ, Π½ΠΎ ΡΠ°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ±ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΡΠΈΡ ML.
ΠΠΎ ΡΡΠΎΠ³ΠΎ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Π±ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ΄ΡΠ°, Π±Π΅Π· ML.
Π― Π΄Π°Π²Π½ΠΎ (ΠΎΡΠ΅Π½Ρ Π΄Π°Π²Π½ΠΎ) Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π» ΡΠ΄ΡΠ°. Π΅ΡΠ΅ ΡΠΎ Π²ΡΠΎΡΡΡ Π²Π΅ΡΡΠΈΠΉ.
Π΅ΡΡΡ Π²ΠΎΠΏΠΎΡΠΎΡ: Π² ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΡΠ΄ΡΠΎ Π½Π΅ ΠΎΠΆΠΈΠ²ΡΡ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠ·ΠΈΡΡΡΡ Π² ΡΠΎΠΌ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ Π½Π°ΡΠ°ΡΡ ΡΠ±ΠΎΡΠΊΠΈ?
Π Π°Π½ΡΡΠ΅ Ρ ΡΡΠΊΠ°ΠΌΠΈ ΠΏΡΠ°Π²ΠΈΠ» Π³ΡΠ°Π± Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΡΡΠ°ΡΠΎΠ΅ ΡΠ΄ΡΠΎ.
Π‘Π΅ΠΉΡΠ°Ρ Π² grub Π΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ ΡΠΎ ΡΡΠ°ΡΡΠΌΠΈ ΡΠ΄ΡΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ.
Ρ ΡΠΆΠ΅ ΠΎΠΆΠΈΠ΄Π°Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. 5.2.8
ΡΡΡΠ°Π½Π½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ. ΡΠ°Π½ΡΡΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π° ΡΠ΅ΡΡΠ°Ρ ΠΈ Π±Π΅Π· ΠΈΡ ΠΈΠ΄ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΠΠ ΠΎΠ½ΠΈ Ρ ΠΌΠ΅Π½Ρ ΡΠΆΠ΅ Π΅ΡΡΡ.
Π Π°Π½ΡΡΠ΅, Π½Π°ΠΏΡΠΌΠ΅Ρ, Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ΄ΡΠ° 2.4.2 Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΊΠ°ΡΠ°ΡΡ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊ linux-headers-2.4.2. Π‘Π΅ΠΉΡΠ°Ρ Π½Π΅ ΡΠ°ΠΊ. Π ΡΠ°ΡΠΏΠΎΠΊΠΎΠ²ΠΊΡ ΠΊΠΎΠ΄ΠΎΠ² ΡΠ΄ΡΠ° Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΡΠΎΠ³ΠΎ Π² /usr/src/
ΠΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π΅ ΠΌΠ°Π»ΠΎ ΠΏΡΠΎΡΠ»ΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ ΡΠ΄ΡΠ° 2,4, ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΎΡΠ΅.
Ρ ΡΠΆΠ΅ ΠΎΠΆΠΈΠ΄Π°Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. 5.2.8
ΡΡΡΠ°Π½Π½ΠΎ ΠΊΠ°ΠΊ-ΡΠΎ. ΡΠ°Π½ΡΡΠ΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π²ΡΠΊΠ°ΡΠΈΠ²Π°ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π° ΡΠ΅ΡΡΠ°Ρ ΠΈ Π±Π΅Π· ΠΈΡ ΠΈΠ΄ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΠΠ ΠΎΠ½ΠΈ Ρ ΠΌΠ΅Π½Ρ ΡΠΆΠ΅ Π΅ΡΡΡ.
Π Π°Π½ΡΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΡΠ΄ΡΠ° 2.4.2, Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΊΠ°ΡΠ°ΡΡ ΠΈ ΡΠ°ΡΠΏΠ°ΠΊ linux-headers-2.4.2. Π‘Π΅ΠΉΡΠ°Ρ Π½Π΅ ΡΠ°ΠΊ. Π ΡΠ°ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ ΠΊΠΎΠ΄ΠΎΠ² ΡΠ΄ΡΠ° Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΡΠΎΠ³ΠΎ Π² /usr/src/.
ΠΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π΅ ΠΌΠ°Π»ΠΎ ΠΏΡΠΎΡΠ»ΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ ΡΠ΄ΡΠ° 2,4, ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΎΡΠ΅.
Π° ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ grub Π½Π΅ Π½ΡΠΆΠ½ΠΎ?
update-grub
ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΡΠ΄ΡΠ°ΠΌΠΈ 2.4, ΡΠ΄ΡΠ° 4.15 ΠΈ 5.2 Π² ΠΠΠ ΡΠ°Π·Π° Π±ΠΎΠ»ΡΡΠ΅. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΈΠ·-Π·Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΆΠ΅Π»Π΅Π·Π° ΠΈ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ ΡΡΡΡΠ΅ΠΊ (Π² ΠΎΡΠ΅Π½Ρ ΠΎΠ±ΡΠΈΡΠ½ΠΎΠΌ ΠΏΠΎΠ½ΡΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°).
Π£ ΠΌΠ΅Π½Ρ Π²ΠΎΠΏΡΠΎΡ Ρ Π°Π²ΡΠΎΡΡ ΠΈ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΡΡΠΈΠΌ. ΠΠ’Π-Π’Π ΠΠ ΠΠΠ‘ ΠΠ ΠΠΠΠΠΠ Π‘ΠΠΠ ΠΠ£ Π―ΠΠ Π Π‘ΠΠΠΠΠ‘ΠΠ ΠΠ’ΠΠΠ£ ΠΠΠ‘Π’Π£. ΠΠΠ§ΠΠ Π’ΠΠΠΠ ΠΠΠ‘ΠΠ’Π¬? ΠΠΠ ΠΠ’Π ΠΠΠΠ§ΠΠ’ΠΠ.
—
Π ΠΠΠ«Π’, Π‘Π«Π ΠΠ¨ΠΠΠΠ.
ΠΠ ΠΠΠΠΠ¬ΠΠ ΠΠ£ΠΠΠ ΠΠ sudo make install && sudo make modules_install, Π
Π²ΡΡ. Ρ ΠΌΠ΅Π½Ρ Π²ΡΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ!
ΠΡΠ° ΠΎΡΠΈΠ±ΠΊΠ° Π²ΡΠ»Π°Π·ΠΈΠ΅Ρ,Π½Π΅ ΠΌΠΎΠ³Ρ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ.Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ?
sudo make install && sudo make modules_install Π’ΠΠ ΠΠ ΠΠ ΠΠΠΠΠ¬ΠΠ.
ΡΠ»ΡΡΠ°ΠΉ, Π° ΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΠΏΡΡΠ΅ΡΡ ΡΡΠΈ ΠΈ Π’ΠΈΠΌΠΎΡΠ΅ΠΉ Π₯ΠΈΡΡΡΠ½ΠΎΠ², ΡΡΠΎ Π²ΡΠ΅ Π½Π΅ ΡΠ²ΠΎΠ΅?
ΠΠ°ΠΊ ΡΠ·Π½Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π»ΠΈ ΡΠ΄ΡΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ?
ΠΡΡ ΡΡΠ°ΡΡΡ ΠΈΠ· ΠΊΠ°ΠΊΠΈΡ
-ΡΠΎ ΠΏΠΎΠ»ΠΎΠΌΠ°Π½Π½ΡΡ
ΠΊΠΎΠΌΠ°Π½Π΄ (Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ, Π½Π΅ ΠΏΡΠΎΠ΄ΡΠΌΠ°Π½Π½ΡΠ΅), Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΏΠ΅ΡΠ²ΡΡ
ΠΆΠ΅ ΡΡΡΠΎΠΊ! ADMIN ΡΡΠΎ Π½ΠΈΠΊ ΠΈΠ»ΠΈ ΡΡΠ°ΡΡΡ Π²Π»Π°Π΄Π΅Π»ΡΡΠ° ΡΠ°ΠΉΡΠ°? Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π²ΡΠΊΠ»Π°Π΄ΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ°ΡΡΠΈ, ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ ΠΎΠΏΡΡΠ½ΡΠΌ, ΠΏΠΎΠ·ΠΎΡ! Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ Π΄ΠΎΠΏΠΈΠ»ΠΈΡΡ ΡΠ°ΠΊΡΡ ΡΡΠ°ΡΡΡ Π΄ΠΎ ΡΠΌΠ° Π·Π° 5 Π»Π΅Ρ! Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π΄Π»Ρ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΡΡΡΠ° ΠΈ ΡΠΆ ΡΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Π΄Π»Ρ ΡΡΠΎΠ»Ρ Π²Π°ΠΆΠ½ΠΎΠΉ ΡΠ΅ΠΌΡ, ΠΎΡΠ½ΠΎΠ²Ρ ΠΎΡΠ½ΠΎΠ² Linux(Π±Π΅Π· ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄Π°Π»ΡΡΠ΅ Π½ΠΈΠΊΡΠΎ ΠΈ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ Π΄Π²ΠΈΠ½Π΅Ρ)! ΠΡΠΈ ΡΡΡΡΠ΅ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΌΠ΅Π½ΡΠ΅ΠΌΡΡ
ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π², Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌΠΈ ΠΈ Π΄ΠΎΡΠ°Π±ΠΎΡΠΊΠ°ΠΌΠΈ!
ΠΠΠΠΠ .
Π‘Π΅ΡΠ³Π΅ΠΉ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠΈΠ». Π²ΠΎΡ Π΄ΠΎΡΡΠΎΠΉΠ½Π°Ρ ΠΏΠΎΠΌΠΎΡΡ. ΠΠ°Π²Π΅ΡΠ½ΠΎΠ΅ ΠΡ ΡΠΎΠ΄ΠΈΠ»ΠΈΡΡ Ρ ΠΠΠ£ Π½Π΅ ΡΠΊΠ°ΠΆΡ Π³Π΄Π΅. Π§Π΅Π»ΠΎΠ²Π΅ΠΊ ΡΠ·Π½Π°ΡΡ Ρ ΠΎΡΠ΅Ρ ΡΡΠΎ-ΡΠΎ, Π½Π°ΡΡΠΈΡΡΡΡ ΡΠ΅ΠΌΡ-ΡΠΎ. ΠΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ Π΅Π³ΠΎ ΡΠ΅ΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΠΌΡ.