· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Ç÷¡½Ã¸Þ¸ð¸® »ç¿ëÇϱâ

uClinux »ó¿¡¼­ Ç÷¡½Ã ¸Þ¸ð¸® »ç¿ëÇϱâ

ÀúÀÚ: Greg Ungerer Mgerg@snapgear.com
¹ø¿ª: ±è³²Çü Mnamhyung@gmail.com



1. ¼Ò°³

ÀÌ ¹®¼­´Â Ç÷¡½Ã ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ¿© ºÎÆÃÇÏ°í µ¿ÀÛÇÏ´Â uClinux ½Ã½ºÅÛÀ» ±¸ÃàÇÏ´Â À̷аú ¹æ¹ý¿¡ ´ëÇؼ­ ¼³¸íÇÑ´Ù. ÀÌ ¹®¼­ÀÇ ´ëºÎºÐÀº ÇÁ·Î¼¼¼­¿¡ µ¶¸³ÀûÀÌ´Ù.

¸ÕÀú Ç÷¡½Ã ¸Þ¸ð¸®¿¡ ´ëÇؼ­ °£·«È÷ ¼Ò°³ÇÏ°í uClinux ½Ã½ºÅÛÀÇ ¿©·¯ ¿ä¼ÒµéÀ» Ç÷¡½Ã ¸Þ¸ð¸® »ó¿¡ ¿Ã¸± ¼ö ÀÖ´Â ¿©·¯ ¹æ¹ýµéÀ» ¼³¸íÇÒ °ÍÀÌ´Ù. ±×¸®°í´Â Ä¿³Î µå¶óÀ̹ö ¼³Á¤°ú ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀÇ ¼±Åÿ¡ ´ëÇÑ ºÎºÐÀ» ¼³¸íÇϵµ·Ï ÇÏ°Ú´Ù.

ºñ·Ï Ç÷¡½Ã ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â °Í¿¡ ÃÊÁ¡À» µÎ¾úÁö¸¸, ´ëºÎºÐÀÇ ¾ÆÀ̵ð¾î´Â ROM ¿¡µµ µ¿ÀÏÇÏ°Ô Àû¿ëµÉ ¼ö ÀÖ´Ù. You just won't have the ability to update it in circuit, or to run read/write filesystem with standard ROM devices.

¿©±â¼­´Â »ó¼¼ÇÑ ºÎºÐ±îÁö »ìÆ캼 ¼ö ÀÖµµ·Ï ½ÇÁ¦·Î »ç¿ëµÉ ¼ö ÀÖ´Â ¿¹Á¦¸¦ °¡Áö°í ¼³¸íÇÒ °ÍÀÌ´Ù. ÀÌ ¹®¼­¸¦ ÀÐÀº ÈÄ¿¡´Â Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ ÀåÁ¡À» È°¿ëÇÑ uClinux ½Ã½ºÅÛÀ» ºôµåÇÏ´Â ¹æ¹ýÀ» ÀÌÇØÇÏ°í ±×¿¡ µû¸¥ ¿©·¯°¡Áö ¼±ÅÃÀÇ ¹®Á¦¿Í °¢°¢ÀÇ Àå´ÜÁ¡À» ÀÌÇØÇÒ ¼ö ÀÖ±æ ±â´ëÇÑ´Ù.


2. Ç÷¡½Ã ¸Þ¸ð¸®

Áö³­ 20³â°£, ROM (±×¸®°í EPROM) ÀÌ ÀÓº£µðµå ½Ã½ºÅÛ¿¡¼­ »ç¿ëµÇ´Â ºñÈֹ߼º ¸Þ¸ð¸®ÀÇ Áß½ÉÀ̾ú´Ù. ÇÏÁö¸¸ ÃÖ±ÙÀÇ ÀÓº£µðµå ½Ã½ºÅÛ¿¡¼­´Â Ç÷¡½Ã ¸Þ¸ð¸®°¡ ÁÖ·Î »ç¿ëµÈ´Ù.

Ç÷¡½Ã ¸Þ¸ð¸®´Â ±âº»ÀûÀ¸·Î NOR ¿Í NAND (±× ¿Ü¿¡µµ AND ¿Í °°Àº º¯Á¾ÀÌ Á¸ÀçÇÏÁö¸¸ ¿©±â¼­´Â ´Ù·çÁö ¾Ê°Ú´Ù)ÀÇ µÎ°¡Áö Á¾·ù°¡ ÀÖ´Ù.

NOR Ç÷¡½Ã¸¦ Àд °ÍÀº ±âº»ÀûÀ¸·Î SRAM À» Àд °Í°ú µ¿ÀÏÇϹǷΠ¸ðµç ÁÖ¼Ò °ø°£¿¡ Á¢±ÙÇÒ ¼ö ÀÖ°í, ÀÓÀÇÀÇ ¿µ¿ªÀÇ °ªÀ» Àоî¿Ã ¼ö ÀÖ´Ù. ¶ÇÇÑ NOR Ç÷¡½ÃÀÇ Äڵ带 Á÷Á¢ ½ÇÇà½Ãų ¼öµµ ÀÖ´Ù (Execute-In-Place ȤÀº XIP ¶ó°í ÇÑ´Ù). ³» »ý°¢À¸·Î´Â ÀÌ·¯ÇÑ ±â´É ¶§¹®¿¡ ÀÛÀº ÀÓº£µðµå ½Ã½ºÅÛ¿¡¼­ NOR Ç÷¡½Ã°¡ ÁÖ·Î »ç¿ëµÇ´Â °Í °°´Ù. ¸ðµç ÄÚµå´Â ÀáÀçÀûÀ¸·Î Ç÷¡½Ã ¸Þ¸ð¸® »ó¿¡¼­ Á÷Á¢ ½ÇÇàµÉ ¼ö Àֱ⠶§¹®¿¡ RAM »ç¿ë·®À» ÁÙÀÏ ¼ö ÀÖ´Ù. NOR Ç÷¡½Ã¸¦ »ý»êÇÏ´Â ¾÷ü´Â »ï¼º, Intel, AMD, Fujitsu, Toshiba µîÀÌ ÀÖ´Ù. NOR Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ ¿ë·®Àº ÀϹÝÀûÀ¸·Î ¼ö½Ê KB ¿¡¼­ 64MB ±îÁöÀÌ´Ù.

ÀϹÝÀûÀ¸·Î NAND Ç÷¡½Ã´Â ºí·° ´ÜÀ§·Î ÀÐÀ¸¹Ç·Î ÀϹÝÀûÀÎ RAM °ú´Â ´Ù¸£´Ù. ±×º¸´Ù 512 ´ÜÀ§ÀÇ ºí·° Å©±â¸¦ °¡Áö´Â ÇÏµå µå¶óÀ̺ê¿Í ºñ½ÁÇÏ´Ù. NAND Ç÷¡½Ã¸¦ ºñÆ® ´ÜÀ§·Î Á¶ÀÛÇÏ¸é ´õ ºü¸£°í °£´ÜÇÏ°ÚÁö¸¸, ºñÆ® ´ÜÀ§·Î Á¶ÀÛÇÏ´Â °ÍÀº ¿¡·¯°¡ ¹ß»ýÇÒ È®·üÀÌ ³ô±â ¶§¹®¿¡ ¼ÒÇÁÆ®¿þ¾îÀûÀ¸·Î ¹èµå ºí·°À» ó¸®ÇØ¾ß ÇÑ´Ù. NAND Ç÷¡½Ã¿¡¼­´Â Á÷Á¢ Äڵ带 ½ÇÇàÇÒ ¼ö ¾ø´Ù. NAND Ç÷¡½Ã¸¦ ÀÌ¿ëÇÑ ÀåÄ¡ ÁßÀÇ Èï¹Ì·Î¿î °ÍÀº M-System ÀÇ DiskOnChip ÀåÄ¡ÀÌ´Ù. ÀÌ ÀåÄ¡´Â ³»ºÎÀûÀ¸·Î NAND Ç÷¡½Ã¸¦ ÀÌ¿ëÇÏ°í ¿¡·¯ ÀÎ½Ä ¹× ¼öÁ¤À» À§ÇÑ ·ÎÁ÷À» Æ÷ÇÔÇÏ¸ç ¿ÜºÎ CPU Á¢±ÙÀ» ¿ëÀÌÇÏ°Ô ÇÏ¿´´Ù. À̸§ ¶§¹®¿¡ È¥¶õ½º·¯¿ö ÇÏÁö ¾Ê±æ ¹Ù¶õ´Ù. ÀÌ ÀåÄ¡ÀÇ ÀÎÅÍÆäÀ̽º´Â ÀÏ¹Ý ÇÏµå µð½ºÅ© µå¶óÀ̺ê¿Í ´Ù¸£Áö ¾Ê´Ù. NAND Ç÷¡½Ã¸¦ »ý»êÇÏ´Â ¾÷ü´Â »ï¼º, Toshiba À¸·Î À̵éÀº M-System ÀÇ DiskOnChip ÀåÄ¡ÀÇ NAND Ç÷¡½Ãµµ °ø±ÞÇÑ´Ù. NAND Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ ¿ë·®Àº ÀϹÝÀûÀ¸·Î 8MB ¿¡¼­ 1GB ±îÁöÀÌ´Ù.

