´ÙÀ½ ÀÌÀü Â÷·Ê

7. Äְܼ£ À̵¿

Äְܼ£ À̵¿ÀÇ ±âº» Å°´Â Alt-Fn ¶Ç´Â Ctrl-Alt-FnÀÌ´Ù. X ȯ°æÀ̳ª ÃÖ±Ù ¹öÀüÀÇ dosemu¿¡¼­´Â Ctrl-Alt-Fn ¸¸ÀÌ Á¦´ë·Î ÀÛµ¿ÇÒ °ÍÀÌ´Ù. ¸¹Àº keymaps¿¡¼­ Alt-¿À¸¥È­»ì Å°¿Í Alt-¿ÞÈ­»ì Å°·Î ÇÒ´çµÈ Äְܼ£ÀÇ ¼øȯ½Ä À̵¿À» Çã¿ëÇÑ´Ù.

XFree86 1.3Àº X À©µµ¿ì·Î À̵¿ÇÒ ¶§, Alt Å°°¡ ´­·Á ÀÖ´Â °ÍÀ» ÀνÄÇÏÁö ¸øÇÑ´Ù. µû¶ó¼­ ´Ù¸¥ VT·Î Áï°¢ µÇµ¹¾Æ°¡Áö ¸øÇÏ°í, Alt Å°¸¦ ¶¼¾î¾ß ¹ÝÀÀÀ» ÇÑ´Ù. ´Ù¸¥ °÷¿¡¼­´Â Àß ÀÛµ¿µÈ´Ù. Ä¿³ÎÀº Ç×»ó ¸ðµç Å°ÀÇ ´©¸§/¶À »óȲÀ» ÃßÀûÇÑ´Ù. (¹°·Ð °¡´ÉÇÑ ÇÑ ±×·¸´Ù´Â À̾߱â´Ù. ¸î¸î Å°º¸µåÀÇ ¾î¶² Å°µéÀº ´­¸®°Å³ª(FOCUS 9000ÀÇ PFn Å°) ¶¿ ¶§(¸¹Àº Å°º¸µåÀÇ Pause Å°) ½ºÄµÄڵ带 º¸³»Áö ¾Ê¾Æ ¾î¿ ¼ö ¾ø´Â °æ¿ìµµ ÀÖ´Ù.)

XFree86 1.3Àº óÀ½ ½ÃÀÛµÉ ¶§, ¹®ÀÚ ROM¿¡ ·ÎµåµÈ ÆùÆ®¸¦ ÀúÀåÇصΰí Äְܼ£ À̵¿À» ÇÒ ¶§, ±×°ÍÀ» ²¨³»¾î »ç¿ëÇÑ´Ù. µû¶ó¼­ VT¿¡¼­ setfont¸¦ »ç¿ëÇϸé X·Î À̵¿Çß´Ù°¡ µÇµ¹¾Æ¿À¸é ÀÌÀü °ªÀ¸·Î º¹±ÍµÈ´Ù. X ȯ°æ¿¡¼­ setfont¸¦ »ç¿ëÇϸé ÀÌ»óÇÑ ÀϵéÀÌ »ý±ä´Ù.

chvt ¸í·ÉÀ» »ç¿ëÇϸé ÇÁ·Î±×·¥ »ç¿ëÁß¿¡µµ VT¸¦ ¹Ù²Ü ¼ö ÀÖ´Ù.

7.1 °¡»ó ÄܼÖÀÇ °¹¼ö ¹Ù²Ù´Â ¹æ¹ý

ÀÌ Áú¹®Àº ¾ÆÁ÷µµ °¡²û ³ª¿ÀÁö¸¸ »ç½Ç µðÆúÆ®·Î ¼³Á¤µÈ °¹¼öÀ¸·Îµµ ÃæºÐÇÏ´Ù. Ä¿³Î 1.1.54ÀÌÈÄ·Î 1ºÎÅÍ 63 »çÀÌÀÇ °¡»ó ÄܼÖÀÌ Á¸ÀçÇÑ´Ù. »õ·Î¿î °¡»ó ÄܼÖÀº »ý¼ºµÇ¸é¼­ ¿­¸°´Ù. deallocvt¶ó´Â À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÏ¸é ¾ø¾Ù ¼ö ÀÖ´Ù. (±×·¯³ª ¾ø¾Ù·Á¸é ¿©±â¿¡ ¿¬°áµÈ ÇÁ·Î¼¼½º°¡ Çϳªµµ ¾ø°í, selectionÀ̳ª gpm °°Àº ÇÁ·Î±×·¥ÀÌ ÀÌ Äֿܼ¡ ÀÖ´Â ÅؽºÆ®¸¦ ¼±ÅÃÇÏ°í ÀÖÁö ¾Ê¾Æ¾ß ÇÑ´Ù.)

