ROMFS - ROM ե륷ƥ

ROM ե륷ƥϡ˥󥹥ȡǥåȤν RAM ǥ
ΤΤȤƤñɤ߽ФѤΥե륷ƥǤ֡Ȼ
󥯤⥸塼ɬפȯŸƤޤΥե륷
ƥѤơեϲ֤롼εǽΤɬפʥ
񤷤ʤƱεǽ¸ǤޤˤϾʥͥˤǤ
ǽ⤢ޤ

ӤΤˡΤ minix  xiafs (Ԥѻߤޤ) ե륷
ƥΤɤ⥸塼Ȥƥѥ뤹 20000 ХȰʾɬפ
romfs Ǥ 1 ڡĤޤ 4000 ХȤɬפޤ (i586 
ꤷƤޤ)Ʊﲼǡnfsroot ȼ nfs ⥸塼뤬 57K 
msdos ե륷ƥ 30K (ǥХΡɤ䥷ܥ
󥯤ϥݡȤޤ) Ǥξ塢äԸʿӤˤʤ
ޤºݤˡext2 Ѥ쥹塼ǥ 3202 ֥åʾ
Ѥromfs Ǥ 3079 ֥åɬפǤ

Υե륷ƥ뤿ˡgenromfs Ȥ桼ץ
ɬפǤsunsite.unc.edu ӤΥߥ顼Ȥ
/pub/Linux/system/recovery/ ǥ쥯ȥ꤫ anonymous ftp ˤ
Ǥޤ

̾褦ˡromfs ϡȻפ :) (E)EPROM ǥΤ褦
 (ΰŪѤɬפΤ) ͡ɤ߽Фѥǥ˻Ѥ
뤳ȤǤޤ

ʤ顢romfs μפŪϤΥե륷ƥ󥯤
ȤƤ⾮ʥͥ夫鸽Υ⥸塼桼ƥꥣƥǤ
դΥ⥸塼ɤ뤳ȤǤ褦ˤ뤳ȤǤˡSCSI
ǥХ䡢IDE եåԡɥ饤֤ɬפɤץ
Ԥ뤿˻Ѥ뤳ȤǤξ塢ͥ "initrd" ( RAM
ǥ) ǽȤС(Υ⥸塼) ǥɤǤޤ
ݤˤܿäǤϤޤ󤬡romfs ɬפȤʤ ext2  minix 
̤Ƥ affs Ȥäե륷ƥˤ뤳ȤǤޤ

㤨Сǥȥӥ塼Υ֡ȥǥ cd ǥɥ饤
(Ȥ֤ SCSI ɥ饤)  ISO 9660 ե륷ƥ⥸塼
ޤळȤǤޤ¾Υե륷ƥʤΤǡͥ
ʬ˾Ǥext2fs ⥸塼Τ褦礭ʤΤϡ
ȡθʳ CD ɤ뤳ȤǤޤ¾ˤϡͥåȥ
ơƥ󥹥ȡ뤹ΥꥫХǥȤ
Ȥ᤯ΥФ餹٤ƤΥġ⥸塼ɤ褦ˤ
ޤñˤΥꥫХǥ ext2 ǤϰΥǥʤ
ͳΤߤǡŪΤĤΥǥʤǤ礦

ʤԤƤ褦ˡromfs ϥ֥åǥХ򰷤ܹ¤
ñǤ٤ƤΥǽʹ¤Τϥ®뤿
16 ХȤζϤޤޤե뤬ɬפȤǾΰ 32 
ȤǤ (̾ 16 ʸ̤ζΥեǤ)ǤդζǤʤ
եκΥХإåɤϡإåե̾ 16 ХȤˤ
ǥ󥰡եƤ 16 ХȤˤѥǥ󥰤ǡ16+14+15=45 
ȤˤʤޤۤȤɤΥե̾ 3 ХȤĹ15 
ȤûΤǡǤ

ե륷ƥΥ쥤ȤϲΤȤǤ

եå    

        +---+---+---+---+
  0     | - | r | o | m |  \
        +---+---+---+---+       ХȤǤASCII ɽ
  4     | 1 | f | s | - |  /    (ʤ "-rom1fs-")
        +---+---+---+---+
  8     |   full size   |       Υե륷ƥΥǽʥ
        +---+---+---+---+           ȿ
 12     |    checksum   |       ǽ 512 ХȤΥå
        +---+---+---+---+
 16     | volume name   |       ǥߥ͡Ȥ줿ܥ塼̾
        :               :           16 Хȶޤǥѥǥ
        +---+---+---+---+
 xx     |     file      |
        :    headers    :

ʣХȤʤ (32 ӥåȥɤΤȤǰʲ󥰥ɤɽ
ޤ) ϥӥåǥѤޤ

ǽ 8 ХȤϥե륷ƥμ̻ҤǡޤȤˤʤä
ͤΤˤ֤ƤޤθλܤΥ󥰥ɤϤΥե
ƥνᤫ饢ǽʥХȿ򼨤ޤܤΥ󥰥
ɤϺǽ 512 (⤷ϥǽʥХȿξ) ХȤΥ
Ǥ르ꥺ AFFS ե륷ƥǻѤƤΤƱ
ñʥ󥰥ɤιפǤ (ӥåǥ̤ȲꤷƤޤ)
ܤϥ򸫤ƤΥ르ꥺϥ顼ϤϹ⤯
ޤ󤬡ɽѤñʤΤФޤ

³ХȤϥե륷ƥΰǤ - ƥեإå 16 
ȤζǻϤޤäƤޤ