Ç÷¡½Ã ¸Þ¸ð¸®¿¡ µ¥ÀÌÅ͸¦ ¾²´Â °ÍÀº ÀϹÝÀûÀº RAM ¿¡ ¾²´Â °Í°ú´Â ´Ù¸£´Ù. NOR ¿Í NAND Ç÷¡½Ã ¸ðµÎ µ¥ÀÌÅ͸¦ ¾²±âÀü¿¡ ÀûÀýÇÑ Ã³¸®¸¦ ÇÏ´Â °úÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. ¾²±â ÀÛ¾÷Àº ´ëºÎºÐ ¸ÕÀú Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ Æ¯Á¤ ºÎºÐÀ» »èÁ¦ÇÏ´Â °úÁ¤À» Æ÷ÇÔÇÑ´Ù.

¸ðµç Ç÷¡½Ã ¸Þ¸ð¸®´Â ºí·° ȤÀº ¼¼±×¸ÕÆ® (Á»´õ Á¤È®È÷ ¸»ÇÏ¸é »èÁ¦ ¼¼±×¸ÕÆ® (erase segment)) ¶ó´Â Çü½ÄÀ¸·Î ±¸¼ºµÈ´Ù. ÀÌ°ÍÀº Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ ³»¿ëÀ» Áö¿ï ¼ö ÀÖ´Â ÃÖ¼Ò ´ÜÀ§ÀÌ´Ù. ´Ü¼øÈ÷ ÇÑ ¹ÙÀÌÆ® ȤÀº ¸î ¹ÙÀÌÆ®ÀÇ µ¥ÀÌÅ͸¸À» Áö¿ï ¼ö´Â ¾ø´Ù. ºí·°ÀÇ Å©±â´Â ÀåÄ¡¿¡ µû¶ó ´Ù¸£´Ù. ÀϹÝÀûÀÎ Å©±â´Â 16KB ³ª 128KB ÀÌ´Ù. »èÁ¦ ¿¬»êÀº Ç÷¡½Ã ¸Þ¸ð¸® ºí·° ³»ÀÇ ¸ðµç ºñÆ®ÀÇ °ªÀ» "1" ·Î ¸¸µç´Ù.

µ¥ÀÌÅ͸¦ ¾²´Â ÀÛ¾÷Àº ½ÇÁ¦·Î °¢ ºñÆ®ÀÇ °ªÀ» "0" À¸·Î ¹Ù²Ù´øÁö ¾Æ´Ï¸é ±×´ë·Î "1" ·Î µÎ´Â ÀÏÀ» ÇÑ´Ù. ±×·¡¼­ ±âº»ÀûÀ¸·Î´Â ¿øÇÏ´Â ¸ðµç °÷¿¡ ¾²±â ¿¬»êÀ» ¼öÇàÇÒ ¼ö´Â ÀÖ´Ù°í Çصµ »èÁ¦ ¿¬»êÀ» ¼öÇàÇÏÁö ¾Ê°í "0" °ªÀ» °¡Áö´Â ºñÆ®¸¦ "1" ·Î ¾µ ¼ö´Â ¾ø´Ù.

µû¶ó¼­ ÀϹÝÀûÀ¸·Î Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ ³»¿ëÀ» ¹Ù²Ù°í ½ÍÀº °æ¿ì¿¡´Â ¸ÕÀú »èÁ¦ ¿¬»êÀ» ¼öÇàÇÑ ÈÄ¿¡ ¾²±â ¿¬»êÀ» ¼öÇàÇÑ´Ù. ¿©±â¿¡´Â ÇÑ°¡Áö °í·ÁÇØ¾ß ÇÒ »çÇ×ÀÌ ÀÖ´Ù. ÀÌ°ÍÀº Ç÷¡½Ã ¸Þ¸ð¸® ÆÄÀÏ ½Ã½ºÅÛÀÇ Àбâ/¾²±â ¿¬»êÀ» ¼öÇàÇÏ´Â °æ¿ì¿¡ º¼ ¼ö ÀÖ´Ù.

Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ ¼ö¸íÀº ÀϹÝÀûÀ¸·Î »èÁ¦ ¿¬»êÀÌ ¼öÇàµÈ Ƚ¼ö·Î °è»êÇÑ´Ù. Á¤È®ÇÑ ¼ö´Â ÀåÄ¡¿¡ µû¶ó ´Ù¸£Áö¸¸ ÀϹÝÀûÀ¸·Î 10,000 ¹ø¿¡¼­ 1,000,000 »çÀÌÀÇ °ªÀ» °¡Áø´Ù. ½ÇÁ¦·Î Ç÷¡½Ã ¸Þ¸ð¸® ºí·°¿¡ ¾ó¸¶³ª ÀÚÁÖ »èÁ¦/¾²±â ¿¬»êÀÌ ¼öÇàµÇ´ÂÁö ÁÖÀDZíÀº °ü½ÉÀ» ±â¿ïÀÏ ÇÊ¿ä°¡ ÀÖ´Ù. ÀÌ°ÍÀº Ç÷¡½Ã ¸Þ¸ð¸® »ó¿¡ Àбâ/¾²±â ¿¬»êÀ» Áö¿øÇÏ´Â ÆÄÀÏ ½Ã½ºÅÛÀ» ¿Ã¸° °æ¿ì¿¡´Â ƯÈ÷ Áß¿äÇÏ´Ù.

¿©±â¼­´Â ÁÖ·Î NOR Ç÷¡½Ã¿¡ ´ëÇØ ´Ù·çµµ·Ï ÇÏ°Ú´Ù. NOR Ç÷¡½Ã´Â ÀÛÀº ½Ã½ºÅÛ¿¡¼­ ¸¹ÀÌ »ç¿ëµÇ¸ç uClinux ½Ã½ºÅÛ¿¡¼­ ÁÖ·Î ÀÌ¿ëµÇ´Â Ç÷¡½Ã ¸Þ¸ð¸®À̱⠶§¹®ÀÌ´Ù.


3. ½Ã½ºÅÛ

ÀÓº£µðµå ½Ã½ºÅÛ³»¿¡ Æ÷ÇԵǴ Ç÷¡½Ã¿Í RAM ÀÇ ¿ë·®¿¡´Â ¾ðÁ¦³ª trade-off °¡ ÀÖ´Ù. ÁÖ·Î °¡°ÝÀ» ¸ÕÀú °í·ÁÇÏ°Ô µÇ´Âµ¥, ÀϹÝÀûÀ¸·Î Ç÷¡½Ã ¸Þ¸ð¸®°¡ RAM º¸´Ù ºñ½Î´Ù. ¸¶Áö¸·À¸·Î´Â ½Ã½ºÅÛÀÇ ¼¼ºÎÀûÀÎ ¿ä±¸»çÇ׿¡ µû¸¥ ¸Þ¸ð¸®ÀÇ Å©±â°¡ °áÁ¤µÈ´Ù.

