Emiliano Ariel Lesendeµé¾î °¡´Â ±Û¸®´ª½º : ÀÎÅͳÝ
|
Ä¿³ÎÀÇ ºñ¹Ð¿ä¾à: ¸®´ª½º Ä¿³Î¿¡ ´ëÇØ Âª°Ô »ìÆ캾´Ï´Ù. µé¾î °¡´Â ±Û'¸®´ª½º Ä¿³ÎÀÇ ºñ¹Ð'¿¡ °üÇÑ ±â»ç ½Ã¸®ÁîÀÇ Ã³À½ ±Û¿¡ ¿Â °É ȯ¿µÇÑ´Ù. ¾Æ¸¶ ´ç½ÅÀº ¸®´ª½º Ä¿³Î ¼Ò½º¸¦ ÀÌ¹Ì º» ÀûÀÌ ÀÖÀ» °ÍÀÌ´Ù. ºÃ´Ù¸é óÀ½ ¾ÐÃàÇؼ 100-kb¿´´ø ÆÄÀÏÀÌ Áö±ÝÀº 300 °³°¡ ³Ñ´Â ÆÄÀÏÀÌ ÀÖ°í, ¼Ò½º ÄÚµå´Â 200¸¸ ÁÙÀÌ ³Ñ°í, ¾ÐÃàÀ» Çؼ 9¸Þ°¡ ÀÌ»óÀ̶õ °ÍÀ» ¾Ë °ÍÀÌ´Ù. ÀÌ ½Ã¸®Áî´Â Ãʺ¸ÀÚ¸¦ À§ÇÑ ±ÛÀÌ ¾Æ´Ï°í, °æÇèÀÌ ¸¹Àº ÇÁ·Î±×·¡¸Ó¸¦ À§ÇÑ ±ÛÀÌ´Ù. ÀÌ ±ÛÀ» Àд °ÍÀº ÀÚÀ¯ÀÌ´Ù. ¶ÇÇÑ, Áú¹®À» E-mail·Î º¸³»¸é ÃÖ´ëÇÑ ³ë·ÂÀ» ÇÏ¿© ´äº¯ÇÒ °ÍÀÌ´Ù. ¸ÅÀÏ »õ·Î¿î ¹ö±×°¡ ¹ß°ßµÇ°í, ±×¿¡ µû¸¥ ÆÐÄ¡°¡ °è¼Ó ³ª¿Â´Ù. ÇöÁ¦¿¡´Â ¼Ò½º ÄÚµå Àüü¸¦ ÀÌÇØÇÑ´Ù´Â °ÍÀº °ÅÀÇ ºÒ°¡´ÉÇÏ´Ù. ¸Å¿ì ¸¹Àº ÇÁ·Î±×·¡¸Ó¿¡ ÀÇÇؼ ÀÛ¼ºµÇ´Âµ¥ ÃÖ´ëÇÑ °°Àº ÄÚµù ½ºÅ¸ÀÏ·Î ÄÚµùÀ» ÇÏ·Á°í ÇÑ´Ù. ÇÏÁö¸¸ ÄÚµù ½ºÅ¸ÀÏÀº ¼·Î ´Ù¸£´Ù. Linux: The Internet Operating System¸®´ª½º´Â ÀÎÅͳÝÀ» ÅëÇؼ ÀÚÀ¯·Ó°Ô ¹èÆ÷µÇ´Â, PC¿Í ´Ù¸¥ ¾ÆÅ°ÅØÃĸ¦ À§ÇÑ ¿î¿µ üÁ¦ÀÌ´Ù. POSIX 1003.1°ú ȣȯÀÌ µÇ¸ç Unix System V¿Í BSD 4.3ÀÇ ¸¹Àº Ư¡µéÀ» °¡Áö°í ÀÖ´Ù. ÀÌ ½Ã¸®Áî¿¡¼ »ìÆì º¼ Ä¿³Î ¼Ò½º´Â ´ëºÎºÐ Çʶõµå ´ëÇлýÀÌ´ø Linus Torvalds¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾ú´Ù. Ä¿³ÎÀº óÀ½ 1991³â 11¿ù¿¡ ¹ßÇ¥µÇ¾ú´Ù. Ư¡µé¸®´ª½º´Â ÇöÀç Unix ȯ°æÀÇ ¿î¿µ üÁ¦ÀÇ Æ¯Â¡À» °ÅÀÇ ¸ðµÎ ±¸ÇöÇß´Ù.
Ä¿³Î ÄÄÆÄÀÏ ÇϱâÄ¿³Î ÀÚü¸¦ °øºÎÇϱâ Àü¿¡ ÀÏ´Ü Ä¿³Î ¼Ò½º¸¦ º¸ÀÚ. ¼Ò½º Æ®¸® ±¸Á¶: ¸®´ª½º Ä¿³Î ¼Ò½º´Â º¸Åë /usr/src/linux/ µð·ºÅ͸®¿¡ Á¸ÀçÇÑ´Ù. µÚ¿¡¼ ³ª¿À´Â ¸ðµç µð·ºÅ͸®´Â À§ÀÇ µð·ºÅ͸® ¹Ø¿¡ ÀÖ´Â µð·ºÅ͸®ÀÌ´Ù. Ä¿³Î ¹öÀü 1.0 ÀÌÈĺÎÅÍ´Â ºñÀÎÅÚ °è¿ ¾ÆÅ°ÅØó·Î Æ÷ÆÃÀÌ ÀÌ·ç¾î Á³À¸¹Ç·Î ¼Ò½º Æ®¸® ±¸Á¶¿¡ ¾à°£ÀÇ º¯È°¡ »ý°å´Ù. ¾ÆÅ°ÅØÃÄ¿¡ ÀÇÁ¸ÀûÀÎ ÄÚµåµéÀº arch ¿¡ ÀÖ´Ù. Inter °è¿ÀÇ ÇÁ·Î¼¼¼¸¦ À§ÇÑ ÄÚµå´Â arch/i386/¿¡ ÀÖ°í, arch/mips/´Â MIPS¸¦ ±âÃÊÇÑ ½Ã½ºÅÛÀ» À§ÇÑ µð·ºÅ͸®ÀÌ°í, arch/sparc/´Â Sparc¿¡ ±âÃÊÇÑ ½Ã½ºÅÛÀ» À§ÇÑ µð·ºÅ͸®ÀÌ°í arch/ppc/´Â PowerPS³ª Powermacintosh ¸¦ À§ÇÑ µð·ºÅ͸®ÀÌ´Ù. Intel ¾ÆÅ°ÅØó°¡ °¡Àå ¸®´ª½º¿Í °¡Àå ³Î¸® ¾²À̹ǷΠ¿ì¸®´Â Intel ¾ÆÅ°ÅØó¸¸À» º¸µµ·Ï ÇÑ´Ù. ¸®´ª½º Ä¿³ÎÀº ´Ü¼øÈ÷ C ÇÁ·Î±×·¥ÀÏ »ÓÀÌ´Ù. µÎ °¡Áö Â÷ÀÌÁ¡ÀÌ ÀÖÀ» »ÓÀÌ´Ù. º¸Åë C·Î Â¥¿©Áø ÇÁ·Î±×·¥Àº main(int argc, char **argv)·Î ºÎÅÍ ½ÃÀÛÀ» ÇÏÁö¸¸ ¸®´ª½º Ä¿³ÎÀº start_kernel(void)·Î ºÎÅÍ ½ÃÀÛÀ» ÇÑ´Ù. ½Ã½ºÅÛÀÌ ½ÃÀÛÇÏ°í Ä¿³ÎÀÌ ÀûÀçµÉ ¶§ ÇÁ·Î±×·¥ ȯ°æÀº Á¸ÀçÇÏÁö ¾Ê´Â´Ù. ÀÌ°ÍÀº C ·çƾÀÌ Ã³À½ ½ÇÇàµÉ ¶§ ¹«¾ð°¡°¡ ¼±ÇàµÇ¾î¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. arch/i386/asm/¿¡ ÀÖ´Â ¾î¼Àºí¸® Äڵ尡 À̸¦ ÇÑ´Ù. ¾î¼Àºí¸® ·çƾÀº Ä¿³ÎÀ» ¸Þ¸ð¸®ÀÇ Àý´ëÁÖ¼Ò 0x100000(1 Mbyte)·Î ¿Å±â°í, ÀÎÅÍ·´Æ® ¼ºñ½º ·çƾ°ú Global file descripter Table°ú Interrupt descriptor Table À» ¼³Ä¡ÇÑ´Ù. ÀÌ ¼ø°£ºÎÅÍ ÇÁ·Î¼¼¼´Â º¸È£¸ðµå·Î ÀüȯµÈ´Ù. init/ µð·ºÅ͸®´Â Ä¿³ÎÀ» ÃʱâÈÇϴµ¥ ÇÊ¿äÇÑ °ÍµéÀ» °¡Áö°í ÀÖ´Ù. ¿©±â¿¡´Â start_kernel()µµ Àִµ¥ ÀÌ´Â Ä¿³ÎÀ» ÀûÀýÈ÷ ÃʱâÈ ÇÏ°í, ºÎÆ® ÆĶó¹ÌÅÍ·Î ³Ñ¾î ¿Â °ÍµéÀ» Æ÷ÇÔÇÑ´Ù. óÀ½À¸·Î ¸¸µé¾î Áö´Â ÇÁ·Î¼¼½º´Â system callÀ» »ç¿ëÇÏÁö ¾Ê°í »ý¼ºµÈ´Ù(½Ã½ºÅÛ ÀÚüµµ ¾ÆÁ÷ ÀûÀçµÇ¾î ÀÖÁö ¾Ê´Ù.). ÀÌ°ÍÀÌ ¹Ù·Î À¯¸íÇÑ idle processÀÌ°í, ¾î¶°ÇÑ ÇÁ·Î¼¼½ºµµ ½ÇÇàµÇÁö ¾ÊÀ» ¶§ ÀÌ ÇÁ·Î¼¼½º°¡ ½ÇÇàµÇ°Ô µÈ´Ù. kernel/¿Í arch/i386/kernel/ µð·ºÅ͸®´Â À̸§¿¡¼µµ ¾Ë ¼ö ÀÖµíÀÌ Ä¿³Î¿¡¼ °¡Àå Áß¿äÇÑ ºÎºÐÀ» ´ã°í ÀÖ´Ù. Áß¿äÇÑ system callµéÀÌ ¿©±â¿¡ ÀÖ´Ù. time handler¿Í ½ºÄÉÁÙ·¯, DMA manager, interrupt handler, signal controller µîÀÌ ±¸ÇöµÇ¾î ÀÖ´Ù. ½Ã½ºÅÛ ¸Þ¸ð¸®¿¡ °ü·ÃµÈ ¼Ò½º ÄÚµå´Â mm/¿Í arch/i386/mm/¿¡ ÀÖ´Ù. ¿©±â¿¡´Â ÇÁ·Î¼¼½º¿¡ ¸Þ¸ð¸®¸¦ ÇÒ´çÇÏ°í ÇØÁ¦ÇÏ´Â µîÀÇ ÀÏÀ» ÇÏ´Â Äڵ尡 ±¸ÇöµÇ¾î ÀÖ´Ù. ¶ÇÇÑ ¸Þ¸ð¸® ÆäÀÌ¡¿¡ °üÇÑ °Íµµ ¿©±â¿¡ ±¸ÇöµÇ¾î ÀÖ´Ù. Virtual File System(vfs)´Â fs/¿¡ ÀÖ´Ù. Áö¿øµÇ´Â °¢°¢ÀÇ ÆÄÀÏ ½Ã½ºÅÛ Çü½ÄÀº °¢°¢ ¼ºê µð·ºÅ͸®¿¡ ÀÖ´Ù. °¡Àå Áß¿äÇÑ ÆÄÀÏ ½Ã½ºÅÛÀº Ext2¿Í Proc ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î ´ÙÀ½¿¡ ´õ¿í ÀÚ¼¼ÇÏ°Ô ¾Ë¾Æ º¼ °ÍÀÌ´Ù. ¸ðµç ¿î¿µ üÁ¦´Â Çϵå¿þ¾î¸¦ À§Çؼ µå¶óÀ̹ö°¡ ÇÊ¿äÇÏ´Ù. ¸®´ª½º¿¡¼´Â drivers/¿¡ µå¶óÀ̹ö¿¡ °üÇÑ Äڵ尡 ÀÖ´Ù. ipc/¿¡¼´Â ¸®´ª½º¿¡¼ ±¸ÇöÇÑ System V IPC¿¡ °üÇÑ Äڵ带 º¼ ¼ö ÀÖ´Ù. ´Ù¾çÇÑ ³×Æ®¿÷ ÇÁ·ÎÅäÄÝ°ú socket , internet domain µîÀº net/¿¡¼ º¼ ¼ö ÀÖ´Ù. Ç¥ÁØ C ·çƾÀÇ ÀϺδ Ŀ³Î ÀÚü°¡ C ÇÁ·Î±×·¡¹ÖÀ» »ç¿ëÇϱâ À§Çؼ lib/¿¡ ±¸ÇöµÇ¾î ÀÖ´Ù. Ä¿³Î ÄÄÆÄÀÏ µµÁß ¸¸µé¾îÁø ¸ðµâµéÀº modules/¿¡ ÀÖÁö¸¸, Ä¿³Î ÄÄÆÄÀÏÀ» óÀ½ Çϱâ Àü±îÁö´Â ±× ¾È¿¡´Â ¾Æ¹«°Íµµ ¾øÀ» °ÍÀÌ´Ù. ÇÁ·Î±×·¡¸Ó¿¡°Ô °¡Àå ¸¹ÀÌ »ç¿ëµÇ´Â µð·ºÅ͸®ÀÎ include/¿¡´Â Ä¿³ÎÀÌ »ç¿ëÇÏ´Â ¸ðµç Çì´õ ÆÄÀÏ µéÀÌ ÀÖ´Ù. ÀÎÅÚ Ç÷§Æû¿¡ °ü·ÃµÈ Çì´õ ÆÄÀÏÀº include/asm-386/¿¡ ÀÖ´Ù. ÄÄÆÄÀÏ Çϱâ: »õ·Î¿î Ä¿³ÎÀº º¸Åë ´ÙÀ½°ú °°Àº ¼¼ °¡Áö ´Ü°è¸¦ °ÅÃļ ¸¸µé¾î Áø´Ù:
´ÙÀ½ ±â»ç¿¡¼ ¿ì¸®´Â ÀÌ·¯ÇÑ ½ºÅ©¸³Æ®°¡ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö¿Í »õ·Î¿î ¿É¼ÇÀ» ¸¸µé±â À§Çؼ ¾î¶»°Ô ¼öÁ¤ÇØ¾ß ÇÏ´ÂÁö µîÀ» ÀÚ¼¼ÇÏ°Ô ¹è¿ï °ÍÀÌ´Ù. ÇÊÀÚ´Â µ¶ÀÚ°¡ ÀÌ ±ÛÀ» Áñ°åÀ¸¸é ÇÏ´Â ¹ÙÀÌ´Ù. ´ç½ÅÀÇ Á¶¾ðÀ̳ª Ãæ°í ȤÀº ºñÆò µîÀÌ ´ã±ä ¸ÞÀÏÀº ¾ðÁ¦³ª ȯ¿µÀÌ´Ù. elesende@nextwork.netÀ¸·Î º¸³»¸é µÈ´Ù.
´õ ¾Ë°í ½ÍÀ¸½Å ºÐÀº:
¹ø¿ª : ÇãÁ¤¼ö |
º» À¥»çÀÌÆ®´Â Miguel Angel Sepulveda¾¾¿¡ ÀÇÇØ °ü¸®µË´Ï´Ù. ©Emiliano Ariel Lesende 1998 LinuxFocus 1998 |