ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ksymoops Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΎΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Linux.
Π€ΡΠ½ΠΊΡΠΈΡ kallsyms
Π ΡΡΠ°ΡΡΡΡ, Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ksymoops. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ, Ρ ΠΎΡΡ, Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠ°ΡΡΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» System.map, ΠΈΠ»ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ oops.
Π ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠ΅ΡΠΈΠΈ ΡΠ΄ΡΠ° 2.5 Π±ΡΠ»Π° Π²Π²Π΅Π΄Π΅Π½ΠΎ Π½ΠΎΠ²Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ kallsyms, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° CONFIG_KALLSYMS. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ°Π· ΡΠ΄ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ΄ΡΠ°, ΡΡΠΎ Π΄Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ΄ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ oops Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠ°ΠΉΠ»Π° System.map, ΠΈΠ»ΠΈ ΡΡΠΈΠ»ΠΈΡΡ kallsyms. ΠΠ°ΠΊ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΡΠ΄ΡΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ Π² ΠΈΠΌΠ΅Π½Π° ΡΡΠ½ΠΊΡΠΈΠΉ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΡ ΠΏΠ°ΠΌΡΡΡ ΡΠ΄ΡΠ°. ΠΠ° ΡΠ°ΠΊΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ ΡΡΠΎΠΈΡ ΠΏΠΎΠΉΡΠΈ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΄ΡΠ°.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠ΄ΡΠ°
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ Π² ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΡΠ΄ΡΠ° ΠΈ ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π² ΠΏΡΠ½ΠΊΡΠ΅ Kernel hacking ΠΌΠ΅Π½Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΡΠ΄ΡΠ°. ΠΡΠ΅ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° CONFIG_DEBUG_KERNEL. ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π° ΡΠ΄ΡΠ° ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΡΡΠΈΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΎΡΠ»Π°Π΄ΠΊΠ° ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠ»ΡΠ±ΠΎΠ²ΡΠΌ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»Π΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ (slab layer debugging), ΠΎΡΠ»Π°Π΄ΠΊΠ° ΡΠ°Π±ΠΎΡΡ Ρ Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΏΠ°ΠΌΡΡΡΡ (high memory debugging), ΠΎΡΠ»Π°Π΄ΠΊΠ° ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΠΌ Π½Π° ΠΏΠ°ΠΌΡΡΡ Π²Π²ΠΎΠ΄ΠΎΠΌ-Π²ΡΠ²ΠΎΠ΄ΠΎΠΌ (I/O mapping debugging), ΠΎΡΠ»Π°Π΄ΠΊΠ° ΡΠ°Π±ΠΎΡΡ ΡΠΎ ΡΠΏΠΈΠ½-Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ (spin-lock debugging) ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅ΠΊΠ° (stack overflow checking). ΠΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² β ΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΡΠΈ Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΠΎΠΉ ΡΠΏΠΈΠ½-Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ (sleep-inside-spinlock checking), ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠ»Π°Π΄ΠΊΠ° Π°ΡΠΎΠΌΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
ΠΠ°ΡΠΈΠ½Π°Ρ Ρ ΡΠ΅ΡΠΈΠΈ 2.5 Π² ΡΠ΄ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»Π°ΡΡ ΠΎΡΠ»ΠΈΡΠ½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠΈΠΏΠΎΠ² Π½Π°ΡΡΡΠ΅Π½ΠΈΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΈΠ· Π³Π»Π°Π²Ρ 8, "ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΡΠ΄ΡΠ°", ΡΡΠΎ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π½Π΅Π΄Π΅Π»ΠΈΠΌΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΡΠΎ Π΅ΡΡΡ ΠΊΠΎΠ΄ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π±Π΅Π· ΠΏΠ΅ΡΠ΅ΡΡΠ²Π° Π΄ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ, ΠΈΠ»ΠΈ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ Π²ΠΎΠΎΠ±ΡΠ΅. ΠΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΏΠΈΠ½-Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΡ, ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠ΅Π΅ΠΌΠΏΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΠ΄ΡΠ°, ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΡΠΌ. ΠΠΎ Π²ΡΠ΅ΠΌΡ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ. ΠΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ ΠΏΡΠΈ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠΏΠΈΠ½-Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π²Π·Π°ΠΈΠΌΠΎΠ±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌ ΠΏΡΠ΅Π΅ΠΌΠΏΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΡΠ΄ΡΠΎ ΠΈΠΌΠ΅Π΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΡΡΠ΅ΡΡΠΈΠΊ ΠΏΡΠ΅Π΅ΠΌΠΏΡΠΈΠ²Π½ΠΎΡΡΠΈ. Π―Π΄ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΡΡΠΎΠ΅Π½ΠΎ ΡΠ°ΠΊ, ΡΡΠΎ, Π΅ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΡΠΎ ΡΠ΄ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΡ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ. ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅ΡΠ΅ΠΊΡΠΈΡΡΡΡΡΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΠΊΠ»ΡΡΠ°ΡΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ schedule () ΠΏΡΠΈ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΡΡΡΠ΅Π³ΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΡΠΈ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅, ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅ Π½Π° Π΄Π°Π½Π½ΡΠ΅, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠΌ. ΠΡΠ° ΠΎΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ ΠΎΡΠ΅Π½Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π΅Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ.
Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ.
CONFIG_PREEMPT=y
CONFIG_DEBUG_KERNEL=y
CONFIG_KALLSYMS=y
CONFIG_SPINLOCK_SLEEP=y
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ Π²ΡΠ΄Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ΄ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎ Π½Π°Π»ΠΈΡΠΈΠΈ Π΄Π΅ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠΎΠ΄Π°, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ. ΠΠ²Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ β ΡΡΠΎ BUG() ΠΈ BUG_ON(). ΠΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ oops, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ΅ΠΊΠ° ΡΠ΄ΡΠ° ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΡΠΈ Π²ΡΠ·ΠΎΠ²Ρ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ oops Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Π²ΡΠ·ΠΎΠ²Ρ BUG() ΠΈ BUG_ON() ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΡΡ ΠΊΠ°ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°Ρ ΠΌΠ°ΡΠΈΠ½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ oops.
ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΈ Π²ΡΠ·ΠΎΠ²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎ Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ (assertion), ΡΡΠΎΠ±Ρ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ.
if (bad_thing)
BUG();
ΠΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΊ.
BUG_ON(bad_thing);
Π Π±ΠΎΠ»Π΅Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ panic(). Π€ΡΠ½ΠΊΡΠΈΡ panic() ΠΏΠ΅ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΠ΄ΡΠΎ. Π―ΡΠ½ΠΎ, ΡΡΠΎ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ°ΠΌΠΎΠΉ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
if (terrible_thing)
panic("foo is %ld!\n", foo);
ΠΠ½ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΡΠ΅ΠΊΠ°, ΡΡΠΎΠ±Ρ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ. Π ΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ dump_stack(). ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΉ.
if (!debug_check) {
printk(KERN_DEBUG "Π²ΡΠ΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ...\n");
dump_stack();
}
ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠ»Π°Π²ΠΈΡΠ° SysRq
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠ»Π°Π²ΠΈΡΠΈ SysRq, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° CONFIG_MAGIC_SYSRQ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΠ°ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠΈΡΡ ΠΆΠΈΠ·Π½Ρ. ΠΠ»Π°Π²ΠΈΡΠ° SysRq ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°Ρ . ΠΠ»Ρ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌ i386 ΠΈ PPC Π΅ΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ ALT-PrintScreen. ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΡΠ΄ΡΠΎΠΌ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΠ΅ΠΌ ΡΠ΄ΡΠΎ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ. ΠΡΠΎ Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄Π°ΠΆΠ΅ Π½Π° Π½Π΅ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΡΠ·ΠΎΠ² sysctl Π΄Π»Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²Π°.
echo 1 > /proc/sys/kernel/sysrq
Π‘ΠΏΠΈΡΠΎΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΡΡΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ SysRq-h. ΠΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡ SysRq-s Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π½Π΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½Π½ΡΡ Π±ΡΡΠ΅ΡΠΎΠ² ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π½Π° Π΄ΠΈΡΠΊ, ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ SysRq-u ΡΠ°Π·ΠΌΠΎΠ½ΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, a SysRq-b β ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ°Π΅Ρ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΠΎΠ»Π΅Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π²ΠΈΡΠ»Π°, ΡΠ΅ΠΌ ΠΏΡΠΎΡΡΠΎΠ΅ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ reset.
ΠΡΠ»ΠΈ ΠΌΠ°ΡΠΈΠ½Π° Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π° ΠΎΡΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ, ΡΠΎ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π½Π° ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ SysRq, ΠΈΠ»ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΏΠΎΠ²Π΅Π·Π΅Ρ, ΡΠΎ ΡΡΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ ΡΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅. Π ΡΠ°Π±Π». 18.2 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ SysRq.
Π’Π°Π±Π»ΠΈΡΠ° 18.2. Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ SysRq
ΠΠΎΠΌΠ°Π½Π΄Π° ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ SysRq-b ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΈΡΡ ΠΌΠ°ΡΠΈΠ½Ρ (reboot) SysRq-e ΠΠΎΡΠ»Π°ΡΡ ΡΠΈΠ³Π½Π°Π» SIGTERM Π²ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° init SysRq-h ΠΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ ΠΏΠΎΠΌΠΎΡΡ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ ΠΊΠ»Π°Π²ΠΈΡ SysRq SysRq-i ΠΠΎΡΠ»Π°ΡΡ ΡΠΈΠ³Π½Π°Π» SIGKILL Π²ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, ΠΊΡΠΎΠΌΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° init SysRq-k ΠΠ»Π°Π²ΠΈΡΠ° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°: Π·Π°Π²Π΅ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ SysRq-l ΠΠΎΡΠ»Π°ΡΡ ΡΠΈΠ³Π½Π°Π» SIGKILL Π²ΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°ΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡ init SysRq-m ΠΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π΄Π°ΠΌΠΏ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΠΈ SysRq-o ΠΠ°Π²Π΅ΡΡΠΈΡΡ ΡΠ°Π±ΠΎΡΡ ΠΌΠ°ΡΠΈΠ½Ρ (shutdown) SysRq-p ΠΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π΄Π°ΠΌΠΏ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΏΠ°ΠΌΡΡΠΈ SysRq-r ΠΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΡΡΠΌΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ (raw mode) SysRq-s Π‘ΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΡΠΈΡΡΠ΅ΠΌ Ρ Π΄ΠΈΡΠΊΠΎΠ²ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ SysRq-t ΠΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ Π΄Π°ΠΌΠΏ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π·Π°Π΄Π°Π½ΠΈΡΡ SysRq-u Π Π°Π·ΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠΌΠΎΠ½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡΠ ΡΠ°ΠΉΠ»Π΅ Documentation/sysrq.txt, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΠΊΠΎΠ΄ΠΎΠ² ΡΠ΄ΡΠ°, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΌΠ°Π³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ drivers/char/sysrq.Ρ. ΠΠ°Π³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ ΠΊΠ»Π°Π²ΠΈΡ SysRq β ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π² ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠΈ "Π³ΠΈΠ±Π½ΡΡΠ΅ΠΉ" ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΡΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΈ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° ΠΊΡΠΈΡΠΈΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ . ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΌΠ°ΡΠΈΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΎΠΊ, ΡΠΎ ΠΏΠΎΠ»ΡΠ·Π° ΠΎΡ ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ³ΡΠΎΠΌΠ½Π°Ρ.