Ç÷¡½Ã ¸Þ¸ð¸®´Â ½Ã½ºÅÛÀÇ ÄÚµå¿Í µ¥ÀÌÅ͸¦ ÀúÀåÇÏ°í Àü¿øÀÌ ÄÑÁ³À» ¶§ ½Ã½ºÅÛÀÌ ¼öÇàµÇ´Â ÀåÄ¡ÀÌ°í uClinux ÀÇ ÀåÄ¡µéÀÌ ÆÄÀÏÀ» ÀúÀåÇÏ´Â ÁÖ ÀúÀå ÀåÄ¡ÀÌ´Ù.

¾ÆÁÖ °£´ÜÇÑ ¹æ½ÄÀ¸·Î, ÇÁ·Î¼¼¼­°¡ ½ÃÀ۵Ǵ À§Ä¡¿¡ uClinux ÀÇ ½ÃÀÛ Äڵ带 ÀúÀåÇØ µÎ°í Ç÷¡½Ã ¸Þ¸ð¸®¸¦ ÇϳªÀÇ Ä¿´Ù¶õ ÀúÀå °ø°£À¸·Î¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

´Ù¸¥ ¹æ½ÄÀ¸·Î´Â, Ç÷¡½Ã ¸Þ¸ð¸®¸¦ ºÐ¸®µÈ ¿µ¿ªÀÇ ÆÄƼ¼ÇÀ¸·Î ³ª´©´Â °ÍÀÌ Æí¸®ÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº µð½ºÅ© µå¶óÀ̺ê ÆÄƼ¼ÇÀÇ °³³ä°ú µ¿ÀÏÇÏÁö¸¸ ´õ ´Ü¼øÇÏ°í ÀÛÀº Å©±â¸¦ °¡Áø´Ù. ÀϹÝÀûÀÎ Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ ÆÄƼ¼ÇÀº ´ÙÀ½°ú °°´Ù:

ºí·°      ¿ëµµ

  0     ºÎÆ® ·Î´õ
  1     °øÀå ¼³Á¤°ª (factory configuration)
  2
  .
  .     Ä¿³Î
  .
  X 
  .
  .     ·çÆ® ÆÄÀϽýºÅÛ
  .
  Y

À§¿¡¼­´Â 0 ¹ø ºí·°¿¡ ºÎÆ® ·Î´õ Äڵ带 ³Ö°í, 1¹ø ºí·°¿¡´Â °øÀå ¼³Á¤°ª (ÀÌ´õ³Ý MAC ÁÖ¼Ò°ª ȤÀº Ä¿³Î ¸í·ÉÇà ¿É¼Ç µî) ÀÌ ÀÖÀ¸¸ç, 2¹ø ºí·°ºÎÅÍ X¹ø ºí·° ±îÁö´Â Ä¿³Î Äڵ带, ¸¶Áö¸·À¸·Î X¹ø ºí·° ´ÙÀ½ºÎÅÍ Y¹ø ºí·°±îÁö ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ¿Ã·È´Ù.

ÀÌ°ÍÀº ¸Å¿ì ´Ü¼øÇÑ ¿¹Á¦ÀÌ´Ù. ½Ã½ºÅÛ¿¡¼­ ÇÊ¿äÇÑ °æ¿ì¿¡´Â ´ç¿¬È÷ º¸´Ù º¹ÀâÇÑ ÆÄƼ¼ÇÀ¸·Î ³ª´©¾î Áú ¼ö ÀÖ´Ù. µÚ¿¡¼­ »ìÆ캸°ÚÁö¸¸ Ç÷¡½Ã ¸Þ¸ð¸®¸¦ Áö¿øÇÏ´Â uClinux ÀÇ ºí·° µð¹ÙÀ̽º´Â ÀÌ·¯ÇÑ ÆÄƼ¼Å´×ÀÇ °³³äÀ» Áö¿øÇÑ´Ù. ÆÄƼ¼ÇÀÇ Å©±â´Â ¾ðÁ¦³ª Ç÷¡½¬ ¼¼±×¸ÕÆ® Å©±âÀÇ Á¤¼ö¹è¿©¾ßÇÑ´Ù. ¿Ö³ÄÇϸé Ç÷¹½¬ ¸Þ¸ð¸®´Â Çѹø¿¡ ¼¼±×¸ÕÆ® ´ÜÀ§·Î¸¸ µ¥ÀÌŸ¸¦ »èÁ¦ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.

¶ÇÇÑ À§ÀÇ ¿¹Á¦¿¡¼­´Â Ä¿³Î°ú ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ´Ù¸¥ ÆÄƼ¼ÇÀ¸·Î ºÐ¸®ÇÏ¿´´Ù. ÀÌ°ÍÀº ÀϹÝÀûÀÎ ¸®´ª½ºÀÇ ¼³Á¤ ¹æ½ÄÀÌ ¾Æ´Ï´Ù. ÀϹÝÀûÀ¸·Î´Â ¸®´ª½º Ä¿³ÎÀº ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ ³»¿¡ ÀÏ¹Ý ½ÇÇà ÆÄÀÏÀÇ ÇüÅ·ΠÁ¸ÀçÇÑ´Ù. ÀÌ ¹æ¹ýÀÇ ¹®Á¦Á¡Àº (LILO ³ª GRUB °ú °°Àº) ¶È¶ÈÇÑ ºÎÆ® ·Î´õ ÇÁ·Î±×·¥ÀÌ ÇÊ¿äÇÏ´Ù´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ºÎÆ® ·Î´õ ÇÁ·Î±×·¥Àº (Ä¿³Î À̹ÌÁö¸¦ Æ÷ÇÔÇÏ´Â) ÇÏµå µð½ºÅ© ºí·°À» RAM »ó¿¡ ·ÎµåÇÏ´Â ÀÏÀ» ¼öÇàÇÑ´Ù. Ä¿³Î À̹ÌÁö¸¦ Ç÷¡½Ã ¸Þ¸ð¸® »óÀÇ ¿¬¼ÓÀûÀÎ °ø°£¿¡ ÀúÀåÇÏ´Â °ÍÀº µÎ°¡Áö ÀåÁ¡À» °¡Áø´Ù. Çϳª´Â Ç÷¡½Ã ¸Þ¸ð¸® »ó¿¡¼­ ¹Ù·Î ½ÇÇà½Ãų ¼ö ÀÖ´Ù´Â °ÍÀÌ°í (XIP), ´Ù¸¥ Çϳª´Â ºÎÆ® ·Î´õ°¡ ´Ü¼øÇØ Áø´Ù´Â °ÍÀÌ´Ù (½ÉÁö¾î ºÎÆ® ·Î´õ°¡ ÇÊ¿ä ¾øÀ» ¼öµµ ÀÖ´Ù).

Ä¿³Î°ú ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ¹èÄ¡ÇÏ´Â ¸î°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. ÃÖ¼±ÀÇ ¹æ¹ýÀ» ¼±ÅÃÇÏ´Â µ¥¿¡´Â ¿©·¯°¡Áö trade-off °¡ Á¸ÀçÇÑ´Ù. ¿©±â¿¡¼­´Â °¡Àå ÀϹÝÀûÀÎ ¸î°¡Áö ¹æ¹ýÀ» »ìÆ캸¸é¼­ °¢°¢ÀÇ Àå´ÜÁ¡¿¡ ´ëÇØ ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.

  1. Ä¿³Î°ú ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ ¸ðµÎ °íÁ¤µÈ ½ÃÀÛ ÁÖ¼Ò¸¦ °¡Áö´Â ¹æ¹ý
    b. Ä¿³ÎÀÇ ¸¶Áö¸· ºÎºÐ¿¡ À̾ ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀÌ ½ÃÀ۵Ǵ ¹æ¹ý
    c. Ä¿³Î°ú ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ¾ÐÃàÇÏ´Â ¹æ¹ý