À̺¸´Ù ÀÌÀü ¹öÀüÀÇ Ä¿³ÎÀÎ °æ¿ì¶ó¸é include/linux/tty.h¿¡ ÀÖ´Â

        #define NR_CONSOLES     8
¸¦ ¹Ù²Ù¾îÁÖ°í Ä¿³ÎÀ» ÄÄÆÄÀÏÇÏ¸é µÈ´Ù. (ÀÌ ¼ýÀÚ¸¦ 63º¸´Ù Å©°Ô ÇÏÁö´Â ¸» °Í.)

°¡»ó ÄܼÖÀÌ ¾Æ¿¹ ¾ø´Â °æ¿ì¶ó¸é MAKEDEV ¶Ç´Â mknod ttyN c 4 N (¿©±â¼­ NÀº tty ¹øÈ£¸¦ ÁöÁ¤)·Î tty µð¹ÙÀ̽º¸¦ ¸¸µé ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾îº¸¸é

        for i in 9 10 11 12; do mknod /dev/tty$i c 4 $i; done
Á» ´õ ÁÁÀº ¿¹·Î´Â (ÀÌ ¹æ¹ýÀÌ »ç¿ëÀÚ¿Í Çã°¡±Ç¿¡ À¯ÀÇÇÑ´Ù.),
        for i in 9 10 11 12; do /dev/MAKEDEV tty$i; done

getty¸¦ µ¹¸± VC°¡ »õ·Î ÇÊ¿äÇÏ´Ù¸é /etc/inittab¿¡ ¶óÀÎÀ» Ãß°¡ÇÏ¸é µÈ´Ù. (ÇÏÁö¸¸ »ç¿ëÇÏ°í ÀÖ´Â getty°¡ µÎ°³¸¸ ÀÖ´Â °ÍÀÌ ÁÁ´Ù. ±×¸®°í Ãß°¡·Î ´õ ÇÊ¿äÇØÁö¸é µ¿ÀûÀ¸·Î »ý¼ºÇÏ¸é µÈ´Ù. »ç¿ëÀÚ°¡ ¸ðµç ÄܼÖÀ» »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é ÀÌ ¹æ½ÄÀÌ º¸´Ù ¸¹Àº ¸Þ¸ð¸®¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. /etc/inittab¸¦ ¿­¾î¼­ ÃÖÃÊÀÇ µÎ°³¸¦ Á¦¿ÜÇÑ ¸ðµç getty¸¦ ÁÖ¼®À¸·Î ¸·¾Æ µÎ¾î¶ó.)

ÄܼÖÀ» µ¿ÀûÀ¸·Î ÇÒ´ç¹ÞÀ» ¶§´Â getty°¡ Çϳª³ª µÎ°³ Á¤µµ¸¸ µ¹µµ·Ï ÇÏ´Â °ÍÀÌ °¡Àå ½±´Ù. open -l -s bash¶ó°í ÇÏ¸é ´õ ¸¹ÀÌ ¿­ ¼ö ÀÖ´Ù. (¿¬°áµÈ ÇÁ·Î¼¼½º°¡ ¾ø´Â) »ç¿ëÇÏÁö ¾Ê´Â ÄܼÖÀº deallocvt(¿¹Àü¿¡´Â disalloc)À» »ç¿ëÇÏ¿© ¾ø¾Ù ¼ö ÀÖ´Ù. ±×·¯³ª ÀÛ¾÷Áß¿¡ °©ÀÚ±â ÄܼÖÀÌ ´õ ÇÊ¿äÇØÁ®¼­ ´çÀå open ¸í·ÉÀ» ³»¸± bash ÇÁ·ÒÇÁÆ®°¡ ¾ø´Ù¸é ¾î¶»°Ô Çϴ°¡? ´ÙÇàÀ̵µ ÇöÀç Äֿܼ¡¼­ ¹«½¼ ÀÏÀ» ÇÏ°Ç, ÇÑ Å¥·Î »õ·Î¿î ÄܼÖÀ» ¸¸µå´Â ¹æ¹ýÀÌ ÀÖ´Ù.