եå    

        +---+---+---+---+
  0     | next filehdr|X|       ΥեإåΥեå
        +---+---+---+---+         (Υե뤬̵ХǤ)
  4     |   spec.info   |       ǥ쥯ȥ꡿ϡɥ󥯡ǥХ
        +---+---+---+---+           
  8     |     size      |       ΥեΥХȿ
        +---+---+---+---+
 12     |   checksum    |       ե̾ӤΥѥǥ󥰤ޤ
        +---+---+---+---+           ǡ夹
 16     | file name     |       ǥߥ͡Ȥ줿ե̾
        :               :           16 Хȶޤǥѥǥ
        +---+---+---+---+
 xx     | file data     |
        :               :

եإåϾ 16 ХȤζǻϤޤΤǡnext filehdr Υݥ
󥿤β 4 ӥåȤϾ˥Ǥ 4 ӥåȤϥ⡼ɾΤ˻
ޤӥå 0..2 ϥեμ̤򡢥ӥå 4 ϥե뤬¹Բ
ǽɤ򼨤ޤΥӥåȤåȤƤʤСѡߥå
Ϥ٤ƤοͤɤȤߤʤåȤƤФ٤Ƥοͤ¹ԤǤ
Ȥߤʤޤ - 饯ӥ֥åǥХ㳰ǡͭ԰ʳ
ϥǤޤ󡣤٤ƤΥեνͭԤΥ桼 id  롼
 id  0 ǡϰտޤѤϰϤˤʤʤϤǤե
̤ 8 ĤͤϼΤȤޥåפޤ

          ޥå                spec.info ΰ̣
 0      hard link       Υեإå
 1      directory       ǽΥեΥإå
 2      regular file    ̤ѡ0 ǤʤФʤʤ
 3      symbolic link   ̤ѡ0 ǤʤФʤʤ (file data ϥ
                        )
 4      block device     16 ӥåȤơ᥸㡼ӥޥʡֹ
 5      char device                 - " -
 6      socket          ̤ѡ0 ǤʤФʤʤ
 7      fifo            ̤ѡ0 ǤʤФʤʤ

ϡɥ󥯤ϤΥե륷ƥ̤ʥޡޤ
뿶 (ʤinode ֹζͭ) 򤹤뤳ȤդƤ
˥ϡɥ󥯤Υ롼פʤȤǥ쥯ȥ . 
.. Υ󥯤뤳ȤϡʤǤǤ뤳ȤդƤ
 genromfs ץˤäԤޤåȤ
fifo ʤɤüե̤ŪΤ˼¹Բǽ ӥåȤѤ
ȤϻߤƤϺ¾ŪǻѤ뤫⤷ޤ
ޤ쥮顼եȥܥå󥯤ϡɬ size ե
ɤˤʤʤȤФƤƤ -  (ѥǥ󥰤
줿) ե̾ΤѲǽʥХȿäƤޤ

¾դ뤳Ȥϡromfs ϥեإåӥǡ 16 Хȶ
֤ưޤۤȤɤΥϡɥǥХӥ֥å
ǥХΥɥ饤Фϥ֥å꾮ʥǡǤޤ󡣤
¤뤿ˡե륷ƥΤΥ 1024 ХȤ
ޤǥѥǥ󥰤ʤФʤޤ

Υե륷ƥ˴ؤԶƤСϢƤ
Υե륷ƥΤƤȤƤפϥɤ
ȤʤΤǡǽ䥳ɤɲä˴˾ϽϹͤƤ
 romfs ˴ؤ᡼򤢤ޤäƤʤΤǡ
˥᡼뤷ƤեɥХå뤿ˡAvery  ARCnet 
ǲΥݥ񤤤ǤϻǤޤ :)

romfs Υ᡼󥰥ꥹȤ⤢ޤߤޤǡή̤ޤ󡣤ʤ
ǡʤΥǥ뤿ˡä뤳Ȥ򴿷ޤޤ :)

ezmlm ˤ걿ĤƤޤΤǡromfs-subscribe@shadow.banki.hu ˥
뤳ȤǻäǤޤƤ̵طǤ

̤ꡧ

- ѡߥå󤪤ӽͭԤξ Un*x 饤ʥƥˤȤäơ
  ʤܼŪʵǽǤromfs ϴˤϼ¸Ƥޤ󡣻Ϥ줬
  Ȥʤ򸫤ĤȤʤΤǤǤȹͤͤ⤤
  뤫⤷ޤ

- Υե륷ƥɤ߽ФѤʤΤǡ˾ʤޤï
  ե륷ƥ ** 񤭤硢Ȥơ񤭹߲
  ǽʥե륷ƥबɬפˤʤꡢʤʤޤͤ
   - ѥΥץǽ񤭹ߥ⤷ϡ
  褦 RAM ǥѤξʽ񤭹߲ǽʥե륷ƥ
  Ƥ

- ե 16 ХȤζ˥饤ȤԤȤ׵ᤵ
  ǡե륷ƥफեɤ¹Ԥ뤳ȤϡǤϤ
  ֤Ŭʾ֤ǤϤޤ󡣥եΥǡʬ (Ĥޤꡢǽ
  ΤΤȺǸΤΤ)  "" ֤褦뤳Ȥǲ
  褹뤫⤷ޤ󡣤ϡmm ֥ƥ˥եƤ
  ʬľܥޥåפ뤳ȤǤǤǤ礦

- ̤ʵǽ⤷ޤ󤬡꤬礭װˤʤȻפ
  ޤ

- ɤǻѤޤ

- intel  motorola ʳΥƥưޤ


ڤǤ
    ԡJanos Farkas <chexum@shadow.banki.hu>
ܸܹ <hng@ps.ksky.ne.jp>
    Seiji Kaneko <skaneko@a2.mbn.or.jp>