(a) ¹æ¹ýÀº ½Ã½ºÅÛÀÇ ¿ä¼ÒµéÀÌ °íÁ¤µÈ ÁÖ¼Ò¿¡ À§Ä¡ÇÑ´Ù´Â ÀåÁ¡À» °¡Áø´Ù. ºÎÆ® ·Î´õ´Â Ä¿³ÎÀ» ã±â ½±°í, Ä¿³ÎÀº ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ã±â ½±´Ù. ¶ÇÇÑ Ä¿³Î°ú ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀÌ ¼­·Î µ¶¸³ÀûÀ¸·Î ¾÷±×·¹ÀÌµå µÇ±â ½±´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Ù. ÀÌ ¹æ¹ýÀÇ ´ÜÁ¡Àº Ä¿³Î À̹ÌÁö¿Í ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ »çÀÌ¿¡ °ø°£ÀÌ ³¶ºñµÈ´Ù´Â °ÍÀÌ´Ù.

(b) ¹æ¹ýÀº ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» µ¶¸³ÀûÀÎ ÆÄƼ¼ÇÀ¸·Î ºÐ¸®ÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ °ø°£ÀûÀÎ Ãø¸é¿¡¼­ ÀåÁ¡À» °¡Áø´Ù. ¶ÇÇÑ uClinux ½Ã½ºÅÛ¿¡¼­´Â Ä¿³Î À̹ÌÁö¿Í ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ÇϳªÀÇ ÆÄÀÏ·Î ¹­´Â °ÍÀÌ ÀϹÝÀûÀÌ´Ù. ÀÌ°ÍÀº °ð Ä¿³Î°ú ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» µ¿½Ã¿¡ ¾÷±×·¹À̵å ÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù (Á¾Á¾ ÀÌ°ÍÀÌ ´õ ÁÁÀ» ¼öµµ ÀÖ´Ù).

(c) ¹æ¹ýÀº Ä¿³Î°ú ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ¾ÐÃàÇؼ­ ÀúÀåÇϹǷΠÇ÷¡½Ã ¸Þ¸ð¸®ÀÇ °ø°£À» ¸¹ÀÌ Àý¾àÇÒ ¼ö ÀÖ´Ù. ÀÌ ¹æ¹ýÀ» »ç¿ëÇϱâ À§Çؼ­´Â ¾ÐÃàµÈ À̹ÌÁö¸¦ RAM »ó¿¡ Ç® ¼ö ÀÖ´Â ºÎÆ® ·Î´õ°¡ ÇÊ¿äÇÏ´Ù. ¶§¹®¿¡ ÀÌ ¹æ¹ýÀº ´õ ¸¹Àº RAM ¿µ¿ªÀ» Â÷ÁöÇÏÁö¸¸ ´Ù¸¥ ¹æ¹ýµé¿¡ ºñÇؼ­ ¸¹Àº Ç÷¡½Ã ¸Þ¸ð¸® °ø°£À» Àý¾àÇÒ ¼ö ÀÖ´Ù. ¹°·Ð »óȲ¿¡ µû¶ó Ä¿³ÎÀ̳ª ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ ÁßÀÇ Çϳª ¸¸À» ¾ÐÃàÇÏ´Â ¹æ¹ýµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¿©·¯ °³ÀÇ ÆÄÀÏ ½Ã½ºÅÛ ÆÄƼ¼Çµµ ¹°·Ð °¡Áú ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ÆÄÀÏ ½Ã½ºÅÛÀÇ ÀϺκÐÀ» ÀÚÁÖ º¯°æÇÏ°Ô µÇ´Â °æ¿ì³ª ÆÄƼ¼ÇÀ» ±¸ºÐÇÏ¿© Àбâ/¾²±â ±ÇÇÑÀ» ÁÖ·Á°í ÇÏ´Â °æ¿ì¿¡ À¯¿ëÇÏ´Ù.


4. ºÎÆ® ·Î´õÀÇ »ç¿ë ¿©ºÎ

ºÎÆà ½Ã¿¡ °¡Àå ¸ÕÀú °í·ÁÇØ¾ß ÇÒ °ÍÀº CPU ¸¶´Ù ´Ù¸£´Ù. Àü¿øÀÌ ÄÑÁö¸é ÇÁ·Î¼¼¼­´Â ¾îµð¼­ºÎÅÍ ½ÇÇàÀ» ½ÃÀÛÇÒ±î? (ARM À̳ª x86 °ú °°Àº) ¸¹Àº CPU µéÀº °íÁ¤µÈ ½ÃÀÛ ÁÖ¼Ò¸¦ °¡Áø´Ù. (m68k ³ª Coldfire ¿¡¼­ »ç¿ëµÇ´Â) ¶Ç ´Ù¸¥ ¹æ½ÄÀ¸·Î´Â °íÁ¤µÈ ÁÖ¼ÒÀÇ °ªÀ» Àо ±× °ªÀ» ½ÃÀÛ ÁÖ¼Ò·Î »ç¿ëÇϱ⵵ ÇÑ´Ù. ÀÌ°ÍÀº ½Ã½ºÅÛ ½ÃÀÛ Äڵ带 Ç÷¡½Ã ¸Þ¸ð¸® »ó¿¡ Áý¾î³Ö¾î¾ß ÇÏ´Â °æ¿ì¿¡ Á÷Á¢ÀûÀÎ ¿µÇâÀ» ¹ÌÄ£´Ù.

ÀÌ ½ÃÁ¡¿¡¼­ ºÎÆ® ·Î´õ ÇÁ·Î±×·¥À» »ç¿ëÇÒ Áö ¾Æ´Ï¸é Á÷Á¢ uClinux Ä¿³ÎÀ» ½ÃÀÛÇÒ Áö °í·ÁÇØ º¼ ÇÊ¿ä°¡ ÀÖ´Ù.

CPU °¡ (ºÎÆ® ·Î´õ¸¦ °ÅÄ¡Áö ¾Ê°í) Á÷Á¢ Ä¿³Î Äڵ忡¼­ºÎÅÍ ½ÇÇàÀ» ½ÃÀÛÇصµ ¾Æ¹«·± ¹®Á¦°¡ ¾ø´Ù. uClinux ½ÃÀÛ ÄÚµå´Â (º¸Åë CPU Ĩ¿¡ ´ëÇÑ ¼³Á¤°ú RAM ¼³Á¤ µîÀ» Æ÷ÇÔÇÏ´Â) ¸ðµç Çϵå¿þ¾î ¼³Á¤ ÀÛ¾÷°ú Ä¿³ÎÀÇ µ¥ÀÌÅÍ ¿µ¿ªÀ» RAM ¿¡ ·ÎµåÇÏ´Â ÀÏ°ú BSS ¿µ¿ªÀ» ÃʱâÈ­ ÇÏ´Â ÀÏÀ» ¼öÇàÇØ¾ß ÇÑ´Ù. ÇÏÁö¸¸ ÀÌ·¯ÇÑ ÀÛ¾÷µéÀº ¸Å¿ì Á÷°üÀûÀÌ´Ù. ÀÌ ¹æ¹ýÀÇ À¯ÀÏÇÑ ¹®Á¦Á¡Àº ¸®¼ÂÀÌ µÇ¾úÀ» ¶§ CPU °¡ ´Ù½Ã ÀûÀýÈ÷ ¼öÇàµÉ ¼ö ÀÖµµ·Ï Ä¿³Î Äڵ带 ÀûÀýÇÑ À§Ä¡¿¡ ¹èÄ¡ÇØ¾ß ÇÑ´Ù´Â Á¡ÀÌ´Ù. ÃÖ±ÙÀÇ ´ëºÎºÐÀÇ CPU µéÀº ÁÖ¼Ò 0 ¿¡¼­ ½ÇÇàÀ» ½ÃÀÛÇϰųª 0¹ø ±Ùó¿¡ ½ÃÀÛ ÁÖ¼Ò¸¦ °¡Áö°í ÀÖÀ¸¹Ç·Î, ÀÌ ÀÛ¾÷ÀÌ °£ÆíÇØ Áø´Ù.

