Ä¿³Î 2.4 Intro Á¤¿ø¿µ suni00@kernel.pe.kr v0.2, 2000³â 8¿ù 30ÀÏ °³¹ßÄ¿³Î 2.4.0-tset ¹öÀüÀ» ÄÄÆÄÀÏÇϱâÀ§ÇÑ ±âº»ÀûÀÎ ¹è°æÁö½Ä°ú ÀϹÝÀû »ç¾çÀÇ PC¿¡¼­ÀÇ ÄÄÆÄÀÏ ¿É¼Ç¹× ¹æ¹ý ±×¸®°í Ä¿³Î 2.4 ¿¡¼­ ¹«¾ùÀÌ ´Þ¶óÁ³´ÂÁö¸¦ ´Ù·é´Ù. (ÀÌ ±ÛÀ» ¾²´Â ÇöÀç °¡Àå ÃֽŠ°³¹ß Ä¿³ÎÀÎ 2.4.0-test7À» ±âÁØÀ¸·Î ÀÌ·ÐÀûÀÎ¸é º¸´Ü ½ÇÁ¦·Î ¾î¶»°Ô ÇؾßÇÏ´ÂÁö¿¡ ÁßÁ¡À» µÎ¾ú´Ù.) ______________________________________________________________________ ¸ñÂ÷ 1. ¹è°æÁö½Ä 1.1 Ä¿³ÎÀ̶õ? 1.2 Ä¿³ÎÀº ¾îµð¼­ ±¸Çϳª? 1.3 ÃֽŠĿ³Î ¹öÀüÀº ¾î¶»°Ô ¾Ë¾Æº¸³ª? 1.4 Ä¿³Î ÄÄÆÄÀÏ ¹æ¹ý(Ä¿³Î 2.4.0-test7) 1.5 ¸ðµâ ÄÄÆÄÀÏ ¹æ¹ý 2. Ä¿³Î 2.4.0-test ¹öÀü 2.1 ÇÊ¿äÇÑ ÆÐÅ°Áö 2.2 Ä¿³Î 2.4¿¡¼­ ´Þ¶óÁø°Í°ú »õ·Î¿î °Íµé 2.3 Ä¿³Î ¿É¼Ç ¼³Á¤ 2.4 Å×½ºÆ® PC »ç¾ç 3. ±× ¹ÛÀÇ °Íµé 3.1 Ä¿³Î ¼Ò½ºÀÇ Å©±â´Â ¾ó¸¶³ª µÇ³ª? 3.2 ¿Ö Ä¿³Î À̹ÌÁö¸¦ ¾ÐÃàÇϴ°¡? 3.3 LILO¿¡¼­ ÃÖ´ë Ä¿³Î À̹ÌÁö °³¼ö 3.4 ½º¿ÒÆÄÀϵµ Àִµ¥ ½º¿Ò ÆÄƼ¼ÇÀ» ¾²´ÂÀÌÀ¯? 3.5 ¼­ºê µð·ºÅ丮¸¦ 60000°³ ÀÌ»ó ¸¸µé°í ½Í´Ù. 3.6 Reiser ÆÄÀϽýºÅÛ ¸¸µé±â 3.7 Ä¿³Î 2.4.0-test¹öÀü¿¡¼­ X 4.0À» ¾²°í½Í´Ù.(RIVA TNT) 3.8 Ä¿³Î ¹öÀüÀ» ¾î¶»°Ô ¹Ù²Ù´Â°¡? 3.9 CPUÀÇ Á¤º¸¸¦ ¹Ù²Ù°í ½Í´Ù, Bogo Mips¸¦ ³ôÀÌ°í ½Í´Ù 3.10 KERNEL32.DLL¿¡¼­ À߸øµÈ ¿¬»ê¼öÇà!? ______________________________________________________________________ 1. ¹è°æÁö½Ä 1.1. Ä¿³ÎÀ̶õ? Ä¿³ÎÀ̶õ ¿î¿µÃ¼Á¦(Operating System)¿¡¼­ °¡Àå ÇÙ½ÉÀûÀÎ ¿ªÇÒÀÎ ÀÚ¿ø (¸Þ¸ð¸®, ÇÁ·Î¼¼¼­µî)À» °ü¸®ÇÏ¸ç ½Ã½ºÅÛÀÌ ¿øÈ°È÷ µ¹¾Æ°¥ ¼ö ÀÖµµ·Ï Á¦¾îÇØ ÁØ´Ù. ÇöÀç ¿ì¸®°¡ ¸®´ª½º(OS)¶ó°í Çϴ°͵µ ½ÇÁ¦ÀûÀ¸·Ð ¸®´ª½º¶õ ¿î¿µÃ¼Á¦ÀÇ Ä¿³Î À̸§À» ¸»Çϴ°ÍÀε¥ ÀÌ°ÍÀÌ È®ÀåµÈ Àǹ̷Π»ç¿ëµÇ¾î ÇöÀçÀÇ '¸®´ª½º'¶õ OS¸¦ ÁöĪÇÏ°Ôµµ µÈ°ÍÀÌ´Ù. ±×·¯¹Ç·Î Linux = kernelÀ̶õ µî½ÄÀÌ ¼º¸³ÇÑ´Ù. 1.2. Ä¿³ÎÀº ¾îµð¼­ ±¸Çϳª? ¿ì¼±ÀûÀ¸·Î ¾ÈÁ¤ ¹öÀü°ú °¡Àå ÃֽŠ°³¹ß¹öÀüÀ» ¿øÇÑ´Ù¸é ·Î Á¢¼ÓÇÏ¸é µÈ´Ù. ±× ÀÌ¿Ü¿¡´Â ´ÙÀ½ ¹Ì·¯ »çÀÌÆ®¿¡¼­ ±¸ÇÒ¼ö ÀÖ´Ù. o ¿ì¸®³ª¶ó : o ¹Ì±¹ : o ÀϺ» : 1.3. ÃֽŠĿ³Î ¹öÀüÀº ¾î¶»°Ô ¾Ë¾Æº¸³ª? SHELL¿¡¼­ finger @finger.kernel.org ¸í·ÉÀ¸·Î ÃֽŠĿ³Î¹öÀüÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ ¹®¼­¸¦ ÀÛ¼ºÇÏ´Â ÇöÀç ÃֽŹöÀüÀº ´ÙÀ½°ú °°´Ù. o stable version : 2.2.16 o beta version : 2.4.0-test7 o prepatch version : 2.4.0-test8/pre1 Ä¿³ÎÀº stable version(¾ÈÁ¤¹öÀü)°ú beta version(°³¹ß¹öÀü)À¸·Î ³ª´©´Âµ¥ ÀÌ µÎ ¹öÀüÀÇ Â÷ÀÌ´Â minor number°¡ ¦¼öÀÌ³Ä È¦¼öÀ̳ķΠ±¸ºÐÇÑ´Ù. (minor number¶õ Ä¿³Î 2.2.16ÀÌ ÀÖ´Ù¸é °¡¿îµ¥ ¼öÀÎ 2°¡ minor numberÀÌ°í Á¦ÀÏ ¾ÕÀÇ 2´Â major number ÀÌ´Ù. ¸¶Âù°¡Áö·Î 2.3.99¿¡¼± major´Â 2ÀÌ°í minor´Â 3ÀÌ´Ù.) ±×·¸´Ù¸é 2.4.0-test ¹öÀüµéÀº minor number°¡ ¦¼öÀε¥ ¿Ö °³¹ß¹öÀüÀ̶ó°í Çϳª? ±× ÀÌÀ¯´Â 2.3.99ÀÇ ÆÐÄ¡¹öÀüµéÀÌ ÀÌÁ¦ °ÅÀÇ 2.4 ¾ÈÁ¤¹öÀü¿¡ °¡±î¿öÁ³´Ù´Â Àǹ̷ΠLinus°¡ 2.4.0-test¶ó À̸§ ºÙÀΰÍÀÌ´Ù. 1.4. Ä¿³Î ÄÄÆÄÀÏ ¹æ¹ý(Ä¿³Î 2.4.0-test7) ¿©·¯ °¡Áö ¹æ¹ýµéÀÌ ÀÖÁö¸¸ ÀúÀåµÈ Ä¿³Î¿É¼Ç¼³Á¤ ÆÄÀÏÀÌ ÀÖ´Ù¸é oldconfig¸¦ ÀúÀåµÈ ÆÄÀÏÀÌ ¾ø´Ù¸é menuconfig¸¦ ÃßõÇÑ´Ù. 1. make oldconfig ¶Ç´Â make menucofig make oldconfig¸¦ ÇϱâÀ§Çؼ± ´ÙÀ½°ú °°Àº ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù. ¿¹Àü¿¡ ¼³Á¤ÇÑ Ä¿³Î¿É¼ÇÀÌ kernel.config ¶õ À̸§À¸·Î ÀúÀåµÇ¾îÀÖ´Ù¸é ÀÌ ÆÄÀÏÀ» »õ ¹öÀüÀÇ Ä¿³ÎÀÌ ÀÖ´Â /usr/src/linux µð·ºÅ丮¿¡ .config¶õ À̸§À¸·Î Ä«ÇÇÇÑ´Ù. # cp kernel.config /usr/src/linux/.config À§¿Í°°ÀÌ ÇÑÈÄ make oldconfig¸¦ ½ÇÇàÇÏ¸é ¿¹Àü ¿É¼ÇÀ» ±×´ë·Î Àû¿ë½ÃÄÑÁÖ¸ç Ȥ½Ã³ª »õ·Î¿î ¿É¼ÇÀÌ ÀÖ´Ù¸é È­¸é¿¡ º¸¿©ÁÖ¸ç ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. 2. make dep 3. make clean 4. make bzlilo make bzlilo¶õ ´ÙÀ½°ú °°Àº ¸í·ÉµéÀ» ¼øÂ÷ÀûÀ¸·Î ½ÇÇàÇÑ°Í°ú °°´Ù. # make bzImage # cp /usr/src/linux/arch/i386/boot/bzImage /vmlinuz # /sbin/lilo 5. mv /vmlinuz /boot/vmlinuz-2.4.0-test7 6. mv /System.map /boot/System-2.4.0-test7 7. vi /etc/lilo.conf ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°Àº È­¸éÀ» º¼ ¼ö ÀÖÀ»°ÍÀÌ´Ù. boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 default=linux image=/boot/vmlinuz-2.4.0-test7 ---> »õ·Î »ý¼ºÇÑ Ä¿³ÎÀ̹ÌÁö¸¦ linux¶õ ·¹À̺í label=linux ·Î ºÎÆÃÇÒ ¼ö ÀÖµµ·Ï ÇϱâÀ§ÇØ read-only root=/dev/hda1 image=/boot/vmlinuz-2.2.16 ---> ¿¹Àü Ä¿³ÎÀÌ 2.2.16À̶ó°í °¡Á¤ÇßÀ»¶§ label=old old¶õ ·¹À̺í·Î Á¤ÀÇÇÑ´Ù. read-only root=/dev/hda1 8. /sbin/lilo 1.5. ¸ðµâ ÄÄÆÄÀÏ ¹æ¹ý ¸ðµâÀÌ »ý¼ºµÇ´Â µð·ºÅ丮´Â '/lib/modules/2.4.0-test7'ÀÌ°í ¸¸¾à ÇöÀç Ä¿³ÎÀÇ ¸ðµâÀ» ´Ù½Ã »ý¼ºÇÏ·Á°í ÇÑ´Ù¸é ÇöÀç Ä¿³ÎÀÇ ¸ðµâ µð·ºÅ丮¸¦ Áö¿ì°í ´Ù½Ã ÄÄÆÄÀÏ Çϱ⠹ٶõ´Ù. (Ä¿³Î 2.4.0-test ¹öÀü¿¡¼­´Â ¸ðµâÀÇ µð·ºÅ丮±¸Á¶°¡ ¸¹ÀÌ ¹Ù²î¾ú´Ù.) 1. make modules 2. make modules_install 2. Ä¿³Î 2.4.0-test ¹öÀü 2.1. ÇÊ¿äÇÑ ÆÐÅ°Áö RedHat ±â¹Ý 6.1ÀÌ»óÀÇ ¹èÆ÷ÆÇÀ̶ó¸é modutils¸¸ ¾÷±×·¹À̵å ÇÏ¸é µÉ°ÍÀÌ´Ù. (modutils¸¦ ¾÷Çϴµ¥ glibc¹öÀüÀÌ ³·´Ù¸é glibcµµ ¾÷ÇØ¾ß ÇÑ´Ù. glibc´Â ·ÎÄÉÀÏ°ú timezone, ¿©·¯ ¶óÀ̺귯¸®¸¦ Æ÷ÇÔÇؼ­ ÀÇÁ¸¼º ¹®Á¦¿¡ ¸¹Àº ¿µÇâÀ» ³¢Ä¡¹Ç·Î ¾÷±×·¹À̵å Çϴµ¥ ÁÖÀǸ¦ ÇÊ¿ä·Î ÇÑ´Ù. rpm ¹öÀüÀÌ ³·´Ù¸é rpmµµ ¾÷ÇØ¾ß ÇÑ´Ù.) 2.4.0-test Ä¿³ÎÀ» »ç¿ëÇϱâÀ§Çؼ­ ´ÙÀ½ »çÇ×À» È®ÀÎÇ϶ó. ÆÐÅ°Áö ¸í ¹öÀü È®Àιæ¹ý o Gnu C 2.7.2.3 # gcc --version o Gnu make 3.77 # make --version o binutils 2.9.1.0.22 # ld -v o util-linux 2.10o # kbdrate -v o modutils 2.3.13 # insmod -V o e2fsprogs 1.18 # /sbin/tune2fs --version o pcmcia-cs 3.1.19 # cardmgr -V o PPP 2.4.0 # pppd --version o isdn4k-utils 3.1beta7 # isdnctrl 2>&1|grep version 2.2. Ä¿³Î 2.4¿¡¼­ ´Þ¶óÁø°Í°ú »õ·Î¿î °Íµé o Bogo Mips°¡ µÎ ¹è·Î ¿Ã¶ó°£´Ù.(AMD-K6 ¿Í È®ÀÎ ¸øÇÑ Processor Á¦¿Ü) $ cat /proc/cpuinfo ¸¦ Çغ¸¸é È®ÀÎÇÒ ¼ö ÀÖ´Ù. Bogo(bogos : °¡Â¥)À̹ǷΠ½Å·ÚÇÒ¼ø ¾øÁö¸¸ ±âºÐ¸¸Àº ÁÁÁö¾ÊÀº°¡? o modutils ¾÷±×·¹À̵å½Ã ¹Ù²î´Â °Íµé ¸¸¾à modutils ¹öÀüÀÌ ¾Õ¿¡¼­ ¸í½ÃÇÑ ¹öÀüº¸´Ù ³·Àºµ¥ ¸ðµâ ÄÄÆÄÀÏÀ» ÇÑ´Ù¸é ¿¡·¯°¡ ³­´Ù. ²À modutils¸¦ ¾÷ ÇØ¾ß ¸ðµâ ÄÄÆÄÀÏÀ» ÇÒ ¼ö ÀÖ´Ù. modutils¸¦ ¾÷ÇÏ¸é ¿¹ÀüÀÇ /etc/conf.modules°¡ /etc/modules.conf·Î ¹Ù²î°í USB ¸ðµâµµ ÀÚµ¿·ÎµùÀÌ °¡´ÉÇÏ¸ç ¸¹Àº ¿¹¾à¾î¸¦ Áö¿øÇÑ´Ù. ´ÙÀ½ ftp »çÀÌÆ®¿¡¼­ ±¸ÇÒ¼ö ÀÖ´Ù. ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/v2.3/ o ¸ðµâÀÌ À§Ä¡ÇÑ /lib/modules/2.4.0-test7 µð·ºÅ丮 ±¸Á¶ Ä¿³Î 2.4.0-test6 ÀÌ»óÀÇ ¹öÀüºÎÅÍ ¸ðµâµéÀÌ À§Ä¡ÇÏ´Â '/lib/modules/Ä¿³Î¹öÀü' ÀÇ µð·ºÅ丮 ±¸Á¶°¡ ´õ ¼¼ºÐÈ­ µÇ°í ´ÙÀ½°ú °°Àº Çü½ÄÀ¸·Î ¹Ù²î¾ú´Ù. ÇöÀç ÇÊÀÚÀÇ µð·ºÅ丮 ±¸Á¶ÀÌ´Ù. [kernel@suni00/lib/modules/2.4.0-test7]$ ls -l lrwxrwxrwx 1 root root 26 Sep 4 17:09 build -> /usr/src/linux-2.4.0-test7/ drwxr-xr-x 6 root root 1024 Sep 4 17:09 kernel/ -rw-r--r-- 1 root root 1340 Sep 5 20:33 modules.dep -rw-r--r-- 1 root root 3235 Sep 5 20:33 modules.pcimap drwxr-xr-x 2 root root 1024 Sep 4 17:09 pcmcia/ À§ÀÇ kernel µð·ºÅ丮¿¡ µé¾î°¡º¸¸é ´ÙÀ½°ú °°ÀÌ ¼¼ºÐÈ­ µÇ¾îÀÖ´Ù. [kernel@suni00/lib/modules/2.4.0-test7/kernel]$ ls -l drwxr-xr-x 3 root root 1024 Sep 4 17:09 arch/ drwxr-xr-x 8 root root 1024 Sep 4 17:10 drivers/ drwxr-xr-x 9 root root 1024 Sep 4 17:09 fs/ drwxr-xr-x 4 root root 1024 Sep 4 17:09 net/ drivers µð·ºÅ丮 ±¸Á¶¸¦ º¸¸é ¿¹Àü ¸ðµâµéÀÇ µð·ºÅ丮 ±¸Á¶°¡ ¿©±â·Î ¿Å°Ü ¿ÔÀ½À» ¾Ë ¼ö ÀÖ´Ù. [kernel@suni00/lib/modules/2.4.0-test7/kernel/drivers]$ ls -l drwxr-xr-x 2 root root 1024 Sep 4 17:09 block/ drwxr-xr-x 3 root root 1024 Sep 4 17:09 char/ drwxr-xr-x 2 root root 1024 Sep 4 17:09 ide/ drwxr-xr-x 2 root root 1024 Sep 4 17:09 net/ drwxr-xr-x 2 root root 1024 Sep 4 17:09 sound/ drwxr-xr-x 2 root root 1024 Sep 4 17:10 video/ o UID,GID bit°¡ 16bit¿¡¼­ 32bit·Î ¹Ù²î¾ú´Ù. 2^16Àº 65536À̹ǷΠ»ç¿ëÀÚ¸¦ 65536¸í ±îÁö ¸¸µé¼ö ÀÖÁö¸¸ Ä¿³Î 2.4¿¡¼­´Â 2^32 Áï 4294967296¸íÀ» ¸¸µé¼ö ÀÖ´Ù.(½Ã½ºÅÛ ÄÝÀÇ º¯°æµµ ÇÊ¿ä·Î Çϸç Çö½ÇÀûÀ¸·Î ÀÌ·¸°Ô ¸¹Àº À¯Àú¸¦ ÇÑ ¼­¹ö¿¡ µÐ´Ù´Â°ÍÀº ¹«¸®ÀÌ´Ù.) o »ý¼º°¡´ÉÇÑ ÇÁ·Î¼¼½ºÀÇ ¼öÀÇ Á¦ÇÑÀÌ ¾ø¾îÁ³´Ù. 2.2.x Ä¿³ÎÀÇ ¼Ò½º¸¦ º¸¸é include/linux/tasks.h¿¡¼­ NR_TASKSÀÇ °³¼ö°¡ 512·Î Á¤ÀǵǾî ÀÖ´Ù. 512ÀÌ»óÀÇ ÇÁ·Î¼¼½º¸¦ »ý¼ºÇÒ ¼ö ÀÖµµ·Ï ÇÏ·Á¸é ÀÌ °ªÀ» °íÃÄ ÁÖ¾î¾ß Çߴµ¥ x86 machine¿¡¼­´Â GDT(Global Descriptor Table)ÀÇ Á¦ÇѶ§¹®¿¡ 4092±îÁö ¹Û¿¡ ÇÒ ¼ö ¾øµµ·Ï µÇ¾îÀÖ¾ú´Ù. 2.4.0-test ¹öÀü¿¡¼­´Â task ÀڷᱸÁ¶°¡ µ¿ÀûÀ¸·Î ÇÒ´çµÇ¾î NR_TASKS °ªÀÌ ¾ø¾îÁ³°í ¸Þ¸ð¸®ÀÇ ÇѰ踸ÀÌ À¯ÀÏÇÑ Á¦¾àÀ¸·Î µû¸¥´Ù. o °øÀ¯¸Þ¸ð¸®¸¦ »ç¿ëÇϱâÀ§ÇØ /var/shm(¶Ç´Â /dev/shm)À» ¸¶¿îÆ® ÇؾßÇÑ´Ù. Ä¿³Î 2.3 °³¹ß¹öÀüÀ» óÀ½ ÄÄÆÄÀÏÇÏ°í ºÎÆÃÇßÀ»¶§ Á¦ÀÏ Ã³À½ Á÷¸éÇß´ø ¹®Á¦Àε¥ System V °øÀ¯¸Þ¸ð¸®¸¦ »ç¿ëÇÏÁö ¸øÇؼ­ ºÎÆýà ÀÚµ¿À¸·Î ¶ß´Â ¾ÆÆÄÄ¡ µ¥¸óÀÌ ¶ßÁö ¸øÇÏ´Â ¹®Á¦¿Í ¿©·¯ ÇÁ·Î±×·¥À» ½ÇÇàÇßÀ»¶§ °øÀ¯¸Þ¸ð¸®¸¦ »ç¿ëÇÏÁö ¸øÇØ ¿¡·¯°¡ ³ª´Â ¹®Á¦°¡ ¹ß»ýÇß¾ú´Ù. 2.4-test ¹öÀüÀ» ¾²±âÀ§Çؼ± ²À ÇØÁà¾ß ÇÏ´Â ºÎºÐÀÌ´Ù. # mkdir /var/shm # vi /etc/fstab none /var/shm shm defaults 0 0 o ipchains°¡ iptables·Î ¹Ù²î¾ú´Ù. menuconfig ¿É¼Ç¿¡¼­ Networking options ---> [*] Network packet filtering (replaces ipchains) ¸¦ ¼±ÅÃÇÏ°í IP: Netfilter Configuration ---> ipchains (2.2-style) support ¸¦ ¼±ÅÃÇϸé Ä¿³Î 2.2.x ¿Í °°Àº ¹æ½ÄÀ¸·Î ¾µ ¼ö ÀÖ´Ù. o Magic SysRq key ÀÇ º¯È­ Magic SysRq key¶õ ½Ã½ºÅÛÀÇ Á¦¾î°¡ ºÒ°¡´ÉÇÑ »óÅÂ(ÀϹÝÀûÀ¸·Î '´Ù¿î'µÇ¾ú´Ù°íÇÑ´Ù.) ¿¡¼­µµ Á¦¾î¸¦ °¡´ÉÇÏ°Ô ÇØÁֹǷΠĿ³Î ÄÄÆÄÀϽà Kernel hacking ---> [*] Magic SysRq key¸¦ üũÇØÁÖÀÚ. 2.4.0-test °³¹ß Ä¿³Î¿¡¼­ Magic SysRq key¸¦ »ç¿ëÇÒ·Á¸é ´ÙÀ½°ú °°ÀÌ /proc/sys/kernel/sysrq °ªÀ» 1·Î ¸¸µé¾î¾ß ÇÑ´Ù. # echo 1 > /proc/sys/kernel/sysrq Å° Á¶ÇÕ Alt+SysRq+R use Raw keyboard events Alt+SysRq+K kill current VT in use Alt+SysRq+E tErminate all running processes (except init) Alt+SysRq+I kIll all processes (except init) Alt+SysRq+L kilL all processes (including init) Alt+SysRq+B reBoot Alt+SysRq+S Sync all drives Alt+SysRq+U Umount all filesystems Alt+SysRq+O turn the machine Off Alt+SysRq+P dump Processor's registers Alt+SysRq+T dump current Tasks Alt+SysRq+M dump some Memory info Alt+SysRq+[0-9] set kernel log level and redirect it to console x86 ¸Ó½Å¿¡¼­´Â Alt¸¦ ´©¸¥»óÅ¿¡¼­ Print Screen(Sys Rq)Å°¸¦ ´©¸£°í °¢ ¾ËÆĺªÅ°¸¦ ´©¸£¸é Àû¿ëµÈ´Ù. ¸¸¾à ½Ã½ºÅÛÀÌ ´Ù¿î µÇ¾ú´Ù¸é °°Àº ´ÙÀ½°ú ¼ø¼­ÀÇ Á¶ÇÕÀ¸·Î ½Ã½ºÅÛ¿¡ ¼Õ»óÀ» ÁÖÁö¾Ê°í ¾ÈÀüÇÏ°Ô ÀçºÎÆà ÇÒ ¼ö ÀÖÀ»°ÍÀÌ´Ù. Alt+SysRq+S : ¹öÆÛ¿¡ÀÖ´Â °ÍµéÀ» µð½ºÅ©·Î sync(µ¿±âÈ­)½ÃŲ´Ù. Alt+SysRq+E : init ÇÁ·Î¼¼½º¸¦ Á¦¿ÜÇÑ ¸ðµç ÇÁ·Î¼¼½º¸¦ Á¾·á½ÃŲ´Ù. Alt+SysRq+U : ÆÄÀÏ ½Ã½ºÅÛÀ» unmount ½ÃŲ´Ù. Alt+SysRq+B : ½Ã½ºÅÛ ÀçºÎÆà o Codepage 949 (UnifiedHangul) Áö¿ø(Ä¿³Î 2.4.0-test5ºÎÅÍ Áö¿øÇÏ¸ç ¾ÈÁ¤¹öÀüÀº 2.2.16¿¡¼­ Áö¿øÇÑ´Ù.) ¸®´ª½º¿¡¼­ À©µµ ÆÄƼ¼Ç(vfat)À» ¸¶¿îÆ® ÇßÀ»¶§ ÇѱÛÀÌ '????'ÀÌ·±½ÄÀ¸·Î º¸ÀÌ´Â ¹®Á¦¸¦ ÇØ°áÇØ ÁØ´Ù. o Devfs(Device Filesystem) devfs¶õ /proc¿Í °°Àº °¡»ó ÆÄÀϽýºÅÛÀ¸·Î Richard Gooch¿¡ ÀÇÇØ ÀÛ¾÷µÇ¾ú´Ù. devfs¸¦ »ç¿ëÇÒ·Á¸é ´ÙÀ½°ú °°Àº °úÁ¤À» °ÅÃľßÇϸç devfs¸¦ ¾²Áö ¾Ê¾Æµµ 2.4.0-test Ä¿³ÎÀ» »ç¿ëÇϴµ¥ »ó°üÀº ¾ø´Ù. devfs¸¦ »ç¿ëÇÏ°íÀÚ ÇÑ´Ù¸é devfs´Â ¸Þ¸ð¸®»ó¿¡ Á¸ÀçÇÏ´Â °¡»ó ÆÄÀϽýºÅÛÀ̹ǷΠ¸¸¾à /dev ¿¡ Ư¼öÇÑ ¸ñÀûÀÇ µð¹ÙÀ̽º ÆÄÀÏ ¶Ç´Â µð·ºÅ丮¸¦ »ý¼ºÇß´Ù¸é ÀçºÎÆýà /dev µð·ºÅ丮¿¡ ¸¸µé¾ú´ø°ÍÀÌ »ç¶óÁú°ÍÀ̹ǷΠÀç ÀÛ¼ºÇØÁà¾ß ÇÑ´Ù. ºÎÆÃÇÒ¶§¸¶´Ù mknod ¸í·ÉÀ¸·Î ÇÊ¿äÇÑ µð¹ÙÀ̽º¸¦ ´Ù½Ã ¸¸µå´Â°Í º¸´Ü ¼Ð ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇϴ°ÍÀÌ Æí¸®ÇÒ °ÍÀÌ´Ù. ¿¹¸¦µé¾î X-4.0ÀÌ»óÀÇ NVdirver¸¦ ¾´´Ù¸é /dev µð·ºÅ丮¿¡ nvidia0, nvidia1, nvidia2, nvidia3, nvidiactl°ú °°Àº ij¸¯ÅÍ µð¹ÙÀ̽º ÆÄÀÏÀÌ ¸¸µé¾îÁ® ÀÖ¾î¾ß X¸¦ ¶ç¿ï¼ö ÀÖÀ¸¹Ç·Î ºÎÆýà ¸¸µé¾îÁú¼ö ÀÖµµ·Ï ¼Ð ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÑ´Ù¸é ¾à°£ÀÇ ¼ö°í¸¦ ´ú ¼ö ÀÖÀ»°ÍÀÌ´Ù. ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î devfs¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. 1. Ä¿³Î ÄÄÆÄÀÏ ¿É¼Ç¿¡¼­ ´ÙÀ½ »çÇ×À» üũÇÑ´Ù. Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers File systems ---> [*] /dev file system support (EXPERIMENTAL) [*] Automatically mount at boot [*] Debug devfs 2. devfsd ¼Ò½º ÆÄÀÏÀ» ±¸ÇÑ´Ù. http://www.atnf.csiro.au/~rgooch/linux/ ¿¡¼­ devfsd-v1.3.10.tar.gz ÀÌ»óÀÇ ¹öÀüÀ» ´Ù¿î ¹Þ¾Æ ´ÙÀ½ ÀÛ¾÷À» ÇÑ´Ù. # tar xvvzf devfsd-v1.3.10.tar.gz -> Àû´çÇÑ µð·ºÅ丮¿¡ ¾ÐÃàÀ» Ǭ´Ù. # make -> ÄÄÆÄÀÏÇؼ­ devfsd¶õ ÆÄÀÏÀ» ¾ò´Â´Ù. # mv devfsd /sbin/ -> /sbin µð·ºÅ丮·Î ¿Å±ä´Ù. # cp modules.devfs /etc/ -> modules.devfs¿Í devfsd.conf¸¦ # cp devfsd.conf /etc/ /etc µð·ºÅ丮·Î ¿Å±ä´Ù. 3. /etc/rc.d/rc.sysinit ½ºÅ©¸³Æ®¿¡ ´ÙÀ½ ºÎºÐÀ» Ãß°¡ÇÑ´Ù. # Mount /proc (done here so volume labels can work with fsck) action "Starting devfsd" /sbin/devfsd /dev <--- À̺κÐÀ» Ãß°¡ÇÑ´Ù. action "Mounting proc filesystem" mount -n -t proc /proc /proc 4. /etc/securetty ÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù. 1 2 3 4 # tty1 ÀÌ·±½ÄÀ¸·Î µÇ¾îÀÖ´Â°Í ¸ðµÎ tty¸¦ »« 5 # ¼ýÀںκи¸ ³²µµ·Ï ÇØÁØ´Ù. 6 7 8 5. /etc/security/console.perms ¿¡¼­ ´ÙÀ½°ú °°ÀÌ ¹Ù²ãÁØ´Ù. =tty[0-9][0-9]* :[0-9]\.[0-9] :[0-9] À» ÁÖ¼®Ã³¸®ÇÏ´øÁö »èÁ¦ÇÏ°í =tty[0-9][0-9]* [0-9][0-9]* :[0-9]\.[0-9] :[0-9] À¸·Î ¹Ù²ãÁØ´Ù. 6. /etc/lilo.conf ¿¡ ´ÙÀ½À» Ãß°¡ append = "devfs=mount" devfs¸¦ ¾²Áö ¾Ê°Ú´Ù¸é append = "devfs=nomount" ÇÏ¸é µÈ´Ù. 2.3. Ä¿³Î ¿É¼Ç ¼³Á¤ ÀϹÝÀûÀÎ µ¥½ºÅ©Å¾ PC»ç¾ç(1 CPU, No SCSI)¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â Ä¿³Î¿É¼ÇµéÀ» ¼³¸íÇÏ¸ç ±×´ÙÁö Çʿ伺ÀÌ ¾ø´Â ¿É¼ÇµéÀº Á¦¿Ü½ÃÄ×´Ù. Code maturity level options ---> o [*] Prompt for development and/or incomplete code/drivers - °³¹ß ¼öÁØÀÇ ¿É¼Çµéµµ ¼±Åð¡´ÉÇÏ°Ô ÇØÁØ´Ù. Loadable module support ---> o [*] Enable loadable module support - ¸ðµâÀ» »ç¿ëÇÒ¼ö ÀÖ°Ô ÇØÁÜ. o [*] Kernel module loader - Ä¿³ÎÀÌ ¾Ë¾Æ¼­ ¸ðµâÀ» ¿Ã·ÁÁØ´Ù. Processor type and features ---> o (Pentium-Pro/Celeron/Pentium-II) Processor family o (X) Pentium-Pro/Celeron/Pentium-II - Å×½ºÆ® PC°¡ Pentium IIÀ̹ǷΠ... ½Ã½ºÅÛ¿¡ ¸Â´Â°É ¼±ÅÃÇÑ´Ù. o [*] MTRR (Memory Type Range Register) support - ÇÁ·Î¼¼¼­°¡ ¸Þ¸ð¸® ¿µ¿ª Á¢±ÙÀ» Á¦¾îÇÒ¼ö ÀÖÀ½. ±×·¡ÇÈÀÇ ¾²±â ¼Óµµ Çâ»ó General setup ---> o [*] Networking support - ³×Æ®¿öÅ· Áö¿ø o [*] PCI support - PCI Áö¿ø o (Any) PCI access mode - Ä¿³ÎÀÌ Á÷Á¢ ¾×¼¼½º ½Ãµµ o [*] System V IPC - System V IPC¸¦ Áö¿øÇÏ°Ô ÇÔ, Shared Memoryµµ ¿©±â¼­ Áö¿øÇÑ´Ù. o [*] BSD Process Accounting - ÇÁ·Î¼¼½º Á¤º¸¸¦ ÆÄÀÏ¿¡ ÀúÀå o [*] Sysctl support - ƯÁ¤ Ä¿³ÎÀÇ ÆĶó¹ÌÅÍ¿Í º¯¼öµéÀ» µ¿ÀûÀ¸·Î º¯°æ½Ãų¼ö ÀÖµµ·Ï ÇÔ o (ELF) Kernel core (/proc/kcore) format - ELF core Æ÷¸Ë o <*> Kernel support for a.out binaries - a.out ¹ÙÀ̳ʸ® Áö¿ø o <*> Kernel support for ELF binaries - ELF ¹ÙÀ̳ʸ® Áö¿ø Plug and Play configuration ---> o <*> Plug and Play support - Plug and Play Áö¿ø Block devices ---> o <*> Normal PC floppy disk support - Ç÷ÎÇÇ µå¶óÀ̹ö ÀåÄ¡ Áö¿ø o Loopback device support - ÇÑ ÆÄÀÏÀ» ÇϳªÀÇ ÆÄÀÏ ½Ã½ºÅÛó·³ ÀÎ½Ä ½ÃÅ´ Networking options ---> o <*> Packet socket - ³×Æ®¿÷ µð¹ÙÀ̽º¿ÍÀÇ Á÷Á¢Åë½ÅÀ» ÇÏ°Ô ÇØÁØ´Ù. o <*> Packet socket: mmapped IO - ´õ ºü¸¥ Åë½ÅÀ» ÇÒ ¼öÀÖ°Ô ÇÑ´Ù. o <*> Unix domain sockets o [*] TCP/IP networking - TCP/IP ³×Æ®¿öÅ· Áö¿ø o [*] IP: TCP syncookie support (disabled per default) - ¼­ºñ½º °ÅºÎ °ø°ÝÀ» ¹ÞÀ»¶§ ´ëóÇØÁÜ ATA/IDE/MFM/RLL support ---> o <*> ATA/IDE/MFM/RLL support o IDE, ATA and ATAPI Block devices ---> o <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support - IDE¸¦ »ç¿ëÇÒ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. o <*> Include IDE/ATA-2 DISK support - Çϵåµð½ºÅ© »ç¿ë°¡´ÉÇÏ°Ô ÇÔ o <*> Include IDE/ATAPI CDROM support - CD-ROM »ç¿ë°¡´ÉÇÏ°Ô ÇÔ o Include IDE/ATAPI FLOPPY support - ZIP µå¶óÀ̺êµîÀ» »ç¿ë°¡´ÉÇÏ°Ô ÇÔ o --- IDE chipset support/bugfixes o <*> Generic PCI IDE chipset support - PCI ¹æ½ÄÀÇ IDE Áö¿ø o <*> Sharing PCI IDE interrupts support - IRQ °øÀ¯ Áö¿ø o <*> Generic PCI bus-master DMA support - DMA Áö¿ø o <*> Use PCI DMA by default when available - VIA VP2 Ĩ¼ÂÀ» »ç¿ëÇÑ´Ù¸é Àý´ë ¼±ÅÃÇÏÁö ¸»°Í o <*> HPT366 chipset support - Ultra DMA 66 Áö¿ø Network device support ---> o [*] Network device support o Ethernet (10 or 100Mbit) ---> o [*] Ethernet (10 or 100Mbit) - ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸Â´Â°É ¼±Åà (RealTek 8139µîÀ» ¾´´Ù¸é [*]EISA, VLB, PCI and on board controllers¸¦ ¼±ÅÃÇϸé ÇϺΠ¸ñ·ÏÀÌ ³ª¿Â´Ù.) Character devices ---> o [*] Virtual terminal - °¡»ó Å͹̳ΠÁö¿ø o [*] Support for console on virtual terminal - °¡»óÅ͹̳ÎÀ» ½Ã½ºÅÛ ÄַܼΠ¾µ¼öÀÖ°Ô ÇØÁØ´Ù. o [*] Unix98 PTY support - Unix98 °¡»óÅ͹̳ΠÁö¿ø o [*] (256) Maximum number of Unix98 PTYs in use (0-2048) Unix98 PTY °³¼öÀÇ ÃÖ´ë°ª o Mice ---> o <*> Mouse Support (not serial and bus mice) o [*] PS/2 mouse (aka "auxiliary device") support - PS/2 ¸¶¿ì½º Áö¿ø o /dev/agpgart (AGP Support) - AGP Áö¿ø (ÇϺθ޴ºÁß ÀÚ½ÅÀÇ º¸µå¿¡ ¸Â´Â°Å ¼±ÅÃ) File systems ---> o <*> Kernel automounter support - ¿ø°Ý ÆÄÀÏ ½Ã½ºÅÛÀ» ÀÚµ¿À¸·Î ¸¶¿îÆ® ÇØÁØ´Ù.(NFSµîÀ» »ç¿ëÇÒ¶§) NÀ»¼±ÅÃÇصµ »ó°ü¾ø´Ù. o DOS FAT fs support - FAT ±â¹ÝÀÇ ÆÄÀÏ ½Ã½ºÅÛ Áö¿ø o MSDOS fs support - MSDOS ÆÄƼ¼Ç ¸¶¿îÆ® Áö¿ø o VFAT (Windows-95) fs support - À©µµÁî ÆÄƼ¼Ç Áö¿ø o ISO 9660 CDROM file system support - CD-ROM ÆÄÀÏ ½Ã½ºÅÛ Áö¿ø o [*] Microsoft Joliet CDROM extensions - Joliet CDROMÀ» ÀÐÀ» ¼ö ÀÖ°Ô ÇÑ´Ù. o [*] /proc file system support - ÇÁ·Î¼¼½º¸¦ À§ÇÑ °¡»ó ÆÄÀÏ ½Ã½ºÅÛ o [*] /dev/pts file system for Unix98 PTYs - À§¿¡¼­ [*] Unix98 PTY support ¸¦ ¼±ÅÃÇß´Ù¸é ¼±ÅÃÇØ¾ß ÇÑ´Ù. o <*> Second extended fs support - ÇöÀç ¸®´ª½º ÆÄÀÏ ½Ã½ºÅÛ o Network File Systems ---> o NFS file system support - ³×Æ®¿÷ ÆÄÀÏ ½Ã½ºÅÛ Áö¿ø o SMB file system support (to mount Windows shares etc.) - À©µµÁîÀÇ ³×Æ®¿÷ ±â´ÉµéÀ» °øÀ¯ÇÒ¼ö ÀÖ°Ô ÇØÁØ´Ù. o Native Language Support ---> o Default NLS Option: "cp949" - µðÆúÆ®·Î ÇѱÛÀÌ ¼±Åõǵµ·Ï ÇÑ´Ù. o <*> Codepage 437 (United States, Canada) o <*> Codepage 949 (UnifiedHangul) - À©µµÆÄƼ¼ÇÀ» ¸¶¿îÆ® ÇßÀ»¶§ ÇѱÛÀ» º¼¼öÀÖµµ·Ï ÇØÁØ´Ù. o <*> NLS ISO 8859-1 (Latin 1; Western European Languages) Console drivers ---> o [*] VGA text console - VGA Ç¥ÁØ µð½ºÇ÷¹À̸¦ ÅëÇØ ÅؽºÆ® ¸ðµå¿¡¼­ »ç¿ë°¡´ÉÇÏ°Ô ÇÑ´Ù. Sound ---> ½Ã½ºÅÛ¿¡ ¸Â´Â°É ¼±ÅÃÇÑ´Ù Kernel hacking ---> o [*] Magic SysRq key - ½Ã½ºÅÛÀÌ ´Ù¿îµÇ´õ¶óµµ Á¦¾îÇÒ ¼öÀÖµµ·Ï ÇØÁØ´Ù. 2.4. Å×½ºÆ® PC »ç¾ç Ä¿³Î ÄÄÆÄÀÏÀ» ÇÒ·Á¸é ¾î´ÀÁ¤µµ ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡ °üÇÑ Çϵå¿þ¾îÀû Áö½ÄÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ±×·¡ÇÈ Ä«µå, ºñµð¿À Ä«µå, »ç¿îµå Ä«µå, ³×Æ®¿÷ Ä«µåµîÀº Ä¿³Î ÄÄÆÄÀϽà °¢°¢¿¡ ¸Â´Â°ÍÀ» ¼±ÅÃÇÏ°í ¾ÕÀÇ ¿É¼ÇÀ» Âü°íÇÑ´Ù¸é ¹«¸®¾øÀÌ ÄÄÆÄÀÏ °¡´ÉÇÒ°ÍÀÌ´Ù. o CPU : Intel Pentium II 350 (Deschutes) o Memory : 128MB o Main Board : MS-6119 Á¡ÆÛ MS-6119 Award Bios ¹öÀüÀÌ 2.9ÀÌ»óÀÌ ¾Æ´Ï¶ó¸é ¸Þ¸ð¸®¸¦ 64MB ¹Û¿¡ ÀνÄÇÏÁö ¸øÇÏ´Â ¹®Á¦°¡ ÀÖÀ¸¹Ç·Î ¹ÙÀÌ¿À½º¸¦ ¾÷µ¥ÀÌÆ® ÇÏ´øÁö /etc/lilo.conf¿¡ append="mem=128M" ÀÌ·¸°Ô Ãß°¡ÇØ¾ß ÇÑ´Ù. o Hard Disk : QUANTUM FIREBALL 8.4GB o CD-ROM : SAMSUNG 40x o Network : 3Com PCI 3c905b o Video : RIVA TNT (16MB) o Sound : SoundBlaster 64PCI (es1370À¸·Î ÀâÀ¸¸é µÈ´Ù.) 3. ±× ¹ÛÀÇ °Íµé ´ÙÀ½Àº Ä¿³Î ÇÁ·ÎÁ§Æ® ȨÀ¸·Î ¹®ÀÇÇÑ Áú¹®µéÁß ¸î°¡Áö¸¦ Ãß·Áº¸¾Ò´Ù. Á¤¸» Àâ´ÙÇÑ °ÍÀ̶ó ¼Ò°³Çϱ⠺βô·¯¿î°Íµµ ÀÖ°í ¾Ë¾ÆµÎ¸é À¯¿ëÇÑ °ÍµµÀÖÀ¸´Ï Âü°íÇϱ⠹ٶõ´Ù. 3.1. Ä¿³Î ¼Ò½ºÀÇ Å©±â´Â ¾ó¸¶³ª µÇ³ª? Ãʱ⠸®´ª½º Ä¿³Î 0.01ÀÇ Å©±â°¡ 470KB¹Û¿¡ µÇÁö ¾Ê¾Ò´Âµ¥ ÇöÀç ÃֽŠ°³¹ß Ä¿³Î 2.4.0-test5ÀÇ Å©±â´Â 103MB³ª µÈ´Ù. ³î¶øÁö ¾ÊÀº°¡? 3.2. ¿Ö Ä¿³Î À̹ÌÁö¸¦ ¾ÐÃàÇϴ°¡? ¿ì¸®´Â Ä¿³Î ÄÄÆÄÀÏÀ» ÇÒ ¶§ make zImage, make bzImage ÀÌ·± ½ÄÀ¸·Î Ä¿³Î À̹ÌÁö¸¦ ¾ÐÃàÇÑ´Ù.( make zlilo, zdisk, bzlilo ¸ðµÎ ¸¶Âù°¡Áö...) ¾Æ¹«·± Àǹ® ¾øÀÌ ¹«ÀǽÄÀûÀ¸·Î ´ç¿¬È÷ ÀÌ·¸°Ô ¾²°í ÀÖ´Ù. ¿©±â¿¡´Â ¾à°£ÀÇ ¹è°æÁö½ÄÀÌ ÇÊ¿äÇѵ¥ °£·«È÷ ¼³¸íÇÏ°Ú´Ù. ¿ì¸®°¡ ÈçÈ÷ ¾Æ´Â ¸ÅŲÅä½ÃÀÇ M68°è¿­ processor´Â 8bitȯ°æ¿¡¼­ 32bitȯ°æÀ¸·Î ¹ßÀüµÇ¾úÁö¸¸ ÀÎÅÚÀÇ 8086°è¿­Àº DOSÀÇ ´ëÁß¼º ¶§¹®¿¡ ¹Ù·Î 32bit ȯ°æÀ¸·Î °¡Áö ¸øÇÏ°í 16bit ȯ°æÀ» °¡Áö°Ô µÇ¾ú´Ù. ´ëÁßÀûÀ¸·Î ¸¹ÀÌ ¾²ÀÌ°í ÀÖ´Â DOS¸¦ °è¼Ó ¾µ ¼ö ÀÖµµ·Ï Çϱâ À§Çؼ­¿´´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯ ¶§¹®¿¡ ¸®¾ó¸ðµå, º¸È£¸ðµå, °¡»ó86¸ðµå°¡ »ý°å´Ù. ¸®¾ó¸ðµå, º¸È£¸ðµå, °¡»ó86¸ðµå ¸ðµÎ ¼¼±×¸ÕÆ®·¹Áö½ºÅÍ¿Í ¿ÀÇÁ¼Â ·¹Áö½ºÅ͸¦ ÀÌ¿ëÇÏ¿© ÁÖ¼Ò¸¦ ÁöÁ¤Çϴµ¥ ÀÌµé ·¹Áö½ºÅÍÀÇ »ç¿ë¹æ¹ýÀÌ ´Ù¸£´Ù. ¸®¾ó¸ðµå´Â ¼¼±×¸ÕÆ®x10h + ¿ÀÇÁ¼ÂÀ¸·Î ÁÖ¼Ò¸¦ ¸¸µå´Âµ¥ 16bit¿¡¼­ ¼¼±×¸ÕÆ®¿Í ¿ÀÇÁ¼ÂÀÇ ÃÖ´ë °ªÀº FFFFÀÌ´Ù. ±×·¯¹Ç·Î ÃÖ´ë·Î ÁöÁ¤ÇÒ¼ö ÀÖ´Â ÁÖ¼Ò´Â FFFF0 + FFFF°¡ µÈ´Ù. ÀÌ°É °è»êÇϸé 1MB + 64KB°¡ µÈ´Ù. º¸È£¸ðµå¿¡¼± ÁÖ¼ÒÁöÁ¤ ¹æ½ÄÀÌ ¸®¾ó¸ðµå¿Í´Â ¸¹ÀÌ ´Ù¸£¸ç ÆäÀÌ¡ µîÀ» ÀÌ¿ëÇÏ¿© 32bit ¸ðµÎ ÁÖ¼Ò °ªÀ» ¸¸µé ¼ö ÀÖÀ¸¹Ç·Î ÀÌ·ÐÀûÀ¸·Ð 4GBÀÇ ¸Þ¸ð¸®¸¦ ÀÌ¿ëÇÒ ¼öÀÖÀ¸¸ç °¡»ó86¸ðµå ¶ÇÇÑ ¼±ÇüÁÖ¼Ò¸¦ ¸¸µé¾î³»´Â °úÁ¤¸¸ ´Ù¸£¹Ç·Î ±âº» ¸ÅÄ¿´ÏÁòÀº º¸È£¸ðµå¿Í °°´Ù. (º¸È£¸ðµå¿Í °¡»ó86¸ðµåÀÇ ÁÖ¼Ò »ý¼º ¹ýÀº »ý·«ÇÑ´Ù.) ÇÁ·Î±×·¥Àº code ºÎºÐ°ú dataºÎºÐÀ¸·Î ³ª´©¾îÁö´Âµ¥ ¸®¾ó¸ðµå¿¡¼­ ÇÁ·Î±×·¥ÀÇ codeºÎºÐÀº ¹Ýµå½Ã À§ ÃÖ´ë ÁÖ¼Ò ÁöÁ¤¿µ¿ª ³»¿¡ ÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ¸®¾ó¸ðµå¿¡¼­´Â ¿©·¯ °³ÀÇ ÇÁ·Î±×·¥ÀÌ ¸Þ¸ð¸®¿¡ ¿Ã¶ó¿Í¼­ ¼öÇàµÉ ¼ö ¾øÀ¸¸ç (¸¸¾à ¿©·¯ °³ÀÇ ÇÁ·Î±×·¥ÀÌ ¸Þ¸ð¸®¿¡¼­ ¼öÇàµÈ´Ù¸é ´Ù¸¥ ÇÁ·Î±×·¥¿µ¿ªÀ» ħ¹ü ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.) interrupt¸¦ ÀÌ¿ëÇÏ´Â RAM»óÁÖ ÇÁ·Î±×·¥¸¸ÀÌ ¸Þ¸ð¸®¸¦ °°ÀÌ Â÷ÁöÇÒ ¼ö ÀÖ´Ù. À§¿¡¼­ ¼³¸íÇÑ ¸®¾ó¸ðµåÀÇ ¾à 1MBÁ¤µµÀÇ ¿µ¿ª Áß Coventional Memory°¡ 640KB¸¦ Â÷ÁöÇÏ°í ³ª¸ÓÁö´Â ºñµð¿À·¥ À̳ª ±âŸ µð¹ÙÀ̽º°¡ Â÷ÁöÇÑ´Ù. ±×·¯¹Ç·Î Ä¿³Î À̹ÌÁö´Â Coventional Memory Áï 640KB³»¿¡ µé¾î°¡¾ß ÇϹǷΠĿ³Î À̹ÌÁöÀÇ Å©±â°¡ 640KBº¸³ª ÀÛ¾Æ¾ß ÇÑ´Ù. Ä¿³Î À̹ÌÁöÀÇ ¾ÐÃàÀ¸·Î ÀÌ·¯ÇÑ Á¦¾àÀ» ºÎºÐÀûÀ¸·Î ±Øº¹ÇÏ¿´À¸³ª 640KBÀÇ ÀϺδ ¿©·¯ °¡Áö ¹öÆÛ(DMA buffer)³ª ƯÁ¤ ÁÖ¼Ò°¡ ½Ã½ºÅÛ¿¡ ¿¹¾àµÇ¾î ÀÖÀ¸¹Ç·Î 640KBº¸´Ù ´õ ÀÛÀº Å©±âÀÇ Ä¿³ÎÀÌ ¿ä±¸µÈ´Ù. ÀÌ·¯ÇÑ ¹®Á¦ÀÇ ´ë¾ÈÀ¸·Î Ä¿³ÎÀ» Extended Memory¿¡ ÀûÀçÇÏ´Â ¹æ¹ýÀ» »ý°¢ÇØ º¼ ¼ö ÀÖ´Ù. Extended Memory ¿µ¿ª¿¡ ÀÚÀ¯·ÎÀÌ ÀûÀçÇϱâ À§Çؼ­´Â º¸È£¸ðµå¸¦ »ç¿ëÇؾßÇϴµ¥ º¸È£¸ðµå¿¡¼­´Â BIOS¿Í °°ÀÌ ½Ã½ºÅÛÀÌ ¿ÏÀüÈ÷ ÁغñµÇ±â ÀüÀÇ ±âº»ÀûÀÎ ±â´ÉµéÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀÌ·² °æ¿ì µð½ºÅ©¸¦ ¾×¼¼½ºÇÏ´Â ÀÚüÀûÀÎ ÇÔ¼ö¸¦ ÁغñÇÏ¿© Ä¿³ÎÀ» Extended Memory ¿¡ ÀûÀçÇϰųª ¾Æ´Ï¸é Ä¿³ÎÀ» ÁÙÀÌ´Â ¼ö¹Û¿¡ ¾ø´Â °ÍÀÌ´Ù. 3.3. LILO¿¡¼­ ÃÖ´ë Ä¿³Î À̹ÌÁö °³¼ö ¿©±â¿¡ ´ëÇؼ± ÀüÇô ¸ð¸£°í ÀÖ¾ú´Âµ¥ ¾î´À ³¯ 2.4.0-test1-ac18 ¹öÀüÀ» ´õ´õ¿í ÃÖÀûÈ­Çϱâ À§ÇØ Ä¿³Î ÄÄÆÄÀÏÀ» ÇÏ°í lilo.conf¿¡ À̹ÌÁö¸¦ µî·Ï½ÃÅ°°í lilo¶õ ¸í·ÉÀ¸·Î Ä¿³Î À̹ÌÁö¸¦ writeÇϴµ¥ ´ÙÀ½°ú °°Àº ¸Þ¼¼Áö°¡ ³ª¿Ô´Ù. Only 19 image names can be defined ±×¶§±îÁö ³ªÀÇ lilo.conf¿¡´Â 19°³ÀÇ Ä¿³Î À̹ÌÁö°¡ Á¤ÀǵǾîÀÖ¾ú´Âµ¥ Çϳª ´õ Ãß°¡Çؼ­ 20°³ °¡ µÇÀÚ À§¿Í °°Àº ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÑ °ÍÀ̾ú´Ù. Ä¿³Î À̹ÌÁö¸¦ 20°³ ÀÌ»ó µî·Ï(?)ÇÏÁö ¾Ê¾Ò´Ù¸é ¾Æ¸¶ ¸ô¶úÀ» °ÍÀÌ´Ù. 3.4. ½º¿ÒÆÄÀϵµ Àִµ¥ ½º¿Ò ÆÄƼ¼ÇÀ» ¾²´ÂÀÌÀ¯? °á·ÐÀûÀ¸·Ð ¼Óµµ ¶§¹®ÀÌ´Ù. ½º¿ÒÆÄÀÏÀ» ¾´´Ù¸é ÆÄÀÏ¿¡ Á¢±ÙÇϱâÀ§ÇØ VFS¿Í ÆÄÀÏ ½Ã½ºÅÛ µå¶óÀ̹ö ±×¸®°í ÆÄÀÏÁ¤º¸¸¦ ´ã°íÀÖ´Â ¿©·¯ °¡Áö¸¦ Àоî¿À°í ¾µ¶§µµ ÀÏ¹Ý ÆÄÀÏÀÌ writing µÇ´Â °æ·Î¸¦ °ÅÄ¥ °ÍÀÌ´Ù. ½º¿Ò ÆÄƼ¼Ç¿¡¼­´Â À§ÀÇ °úÁ¤¾øÀÌ Æ¯Á¤ ºí·°¿¡ ¹Ù·Î Á¢±ÞÇÒ ¼ö ÀÖÀ¸¹Ç·Î ºÒ ÇÊ¿äÇÑ ¿À¹öÇìµå°¡ ¹ß»ýÇÏÁö ¾Ê¾Æ ¼Óµµ°¡ ´õ ºü¸£±â ¶§¹®ÀÌ´Ù. 3.5. ¼­ºê µð·ºÅ丮¸¦ 60000°³ ÀÌ»ó ¸¸µé°í ½Í´Ù. ÇöÀç ¸®´ª½ºÀÇ ±âº» ÆÄÀÏ ½Ã½ºÅÛÀº ext2ÀÌ´Ù. (SuSE´Â Reiser ÆÄÀϽýºÅÛÀÌ´Ù.) ext2¶õ Second Extended File SystemÀÇ ¾à¾îÀ̸ç Ãʱ⠸®´ª½º ÆÄÀÏ ½Ã½ºÅÛÀ̾ú´ø MINIX¿¡¼­´Â ÃÖ´ë ÆÄÀÏÀ̸§ 14¹®ÀÚ, ÃÖ´ë ÆÄƼ¼Ç 64MB¹Û¿¡ µÇÁö ¾Ê¾Ò°í ÀÌ·± ¿©·¯ °¡Áö ¹®Á¦·Î ÆÄÀÏ ½Ã½ºÅÛÀÌ ¿À´Ã³¯ÀÇ ext2±îÁö ¹ßÀüÇÏ¿´´Ù. ext2¿¡¼­´Â 255¹®ÀÚÀÇ ÆÄÀϸí, ÃÖ´ë 2GBÀÇ ÆÄÀÏ, 4TBÀÇ µð½ºÅ© ¿ë·®À» Áö¿øÇÏ¸ç ¼­ºêµð·ºÅ丮´Â Å×½ºÆ®Çغ»°á°ú 32000°³±îÁö¸¸ ¸¸µé¾îÁ³´Ù. ´ÙÀ½À» Âü°íÇ϶ó. ______________________________________________________________________ #!/bin/sh count=70000 i=1 while [ $i -lt $count ] do mkdir $i && echo "$i" i=$(($i+1)) done ______________________________________________________________________ À§´Â ¼­ºê µð·ºÅ丮¸¦ ¸¸µé¾îÁÖ´Â shell scriptÀÌ¸ç ¼­ºê µð·ºÅ丮 À̸§Àº 1¹øºÎÅÍ count·Î ÁöÁ¤ÇÑ °ª¸¸Å­ ¸¸µé¾î ÁØ´Ù. o ext2 ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ÀÇ ¼­ºê µð·ºÅ丮 »ý¼º Ä¿³Î ¹öÀü : 2.2.14-5.0 $ ls -l drwxrwxr-x 32000 suni00 suni00 475136 7¿ù 12 15:41 tmp/ $du -sh 128M . µð·ºÅ丮 ¸µÅ©ÀÇ inode ¶§¹®¿¡ ./¿Í ../¸¦ Æ÷ÇÔÇÏ¿© 32000 ±îÁö ¹Û¿¡ »ý¼ºµÇÁö ¾Ê´Â°É ¾Ë ¼ö ÀÖ´Ù. ¶Ç ext2ÀÇ ºí·° »çÀÌÁî´Â 4KBÀ̹ǷΠ»ý¼ºµð·ºÅ丮µéÀÇ ÃÑ ¿ë·®ÀÌ 128MB³ª Â÷ÁöÇÏ¿´½À´Ï´Ù. o Reiser ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ÀÇ ¼­ºê µð·ºÅ丮 »ý¼º Ä¿³Î ¹öÀü : 2.2.16°ú 2.4.0-test1-ac18 $ls -l drwxrwxr-x 64535 suni00 suni00 1548888 Jul 12 15:48 tmp/ $du -sh 30M . À§¿¡¼­ º¸´Ù½ÃÇÇ 64535°³°¡ »ý¼ºµÇ¾ú°í µð·ºÅ丮µéÀÇ ¿ë·®Àº ext2º¸´Ù ÈξÀ ÀûÀº 30MB ¹Û¿¡ Â÷ÁöÇÏÁö ¾Ê´Â°É ¾Ë ¼ö ÀÖ´Ù. (Reiser ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ÀÇ ºó µð·ºÅ丮ÀÇ »çÀÌÁî´Â 48Byte¸¦ Â÷ÁöÇß´Ù.) µð·ºÅ丮 ¸µÅ©°¡ µÑ ´Ù 2Byte ¹üÀ§±îÁö Ç¥ÇöÇÒ ¼ö ÀÖ´Â °Í °°Àºµ¥ ÆÄÀÏ ½Ã½ºÅÛ¿¡ µû¶ó À§¿Í °°Àº Â÷ÀÌ°¡ ³µ´Ù. 3.6. Reiser ÆÄÀϽýºÅÛ ¸¸µé±â ÇöÀç ¸®´ª½ºÀÇ ±âº» ÆÄÀÏ ½Ã½ºÅÛÀÎ ext2´Â ½Å·Ú¼º, Ãæµ¹ º¹±¸ µîÀÇ ¹®Á¦°¡ Àִµ¥ ÀÌ·± ºÎºÐµéÀ» ÇØ°á ÇÒ ¼ö ÀÖ´Â °ÍÀÌ Àú³Î¸µ ÆÄÀÏ ½Ã½ºÅÛÀÌ´Ù. Reiser ÆÄÀÏ ½Ã½ºÅÛ ¶ÇÇÑ ÀÌ·± Àú³Î¸µ ÆÄÀÏ ½Ã½ºÅÛÀÇ ÀÏÁ¾À¸·Î ÀÌ¹Ì SuSE¿¡¼­´Â ±âº» ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î Reiser¸¦ ¼±ÅÃÇÏ°í ÀÖ´Ù. ¸ÓÁö¾Ê¾Æ ¸®´ª½ºÀÇ ±âº» ÆÄÀÏ ½Ã½ºÅÛµµ Àú³Î¸µ ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î ¹Ù²ð °ÍÀÌ´Ù. 1. ÆÐÄ¡ÆÄÀÏ ¹Þ¾Æ¿À±â ¶Ç´Â ¿¡¼­ ÀÚ½ÅÀÇ ¹öÀü¿¡ ¸Â´Â ÆÐÄ¡¸¦ ¹Þ¾Æ¿Â´Ù. 2. ÆÐÄ¡¸¦ Àû¿ë½ÃŲ´Ù.(/usr/src/linux ¿¡¼­ ÆÐÄ¡ÇÑ´Ù.) # patch -p1 < ÆÐÄ¡ÆÄÀϸí (¾ÐÃàÀ» Ç®¾úÀ»¶§) ¶Ç´Â # gzip -cd ÆÐÄ¡ÆÄÀϸí.gz | patch -p1 3. Ä¿³Î¿É¼Ç ¼±Åà Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers ¸¦ ¼±ÅÃÇÏ°í File systems ---> <*> Reiserfs support ¼±ÅÃÇÑ´Ù. 4. Ä¿³Î ÄÄÆÄÀÏ¹× ¸ðµâ ÄÄÆÄÀÏ, lilo Á¤º¸µµ °íÃÄÁØ´Ù. 5. ReiserFS À¯Æ¿ ÄÄÆÄÀÏ(mkreiserfsÀ» ¸¸µé±âÀ§ÇØ) # cd /usr/src/linux/fs/reiserfs/utils/ # make # make install 6. ReiserFS°¡ Àû¿ëµÈ Ä¿³Î À̹ÌÁö·Î ÀçºÎÆÃÇÑ´Ù. 7. ReiserFS ¸¸µé±â (/dev/hdb1 ¿¡ ¸¸µç´Ù°í °¡Á¤ÇÏ¸ç ±âÁ¸ ext2 ÆÄÀϽýºÅÛÀÇ µ¥ÀÌÅÍ´Â Áö¿öÁö¹Ç·Î ¹é¾÷ÇÏ´øÁö ¾Æ´Ô »õ Çϵ带 ´Þ¾Ò´Ù°í °¡Á¤ÇÑ´Ù.) # umount /dev/hdb1 (mount µÇ¾îÀÖÁö ¾Ê´Ù¸é ÀÌ°Ç ÇÊ¿ä¾ø´Ù.) # mkreiserfs /dev/hdb1 # mount /dev/hdb1 /TEST(mount ½Ãų µð·ºÅ丮´Â °¢ÀÚ ¾Ë¾Æ¼­..) 8. /etc/fstab ¼öÁ¤Çϱâ /dev/hdb1 /TEST reiserfs defaults 1 2 ext2¸¦ reiserfs·Î ¹Ù²Ù¸é µÈ´Ù. 9. È®ÀÎÇϱâ $ mount ... /dev/hdb1 on /TEST type reiserfs (rw) ... À§¿Í °°ÀÌ reiserfs ¶ó°í ³ª¿À¸é ¼º°ø Reiser ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¸µé°í ¸¶¿îÆ® ½ÃÅ°¸é ±âº»À¸·Î 32MBÀÇ ¿ë·®À» Àâ¾Æ¸Ô´Â´Ù. ÀÌ °ø°£¿¡´Ù°¡ ÀÚüÀûÀÎ Á¤º¸¸¦ ±â·ÏÇϹǷΠReiser ÆÄÀÏ ½Ã½ºÅÛÀ» À§Çؼ± ÃÖ¼Ò 32MBÀÌ»óÀÇ ÆÄƼ¼ÇÀ» ÇÊ¿ä·Î ÇÑ´Ù.(³ªÀÇ /boot ÆÄƼ¼ÇÀº 16MB¿©¼­ reiserfs¸¦ Àû¿ë½ÃÅ°Áö ¸øÇÏ¿´´Ù.) 3.7. Ä¿³Î 2.4.0-test¹öÀü¿¡¼­ X 4.0À» ¾²°í½Í´Ù.(RIVA TNT) ÇöÀç nVidia¿¡¼­ ³ª¿À´Â X 4.0 µå¶óÀ̹öµéÀº Ä¿³Î 2.2.xÀÇ ¾ÈÁ¤¹öÀü¿¡¸¸ Àû¿ëµÈ´Ù. °³¹ß¹öÀü¿¡ Àû¿ë½Ãų·Á¸é ¿¡¼­ NVIDIA_kernel-0.9-2.3.x.tar.gz¸¦ ¹Þ¾Æ ÄÄÆÄÀÏ ÇؾßÇÑ´Ù.(Å×½ºÆ®Çغ» °á°ú Ä¿³Î 2.4.0-test1-ac18±îÁö¸¸ Àû¿ëµÈ´Ù.) 3.8. Ä¿³Î ¹öÀüÀ» ¾î¶»°Ô ¹Ù²Ù´Â°¡? ¾î¶² Çб³ÀÇ Àü»ê°ü·Ã °ú¸ñ ¸®Æ÷Æ®ÀÎÁö ÀÌ·± Áú¹®À» ¸¹ÀÌ ¹Þ¾Ò´Ù. Ä¿³Î ¹öÀü¸¸À» °¡Â¥·Î ¹Ù²Ü·Á´Â ÀÌÀ¯¸¦ ¸ð¸£°Ú´Ù. ______________________________________________________________________ # vi /usr/src/linux/Makefile VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 0 EXTRAVERSION = -test1-ac18 # vi /usr/src/linux/include/linux/version.h #define UTS_RELEASE "2.4.0-test1-ac18" #define LINUX_VERSION_CODE 132096 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) À§ÀÇ Makefile¿¡¼­ ¹öÀü Á¤º¸¸¦ °íÃÆ´Ù¸é ÄÄÆÄÀÏÇÒ¶§ version.h´Â ÀÚµ¿À¸·Î ¹Ù²ï´Ù. ______________________________________________________________________ ÀÌ µÎ ÆÄÀϵéÀ» ¿øÇÏ´Â ¹öÀüÀ¸·Î ¹Ù²Ù°í ÄÄÆÄÀÏ ÇÏ¸é µÈ´Ù. À߸ø ¹Ù²Ù¾î¼­ Ä¿³Î ¹öÀüÀÌ ¸ÂÁö ¾ÊÀ» °æ¿ì System.map¿¡¼­ ¹öÀüÀÌ Æ²¸®´Ù°í ¸Þ¼¼Áö¸¦ º¸³¾ °ÍÀÌ´Ù. ±×·² °æ¿ì ÇØ´ç Ä¿³Î À̹ÌÁöÀÇ System.mapÀ» ¾ø¾Ö¹ö·Áµµ ¹«°üÇÏ´Ù. (System.mapÀÌ ¾ø´Ù¸é ¾îµð¼­ ¹®Á¦°¡ ¹ß»ýÇß´ÂÁö ¾Ë ¼ö ¾øÀ» °ÍÀÌ´Ù.) 3.9. CPUÀÇ Á¤º¸¸¦ ¹Ù²Ù°í ½Í´Ù, Bogo Mips¸¦ ³ôÀÌ°í ½Í´Ù ÀÌ°Ç ±×³É ³»°¡ ÇÏ°í ½Í¾î¼­ ÇغôÙ. # vi /usr/src/linux/arch/i386/kernel/setup.c $ cat /proc/cpuinfo Á¤º¸¸¦ °íÃÄÁØ´Ù. # vi /usr/src/linux/init/main.c $ dmesg ÀÇ º¸°í ¹Ó½º¸¦ °íÃÄÁØ´Ù. À§ µÎ ÆÄÀÏÀ» ¿øÇÏ´Â ´ë·Î °íÄ¡¸é µÈ´Ù. ¾à°£ÀÇ C ÇÁ·Î±×·¡¹Ö¸¸ ÇÒ ¼ö ÀÖ´Ù¸é ½±°Ô ¿øÇϴ´ë·Î ¹Ù²Ü ¼ö ÀÖÀ»°ÍÀÌ´Ù. 3.10. KERNEL32.DLL¿¡¼­ À߸øµÈ ¿¬»ê¼öÇà!? À§¿Í °°Àº Áú¹®À» ÇϽô ºÐµéÀÌ °¡²û °è½Åµ¥ MS-WINDOWS Ä¿³ÎÀ» ¾î¶»°Ô ¼Õº¼ ¼ö Àְڴ°¡? (°Ë»ö¿£Áø¿¡¼­ kernel·Î °Ë»öÇؼ­ Ä¿³Î ÇÁ·ÎÁ§Æ® ȨÀ¸·Î µé¾î¿Ô´Ù´õ±º¿ä.) ¼ºÀÇ´Â ´ë´ÜÇϳª ´ÜÁö ¼Õ»ó ¾ÈµÈ ´Ù¸¥ KERNEL32.DLLÀ» Ä«ÇÇÇ϶ó°í ÇÒ ¼ö¹Û¿¡...