#keywords IPC
Ä¿³Î 2.4 Intro <author>Á¤¿ø¿µ <htmlurl url="mailto:suni00@kernel.pe.kr" name="suni00@kernel.pe.kr"> <date>v0.2, 2000³â 8¿ù 30ÀÏ <abstract> °³¹ßÄ¿³Î 2.4.0-tset ¹öÀüÀ» ÄÄÆÄÀÏÇϱâÀ§ÇÑ ±âº»ÀûÀÎ ¹è°æÁö½Ä°ú ÀϹÝÀû »ç¾çÀÇ PC¿¡¼­ÀÇ ÄÄÆÄÀÏ ¿É¼Ç¹× ¹æ¹ý ±×¸®°í Ä¿³Î 2.4 ¿¡¼­ ¹«¾ùÀÌ ´Þ¶óÁ³´ÂÁö¸¦ ´Ù·é´Ù. (ÀÌ ±ÛÀ» ¾²´Â ÇöÀç °¡Àå ÃֽŠ°³¹ß Ä¿³ÎÀÎ 2.4.0-test7À» ±âÁØÀ¸·Î ÀÌ·ÐÀûÀÎ¸é º¸´Ü ½ÇÁ¦·Î ¾î¶»°Ô ÇؾßÇÏ´ÂÁö¿¡ ÁßÁ¡À» µÎ¾ú´Ù.) </abstract> <toc> <sect> ¹è°æÁö½Ä <p> <sect1> Ä¿³ÎÀ̶õ? <p> Ä¿³ÎÀ̶õ ¿î¿µÃ¼Á¦(Operating System)¿¡¼­ °¡Àå ÇÙ½ÉÀûÀÎ ¿ªÇÒÀÎ ÀÚ¿ø (¸Þ¸ð¸®, ÇÁ·Î¼¼¼­µî)À» °ü¸®ÇÏ¸ç ½Ã½ºÅÛÀÌ ¿øÈ°È÷ µ¹¾Æ°¥ ¼ö ÀÖµµ·Ï Á¦¾îÇØ ÁØ´Ù. ÇöÀç ¿ì¸®°¡ ¸®´ª½º(OS)¶ó°í Çϴ°͵µ ½ÇÁ¦ÀûÀ¸·Ð ¸®´ª½º¶õ ¿î¿µÃ¼Á¦ÀÇ Ä¿³Î À̸§À» ¸»Çϴ°ÍÀε¥ ÀÌ°ÍÀÌ È®ÀåµÈ Àǹ̷Π»ç¿ëµÇ¾î ÇöÀçÀÇ '¸®´ª½º'¶õ OS¸¦ ÁöĪÇÏ°Ôµµ µÈ°ÍÀÌ´Ù. ±×·¯¹Ç·Î Linux = kernelÀ̶õ µî½ÄÀÌ ¼º¸³ÇÑ´Ù. <sect1> Ä¿³ÎÀº ¾îµð¼­ ±¸Çϳª? <p> ¿ì¼±ÀûÀ¸·Î ¾ÈÁ¤ ¹öÀü°ú °¡Àå ÃֽŠ°³¹ß¹öÀüÀ» ¿øÇÑ´Ù¸é <url url="http://kernel.pe.kr"> ·Î Á¢¼ÓÇÏ¸é µÈ´Ù. ±× ÀÌ¿Ü¿¡´Â ´ÙÀ½ ¹Ì·¯ »çÀÌÆ®¿¡¼­ ±¸ÇÒ¼ö ÀÖ´Ù. <itemize> <item> ¿ì¸®³ª¶ó : <url url="ftp://ftp.kr.kernel.org/pub/linux/kernel/"> <item> ¹Ì±¹ : <url url="ftp://ftp.us.kernel.org/pub/linux/kernel/"> <item> ÀϺ» : <url url="ftp://ftp.jp.kernel.org/pub/linux/kernel/"> </itemize> <sect1> ÃֽŠĿ³Î ¹öÀüÀº ¾î¶»°Ô ¾Ë¾Æº¸³ª? <p> SHELL¿¡¼­ finger @finger.kernel.org ¸í·ÉÀ¸·Î ÃֽŠĿ³Î¹öÀüÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ ¹®¼­¸¦ ÀÛ¼ºÇÏ´Â ÇöÀç ÃֽŹöÀüÀº ´ÙÀ½°ú °°´Ù. <itemize> <item> stable version : 2.2.16 <item> beta version : 2.4.0-test7 <item> prepatch version : 2.4.0-test8/pre1 </itemize> <verb> Ä¿³ÎÀº 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¶ó À̸§ ºÙÀΰÍÀÌ´Ù. </verb> <sect1> Ä¿³Î ÄÄÆÄÀÏ ¹æ¹ý(Ä¿³Î 2.4.0-test7) <p> ¿©·¯ °¡Áö ¹æ¹ýµéÀÌ ÀÖÁö¸¸ ÀúÀåµÈ Ä¿³Î¿É¼Ç¼³Á¤ ÆÄÀÏÀÌ ÀÖ´Ù¸é oldconfig¸¦ ÀúÀåµÈ ÆÄÀÏÀÌ ¾ø´Ù¸é menuconfig¸¦ ÃßõÇÑ´Ù. <enum> <item> make oldconfig ¶Ç´Â make menucofig <verb> make oldconfig¸¦ ÇϱâÀ§Çؼ± ´ÙÀ½°ú °°Àº ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù. ¿¹Àü¿¡ ¼³Á¤ÇÑ Ä¿³Î¿É¼ÇÀÌ kernel.config ¶õ À̸§À¸·Î ÀúÀåµÇ¾îÀÖ´Ù¸é ÀÌ ÆÄÀÏÀ» »õ ¹öÀüÀÇ Ä¿³ÎÀÌ ÀÖ´Â /usr/src/linux µð·ºÅ丮¿¡ .config¶õ À̸§À¸·Î Ä«ÇÇÇÑ´Ù. # cp kernel.config /usr/src/linux/.config À§¿Í°°ÀÌ ÇÑÈÄ make oldconfig¸¦ ½ÇÇàÇÏ¸é ¿¹Àü ¿É¼ÇÀ» ±×´ë·Î Àû¿ë½ÃÄÑÁÖ¸ç Ȥ½Ã³ª »õ·Î¿î ¿É¼ÇÀÌ ÀÖ´Ù¸é È­¸é¿¡ º¸¿©ÁÖ¸ç ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. </verb> <item> make dep <item> make clean <item> make bzlilo <verb> make bzlilo¶õ ´ÙÀ½°ú °°Àº ¸í·ÉµéÀ» ¼øÂ÷ÀûÀ¸·Î ½ÇÇàÇÑ°Í°ú °°´Ù. # make bzImage # cp /usr/src/linux/arch/i386/boot/bzImage /vmlinuz # /sbin/lilo </verb> <item> mv /vmlinuz /boot/vmlinuz-2.4.0-test7 <item> mv /System.map /boot/System-2.4.0-test7 <item> vi /etc/lilo.conf <verb> ÀϹÝÀûÀ¸·Î ´ÙÀ½°ú °°Àº È­¸éÀ» º¼ ¼ö ÀÖÀ»°ÍÀÌ´Ù. 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 </verb> <item> /sbin/lilo </enum> <sect1> ¸ðµâ ÄÄÆÄÀÏ ¹æ¹ý <p> ¸ðµâÀÌ »ý¼ºµÇ´Â µð·ºÅ丮´Â '/lib/modules/2.4.0-test7'ÀÌ°í ¸¸¾à ÇöÀç Ä¿³ÎÀÇ ¸ðµâÀ» ´Ù½Ã »ý¼ºÇÏ·Á°í ÇÑ´Ù¸é ÇöÀç Ä¿³ÎÀÇ ¸ðµâ µð·ºÅ丮¸¦ Áö¿ì°í ´Ù½Ã ÄÄÆÄÀÏ Çϱ⠹ٶõ´Ù. (Ä¿³Î 2.4.0-test ¹öÀü¿¡¼­´Â ¸ðµâÀÇ µð·ºÅ丮±¸Á¶°¡ ¸¹ÀÌ ¹Ù²î¾ú´Ù.) <enum> <item> make modules <item> make modules_install </enum> <sect> Ä¿³Î 2.4.0-test ¹öÀü <p> <sect1> ÇÊ¿äÇÑ ÆÐÅ°Áö <p> RedHat ±â¹Ý 6.1ÀÌ»óÀÇ ¹èÆ÷ÆÇÀ̶ó¸é modutils¸¸ ¾÷±×·¹À̵å ÇÏ¸é µÉ°ÍÀÌ´Ù. (modutils¸¦ ¾÷Çϴµ¥ glibc¹öÀüÀÌ ³·´Ù¸é glibcµµ ¾÷ÇØ¾ß ÇÑ´Ù. glibc´Â ·ÎÄÉÀÏ°ú timezone, ¿©·¯ ¶óÀ̺귯¸®¸¦ Æ÷ÇÔÇؼ­ ÀÇÁ¸¼º ¹®Á¦¿¡ ¸¹Àº ¿µÇâÀ» ³¢Ä¡¹Ç·Î ¾÷±×·¹À̵å Çϴµ¥ ÁÖÀǸ¦ ÇÊ¿ä·Î ÇÑ´Ù. rpm ¹öÀüÀÌ ³·´Ù¸é rpmµµ ¾÷ÇØ¾ß ÇÑ´Ù.) 2.4.0-test Ä¿³ÎÀ» »ç¿ëÇϱâÀ§Çؼ­ ´ÙÀ½ »çÇ×À» È®ÀÎÇ϶ó. <verb> ÆÐÅ°Áö ¸í ¹öÀü È®Àιæ¹ý 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 </verb> <sect1> Ä¿³Î 2.4¿¡¼­ ´Þ¶óÁø°Í°ú »õ·Î¿î °Íµé <p> <itemize> <item> Bogo Mips°¡ µÎ ¹è·Î ¿Ã¶ó°£´Ù.(AMD-K6 ¿Í È®ÀÎ ¸øÇÑ Processor Á¦¿Ü) <verb> $ cat /proc/cpuinfo ¸¦ Çغ¸¸é È®ÀÎÇÒ ¼ö ÀÖ´Ù. Bogo(bogos : °¡Â¥)À̹ǷΠ½Å·ÚÇÒ¼ø ¾øÁö¸¸ ±âºÐ¸¸Àº ÁÁÁö¾ÊÀº°¡? </verb> <item> modutils ¾÷±×·¹À̵å½Ã ¹Ù²î´Â °Íµé <verb> ¸¸¾à modutils ¹öÀüÀÌ ¾Õ¿¡¼­ ¸í½ÃÇÑ ¹öÀüº¸´Ù ³·Àºµ¥ ¸ðµâ ÄÄÆÄÀÏÀ» ÇÑ´Ù¸é ¿¡·¯°¡ ³­´Ù. ²À modutils¸¦ ¾÷ ÇØ¾ß ¸ðµâ ÄÄÆÄÀÏÀ» ÇÒ ¼ö ÀÖ´Ù. modutils¸¦ ¾÷ÇÏ¸é ¿¹ÀüÀÇ /etc/conf.modules°¡ /etc/modules.conf·Î ¹Ù²î°í USB ¸ðµâµµ ÀÚµ¿·ÎµùÀÌ °¡´ÉÇÏ¸ç ¸¹Àº ¿¹¾à¾î¸¦ Áö¿øÇÑ´Ù. ´ÙÀ½ ftp »çÀÌÆ®¿¡¼­ ±¸ÇÒ¼ö ÀÖ´Ù. ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/v2.3/ </verb> <item> ¸ðµâÀÌ À§Ä¡ÇÑ /lib/modules/2.4.0-test7 µð·ºÅ丮 ±¸Á¶ <verb> Ä¿³Î 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/ </verb> <item> UID,GID bit°¡ 16bit¿¡¼­ 32bit·Î ¹Ù²î¾ú´Ù. <verb> 2^16Àº 65536À̹ǷΠ»ç¿ëÀÚ¸¦ 65536¸í ±îÁö ¸¸µé¼ö ÀÖÁö¸¸ Ä¿³Î 2.4¿¡¼­´Â 2^32 Áï 4294967296¸íÀ» ¸¸µé¼ö ÀÖ´Ù.(½Ã½ºÅÛ ÄÝÀÇ º¯°æµµ ÇÊ¿ä·Î Çϸç Çö½ÇÀûÀ¸·Î ÀÌ·¸°Ô ¸¹Àº À¯Àú¸¦ ÇÑ ¼­¹ö¿¡ µÐ´Ù´Â°ÍÀº ¹«¸®ÀÌ´Ù.) </verb> <item> »ý¼º°¡´ÉÇÑ ÇÁ·Î¼¼½ºÀÇ ¼öÀÇ Á¦ÇÑÀÌ ¾ø¾îÁ³´Ù. <verb> 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 °ªÀÌ ¾ø¾îÁ³°í ¸Þ¸ð¸®ÀÇ ÇѰ踸ÀÌ À¯ÀÏÇÑ Á¦¾àÀ¸·Î µû¸¥´Ù. </verb> <item> °øÀ¯¸Þ¸ð¸®¸¦ »ç¿ëÇϱâÀ§ÇØ /var/shm(¶Ç´Â /dev/shm)À» ¸¶¿îÆ® ÇؾßÇÑ´Ù. <verb> Ä¿³Î 2.3 °³¹ß¹öÀüÀ» óÀ½ ÄÄÆÄÀÏÇÏ°í ºÎÆÃÇßÀ»¶§ Á¦ÀÏ Ã³À½ Á÷¸éÇß´ø ¹®Á¦Àε¥ System V °øÀ¯¸Þ¸ð¸®¸¦ »ç¿ëÇÏÁö ¸øÇؼ­ ºÎÆýà ÀÚµ¿À¸·Î ¶ß´Â ¾ÆÆÄÄ¡ µ¥¸óÀÌ ¶ßÁö ¸øÇÏ´Â ¹®Á¦¿Í ¿©·¯ ÇÁ·Î±×·¥À» ½ÇÇàÇßÀ»¶§ °øÀ¯¸Þ¸ð¸®¸¦ »ç¿ëÇÏÁö ¸øÇØ ¿¡·¯°¡ ³ª´Â ¹®Á¦°¡ ¹ß»ýÇß¾ú´Ù. 2.4-test ¹öÀüÀ» ¾²±âÀ§Çؼ± ²À ÇØÁà¾ß ÇÏ´Â ºÎºÐÀÌ´Ù. # mkdir /var/shm # vi /etc/fstab none /var/shm shm defaults 0 0 </verb> <item> ipchains°¡ iptables·Î ¹Ù²î¾ú´Ù. <verb> menuconfig ¿É¼Ç¿¡¼­ Networking options ---> [*] Network packet filtering (replaces ipchains) ¸¦ ¼±ÅÃÇÏ°í IP: Netfilter Configuration ---> <M> ipchains (2.2-style) support ¸¦ ¼±ÅÃÇϸé Ä¿³Î 2.2.x ¿Í °°Àº ¹æ½ÄÀ¸·Î ¾µ ¼ö ÀÖ´Ù. </verb> <item> Magic SysRq key ÀÇ º¯È­ <verb> 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 : ½Ã½ºÅÛ ÀçºÎÆà </verb> <item> Codepage 949 (UnifiedHangul) Áö¿ø(Ä¿³Î 2.4.0-test5ºÎÅÍ Áö¿øÇÏ¸ç ¾ÈÁ¤¹öÀüÀº 2.2.16¿¡¼­ Áö¿øÇÑ´Ù.) <verb> ¸®´ª½º¿¡¼­ À©µµ ÆÄƼ¼Ç(vfat)À» ¸¶¿îÆ® ÇßÀ»¶§ ÇѱÛÀÌ '????'ÀÌ·±½ÄÀ¸·Î º¸ÀÌ´Â ¹®Á¦¸¦ ÇØ°áÇØ ÁØ´Ù. </verb> <item> Devfs(Device Filesystem) <verb> 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 ¿¡¼­ ´ÙÀ½°ú °°ÀÌ ¹Ù²ãÁØ´Ù. <console>=tty[0-9][0-9]* :[0-9]\.[0-9] :[0-9] À» ÁÖ¼®Ã³¸®ÇÏ´øÁö »èÁ¦ÇÏ°í <console>=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" ÇÏ¸é µÈ´Ù. </verb> </itemize> <sect1> Ä¿³Î ¿É¼Ç ¼³Á¤<p> ÀϹÝÀûÀÎ µ¥½ºÅ©Å¾ PC»ç¾ç(1 CPU, No SCSI)¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â Ä¿³Î¿É¼ÇµéÀ» ¼³¸íÇÏ¸ç ±×´ÙÁö Çʿ伺ÀÌ ¾ø´Â ¿É¼ÇµéÀº Á¦¿Ü½ÃÄ×´Ù. Code maturity level options ---> <itemize> <item>[*] Prompt for development and/or incomplete code/drivers <em> - °³¹ß ¼öÁØÀÇ ¿É¼Çµéµµ ¼±Åð¡´ÉÇÏ°Ô ÇØÁØ´Ù.</em> </itemize> Loadable module support ---> <itemize> <item>[*] Enable loadable module support <em> - ¸ðµâÀ» »ç¿ëÇÒ¼ö ÀÖ°Ô ÇØÁÜ.</em> <item>[*] Kernel module loader <em> - Ä¿³ÎÀÌ ¾Ë¾Æ¼­ ¸ðµâÀ» ¿Ã·ÁÁØ´Ù.</em> </itemize> Processor type and features ---> <itemize> <item>(Pentium-Pro/Celeron/Pentium-II) Processor family <itemize> <item>(X) Pentium-Pro/Celeron/Pentium-II <em> - Å×½ºÆ® PC°¡ Pentium IIÀ̹ǷΠ... ½Ã½ºÅÛ¿¡ ¸Â´Â°É ¼±ÅÃÇÑ´Ù.</em> </itemize> <item>[*] MTRR (Memory Type Range Register) support <em> - ÇÁ·Î¼¼¼­°¡ ¸Þ¸ð¸® ¿µ¿ª Á¢±ÙÀ» Á¦¾îÇÒ¼ö ÀÖÀ½. ±×·¡ÇÈÀÇ ¾²±â ¼Óµµ Çâ»ó </em> </itemize> General setup ---> <itemize> <item>[*] Networking support <em> - ³×Æ®¿öÅ· Áö¿ø</em> <item>[*] PCI support <em> - PCI Áö¿ø</em> <item>(Any) PCI access mode <em> - Ä¿³ÎÀÌ Á÷Á¢ ¾×¼¼½º ½Ãµµ </em> <item>[*] System V IPC <em> - System V IPC¸¦ Áö¿øÇÏ°Ô ÇÔ, Shared Memoryµµ ¿©±â¼­ Áö¿øÇÑ´Ù. </em> <item>[*] BSD Process Accounting <em> - ÇÁ·Î¼¼½º Á¤º¸¸¦ ÆÄÀÏ¿¡ ÀúÀå </em> <item>[*] Sysctl support <em> - ƯÁ¤ Ä¿³ÎÀÇ ÆĶó¹ÌÅÍ¿Í º¯¼öµéÀ» µ¿ÀûÀ¸·Î º¯°æ½Ãų¼ö ÀÖµµ·Ï ÇÔ </em> <item>(ELF) Kernel core (/proc/kcore) format <em> - ELF core Æ÷¸Ë </em> <item><*> Kernel support for a.out binaries <em> - a.out ¹ÙÀ̳ʸ® Áö¿ø </em> <item><*> Kernel support for ELF binaries <em> - ELF ¹ÙÀ̳ʸ® Áö¿ø </em> </itemize> Plug and Play configuration ---> <itemize> <item><*> Plug and Play support <em> - Plug and Play Áö¿ø </em> </itemize> Block devices ---> <itemize> <item><*> Normal PC floppy disk support <em> - Ç÷ÎÇÇ µå¶óÀ̹ö ÀåÄ¡ Áö¿ø </em> <item><M> Loopback device support <em> - ÇÑ ÆÄÀÏÀ» ÇϳªÀÇ ÆÄÀÏ ½Ã½ºÅÛó·³ ÀÎ½Ä ½ÃÅ´ </em> </itemize> Networking options ---> <itemize> <item><*> Packet socket <em> - ³×Æ®¿÷ µð¹ÙÀ̽º¿ÍÀÇ Á÷Á¢Åë½ÅÀ» ÇÏ°Ô ÇØÁØ´Ù. </em> <itemize> <item> <*> Packet socket: mmapped IO <em> - ´õ ºü¸¥ Åë½ÅÀ» ÇÒ ¼öÀÖ°Ô ÇÑ´Ù. </em> </itemize> <item><*> Unix domain sockets <item>[*] TCP/IP networking <em> - TCP/IP ³×Æ®¿öÅ· Áö¿ø </em> <itemize> <item>[*] IP: TCP syncookie support (disabled per default) <em> - ¼­ºñ½º °ÅºÎ °ø°ÝÀ» ¹ÞÀ»¶§ ´ëóÇØÁÜ </em> </itemize> </itemize> ATA/IDE/MFM/RLL support ---> <itemize> <item><*> ATA/IDE/MFM/RLL support <item> IDE, ATA and ATAPI Block devices ---> <itemize> <item><*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support <em> - IDE¸¦ »ç¿ëÇÒ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. </em> <itemize> <item><*> Include IDE/ATA-2 DISK support <em> - Çϵåµð½ºÅ© »ç¿ë°¡´ÉÇÏ°Ô ÇÔ </em> <item><*> Include IDE/ATAPI CDROM support <em> - CD-ROM »ç¿ë°¡´ÉÇÏ°Ô ÇÔ </em> <item><M> Include IDE/ATAPI FLOPPY support <em> - ZIP µå¶óÀ̺êµîÀ» »ç¿ë°¡´ÉÇÏ°Ô ÇÔ </em> <item>--- IDE chipset support/bugfixes <item><*> Generic PCI IDE chipset support <em> - PCI ¹æ½ÄÀÇ IDE Áö¿ø </em> <itemize> <item><*> Sharing PCI IDE interrupts support <em> - IRQ °øÀ¯ Áö¿ø </em> <item><*> Generic PCI bus-master DMA support <em> - DMA Áö¿ø </em> <itemize> <item><*> Use PCI DMA by default when available <em> - VIA VP2 Ĩ¼ÂÀ» »ç¿ëÇÑ´Ù¸é Àý´ë ¼±ÅÃÇÏÁö ¸»°Í </em> </itemize> <item><*> HPT366 chipset support <em> - Ultra DMA 66 Áö¿ø </em> </itemize> </itemize> </itemize> </itemize> Network device support ---> <itemize> <item>[*] Network device support <item>Ethernet (10 or 100Mbit) ---> <itemize> <item>[*] Ethernet (10 or 100Mbit) <em> - ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡ ¸Â´Â°É ¼±Åà </em>(RealTek 8139µîÀ» ¾´´Ù¸é [*]EISA, VLB, PCI and on board controllers¸¦ ¼±ÅÃÇϸé ÇϺΠ¸ñ·ÏÀÌ ³ª¿Â´Ù.) </itemize> </itemize> Character devices ---> <itemize> <item>[*] Virtual terminal <em> - °¡»ó Å͹̳ΠÁö¿ø </em> <itemize> <item>[*] Support for console on virtual terminal <em> - °¡»óÅ͹̳ÎÀ» ½Ã½ºÅÛ ÄַܼΠ¾µ¼öÀÖ°Ô ÇØÁØ´Ù. </em> </itemize> <item>[*] Unix98 PTY support <em> - Unix98 °¡»óÅ͹̳ΠÁö¿ø </em> <itemize> <item>[*] (256) Maximum number of Unix98 PTYs in use (0-2048) <em> Unix98 PTY °³¼öÀÇ ÃÖ´ë°ª </em> </itemize> <item> Mice ---> <itemize> <item><*> Mouse Support (not serial and bus mice) <itemize> <item>[*] PS/2 mouse (aka "auxiliary device") support <em> - PS/2 ¸¶¿ì½º Áö¿ø </em> </itemize> </itemize> <item><M> /dev/agpgart (AGP Support) <em> - AGP Áö¿ø (ÇϺθ޴ºÁß ÀÚ½ÅÀÇ º¸µå¿¡ ¸Â´Â°Å ¼±ÅÃ) </em> </itemize> File systems ---> <itemize> <item><*> Kernel automounter support <em> - ¿ø°Ý ÆÄÀÏ ½Ã½ºÅÛÀ» ÀÚµ¿À¸·Î ¸¶¿îÆ® ÇØÁØ´Ù.(NFSµîÀ» »ç¿ëÇÒ¶§) NÀ»¼±ÅÃÇصµ »ó°ü¾ø´Ù. </em> <item><M> DOS FAT fs support <em> - FAT ±â¹ÝÀÇ ÆÄÀÏ ½Ã½ºÅÛ Áö¿ø </em> <itemize> <item><M> MSDOS fs support <em> - MSDOS ÆÄƼ¼Ç ¸¶¿îÆ® Áö¿ø </em> <item><M> VFAT (Windows-95) fs support <em> - À©µµÁî ÆÄƼ¼Ç Áö¿ø </em> </itemize> <item><M> ISO 9660 CDROM file system support <em> - CD-ROM ÆÄÀÏ ½Ã½ºÅÛ Áö¿ø </em> <itemize> <item>[*] Microsoft Joliet CDROM extensions <em> - Joliet CDROMÀ» ÀÐÀ» ¼ö ÀÖ°Ô ÇÑ´Ù. </em> </itemize> <item>[*] /proc file system support <em> - ÇÁ·Î¼¼½º¸¦ À§ÇÑ °¡»ó ÆÄÀÏ ½Ã½ºÅÛ </em> <item>[*] /dev/pts file system for Unix98 PTYs <em> - À§¿¡¼­ [*] Unix98 PTY support ¸¦ ¼±ÅÃÇß´Ù¸é ¼±ÅÃÇØ¾ß ÇÑ´Ù. </em> <item><*> Second extended fs support <em> - ÇöÀç ¸®´ª½º ÆÄÀÏ ½Ã½ºÅÛ </em> <item> Network File Systems ---> <itemize> <item><M> NFS file system support <em> - ³×Æ®¿÷ ÆÄÀÏ ½Ã½ºÅÛ Áö¿ø </em> <item><M> SMB file system support (to mount Windows shares etc.) <em> - À©µµÁîÀÇ ³×Æ®¿÷ ±â´ÉµéÀ» °øÀ¯ÇÒ¼ö ÀÖ°Ô ÇØÁØ´Ù. </em> </itemize> <item>Native Language Support ---> <itemize> <item>Default NLS Option: "cp949" <em> - µðÆúÆ®·Î ÇѱÛÀÌ ¼±Åõǵµ·Ï ÇÑ´Ù. </em> <item><*> Codepage 437 (United States, Canada) <item><*> Codepage 949 (UnifiedHangul) <em> - À©µµÆÄƼ¼ÇÀ» ¸¶¿îÆ® ÇßÀ»¶§ ÇѱÛÀ» º¼¼öÀÖµµ·Ï ÇØÁØ´Ù. </em> <item><*> NLS ISO 8859-1 (Latin 1; Western European Languages) </itemize> </itemize> Console drivers ---> <itemize> <item>[*] VGA text console <em> - VGA Ç¥ÁØ µð½ºÇ÷¹À̸¦ ÅëÇØ ÅؽºÆ® ¸ðµå¿¡¼­ »ç¿ë°¡´ÉÇÏ°Ô ÇÑ´Ù. </em> </itemize> Sound ---> <em> ½Ã½ºÅÛ¿¡ ¸Â´Â°É ¼±ÅÃÇÑ´Ù </em> Kernel hacking ---> <itemize> <item>[*] Magic SysRq key <em> - ½Ã½ºÅÛÀÌ ´Ù¿îµÇ´õ¶óµµ Á¦¾îÇÒ ¼öÀÖµµ·Ï ÇØÁØ´Ù. </em> </itemize> <sect1> Å×½ºÆ® PC »ç¾ç <p> Ä¿³Î ÄÄÆÄÀÏÀ» ÇÒ·Á¸é ¾î´ÀÁ¤µµ ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡ °üÇÑ Çϵå¿þ¾îÀû Áö½ÄÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ±×·¡ÇÈ Ä«µå, ºñµð¿À Ä«µå, »ç¿îµå Ä«µå, ³×Æ®¿÷ Ä«µåµîÀº Ä¿³Î ÄÄÆÄÀϽà °¢°¢¿¡ ¸Â´Â°ÍÀ» ¼±ÅÃÇÏ°í ¾ÕÀÇ ¿É¼ÇÀ» Âü°íÇÑ´Ù¸é ¹«¸®¾øÀÌ ÄÄÆÄÀÏ °¡´ÉÇÒ°ÍÀÌ´Ù. <itemize> <item> CPU : Intel Pentium II 350 (Deschutes) <item> Memory : 128MB <item> Main Board : MS-6119 Á¡ÆÛ <verb> MS-6119 Award Bios ¹öÀüÀÌ 2.9ÀÌ»óÀÌ ¾Æ´Ï¶ó¸é ¸Þ¸ð¸®¸¦ 64MB ¹Û¿¡ ÀνÄÇÏÁö ¸øÇÏ´Â ¹®Á¦°¡ ÀÖÀ¸¹Ç·Î ¹ÙÀÌ¿À½º¸¦ ¾÷µ¥ÀÌÆ® ÇÏ´øÁö /etc/lilo.conf¿¡ append="mem=128M" ÀÌ·¸°Ô Ãß°¡ÇØ¾ß ÇÑ´Ù. </verb> <item> Hard Disk : QUANTUM FIREBALL 8.4GB <item> CD-ROM : SAMSUNG 40x <item> Network : 3Com PCI 3c905b <item> Video : RIVA TNT (16MB) <item> Sound : SoundBlaster 64PCI (es1370À¸·Î ÀâÀ¸¸é µÈ´Ù.) </itemize> <sect> ±× ¹ÛÀÇ °Íµé <p> ´ÙÀ½Àº Ä¿³Î ÇÁ·ÎÁ§Æ® ȨÀ¸·Î ¹®ÀÇÇÑ Áú¹®µéÁß ¸î°¡Áö¸¦ Ãß·Áº¸¾Ò´Ù. Á¤¸» Àâ´ÙÇÑ °ÍÀ̶ó ¼Ò°³Çϱ⠺βô·¯¿î°Íµµ ÀÖ°í ¾Ë¾ÆµÎ¸é À¯¿ëÇÑ °ÍµµÀÖÀ¸´Ï Âü°íÇϱ⠹ٶõ´Ù. <sect1> Ä¿³Î ¼Ò½ºÀÇ Å©±â´Â ¾ó¸¶³ª µÇ³ª? <p> Ãʱ⠸®´ª½º Ä¿³Î 0.01ÀÇ Å©±â°¡ 470KB¹Û¿¡ µÇÁö ¾Ê¾Ò´Âµ¥ ÇöÀç ÃֽŠ°³¹ß Ä¿³Î 2.4.0-test5ÀÇ Å©±â´Â 103MB³ª µÈ´Ù. ³î¶øÁö ¾ÊÀº°¡? <sect1> ¿Ö Ä¿³Î À̹ÌÁö¸¦ ¾ÐÃàÇϴ°¡? <p> ¿ì¸®´Â Ä¿³Î ÄÄÆÄÀÏÀ» ÇÒ ¶§ 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 ¿¡ ÀûÀçÇϰųª ¾Æ´Ï¸é Ä¿³ÎÀ» ÁÙÀÌ´Â ¼ö¹Û¿¡ ¾ø´Â °ÍÀÌ´Ù. <sect1> LILO¿¡¼­ ÃÖ´ë Ä¿³Î À̹ÌÁö °³¼ö <p> ¿©±â¿¡ ´ëÇؼ± ÀüÇô ¸ð¸£°í ÀÖ¾ú´Âµ¥ ¾î´À ³¯ 2.4.0-test1-ac18 ¹öÀüÀ» ´õ´õ¿í ÃÖÀûÈ­Çϱâ À§ÇØ Ä¿³Î ÄÄÆÄÀÏÀ» ÇÏ°í lilo.conf¿¡ À̹ÌÁö¸¦ µî·Ï½ÃÅ°°í lilo¶õ ¸í·ÉÀ¸·Î Ä¿³Î À̹ÌÁö¸¦ writeÇϴµ¥ ´ÙÀ½°ú °°Àº ¸Þ¼¼Áö°¡ ³ª¿Ô´Ù. <verb> Only 19 image names can be defined </verb> ±×¶§±îÁö ³ªÀÇ lilo.conf¿¡´Â 19°³ÀÇ Ä¿³Î À̹ÌÁö°¡ Á¤ÀǵǾîÀÖ¾ú´Âµ¥ Çϳª ´õ Ãß°¡Çؼ­ 20°³ °¡ µÇÀÚ À§¿Í °°Àº ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÑ °ÍÀ̾ú´Ù. Ä¿³Î À̹ÌÁö¸¦ 20°³ ÀÌ»ó µî·Ï(?)ÇÏÁö ¾Ê¾Ò´Ù¸é ¾Æ¸¶ ¸ô¶úÀ» °ÍÀÌ´Ù. <sect1> ½º¿ÒÆÄÀϵµ Àִµ¥ ½º¿Ò ÆÄƼ¼ÇÀ» ¾²´ÂÀÌÀ¯? <p> °á·ÐÀûÀ¸·Ð ¼Óµµ ¶§¹®ÀÌ´Ù. ½º¿ÒÆÄÀÏÀ» ¾´´Ù¸é ÆÄÀÏ¿¡ Á¢±ÙÇϱâÀ§ÇØ VFS¿Í ÆÄÀÏ ½Ã½ºÅÛ µå¶óÀ̹ö ±×¸®°í ÆÄÀÏÁ¤º¸¸¦ ´ã°íÀÖ´Â ¿©·¯ °¡Áö¸¦ Àоî¿À°í ¾µ¶§µµ ÀÏ¹Ý ÆÄÀÏÀÌ writing µÇ´Â °æ·Î¸¦ °ÅÄ¥ °ÍÀÌ´Ù. ½º¿Ò ÆÄƼ¼Ç¿¡¼­´Â À§ÀÇ °úÁ¤¾øÀÌ Æ¯Á¤ ºí·°¿¡ ¹Ù·Î Á¢±ÞÇÒ ¼ö ÀÖÀ¸¹Ç·Î ºÒ ÇÊ¿äÇÑ ¿À¹öÇìµå°¡ ¹ß»ýÇÏÁö ¾Ê¾Æ ¼Óµµ°¡ ´õ ºü¸£±â ¶§¹®ÀÌ´Ù. <sect1> ¼­ºê µð·ºÅ丮¸¦ 60000°³ ÀÌ»ó ¸¸µé°í ½Í´Ù. <p> ÇöÀç ¸®´ª½ºÀÇ ±âº» ÆÄÀÏ ½Ã½ºÅÛÀº ext2ÀÌ´Ù. (SuSE´Â Reiser ÆÄÀϽýºÅÛÀÌ´Ù.) ext2¶õ Second Extended File SystemÀÇ ¾à¾îÀ̸ç Ãʱ⠸®´ª½º ÆÄÀÏ ½Ã½ºÅÛÀ̾ú´ø MINIX¿¡¼­´Â ÃÖ´ë ÆÄÀÏÀ̸§ 14¹®ÀÚ, ÃÖ´ë ÆÄƼ¼Ç 64MB¹Û¿¡ µÇÁö ¾Ê¾Ò°í ÀÌ·± ¿©·¯ °¡Áö ¹®Á¦·Î ÆÄÀÏ ½Ã½ºÅÛÀÌ ¿À´Ã³¯ÀÇ ext2±îÁö ¹ßÀüÇÏ¿´´Ù. ext2¿¡¼­´Â 255¹®ÀÚÀÇ ÆÄÀϸí, ÃÖ´ë 2GBÀÇ ÆÄÀÏ, 4TBÀÇ µð½ºÅ© ¿ë·®À» Áö¿øÇÏ¸ç ¼­ºêµð·ºÅ丮´Â Å×½ºÆ®Çغ»°á°ú 32000°³±îÁö¸¸ ¸¸µé¾îÁ³´Ù. ´ÙÀ½À» Âü°íÇ϶ó. <code> #!/bin/sh count=70000 i=1 while [ $i -lt $count ] do mkdir $i && echo "$i" i=$(($i+1)) done </code> À§´Â ¼­ºê µð·ºÅ丮¸¦ ¸¸µé¾îÁÖ´Â shell scriptÀÌ¸ç ¼­ºê µð·ºÅ丮 À̸§Àº 1¹øºÎÅÍ count·Î ÁöÁ¤ÇÑ °ª¸¸Å­ ¸¸µé¾î ÁØ´Ù. <itemize> <item> ext2 ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ÀÇ ¼­ºê µð·ºÅ丮 »ý¼º <verb> Ä¿³Î ¹öÀü : 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³ª Â÷ÁöÇÏ¿´½À´Ï´Ù. </verb> <item> Reiser ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ÀÇ ¼­ºê µð·ºÅ丮 »ý¼º <verb> Ä¿³Î ¹öÀü : 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¸¦ Â÷ÁöÇß´Ù.) </verb> </itemize> µð·ºÅ丮 ¸µÅ©°¡ µÑ ´Ù 2Byte ¹üÀ§±îÁö Ç¥ÇöÇÒ ¼ö ÀÖ´Â °Í °°Àºµ¥ ÆÄÀÏ ½Ã½ºÅÛ¿¡ µû¶ó À§¿Í °°Àº Â÷ÀÌ°¡ ³µ´Ù. <sect1> Reiser ÆÄÀϽýºÅÛ ¸¸µé±â <p> ÇöÀç ¸®´ª½ºÀÇ ±âº» ÆÄÀÏ ½Ã½ºÅÛÀÎ ext2´Â ½Å·Ú¼º, Ãæµ¹ º¹±¸ µîÀÇ ¹®Á¦°¡ Àִµ¥ ÀÌ·± ºÎºÐµéÀ» ÇØ°á ÇÒ ¼ö ÀÖ´Â °ÍÀÌ Àú³Î¸µ ÆÄÀÏ ½Ã½ºÅÛÀÌ´Ù. Reiser ÆÄÀÏ ½Ã½ºÅÛ ¶ÇÇÑ ÀÌ·± Àú³Î¸µ ÆÄÀÏ ½Ã½ºÅÛÀÇ ÀÏÁ¾À¸·Î ÀÌ¹Ì SuSE¿¡¼­´Â ±âº» ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î Reiser¸¦ ¼±ÅÃÇÏ°í ÀÖ´Ù. ¸ÓÁö¾Ê¾Æ ¸®´ª½ºÀÇ ±âº» ÆÄÀÏ ½Ã½ºÅÛµµ Àú³Î¸µ ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î ¹Ù²ð °ÍÀÌ´Ù. <enum> <item>ÆÐÄ¡ÆÄÀÏ ¹Þ¾Æ¿À±â <verb></verb> <url url="http://devlinux.com/projects/reiserfs/"> ¶Ç´Â <url url="http://kernel.pe.kr/data.php"> ¿¡¼­ ÀÚ½ÅÀÇ ¹öÀü¿¡ ¸Â´Â ÆÐÄ¡¸¦ ¹Þ¾Æ¿Â´Ù. <item>ÆÐÄ¡¸¦ Àû¿ë½ÃŲ´Ù.(/usr/src/linux ¿¡¼­ ÆÐÄ¡ÇÑ´Ù.) <verb> # patch -p1 < ÆÐÄ¡ÆÄÀϸí (¾ÐÃàÀ» Ç®¾úÀ»¶§) ¶Ç´Â # gzip -cd ÆÐÄ¡ÆÄÀϸí.gz | patch -p1 </verb> <item>Ä¿³Î¿É¼Ç ¼±Åà <verb> Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers ¸¦ ¼±ÅÃÇÏ°í File systems ---> <*> Reiserfs support ¼±ÅÃÇÑ´Ù. </verb> <item>Ä¿³Î ÄÄÆÄÀÏ¹× ¸ðµâ ÄÄÆÄÀÏ, lilo Á¤º¸µµ °íÃÄÁØ´Ù. <item>ReiserFS À¯Æ¿ ÄÄÆÄÀÏ(mkreiserfsÀ» ¸¸µé±âÀ§ÇØ) <verb> # cd /usr/src/linux/fs/reiserfs/utils/ # make # make install </verb> <item>ReiserFS°¡ Àû¿ëµÈ Ä¿³Î À̹ÌÁö·Î ÀçºÎÆÃÇÑ´Ù. <item>ReiserFS ¸¸µé±â <verb> (/dev/hdb1 ¿¡ ¸¸µç´Ù°í °¡Á¤ÇÏ¸ç ±âÁ¸ ext2 ÆÄÀϽýºÅÛÀÇ µ¥ÀÌÅÍ´Â Áö¿öÁö¹Ç·Î ¹é¾÷ÇÏ´øÁö ¾Æ´Ô »õ Çϵ带 ´Þ¾Ò´Ù°í °¡Á¤ÇÑ´Ù.) # umount /dev/hdb1 (mount µÇ¾îÀÖÁö ¾Ê´Ù¸é ÀÌ°Ç ÇÊ¿ä¾ø´Ù.) # mkreiserfs /dev/hdb1 # mount /dev/hdb1 /TEST(mount ½Ãų µð·ºÅ丮´Â °¢ÀÚ ¾Ë¾Æ¼­..) </verb> <item>/etc/fstab ¼öÁ¤Çϱâ <verb> /dev/hdb1 /TEST reiserfs defaults 1 2 ext2¸¦ reiserfs·Î ¹Ù²Ù¸é µÈ´Ù. </verb> <item>È®ÀÎÇϱâ <verb> $ mount ... /dev/hdb1 on /TEST type reiserfs (rw) ... À§¿Í °°ÀÌ reiserfs ¶ó°í ³ª¿À¸é ¼º°ø </verb> </enum> Reiser ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¸µé°í ¸¶¿îÆ® ½ÃÅ°¸é ±âº»À¸·Î 32MBÀÇ ¿ë·®À» Àâ¾Æ¸Ô´Â´Ù. ÀÌ °ø°£¿¡´Ù°¡ ÀÚüÀûÀÎ Á¤º¸¸¦ ±â·ÏÇϹǷΠReiser ÆÄÀÏ ½Ã½ºÅÛÀ» À§Çؼ± ÃÖ¼Ò 32MBÀÌ»óÀÇ ÆÄƼ¼ÇÀ» ÇÊ¿ä·Î ÇÑ´Ù.(³ªÀÇ /boot ÆÄƼ¼ÇÀº 16MB¿©¼­ reiserfs¸¦ Àû¿ë½ÃÅ°Áö ¸øÇÏ¿´´Ù.) <sect1> Ä¿³Î 2.4.0-test¹öÀü¿¡¼­ X 4.0À» ¾²°í½Í´Ù.(RIVA TNT) <p> ÇöÀç nVidia¿¡¼­ ³ª¿À´Â X 4.0 µå¶óÀ̹öµéÀº Ä¿³Î 2.2.xÀÇ ¾ÈÁ¤¹öÀü¿¡¸¸ Àû¿ëµÈ´Ù. °³¹ß¹öÀü¿¡ Àû¿ë½Ãų·Á¸é <url url="http://www.darkrock.co.uk/nv/">¿¡¼­ NVIDIA_kernel-0.9-2.3.x.tar.gz¸¦ ¹Þ¾Æ ÄÄÆÄÀÏ ÇؾßÇÑ´Ù.(Å×½ºÆ®Çغ» °á°ú Ä¿³Î 2.4.0-test1-ac18±îÁö¸¸ Àû¿ëµÈ´Ù.) <sect1> Ä¿³Î ¹öÀüÀ» ¾î¶»°Ô ¹Ù²Ù´Â°¡? <p> ¾î¶² Çб³ÀÇ Àü»ê°ü·Ã °ú¸ñ ¸®Æ÷Æ®ÀÎÁö ÀÌ·± Áú¹®À» ¸¹ÀÌ ¹Þ¾Ò´Ù. Ä¿³Î ¹öÀü¸¸À» °¡Â¥·Î ¹Ù²Ü·Á´Â ÀÌÀ¯¸¦ ¸ð¸£°Ú´Ù. <code> # 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´Â ÀÚµ¿À¸·Î ¹Ù²ï´Ù. </code> ÀÌ µÎ ÆÄÀϵéÀ» ¿øÇÏ´Â ¹öÀüÀ¸·Î ¹Ù²Ù°í ÄÄÆÄÀÏ ÇÏ¸é µÈ´Ù. À߸ø ¹Ù²Ù¾î¼­ Ä¿³Î ¹öÀüÀÌ ¸ÂÁö ¾ÊÀ» °æ¿ì System.map¿¡¼­ ¹öÀüÀÌ Æ²¸®´Ù°í ¸Þ¼¼Áö¸¦ º¸³¾ °ÍÀÌ´Ù. ±×·² °æ¿ì ÇØ´ç Ä¿³Î À̹ÌÁöÀÇ System.mapÀ» ¾ø¾Ö¹ö·Áµµ ¹«°üÇÏ´Ù. (System.mapÀÌ ¾ø´Ù¸é ¾îµð¼­ ¹®Á¦°¡ ¹ß»ýÇß´ÂÁö ¾Ë ¼ö ¾øÀ» °ÍÀÌ´Ù.) <sect1> CPUÀÇ Á¤º¸¸¦ ¹Ù²Ù°í ½Í´Ù, Bogo Mips¸¦ ³ôÀÌ°í ½Í´Ù <p> ÀÌ°Ç ±×³É ³»°¡ ÇÏ°í ½Í¾î¼­ ÇغôÙ. <verb> # vi /usr/src/linux/arch/i386/kernel/setup.c $ cat /proc/cpuinfo Á¤º¸¸¦ °íÃÄÁØ´Ù. # vi /usr/src/linux/init/main.c $ dmesg ÀÇ º¸°í ¹Ó½º¸¦ °íÃÄÁØ´Ù. </verb> À§ µÎ ÆÄÀÏÀ» ¿øÇÏ´Â ´ë·Î °íÄ¡¸é µÈ´Ù. ¾à°£ÀÇ C ÇÁ·Î±×·¡¹Ö¸¸ ÇÒ ¼ö ÀÖ´Ù¸é ½±°Ô ¿øÇϴ´ë·Î ¹Ù²Ü ¼ö ÀÖÀ»°ÍÀÌ´Ù. <sect1> KERNEL32.DLL¿¡¼­ À߸øµÈ ¿¬»ê¼öÇà!? <p> À§¿Í °°Àº Áú¹®À» ÇϽô ºÐµéÀÌ °¡²û °è½Åµ¥ MS-WINDOWS Ä¿³ÎÀ» ¾î¶»°Ô ¼Õº¼ ¼ö Àְڴ°¡? (°Ë»ö¿£Áø¿¡¼­ kernel·Î °Ë»öÇؼ­ Ä¿³Î ÇÁ·ÎÁ§Æ® ȨÀ¸·Î µé¾î¿Ô´Ù´õ±º¿ä.) ¼ºÀÇ´Â ´ë´ÜÇϳª ´ÜÁö ¼Õ»ó ¾ÈµÈ ´Ù¸¥ KERNEL32.DLLÀ» Ä«ÇÇÇ϶ó°í ÇÒ ¼ö¹Û¿¡... </article>