ºÎÆ® ·Î´õ´Â (CPU ¿Í RAM ¼³Á¤ µîÀÇ) ±âº»ÀûÀÎ Çϵå¿þ¾î ¼³Á¤ ÀÛ¾÷°ú uClinux Ä¿³ÎÀ» ÀûÀýÇÑ À§Ä¡¿¡ ·ÎµåÇϰųª Á÷Á¢ ½ÇÇà½ÃÅ°´Â ÀÏÀ» ¼öÇàÇÏ´Â ÀÛÀº µ¶¸³ÀûÀÎ (stand-alone) ÇÁ·Î±×·¥ÀÌ´Ù. ºÎÆ® ·Î´õ¿¡¼­ ¸î°¡Áö À¯¿ëÇÑ ÀÛ¾÷À» ¼öÇàÇÏ°Ô ÇÒ ¼öµµ ÀÖ´Ù. »ç¿ëÀÚ¿¡°Ô Ç÷¡½Ã ¸Þ¸ð¸® »ó¿¡ ÀÖ´Â ¿©·¯ °³ÀÇ Ä¿³Î Áß¿¡¼­ ¾î´À °ÍÀ» »ç¿ëÇÒ °ÍÀÎÁö ¹°¾îº¼ ¼öµµ ÀÖ°í, (½Ã¸®¾ó Æ÷Æ®³ª ÀÌ´õ³Ý Æ÷Æ®¿Í °°Àº) ´Ù¸¥ I/O ÀåÄ¡¸¦ ÅëÇØ Ä¿³Î°ú ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» ·ÎµåÇÒ ¼öµµ ÀÖ´Ù.

ºÎÆ® ·Î´õ¿¡¼­ À߸øµÈ Ä¿³Î À̹ÌÁöÀÇ ½ÇÇàÀ» ¸·´Â ±âº»ÀûÀÎ º¸È£ ¼ö´ÜÀ» Á¦°øÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ±â´ÉÀº Ç÷¡½Ã ¸Þ¸ð¸® »ó¿¡¼­ µ¿ÀÛÇÒ ¶§ ƯÈ÷ À¯¿ëÇѵ¥, Ç÷¡½Ã ¸Þ¸ð¸®¿¡¼­´Â (Àü¿ø ¹®Á¦ µîÀ¸·Î ÀÎÇØ) Ä¿³ÎÀ̳ª Áß¿ä ºÎºÐÀ» ¾÷µ¥ÀÌÆ® ÇÏ´Â °úÁ¤¿¡¼­ ¿À·ù°¡ ÀϾ ¼ö ÀÖ°í ´õ ³ª»Û °æ¿ì´Â ÀÌ·¯ÇÑ ¹ö±×°¡ ÀÖ´Â Äڵ带 ·ÎµåÇØ ¹ö¸± ¼öµµ ÀÖ´Ù. ºÎÆ® ·Î´õ´Â Ç÷¡½Ã ¸Þ¸ð¸® »ó¿¡ ¿µ±¸ÀûÀ¸·Î °íÁ¤µÇ¾î ÀÖÀ» ¼ö ÀÖÀ¸¹Ç·Î ÀÌ·¯ÇÑ »óȲ¿¡ ´ëóÇÏ´Â ±â´ÉÀ» Á¦°øÇÒ ¼ö ÀÖ´Ù.

ÇöÀç uClinux ¿¡¼­ »ç¿ëµÇ´Â ºÎÆ® ·Î´õ´Â ¿©·¯ °¡Áö°¡ ÀÖ´Ù. ¹«·á·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ºÎÆ® ·Î´õ¿¡´Â CoLilo, My Right Boot (MRB), PPCboot, Motorola dBUG µîÀÌ ÀÖ´Ù. SnapGear ¿Í Arcturus Networks °°Àº ȸ»ç´Â ƯÁ¤ÇÑ ÀÛ¾÷À» ¼öÇàÇÏ´Â °íÀ¯ÇÑ ºÎÆ® ·Î´õ¸¦ °¡Áö°í ÀÖ´Ù.


5. uClinux Ä¿³ÎÀÇ ºí·° µð¹ÙÀ̽º µå¶óÀ̹ö

ÇöÀç uClinux ÀÇ ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» Æ÷ÇÔÇÏ´Â ºí·° µð¹ÙÀ̽º´Â ¾Æ·¡¿Í °°Àº 3 Á¾·ù°¡ ÀÖ´Ù:

  1. Blkmem µå¶óÀ̹ö
  2. MTD µå¶óÀ̹ö
  3. RAM disk µå¶óÀ̹ö

blkmem µå¶óÀ̹ö´Â ¿À·¡µÇ¾úÁö¸¸ ¿©ÀüÈ÷ uClinux ¿¡¼­ °¡Àå ¸¹ÀÌ »ç¿ëµÇ°í ÀÖ´Ù. ÀÌ µå¶óÀ̹ö´Â uClinux ¸¦ À§ÇØ °í¾ÈµÈ °ÍÀÌÁö¸¸, ÀÛÀº Å©±âÀÇ NOR Ç÷¡½Ã¿Í RAM »óÀÇ ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ ¸¸À» Áö¿øÇÑ´Ù. ¶ÇÇÑ ¼³Á¤ÇϱⰡ ¾î·Æ°í ÆÄƼ¼Å´×À» À§Çؼ­ Å×ÀÌºí ¼³Á¤¿¡ ´ëÇÑ Äڵ带 º¯°æÇØ¾ß ÇÑ´Ù. ÇÏÁö¸¸ Ç÷¡½Ã ¸Þ¸ð¸® »óÀÇ Æ¯Á¤ ¿µ¿ª¿¡ ´ëÇÑ ±âº»ÀûÀÎ ¾²±â/»èÁ¦ ¿¬»êÀ» Á¦°øÇÑ´Ù.

MTD µå¶óÀ̹ö´Â ¸®´ª½ºÀÇ Ç¥ÁØ Ç÷¡½Ã ¸Þ¸ð¸® µå¶óÀ̹öÀÌ´Ù. ÀÌ µå¶óÀ̹ö´Â ´Ù¾çÇÑ Ç÷¡½Ã ÀåÄ¡¸¦ Áö¿øÇÏ°í ÆÄƼ¼Å´×¿¡ ´ëÇÑ °­·ÂÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù. Á»´õ º¹ÀâÇÑ ¼³Á¤À» À§Çؼ­ Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ ·¹À̾ƿôÀ» Á¤ÀÇÇÏ´Â ¸Ê µå¶óÀ̹ö¸¦ »ý¼ºÇÑ´Ù. À̸¦ ÀÌ¿ëÇØ ¿©·¯°³ÀÇ Ç÷¡½Ã ¸Þ¸ð¸®¸¦ (ÀÎÅ͸®ºù ¹æ½ÄÀ¸·Î) ¿¬°áÇÒ ¼ö ÀÖÀ¸¸ç ½ÉÁö¾î ½Ã½ºÅÛ ³»ÀÇ ´Ù¸¥ Á¾·ùÀÇ Ç÷¡½Ã ¸Þ¸ð¸®¸¦ ¿¬°áÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù. ¸®´ª½º Ä¿³Î¿¡´Â MTD ¼³Á¤À» À§ÇÑ ¿©·¯ °¡Áö ¿É¼ÇÀÌ Á¸ÀçÇÑ´Ù. ¿Â¶óÀÎ µµ¿ò¸»À» ÅëÇØ ¾î¶² ¿É¼ÇµéÀÌ ÇÊ¿äÇÑ Áö ¾Ë¾Æº¼ ¼ö ÀÖ´Ù. óÀ½¿¡´Â MTD µå¶óÀ̹ö¸¦ »ç¿ëÇÏ´Â ÀåÄ¡µéÀ» »ìÆ캸´Â °ÍÀÌ µµ¿òÀÌ µÉ °ÍÀÌ´Ù.