kbd-0.95.tar.gz¿¡ ÀÖ´Â spawn_loginÀ» ¼³Ä¡ÇÏ°í /etc/rc.local¿¡ ´ÙÀ½°ú °°ÀÌ ³Ö¾î µÎ¾î¶ó.

        loadkeys << EOF
        alt keycode 103 = Spawn_Console
        EOF
        spawn_login &
±× ´ÙÀ½¿¡ Alt-À§È­»ì Å°¸¦ ´©¸£¸é loginÀ» µ¹¸®°í ÀÖ´Â »õ·Î¿î VC°¡ »ý¼ºµÉ °ÍÀÌ´Ù. (¹°·Ð »ý¼ºµÇ¾î¼­ ±×°÷À¸·Î À̵¿µÈ´Ù.) spawn_login & ´ë½Å¿¡ spawn_console &¸¦ ¼³Ä¡Çß´Ù¸é ¾Æ¸¶µµ »õ Äֿܼ¡ bash°¡ µ¹°í ÀÖÀ» °ÍÀÌ´Ù. open-1.4.tgz¿Í dynamic-vc-1.1.tar.gz¸¦ Âü°íÇ϶ó.

ÃֽŠ¹öÀüÀÇ init¸¦ °¡Áö°í ÀÖ´Ù¸é /etc/inittabÀÇ kbrequest¾Æ·¡¿¡¼­ Spawn_Console Å°°¡ ´­·ÈÀ» ¶§ ¹«½¼ ÀÛµ¿À» ÇÏ´ÂÁö ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. inittab(5)¸¦ Âü°íÇÒ °Í.

(ÀÌ µ¿ÀÛÀº ¿ÏÀüÈ÷ ´Ù¸¥ °ÍÀ¸·Î ¼³Á¤µÇ¾î ÀÖÀ» ¼ö ÀÖ´Ù. Spawn_Console Å°´Â ³»°¡ »ç¿ëÇϱ⠶§¹®¿¡ ºÎ¸£´Â À̸§ÀÏ »ÓÀÌ´Ù. ´Ù¸¥ ¸ñÀûÀ¸·Î »ç¿ëÇÑ´Ù¸é ´ú Çò°¥¸®µµ·Ï ´Ù¸¥ À̸§À» ºÙÀÌ´Â °ÍÀÌ ÁÁÀ» °ÍÀÌ´Ù. ¾î¶² »ç¶÷µéÀº /etc/inittab¿¡

        kb::kbrequest:/sbin/shutdown -h now
¶ó°í ³Ö¾îµÎ°í, keymap¿¡´Â
        control alt keycode 79 = KeyboardSignal
        control alt keycode 107 = KeyboardSignal
¸¦ ³Ö¾îµÎ°í¼­ Ctrl-Alt-End¸¦ ½Ã½ºÅÛ ¼Ë´Ù¿î Å°·Î »ç¿ëÇϱ⵵ ÇÑ´Ù.

·çÆ® ±ÇÇÑÀ¸·ÎÀÇ Á¢¼ÓÀº /etc/securetty¿¡ µî·ÏµÇ¾î ÀÖ´Â Å͹̳ο¡¼­¸¸ °¡´ÉÇÏ´Ù. /etc/ttys¿Í /etc/ttytype È­ÀÏ¿¡¼­ Å͹̳Π¼³Á¤°ªÀ» Àд ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù. ÀÌ·± È­ÀÏÀ» °¡Áø »ç¿ëÀÚ°¡ Ãß°¡·Î ÄܼÖÀ» »ý¼ºÇß´Ù¸é ÀÌ ÄÜ¼Ö Ç׸ñÀ» ÀÌ È­ÀÏ¿¡ Ãß°¡ÇÏ´Â °Íµµ ±¦ÂúÀº »ý°¢ÀÌ´Ù.


´ÙÀ½ ÀÌÀü Â÷·Ê