· 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
Mind your own business, Spock. I'm sick of your halfbreed interference.


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.0079 sec