¼¼¹ø°·Î ¸®´ª½ºÀÇ RAM disk µå¶óÀ̹ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ µå¶óÀ̹ö´Â ÁÖ·Î µð½ºÅ© ¾øÀÌ ¸®´ª½º ½Ã½ºÅÛÀ» ºÎÆÃÇÏ°íÀÚ ÇÒ ¶§ »ç¿ëµÈ´Ù. RAM disk µå¶óÀ̹ö´Â Ç÷¡½Ã ¸Þ¸ð¸®¿¡ ´ëÇÑ ¾î¶°ÇÑ ±â´Éµµ Á¦°øÇÏÁö ¾ÊÀ¸¹Ç·Î ´ÜÁö ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» À¯Áö(holding)ÇÒ ¸ñÀûÀ¸·Î¸¸ »ç¿ëµÈ´Ù. ÀÌ ¹æ¹ýÀº ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀ» Ç÷¡½Ã ¸Þ¸ð¸® »ó¿¡ ¾ÐÃàÇؼ­ ÀúÀåÇÏ´Â °æ¿ì¿¡ À¯¿ëÇÏ´Ù.

MTD µå¶óÀ̹ö´Â Ç÷¡½Ã ¸Þ¸ð¸®¸¦ À§ÇÑ °­·ÂÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù. ÀÌ°ÍÀ» ÀÌ¿ëÇϸé Ç÷¡½Ã ¸Þ¸ð¸®¸¦ À§ÇØ Æ¯º°È÷ °í¾ÈµÈ JFFS, JFFS2 ¿Í °°Àº ½ÇÁ¦ (read/write °¡ °¡´ÉÇÑ) ÆÄÀÏ ½Ã½ºÅÛÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. blkmem µå¶óÀ̹ö·Î´Â ºÒ°¡´ÉÇÏ´Ù.


6. ·çÆ® ÆÄÀÏ ½Ã½ºÅÛ

uClinux ¿¡¼­ »ç¿ëµÇ´Â ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀº ¿©·¯ °¡Áö°¡ ÀÖ´Ù.

ÀϹÝÀûÀ¸·Î ROMfs ŸÀÔÀÌ °¡Àå ¸¹ÀÌ ¾²ÀδÙ. ÀÌ°ÍÀº ÀÛ°í ´Ü¼øÇÑ Àбâ Àü¿ë ÆÄÀÏ ½Ã½ºÅÛÀÌ´Ù. ROMfs ´Â ÆÄÀÏÀÇ ¸ðµç µ¥ÀÌÅ͸¦ ¼øÂ÷ÀûÀ¸·Î ÀúÀåÇϱ⠶§¹®¿¡ (m68k, ColdFire, ARM °ú °°ÀÌ) XIP ¸¦ Áö¿øÇÏ´Â CPU ¿¡¼­ ROMfs ÆÄÀÏ ½Ã½ºÅÛ ³»ÀÇ ½ÇÇà ÆÄÀÏÀ» Á÷Á¢ ½ÇÇà½Ãų ¼ö ÀÖ´Ù. ÀÌ ±â´ÉÀº ½Ã½ºÅÛ ½ÇÇà Áß¿¡ ¸Þ¸ð¸®ÀÇ »ç¿ë·®À» ´ëÆø °¨¼Ò½Ãų ¼ö ÀÖ´Ù.

Cramfs ´Â ¸®´ª½º Ä¿³Î 2.4 ¿¡¼­ »õ·Ó°Ô ¼±º¸ÀÎ ÆÄÀÏ ½Ã½ºÅÛÀÌ´Ù. Cramfs ´Â ÀÛÀº Å©±âÀÇ Àбâ Àü¿ë ÆÄÀÏ ½Ã½ºÅÛÀ¸·Î ¼³°èµÇ¾ú´Ù. Cramfs ÀÇ ÃÖ´ë ÀåÁ¡Àº ¸ðµç ÆÄÀϵéÀÌ ¾ÐÃàµÈ ÇüÅ·ΠÀúÀåµÇ¸ç ½ÇÇà Áß¿¡ ±× ÆÄÀϵéÀÌ ¾ÐÃà ÇØÁ¦µÈ´Ù´Â °ÍÀÌ´Ù. ÆÄÀϵéÀÌ ¾ÐÃàµÇ¾î Àֱ⠶§¹®¿¡ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ XIP ·Î µ¿ÀÛÇÏÁö ¸øÇÑ´Ù. ÀÌ ¹æ¹ýÀº Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ »ç¿ë·®À» °¨¼Ò½ÃÅ°Áö¸¸ ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ±â À§Çؼ± RAM ¿¡ º¹»çµÇ¾î¾ß ÇϹǷΠ´õ ¸¹Àº RAM ÀÌ ÇÊ¿äÇÏ°Ô µÈ´Ù.

½Ã½ºÅÛ¿¡ µû¶ó Àбâ Àü¿ëÀÌ ¾Æ´Ñ Àбâ/¾²±â°¡ °¡´ÉÇÑ ÆÄÀÏ ½Ã½ºÅÛÀÌ ÇÊ¿äÇÒ ¼ö ÀÖ´Ù. ¸®´ª½º MTD µå¶óÀ̹ö¸¦ »ç¿ëÇϸé Ç÷¡½Ã ¸Þ¸ð¸® »ó¿¡¼­ JFFS ³ª JFFS2 ¿Í °°Àº Àú³Î¸µ ÆÄÀÏ ½Ã½ºÅÛÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. Àú³Î¸µ ÆÄÀÏ ½Ã½ºÅÛÀº (½Ã½ºÅÛÀÌ ÀûÀýÈ÷ ¼Ë´Ù¿î µÇÁö ¾Ê¾ÒÀ» ¶§ÀÇ °°ÀÌ) °©ÀÛ½º·´°Ô Àü¿øÀÌ ²÷±ä »óȲ¿¡¼­µµ ¾ÈÀüÇϸç, ´ÙÀ½¹ø ºÎÆö§ ÆÄÀÏ ½Ã½ºÅÛÀ» üũÇÏÁö ¾Ê¾Æµµ µÈ´Ù. JFFS ¿Í JFFS2 ´Â Ưº°È÷ Ç÷¡½Ã ¸Þ¸ð¸®¿¡¼­ »ç¿ëÇϱâ À§ÇØ ¼³°èµÇ¾ú±â ¶§¹®¿¡ wear leveling À̶ó°í ÇÏ´Â ±â´ÉÀ» Á¦°øÇÑ´Ù. ÀÌ°ÍÀº ÆÄÀÏ ½Ã½ºÅÛ ³»ÀÇ ¸ðµç µ¥ÀÌÅ͸¦ ±â·ÏÇϰųª ¾÷µ¥ÀÌÆ® ÇÒ ¶§ Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ ¸ðµç ¿µ¿ªÀÌ °ñ°í·ç »ç¿ëµÇµµ·Ï (¸ðµç ºí·°¿¡ ºñ½ÁÇÑ ¼öÀÇ »èÁ¦ ¿¬»êÀÌ ¼öÇàµÇµµ·Ï) ÇÑ´Ù. ÀÌ ±â´ÉÀº Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ ¼ö¸íÀ» ºñ¾àÀûÀ¸·Î Çâ»ó½ÃÄÑ ÁØ´Ù. JFFS2 ´Â ÆÄÀÏÀ» ¾ÐÃà½ÃÄѼ­ ÀúÀåÇϱ⠶§¹®¿¡ ´õ ÀûÀº °ø°£À» Â÷ÁöÇÑ´Ù´Â ÀåÁ¡µµ °¡Áö°í ÀÖ´Ù. ±×·¡¼­ ÀÌÀü ¹öÀüÀÎ JFFS º¸´Ù ´õ ¸¹ÀÌ »ç¿ëµÈ´Ù. ÀÌ·¯ÇÑ Àú³Î¸µ ÆÄÀÏ ½Ã½ºÅÛÀ» »ç¿ëÇÒ ¶§ °í·ÁÇØ¾ß ÇÒ ¶Ç ÇÑ°¡Áö »çÇ×Àº Àú³Î¸µ°ú °¡ºñÁö Ä÷º¼Ç ½Ã½ºÅÛ¿¡ ÀÇÇØ ¾à°£ÀÇ ¿µ¿ªÀÌ ¼ÒºñµÈ´Ù´Â Á¡ÀÌ´Ù. ÀϹÝÀûÀ¸·Î ÀÌ Å©±â´Â 2 ºí·° Á¤µµ?ÀÌ´Ù (This wasted space is typically of the order of 2 Flash segments in size).

