桼֥ݡ
======================

ǽ: 2003-08-21


ֽ桼֡פȤϡν Linux ͥΥ֡
ǽǤɬפϤΤɤ⥫ͥ뼫ȤǼ¹ԤɬפϤʤ
ȤäγƼﵡǽ󶡤饤֥귲ȥץෲΥåȤǤ

ϡʣμ״ץݡͥȤǹƤޤ

- gen_init_cpio
    롼ȥե륷ƥΥ᡼ޤ cpio եޥåȤΥ
    ۤץǤΥ֤ϰ̤졢Ƥΰ
    줿᡼ϥͥ륤᡼˥󥯤ޤ

- initramfs
    ͥΥ֡ȥץˡ̤줿 cpio ᡼ह
    ɤβǤ

- klibc
    桼֣å饤֥ǡߤ̸Ĥ˥ѥå󥰤Ƥޤ
    Τȥܻ̾ؤƺŬƤޤ

initramfs ѤƤ cpio եեޥåȤ "newc" ("cpio -c"
ȤΤƤޤ) եޥåȤǤꡢ"buffer-format.txt" ե
ʸ񲽤Ƥޤgen_init_cpio Ȥݤľȼ cpio
ե뷲Ȥϡgen_init_cpio μ¹Ԥʤñ
ȼ initramfs_data.cpio.gz ֤褦ˤ뤿ᡢusr/ Υӥ
ץûɬפǤ礦


ɤ˿ʤǤΤ
======================

klibc ǥȥӥ塼ˤϡ桼֤ʤΤˤΤ
ɬפʥեȥޤޤƤޤklibc ǥȥӥ塼ϸߡ
ͥȤ̡˴Ƥޤ2.7 ᤤʳǤξѤ
⤷ޤ (2.5 ˤϴ֤˹礤ޤǤ)

ޤˤˤϹƤޤ󤬡klibc ΥʥåץåȤ򼡤ξ
뤳ȤǤޤ

    ftp://ftp.kernel.org/pub/linux/libs/klibc/

ƥ֥桼ϡhttp://klibc.bkbits.net/ ˤ klibc 
BitKeeper ݥȥѤȤ褤Ǥ礦

ɥ klibc ǥȥӥ塼ϸߡklibc 饤֥
ۤ˻ĤΥݡͥȤ󶡤Ƥޤ

- ipconfig
    ͥåȥ󥿡ե򤪤ʤץǤŪ
    򤪤ʤ⤷ưŪ˾뤿 DHCP 
    ޤ ("IP autoconfiguration" ȤΤƤޤ)

- nfsmount
    NFS ե륷ƥΥޥȤǽˤץǤ

- kinit
    ipconfig  nfsmount Ѥ IP autoconfig ݡȤ֤
    NFS ե륷ƥޥȤΥե륷ƥ롼
    ȤƻѤʤ饷ƥΥ֡Ȥ³Ԥ֥롼ץץǤ

kinit ϡ֤󤹤뤿ᡢŪ˥󥯤줿ñΥХʥȤƹ
ޤ

ǽŪˤϡͥ뵡ǽδĤνϡޤн桼֤
ܹԤƤǤ礦:

- ۤƤ init/do_mounts* (νλϤʬˤĤƤϴ˰ܹ
  Ƥޤ)

- ACPI ơ֥β

- ºݤˤϥ֤֤ͥƤɬפΤʤ֥ƥ򤳤֤

⤷ kinit ʤθߤ׵Ƥ餺ľɬפ
ˤϡklibc ǥȥӥ塼ˤ Bourne ߴξ
 (ash) ¾¿Υ桼ƥƥޤޤƤޤΤǡkinit 
֤ʤ׵ˤԤäȹ礦 initramfs ᡼
ӥɤƤ

򤷤ʤäɬפˤʤäꤷˤϡ
http://www.zytor.com/mailman/listinfo/klibc ǽ桼֤Υ᡼
ꥹȤ˥󥢥åפƤ


ɤΤ褦ưΤ
========================

ߤΤȤͥ뤬롼ȥե륷ƥޥȤˡˤϻ
ޤ

a) ɬפȤǥХȥե륷ƥΥɥ饤ФƥͥȤ
   ߡ RAM ǥѤʤ褦ˤޤinit/main.c:init()
   ϡroot= ץ˴Ťӡinit/main.c:init() 
   ꥹȤƤΰʳνХʥѤˤϡǤդǤ
   init= ץˤŤǽŪʥ롼ȥե륷ƥޥ
   뤿 prepare_namespace() ƤӽФޤ

b) ĤΥǥХȥե륷ƥΥɥ饤Ф⥸塼Ȥƥӥ
    RAM ǥ˳Ǽޤ RAM ǥϡΥɥ
   Х⥸塼ɤ '/linuxrc' ХʥޤǤʤФʤ
   ޤ󡣤ޤlinuxrc ͳǺǽŪʥ롼ȥե륷ƥޥ
   pivot_root ƥॳѤ뤳ȤǽǤ RAM ǥ
   ޥȤ졢prepare_namespace() ͳǼ¹Ԥޤ

c) initramfs Ѥޤprepare_namespace() θƽФ򥹥åפ
   ɬפޤϡХʥ꤬ƤλŻ򤪤ʤʤФʤ
   ʤȤ̣ޤƱХʥϡusr/gen_init_cpio.c 
    RAM ǥեޥåȤǤ cpio ַͳ
   ɤ餫ˤꡢinitramfs ˳Ǽ뤳ȤǤޤΥХʥ
   "/init" ǤʤФʤ餺prepare_namespace() ʤǤ
   ƤλŻ¹ԤǤ餤ޤ

  ߴݻ뤿ᡢ/init Хʥϡinitramfs cpio 
  ΤΤǤΤ߼¹ԤޤǤʤϡinit/main.c:
  init() ϡǽŪʥ롼ȥե륷ƥޥȤ뤿
  prepare_namespace() ¹Ԥ줿 init ХʥΤ
  Ĥ¹Ԥޤ

Bryan O'Sullivan <bos@serpentine.com>


------------------------------------------------------------
Ρ JF ץ < http://www.linux.or.jp/JF/ >
ǽ 2004/06/29
ԡ    ɧ <takahiko(a)hakubi.co.jp>
ԡ    ŵ <zap03216(a)nifty.ne.jp>