¸¸¾à RAM µð½ºÅ©¸¦ »ç¿ëÇÑ´Ù¸é Ext2 ÆÄÀÏ ½Ã½ºÅÛÀ» ¾²´Â °ÍÀÌ ÀϹÝÀûÀÌ´Ù. ÀÌ°ÍÀº uClinux ¿¡¼­µµ ¸¶Âù°¡ÁöÀÌ´Ù. Ext2 ÆÄÀÏ ½Ã½ºÅÛÀº °ø°£ÀûÀÎ Ãø¸é¿¡¼­ Ưº°È÷ È¿À²ÀûÀÌÁö´Â ¾Ê´Ù. ¶ÇÇÑ RAM µð½ºÅ©¿¡¼­ ¼öÁ¤ÇÑ »çÇ×Àº ÀúÀåµÇÁö ¾ÊÀ¸¹Ç·Î ´ÙÀ½¹ø ºÎÆà ¶§ ã¾Æº¼ ¼ö ¾ø´Ù (¾î¶² »ç¶÷µéÀº ÀÌ·¯ÇÑ Æ¯Â¡À¸·Î ÀÎÇØ ½ÃÀ۽ÿ¡ Ç×»ó ÆÄÀÏ ½Ã½ºÅÛÀÇ »óŸ¦ ¾Ë ¼ö ÀÖÀ¸¹Ç·Î ÀÓº£µðµå ½Ã½ºÅÛ¿¡¼­ ´õ ÁÁÀ» ¼öµµ ÀÖ´Ù°í ÇÑ´Ù).

ÀÌ ¹Û¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸î°¡Áö ÆÄÀÏ ½Ã½ºÅÛÀÌ ´õ Á¸ÀçÇÑ´Ù. ¸®´ª½º¿¡´Â ¸¹Àº ¼öÀÇ ÆÄÀÏ ½Ã½ºÅÛÀÌ »ç¿ë °¡´ÉÇÏ´Ù. ÇÏÁö¸¸ À§¿¡¼­ ¸»ÇÑ ÆÄÀÏ ½Ã½ºÅÛµéÀÌ uClinux ¿¡¼­ ÁÖ·Î »ç¿ëµÇ´Â °ÍµéÀÌ´Ù. ¿øÇÑ´Ù¸é MS-DOS ÀÇ FAT ÆÄÀÏ ½Ã½ºÅÛµµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

ÇÑ°¡Áö ´õ ¸»ÇÏÀÚ¸é, ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀº uClinux »ó¿¡¼­ »ç¿ëµÉ ¼ö ÀÖµµ·Ï ±¸¼ºµÇ¾î¾ß ÇÑ´Ù. º¸Åë ÀÓº£µðµå ÀåÄ¡¿¡¼­ »ç¿ëµÉ ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀº °³¹ß È£½ºÆ®¿¡¼­ ±¸¼ºµÈ ÈÄ¿¡ Ÿ°Ù¿¡ ·ÎµåµÈ´Ù. ÀϹÝÀûÀ¸·Î È£½ºÆ® »ó¿¡¼­ Ÿ°Ù¿¡ ¿Ã¶ó°¥ ÃÖÁ¾ ·çÆ® ÆÄÀÏ ½Ã½ºÅÛÀÇ µð·ºÅ丮 Æ®¸®¸¦ ±¸¼ºÇÑ ÈÄ¿¡ È£½ºÆ® ±â¹ÝÀÇ ÅøÀ» »ç¿ëÇÏ¿© ÀÌÁø ÆÄÀÏ ½Ã½ºÅÛ À̹ÌÁö¸¦ ¸¸µç´Ù. genromfs ¶ó´Â ÇÁ·Î±×·¥ÀÌ ´ëÇ¥ÀûÀÎ ¿¹ÀÌ´Ù. ÀÌ ÇÁ·Î±×·¥Àº È£½ºÆ® »óÀÇ ÁÖ¾îÁø µð·ºÅ丮¸¦ ROMfs À̹ÌÁö ÆÄÀÏ·Î ±¸¼ºÇÑ´Ù. ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛ¿¡ ´ëÇؼ­µµ ºñ½ÁÇÑ ÇÁ·Î±×·¥ÀÌ Á¸ÀçÇÑ´Ù (JFFS ´Â mkfs.jffs2, CD À̹ÌÁö(ISO9660)´Â mkisofs ¶ó´Â ÇÁ·Î±×·¥ÀÌ ´ã´çÇÑ´Ù).


7. Ç÷¡½Ã ¸Þ¸ð¸®¸¦ À§ÇÑ µµ±¸µé

uClinux »ó¿¡¼­ Ç÷¡½Ã ¸Þ¸ð¸®¸¦ ´Ù·ç±â À§ÇØ ÀÀ¿ë ÇÁ·Î±×·¥ ¼öÁØ¿¡¼­ ´Ù·ê ¼ö ÀÖ´Â ¸î°¡Áö ÇÁ·Î±×·¥ÀÌ Á¸ÀçÇÑ´Ù. ÀÌ Áß ¸î¸îÀº »ç¿ëÇÏ°í ÀÖ´Â ºí·° µð¹ÙÀ̽º µå¶óÀ̹ö¿¡ Á¾¼ÓÀûÀÌ´Ù.

MTD µå¶óÀ̹ö¿Í ÇÔ²² »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍµéÀº ´ÙÀ½°ú °°´Ù:

  erase      -- ƯÁ¤ ºí·°¿¡ »èÁ¦ ¿¬»ê ¼öÇà
  eraseall   -- ¸ðµç ºí·°¿¡ »èÁ¦ ¿¬»ê ¼öÇà
  lock       -- ƯÁ¤ ºí·°À» ¾²±â ¿¬»êÀ» À§ÇØ Àá±Ý
  unlock     -- ƯÁ¤ ºí·°¿¡ ´ëÇØ ¾²±â ¿¬»ê Àá±Ý ÇØÁ¦
  mkfs.jffs  -- ÁÖ¾îÁø µð·ºÅ丮¿¡ ´ëÇÑ JFFS ÆÄÀÏ ½Ã½ºÅÛ ±¸¼º
  mkfs.jffs2 -- ÁÖ¾îÁø µð·ºÅ丮¿¡ ´ëÇÑ JFFS2 ÆÄÀÏ ½Ã½ºÅÛ ±¸¼º

erase, eraseall, lock, unlock ÇÁ·Î±×·¥Àº ¸ðµÎ MTD ÆÄƼ¼Ç ³»ÀÇ Å¸°Ù ÀåÄ¡¿¡¼­ »ç¿ëµÈ´Ù. mkfs.jffs ¿Í mkfs.jffs2 ´Â ÀϹÝÀûÀ¸·Î È£½ºÆ® ½Ã½ºÅÛ »ó¿¡¼­ Ÿ°Ù ÀåÄ¡ÀÇ Ç÷¡½Ã ¸Þ¸ð¸®¿¡ ·ÎµåµÉ ÆÄÀÏ ½Ã½ºÅÛ À̹ÌÁö¸¦ ±¸¼ºÇϴµ¥ »ç¿ëµÈ´Ù. MTD µå¶óÀ̹ö´Â Ÿ°Ù ÀåÄ¡¿¡ ´ëÇÑ ±âº»ÀûÀÎ ¹®ÀÚ ÀåÄ¡¿Í ºí·° ÀåÄ¡¸¦ Á¦°øÇϹǷΠdd ¿Í °°Àº ½Ã½ºÅÛ ÅøÀ» »ç¿ëÇÏ¿© ƯÁ¤ÇÑ ³»¿ëÀ» Ç÷¡½Ã ¸Þ¸ð¸®¿¡ ±â·ÏÇÒ ¼ö ÀÖ´Ù.

netflash ´Â uClinux ¸¦ À§ÇØ °³¹ßµÈ Åø·Î¼­, MTD µå¶óÀ̹ö³ª blkmem µå¶óÀ̹ö¿¡¼­ ¸ðµÎ ´Ù »ç¿ëµÈ´Ù. netflash ´Â ÁÖ¾îÁø ÆÄÀÏÀ» Ç÷¡½Ã ¸Þ¸ð¸®¿¡ ±â·ÏÇÑ´Ù (¹°·Ð »èÁ¦ ¿¬»êÀ» ¸ÕÀú ¼öÇàÇÑ´Ù). netflash ´Â ½Ã½ºÅÛ »óÀÇ ·ÎÄà ÆÄÀÏ »Ó ¾Æ´Ï¶ó (tftp, httpd, NFS µîÀ» ÀÌ¿ëÇØ) ³×Æ®¿öÅ©¸¦ ÅëÇØ ÆÄÀÏÀ» ¹Þ¾Æ¼­ Ç÷¡½Ã ¸Þ¸ð¸®¿¡ ±â·ÏÇÒ ¼öµµ ÀÖ´Ù.


8. ¿¹Á¦

ÀÌÁ¦ Áö±Ý±îÁö ³íÀÇÇÑ ¿©·¯°¡Áö ¼¼ºÎÀûÀÎ »çÇ×µéÀ» Á¡°ËÇØ º¸±âÀ§ÇØ ½ÇÁ¦·Î »ç¿ëµÇ°í ÀÖ´Â ¿¹Á¦¸¦ Çϳª »ìÆ캸±â·Î ÇÏÀÚ. ¿¹Á¦ ½Ã½ºÅÛÀº ColdFire 5272 ÇÁ·Î¼¼¼­¿¡ AMD ÀÇ 2Mb Ç÷¡½Ã ¸Þ¸ð¸®¿Í 4Mb SDRAM ÀÌ ÀåÂøµÇ¾î ÀÖ´Ù (Âü°í·Î, ÀÌ°ÍÀº SnapGear »çÀÇ LITE VPN router product ÀÌ´Ù).

½Ã½ºÅÛ¿¡´Â uClinux 2.4.x Ä¿³ÎÀÌ »ç¿ëµÇ¾ú°í, Ç÷¡½Ã ¸Þ¸ð¸®¸¦ À§ÇØ MTD µå¶óÀ̹ö¸¦ »ç¿ëÇÑ´Ù. ¿©±â¼­´Â Àбâ/¾²±â°¡ °¡´ÉÇÑ ÆÄÀÏ ½Ã½ºÅÛÀÌ ÇÊ¿äÄ¡ ¾ÊÀ¸¹Ç·Î ´ë½Å¿¡ ROMfs ¸¦ »ç¿ëÇϱâ·Î ÇÑ´Ù.

½Ã½ºÅÛ¿¡ »ç¿ëµÈ AMD Ç÷¡½Ã ¸Þ¸ð¸®´Â "bottom boot" ŸÀÔÀÌ´Ù. ¾Æ·¡ÂÊÀÇ ÁÖ¼Ò °ø°£¿¡´Â °¢°¢ 16KB, 8KB, 8KB, 32KB ÀÇ Å©±â¸¦ °¡Áö´Â ÀÛÀº »èÁ¦ ºí·°µéÀÌ ÀÖ´Ù. ³ª¸ÓÁö ºí·°Àº ¸ðµÎ 64KB ·Î µ¿ÀÏÇÏ´Ù.

Ç÷¡½Ã ¸Þ¸ð¸®ÀÇ ÆÄƼ¼Ç ¸ÊÀº ¾Æ·¡¿Í °°Àº ÇüÅ°¡ µÈ´Ù:


±×¸®°í MTD µå¶óÀ̹ö´Â Toshiba Ç÷¡½Ã ¸Þ¸ð¸®¸¦ ÀνÄÇÏ°í ¿ì¸®°¡ ¿øÇÏ´Â ¸ÅÇο¡ µû¶ó ÆÄƼ¼ÇÀ» ºÐÇÒÇØ ÁØ´Ù. MTD µå¶óÀ̹ö´Â µð¹ö±× Á¤º¸ÀÇ ·¹º§À» Á¶Á¤ÇÒ ¼ö ÀÖ´Â ¿É¼ÇÀ» °¡Áö¸ç ÀÌ°ÍÀº Ä¿³Î ¼³Á¤¿¡¼­ Á¤ÇØÁÙ ¼ö ÀÖ´Ù. ÀÌ °ªÀ» ³ôÀ̸é ÀåÄ¡ °Ë»ö °úÁ¤¿¡ ´ëÇÑ ¸¹Àº Á¤º¸¸¦ Á¦°øÇÏ¸ç °Ë»öµÈ Ç÷¡½Ã ¸Þ¸ð¸®¿¡ ´ëÇÑ ´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

ÃʱâÀÇ °Ë»ö ¸Þ½ÃÁö·ÎºÎÅÍ Ç÷¡½Ã ¸Þ¸ð¸®°¡ CPU ÁÖ¼Ò °ø°£ÀÇ 0xf0000000 ¸ÅÇεȴٴ °ÍÀ» ¾Ë ¼ö ÀÖ´Ù. ÀÌ ÁÖ¼Ò°ªÀº ¸ÅÇÎ µå¶óÀ̹ö¿¡ ¼³Á¤µÈ´Ù (nettel-uc.c).

½ÇÁ¦·Î Ä¿³Î°ú ÆÄÀÏ ½Ã½ºÅÛ À̹ÌÁö´Â netflash ÇÁ·Î±×·¥À» ÅëÇØ ¾÷µ¥ÀÌÆ® µÈ´Ù. ¸í·ÉÇà ¿É¼ÇÀº °£´ÜÈ÷ Ç¥ÇöÇÏÀÚ¸é ´ÙÀ½°ú °°´Ù:

netflash <¼­¹ö IP> imagez.bin

¼­¹ö IP¿¡ À̹ÌÁö¸¦ Á¦°øÇÒ tftp ¼­¹öÀÇ ÁÖ¼Ò¸¦ ½á ³ÖÀ¸¸é netflash ÇÁ·Î±×·¥ÀÌ ³ª¸ÓÁö ÀÏÀ» ´Ù ó¸®ÇØ ÁÖ°í ¿Ï·áµÈ °æ¿ì ½Ã½ºÅÛÀ» ¸®ºÎÆÃÇÑ´Ù (·çÆ® ÆÄÀϽýºÅÛÀÌ Ç÷¡½Ã ¸Þ¸ð¸®¿¡¼­ Ä¿³Î ¹Ù·Î µÚ¿¡ ¹èÄ¡µÇ¾î ÀÖÀ» ¶§ ÇÊ¿äÇÑ °úÁ¤ÀÌ´Ù).


9. Âü°í ¹®Çå

´ÙÀ½ URL À» Âü°íÇϱ⠹ٶõ´Ù:

°ü·ÃµÈ [http]SnapGear ÀÇ ±â¼ú ¹®¼­ #16 New Linux MTD driver support for the M-Systems Millennium Plus family of DiskOnChip flash devices µµ »ìÆ캸µµ·Ï ÇÏÀÚ.

ID
Password
Join
It's a poor workman who blames his tools.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-07-15 13:10:33
Processing time 0.0082 sec