Kernel HOWTO ¤¤Ä¶ª© <author> §@ªÌ: Brian Ward <tt><htmlurl url="mailto:bri@blah.math.tu-graz.ac.at" name="bri@blah.math.tu-graz.ac.at"></tt><newline> ĶªÌ: <htmlurl url="http://www.phys.ntu.edu.tw/~cwhuang/pub/" name="C.W.Huang"> & <htmlurl url="http://ultima.ncnu.edu.tw/~asdchen/" name="Asd L. Chen"> <date>v0.80, 26 May 1997. ½Ķ¤é´Á: 25-29 August 1997 <abstract> ³o¬O¤@¥÷Ãö©ó¦p¦ó°t¸m¡B½sĶ¡B¤É¯Å®Ö¤ß¥H¤Î±ÆÃø¸Ñ¯Éªº¸Ô²Ó«ü¤Þ¡D </abstract> <toc> <sect>²¤¶ <p> §A¬O§_»Ý­n¾\Ū³o¥÷¤å¥ó? ¦pªG§A¦³¤U¦C¥ô¦ó¯gª¬¤§¤@ªº¸Ü¡A¬Oªº¡G <p> <itemize> <item> ``«u§r¡I³o®M wizzo-46.5.6 ³nÅ黡¥¦»Ý­n 1.8.193 ª©ªº®Ö¤ß¡A¦Ó§Ú«o¤´µM¥u¦³ 1.0.9 ª©¡I'' <item> ¤ñ¸û·sªº®Ö¤ß¤§¤@ùØ­±¦³§A¥¿¦n»Ý­nªº¤@­Ó³]³ÆÅX°Êµ{¦¡¡D <item> §A¹ï©ó¦p¦ó½s֤ͮߝuªº¤@µL©Òª¾¡D <item> ``¦b README Àɮ׸̭±<it>¯uªº</it>´N¬O¥þ³¡ªº¸ê®Æ¤F¶Ü?'' <item> §A¨Ó¡A§A¸Õ¡A¥¦ÁÙ¬O¤£°Ê¡D <item> §A»Ý­n¬Y¨Æµ¹¤©¤@ª½­n¨D§A¬°¥L­Ì¦w¸Ë®Ö¤ßªº¤H­Ì¡D </itemize> <sect1>½Ð¥ý¬Ý¦¹! <p> ³o¥÷¤å¥ó¤¤ªº¬Y¨Ç½d¨Ò°²³]§A¦³ GNU <tt>tar</tt>¡A<tt>find</tt> ¥H¤Î <tt>xargs</tt>¡D ³o¨Ç¬O Linux ®M¥ó¸Ìªº¼Ð·Ç¤u¨ã¡AÀ³¸Ó¤£¬O°ÝÃD¡D ¤å¥ó¤¤¤]°²³]§Aª¾¹D§A¨t²ÎªºÀɮרt²Î¬[ºc¡A¦pªG§A¨Ã¤£ª¾¹D¡A³Ì¦n»°§Ö¼g¤U¤@¥÷ mount «ü¥O¦b¨t²Î¥¿±`¹B§@¤U¡A©ÒÅã¥Üªºµ²ªG§@¬°°Ñ¦Ò(©ÎªÌ¬O¤@¥÷ /etc/fstab ªº¦Cªí¡A¦pªG§A¯à°÷¬Ý±oÀ´)¡D ³o¨Ç¸ê°T«Ü­«­n¡A¦Ó¥B¡A°£«D§A­«·s¤À³Î©Î¥[¤J·sªººÏºÐ¡A­«·s¦w¸Ë§Aªº¨t²Î¥H¤Î°µ½Ñ¦p¦¹Ãþªº¾Þ§@¡A§_«h¥¦­Ì¤£·|ÅܰʡD <p> ¥»¤å¼g§@®É³Ì·s``²£«~''ªº®Ö¤ßª©¥»¸¹½X¬O 2.0.30¡A¤]´N¬O»¡¥»¤åªº°Ñ¦Ò¤Î¨Ò¤l¬O¹ïÀ³©ó¸Óª©¥»ªº¡D ÁöµM§Ú¹Á¸ÕÅý³o½g¤å³¹¾¨¶q¸òª©¥»µLÃö¡A®Ö¤ß«o¤£Â_¦a¦bµo®i¤¤¡D ¦]¦¹¦pªG§A¨ú±o¤@·sªºª©¥»¡A¥¦¤£¥iÁ×§K¦a·|¦³¤@¨Ç¤£¦P¡D ·íµM¡A³oÀ³¸Ó¤£·|³y¦¨¤j°ÝÃD¡A¦ý¥¦¥i¯à·|»s³y¤@¨Ç²V²c¡D <p> ¦³¨âºØª©¥»ªº Linux ®Ö¤ß­ì©l½X¡A``²£«~'' »P ``µo®i¤¤'' ªº¡D ²£«~ª©¥»±q 1.0.x ¶}©l¦Ó¥B¥Ø«e¬O¥H°¸¼Æ½s¸¹µoªíªº; 1.0.x ¬O²£«~¡A1.2.x ¬O²£«~¡A 2.0.x ¤]¬O¡D³o¨Çª©¥»À³¸Ó¤ñ¸ûí©w¡A¦bµoªí®É¬O¨S¦³¯äÂÎ(bug)ªºª©¥»¡D µo®i¤¤ªº®Ö¤ß (1.1.x, 1.3.x µ¥µ¥) ¬O§@¬°´ú¸Õ¥Îªº¡Aµ¹¨º¨Ç·Q­n´ú¸Õ³Ì·s¦Ó¥B¥i¯à¦³³\¦h¯äÂΪº¤H¥Îªº¡D ¤w¸gĵ§i¹L§A¤F¡D <sect1>¤å³¹­·®æ»¡©ú <p> ¬Ý°_¨Ó¹³³o¼Ë <tt>text</tt> ªº¤å¦r©ÎªÌ¬O¬Y¼Ë±N¥X²{§Aªº¿Ã¹õ¤WªºªF¦è¡A¤@­ÓÀɦW¡A ©Î¬O¬Y¼Ë¥i³Qª½±µÁä¤JªºªF¦è¡A¹³¬O©R¥O¡A©Î©R¥Oªº¿ï¶µ(¦pªG§A¬Ýªº¬O¯Â¤å¦rÀɮסA¥¦¬Ý°_¨Ó¨S¤°»ò¤£¦P)¡D ©R¥O»P¨ä¥¦ªº¿é¤J¸g±`³Q®Ø°_¨Ó(¥Î` ')¡A³o¸g±`¤Þ°_¨å«¬ªº¼ÐÂI²Å¸¹°ÝÃD: ¦pªG³o¼Ëªº¶µ¥Ø¥X²{¦b¥y¤lªº³Ì«á­±¡A¤H­Ì®É±`·|¦b©R¥O«á­±¥[¤W¤@¥y¸¹ `.'¡A ¦]¬°¬ü°ê¤Hªº¤Þ¸¹²ßºD±N¥y¸¹©ñ¤J¤Þ¸¹¸Ì­±¡D §Y¨Ï¥Î±`ÃÑ(¦Ó¤£©¯ªº¬O¡A³o°²³]¤F¾Ö¦³¦¹``±`ÃÑ''ªº¤H¬O²ßºD©ó¬ü°ê¦¡ªº¤Þ¸¹)·Q¤]ª¾¹DÀ³¥ý±N³o¼ÐÂI¥h±¼¡A¦ý«Ü¦h¤HÁ`¬O§Ñ°O¡D ©Ò¥H¦b¦¹±¡§Î¤U§Ú±N¥y¸¹©ñ¦b¤Þ¸¹¥~ÀY¡D´«¥y¸Ü»¡¡A·í§Ú¥s§A­n¥´ ``<tt>make config</tt>'' ®É¡A §Ú·|¼g `<tt>make config</tt>'¡A¦Ó¤£¬O `<tt>make config</tt>.'¡D <sect>­«­n°ÝÃD»P¸Ñµª <p> <sect1>¤£ºÞ«ç»ò¼Ë¡A®Ö¤ß¨ì©³¬O°µ¤°»òªº? <p> ¦b Unix ¨t²Î¤¤¡A¹³¬O§Aªºµ{¦¡»PµwÅ骺¤@­Ó¥òµôªÌ¡D ­º¥ý¡A¥¦¬°©Ò¦³°õ¦æ¤¤ªºµ{¦¡(µ{§Ç)°µ°O¾ÐÅéºÞ²z¡A ¨Ã¥B½T«O¥¦­Ì³£¯à°÷¥­§¡(©Î¤£¥­§¡¡A¦pªG§AÄ@·N)ªº¤À¨É³B²z¾÷ªº¹Bºâ¸ê·½¡D ¦¹¥~¡A¥¦ÁÙ´£¨Ñ¤F¤@­Ó¨}¦nªº¤¶­±Åý­è­è´£¨ìªºµ{¦¡¯à³z¹L¥¦»P§AªºµwÅé·¾³q¡D <p> ¨ä¹ê®Ö¤ß©Ò³B²zªº¤u§@¤ñ³oÁÙ­n§ó½ÆÂø¤@¨Ç¡A¤£¹L³o¨Ç°ò¥»ªº¥\¯à¬O³Ì¥²­nª¾¹Dªº¡D <sect1>§Ú¬°¤°»ò­n§ó·s®Ö¤ß? <p> ¤ñ¸û·sªº®Ö¤ß¤@¯ë¨Ó»¡·|´£¨Ñ§ó±jªº¯à¤O¨Ó»P§ó¦hºØ©_©_©Ç©ÇªºµwÅé·¾³q(¤]´N¬O»¡¡A¥¦­Ì¾Ö¦³§ó¦hªº³]³ÆÅX°Êµ{¦¡)¡A ¥¦­Ì¯à°÷¦³§ó¦nªº¦æµ{ºÞ²z¡A¥¦­Ì¯à°÷°õ¦æªº¤ñªºª©¥»§ó¦³®Ä²v¡A¥¦­Ì¥i¯à¤ñªºª©¥»¨Óªº§óí©w¡A¦Ó¥B¥¦­Ì­×¥¿¤Fª©¸Ìªº¤@¨Ç¿ù»~¡D ¤j³¡¤Àªº¤H¬O¦]¬°¥L­Ì»Ý­n¨º¨Ç·sªº³]³ÆÅX°Êµ{¦¡¥H¤Î¿ù»~­×¥¿ªº³¡¥÷¦Ó§ó·s®Ö¤ß¡D <sect1>¸û·sªº®Ö¤ß¤ä´©¨º¨ÇµwÅé? <p> ½Ð¬Ý <htmlurl url="Hardware-HOWTO.html" name="Hardware-HOWTO"> ¤å¥ó¡D ¥t¤@­Ó¤èªk¬O¡A§A¥i¥H¬d¬Ý Linux ­ì©lµ{¦¡½X¤¤ªº `<tt>config.in</tt>' ÀÉ¡A ©ÎªÌ´N¦b·í§A¸ÕµÛ¥h `<tt>make config</tt>' ®É§ä¥X¨Ó¡D `<tt>make config</tt>' ±N·|Åý§A¬Ý¨ì¼Ð·Çªº®Ö¤ß­ì©lµ{¦¡½X¤ä´©ªº©Ò¦³µwÅé¡A¦ý³o¨Ã¤£¬O Linux ©Ò¤ä´©ªº¥þ³¡µwÅé¡F ³\¦h´¶³qªº³]³ÆÅX°Êµ{¦¡(¹³¬O PCMCIA ÅX°Êµ{¦¡¥H¤Î¬Y¨ÇºÏ±a¾÷ªºÅX°Êµ{¦¡)¬O­Ó§OºûÅ@¤Îµo¦æªº¥i¸ü¤J¼Ò²Õ¡D <sect1>§Ú»Ý­n¨º­Óª©¥»ªº gcc ©Î¬O libc ? <p> Linus ¹ï³o­Ó°ÝÃDªº«ØÄ³©ñ¦b Linux ­ì©lµ{¦¡ªº <tt>README</tt> ÀÉ®×ùØÀY¡D ¦pªG§A¨S¦³¸Óª©¥»©Î¬O§ó·sªºª©¥»¡A·sª©ªº gcc À³¸Ó·|§i¶D§A¬O§_»Ý­n§ó·s libc ªºª©¥»¡D ³o¨â­Ó¾Þ§@³£¤£·|¦³¤°»ò°ÝÃD¡A¥u­n·ÓµÛ»¡©ú°µ´N¥i¥H¤F¡D <sect1>¤°»ò¬O¥i¸ü¤J¼Ò²Õ? <p> ¥¦­Ì¬O®Ö¤ßªº¤@³¡¤À(³q±`¬O³]³ÆÅX°Êµ{¦¡)¡A¦ý¬O¨Ã¨S¦³½s͍ì®Ö¤ß¸Ì­±¥h¡D ¥¦­Ì³Q¤À§O½sĶ¡AµM«á´X¥G¥i¥H¦b¥ô¦ó®É­Ô±N¥¦­Ì´¡¤J¹B§@¤¤ªº®Ö¤ß©Î±q¤¤¨ú¥X¡D ¥Ñ©ó¥¦ªº«K§Q©Ê¡A³o¤w¸g¦¨¬°¤@ºØ¼W¥[ªF¦è¨ì®Ö¤ß¸Ì¥hªº¸û¦n¤è¦¡¡D ³\¦h±`¥Îªº³]³ÆÅX°Êµ{¦¡¡A¨Ò¦p PCMCIA ÅX°Êµ{¦¡¥H¤Î QIC-80/40 ºÏ±a¾÷ªºÅX°Êµ{¦¡´N¬O¥i¸ü¤J¼Ò²Õ¡D <sect1>§Ú»Ý­n¦h¤jªººÏºÐªÅ¶¡? <p> ³o»P§A¨t²Îªº¯S®í°t¸m¦³Ãö¡D­º¥ý¡AÀ£ÁY¹L«áªº Linux ­ì©lµ{¦¡½X¦b 2.0.10 ª©®É¬ù¦û 6 MB¡D ³\¦h¯¸¥x¦b¸ÑÀ£ÁY«á¤´·|«O¯d¤@¥÷¡D¸ÑÀ£ÁY¥H«á³o±N¦û±¼¬ù 24 MB¡D ¦ý³oÁÙ¤£¬O¥þ³¡ ¢w §A±N·|»Ý­n§ó¦hªººÏºÐªÅ¶¡¨Ó¹ê»Ú½sͳo¨ÇªF¦è¡D ³o»P§A°t¸m¦h¤ÖªF¦è¨ì§Aªº®Ö¤ß¸ÌÀY¥h¦³Ãö¡D¨Ò¦p¡A¦b¬Y³¡¾÷¾¹¤W¡A§Ú¦³ºô¸ô¡A3Com 3C503 ªºÅX°Êµ{¦¡¡A ¨Ã¥B°t¸m¤F¤TºØÀɮרt²Î¡A¦Ó³o¥þ³¡¦@»Ý­n 30 MB¡D¥[¤WÀ£ÁY¹Lªº linux ­ì©lµ{¦¡½X¡A³o­Ó°t¸m¤j·§»Ý­n¥Î±¼§A 36MB ¡D ¦b¥t¥~¤@­Ó¨t²Î¤W¡A¤£»Ý­n¤ä´©ºô¸ô³]³Æ(¦ý¤´µM»Ý­n¤ä´©ºô¸ô)¡A¥[¤W­µ®Ä¥d¡Aµ²ªG¦Y±¼§ó¦hªÅ¶¡¡D ÁÙ¦³¡A¤@­Ó·sª©¥»ªº®Ö¤ß´X¥GÁ`¬O¤ñª©¥»ªº¦û§ó¤jªºªÅ¶¡¡D ©Ò¥H¡A¤@¯ë¨Ó»¡¡A¦pªG§A¦³³\¦hºØµwÅé³]³Æªº¸Ü¡A½T©w§A¦³¨¬°÷ªºµwºÐªÅ¶¡¨Ó®e¯Ç³o­Ó°t¸m¡D (¥H¤µ¤éªº»ù®æ¨Ó»¡¡A¹ï©óÀx¦sªÅ¶¡ªº°ÝÃD§Ú¤£¯à¤£«ØÄ³§A¦A¶R¤@¥xºÏºÐ¾÷¡D) <sect1>³o»Ý­n¦h¤[ªº®É¶¡? <p> ¹ï¤j³¡¥÷ªº¤H¦Ó¨¥¡Aµª®×¬O``«Ü¤[''¡D§Aªº³B²z¾÷³t«×¦³¦h§Ö¡A¥H¤Î§A¾Ö¦³ªº°O¾ÐÅ鼯¶q¦³¦h¤Ö±N¬O¨M©w©Ò»Ý®É¶¡ªº¥D­n¦]¯À¡A ¦ý¬O¡A¦b§â¦h¤ÖªF¦è°t¸m¨ì®Ö¤ß¸ÌÀY¥h³o¤è­±ÁÙ¬O¥i¥H°µÂI§V¤O¡D ¦b¤@¥x¦³ 16 MB °O¾ÐÅ骺 486DX4-100 ¹q¸£¤W¡A¤@­Ó¦³¤­ºØÀɮרt²Î¡B¤ä´©ºô¸ô¡B¥H¤Î­µ®Ä¥dÅX°Êµ{¦¡ªº 1.2 ª©®Ö¤ß¥i¥H¦b¤G¤Q¤ÀÄÁ¥H¤º§¹¦¨¡D Ãþ¦üªº°t¸m¡A¦b¤@¥x 386DX/40(8 MB °O¾ÐÅé)¤W¤j¬ù»Ý­n­n 1.5 ­Ó¤p®É¡D ¦b½s֤ͮ߮ɳq±`¤@¨Ç¦nªº«ØÄ³¬O¥h³Ü¤@ÂI©@°Ø¡A¬ÝÂI¹qµø¡A´¨Ç¤ò½u¡A©Î¥ô¦ó§A³ßÅwªº¨Æ¡D ¦pªG§Aªº¾÷¾¹¯uªº«ÜºCªº¸Ü§A¤]¸Ó´«¥x¸û§Öªº¾÷¾¹¡D <sect>¦p¦ó¯u¥¿¶i¦æ®Ö¤ßªº°t¸m? <p> <sect1>¨ú±o­ì©lµ{¦¡½X <p> §A¥i¥H¸g¥Ñ°Î¦W ftp ¯¸±q <tt>ftp.funet.fi</tt> ªº <tt><htmlurl url="ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus" name="/pub/Linux/PEOPLE/Linus"></tt>¡A ©Î¬O¨ä¥¦ MIRROR ¯¸¨ú±o¡D([<tt/͵ù/] ¥xÆW¥i±q <tt><htmlurl url="ftp://ftp.edu.tw/OS/Linux/kernel" name="ftp.edu.tw"></tt> ¨ú±o¡D) ÀɮצWºÙ¤@¯ë¬O¥H¼Ð°O¦¨ <tt>linux-x.y.z.tar.gz</tt> ¬°¥Nªí¡A¨ä¤¤ªº <tt>x.y.z</tt> ¬Oª©¥»½s¸¹¡D ¸û·sªº(§ó¦nªº?)ª©¥»¥H¤Î­×¸ÉÀɤ@¯ë¬O©ñ¦bÃþ¦ü `<tt>v1.1</tt>' ¥H¤Î `<tt>v1.2</tt>' ³o¼Ëªº¤l¥Ø¿ý¤U¡D ¼Æ¦r³Ì¤jªº¬O³Ì·sªºª©¥»¡A¦Ó¥B³q±`¬O``´ú¸Õª©''¡A¤]´N¬O»¡¦pªG§A¹ï beta ©Î alpha ª©·P¨ì¤£¦wªº¸Ü¡A§AÀ³¸Ó°±¯d¦b¥D­nªºµo¦æª©¥»¤W¡D <p> <it>±j¯P</it>«ØÄ³§A¥h§ä mirror ªº ftp ¸`ÂI¡A¦Ó¤£­nª½±µ¨ì <tt>ftp.funet.fi</tt> ¥h! ©³¤U¬O¤@¨Ç mirrors ¥H¤Î¨ä¥L¸`ÂIªºÂ²­n¦Cªí: <p> <verb> USA: sunsite.unc.edu:/pub/Linux/kernel USA: tsx-11.mit.edu:/pub/linux/sources/system UK: sunsite.doc.ic.ac.uk:/pub/unix/Linux/sunsite.unc-mirror/kernel Austria: ftp.univie.ac.at:/systems/linux/sunsite/kernel Germany: ftp.Germany.EU.net:/pub/os/Linux/Local.EUnet/Kernel/Linus Germany: sunsite.informatik.rwth-aachen.de:/pub/Linux/PEOPLE/Linus France: ftp.ibp.fr:/pub/linux/sources/system/patches Australia: sunsite.anu.edu.au:/pub/linux/kernel </verb> ¤@¯ë¨Ó»¡¡A<tt>sunsite.unc.edu</tt> ªº mirror ¯¸¬O«Ü¦n§äªº¡D ÀÉ®× <tt>/pub/Linux/MIRRORS</tt> ¥]§t¤F¤wª¾ªº mirror ¸`ÂI¡D ¦pªG§A¨S¦³¿ìªk¤W ftp ¡A¦³­Ó¦s©ñ linux ªº BBS ¨t²Î¦Cªí·|©w´Á¥Zµn¦b comp.os.linux.announce ¤W¡A¸ÕµÛ¨ì¨ºÃä¥h§ä¤@¤U¡D <p> ¦pªG§A·Q´M§ä¤@¯ëªº Linux ¸ê°T»P®M¥ó¡A¥h <tt><htmlurl url="http://www.linux.org/" name="http://www.linux.org/"></tt>¡D <sect1>¸Ñ¶}­ì©lµ{¦¡½Xªº¥]¸Ë <p> ½T©w§A¬O¥H`<tt>root</tt>'ªº¨­¥÷ñ¤J¡AµM«á <tt>cd</tt> ¨ì <tt>/usr/src</tt>¡D ¦pªG§A¦w¸Ë Linux ®É¤w¸g¦w¸Ë¤F®Ö¤ß­ì©lµ{¦¡½X¡A¦b³o­Ó¥Ø¿ý©³¤UÀ³¸Ó¤w¸g¦s¦b¤@­Ó¥s°µ `<tt>linux</tt>' ªº¤l¥Ø¿ý¡D ³o¬Oª©ªº linux ­ì©lµ{¦¡½X¡D¦pªG§AÁÙ¦³ºÏºÐªÅ¶¡¦Ó¥B·Q­nª±±o¦w¥þ¤@ÂI¡A¨º»ò§A·|·Q­n«O¯d³o­Ó¤l¥Ø¿ýªº¡D ¦³­Ó¦n¥D·N¬O®Ú¾Ú§A¥Ø«e¨Ï¥Îªº®Ö¤ßª©¥»¨Ó­×§ï³o­Ó¤l¥Ø¿ýªº¦WºÙ¡D `<tt>uname -r</tt>' ³o­Ó«ü¥O±N·|§i¶D§A¥Ø«eªº®Ö¤ßª©¥»¡D ©Ò¥H¡A¦pªG `<tt>uname -r</tt>' Åã¥Ü `<tt>1.0.9</tt>'¡A§A´N¥i¥H§â `<tt>linux</tt>' §ï¦W(¥Î `<tt>mv</tt>')¬° `<tt>linux-1.0.9</tt>'¡D ¦pªG§A¬O­Ó¾|²õ«¬ªº¤H¡A¨º´Nª½±µ§â³o­Ó¤l¥Ø¿ý²M°£±¼¡D µL½×¬O­þ¤@ºØ±¡ªp¡A¤Ï¥¿¥u­n½T©w¦b¸Ñ¶}¥þ³¡ªº­ì©lµ{¦¡½X¤§«e¡A<tt>/usr/src</tt> ¥Ø¿ý¤U¨S¦³ `<tt>linux</tt>' ³o­Ó¤l¥Ø¿ý´N¹ï¤F¡D <p> ¦b <tt>/usr/src</tt> ¥Ø¿ý¤U¡A¥Î `<tt>tar zxpvf linux-x.y.z.tar.gz</tt>' ¨Ó¸Ñ¶}­ì©lµ{¦¡½Xªº¥]¸Ë (¦pªG§A®³¨ìªº¬O <tt>.tar</tt> ªºÀɮסA«á­±¨S¦³¥[¤W <tt>.gz</tt>¡A¨º´N¥Î `<tt>tar xpvf linux-x.y.z.tar</tt>')¡D §A±N·|¬Ý¨ì­ì©lµ{¦¡ªº¤º®e­¸³u¦Ó¹L¡D·í¥¦§¹¦¨¥H«á¡A¦b <tt>/usr/src</tt> ±N·|¥X²{¤@­Ó·sªº `<tt>linux</tt>' ¤l¥Ø¿ý¡D <tt>cd</tt> ¨ì <tt>linux</tt> ¥Ø¿ý¤UµM«á¬d¬Ý <tt>README</tt> ÀÉ¡A ¸Ì­±À³¸Ó·|¦³¤@¬q¼ÐÃD¬° `<tt>INSTALLING the kernel</tt>' ©ÎÃþ¦üªº¤å¦r¡D ¦pªG¾A·íªº¸Ü¡A¥ý¨Ì·Ó»¡©ú¸Ìªº«ü¥Ü ¢w «Ø¥ß¸Ó¦³ªº²Å¸¹Ãìµ²¡A²¾°£¹L®Éªº .o ÀÉ®×µ¥µ¥µ¥½Ñ¦p¦¹Ãþªº¤u§@¡D <sect1>°t¸m®Ö¤ß <p> ª`·N¡G³o³¡¥÷¤º®e¦³¨Ç¬O­«ÂÐ Linus ªº <tt>README</tt> Àɮפ¤ªº¬ÛÀ³³¹¸`©Î¥[¥H­×­q¡D <p> ¦b <tt>/usr/src/linux</tt> ¤U°õ¦æ `<tt>make config</tt>' ³o­Ó©R¥O±N·|±Ò©l¤@­Ó«ü¥O½Z¡A ¦Ó³o­Ó«ü¥O½Z·|°Ý§A¦UºØ°ÝÃD¡D¥¦»Ý­n bash ¡A©Ò¥H­n½T©w bash ¬O <tt>/bin/bash</tt>¡A<tt>/bin/sh</tt> ©Î <tt>$BASH</tt>¡D <p> ÁÙ¦³¨ä¥¦ºØ `<tt>make config</tt>' ªº¤è¦¡§A¥i¯à·|ı±o§ó®e©ö¨Ï¥Î¡D ¹ï¨º¨Ç°õ¦æ X Window ªº¤H§A¦pªG¦³¸Ë Tk ªº¸Ü¥i¥H¸ÕµÛ¥Î `<tt>make xconfig</tt>'¡D `<tt>make menuconfig</tt>' ¬Oµ¹¨º¨Ç¦³¸Ë (n)curses ¦Ó¥B³ßÅw¤å¦r¼Ò¦¡¿ï³æªº¤H¥Îªº¡D ³o¨Ç¬É­±¦³­Ó©úÅ㪺¦n³B: ¦pªG¦b°t¸m¹Lµ{¤¤§A¤£¤p¤ß¥Ç¤F¿ù¡A¥i¥H²³æ¦a¦^¥h­×¥¿¡D <p> §A²{¦b¸Ó·Ç³Æ¦n¦^µª³o¨Ç°ÝÃD¡A³q±`¥Î `<tt>y</tt>' ©Î `<tt>n</tt>' ´N¥i¥H¤F¡D ³]³ÆÅX°Êµ{¦¡³q±`·|¦³¤@­Ó `<tt>m</tt>' ¿ï¶µ¡D ³oªí¥Ü``¼Ò²Õ(module)''¡Aªí¥Ü»¡¨t²Î±N·|½sĶ¥¦¡A¦ý¤£·|ª½±µ©ñ¶i®Ö¤ß¸Ì¡A¦Ó¬O°µ¬°¤@¥i¸ü¤J¼Ò²Õ¡D ¤@­Ó¦³½ìªº»¡ªk¬Oªí¥Ü``maybe''¡D¦³¤@¨Ç«Ü©úÅã©Î¬O¤£­«­nªº¿ï¶µ±N¤£·|¦b¦¹¥[¥H»¡©ú¡D ½Ð¨£``<ref id="other-options" name="¨ä¥¦°t¸m¿ï¶µ">''¤@¸`¹ï¨ä¤¤ªºÂ²µu»¡©ú¡D <p> ¦b 2.0.x ©Î¥H«áªºª©¥»¤¤¦³¤@­Ó `?' ¿ï¶µ¡A´£¨Ñ¤F³o­Ó°t¸m°Ñ¼ÆªºÂ²µu´y­z¡D ³o¨Ç¸ê°TÀ³¸Ó³£¬O³Ì·sªº¡D <sect2>Kernel math emulation (®Ö¤ßªº¼Æ¾Ç¹Bºâ¼ÒÀÀ) <p> ¦pªG§A¨S¦³¼Æ¾Ç»²§U¹Bºâ³B²z¾÷(§A¥u¦³¤@¥x³æ¯Âªº 386 ©Î 486SX)¡A¨º»ò§A¦b ³o¸Ì­n¦^µª `<tt>y</tt>'¡D¦pªG§A¤w¸g¦³¼Æ¾Ç»²§U¹Bºâ³B²z¾÷«oÁÙ¦^µª `<tt>y</tt>'¡A ¨º¤]¤£¥²¤Ó¾á¤ß ¢w linux ÁÙ¬O·|¥h¨Ï¥Î¥¦¦Ó©¿²¤±¼®Ö¤ßªº¼ÒÀÀµ{¦¡¡D °ß¤@ªº¼vÅT¬O½sĶ¥X¨Óªº®Ö¤ßÅܤj¤F(¥Î±¼§ó¦hªº°O¾ÐÅé)¡D §ÚÅ¥»¡¼Æ¾Ç¹B²¼ÒÀÀ«ÜºC; ÁöµM©M¥»¸`µL¤Ó¤jÃö«Y¡AÁÙ¬OÀ³¸Óª`·N³o¹ï X Window ¨t²Îªº®Ä²v·|¦³«Ü¤j¼vÅT¡D <sect2>Normal (MFM/RLL) disk and IDE disk/cdrom support (¼Ð·ÇµwºÐ¤ä´©) <p> §A¦b³o¸Ì®t¤£¦h³£±o¦^µª `<tt>y</tt>'¡D¥¦¥Nªíªº·N«ä¬O®Ö¤ß±N·|¤ä´©¼Ð·Çªº PC µwºÐ¡A ¨Ò¦p¤j¦h¼Æ¤H¨Ï¥Îªº IDE ¬É­±µwºÐ¡D³o¤£¥]¬A SCSI ³]³Æªº¤ä´©; ³o±N¦b«á­±³]©w¡D <p> µM«á§A·|³Q°Ý¨ìÃö©ó ``old disk-only'' »P ``new IDE'' ÅX°Êµ{¦¡ªº¨Æ¡D §AÀ³¸Ó¨âªÌ¿ï¤@; ¥D­nªº®t§O¬OªºÅX°Êµ{¦¡¥u¤ä´©³æ¤@¬É­±¨â³¡ºÏºÐ¾÷¡A ¦Ó·sªºÅX°Êµ{¦¡¤ä´©²Ä¤G¬É­±¤Î IDE/ATAPI ¥úºÐ¾÷¡D·sªºÅX°Êµ{¦¡¤ñªº¤j¬ù¦h 4K¡A ¦Ó¥BÀ³¸Ó¬O``§ï¨}ªº''¡A¤]´N¬O»¡°£¤F¥i¯à¥]§t¨Ç³\¿ù»~¤§¥~¡A¥¦À³¸Ó·|§ïµ½§AªººÏºÐ®Ä²v¡A¯S§O¬O¦pªG§A¦³¸û·sªº EIDE µwÅ骺¸Ü¡D <sect2>Networking support (ºô¸ô¤ä´©) <p> ­ì«h¤W¡A¦pªG§A¦³³s±µºô¸ô¡AÄ´¦p»¡¡A§A¦³ Internet ³s½u¡A©Î¬O§A±N¨Ï¥Î SLIP¡APPP¡Aterm ©Î¨ä¥¦¤è¦¡¼·±µ¨ì Internet ¤Wªº¸Ü¡A¦^µª `<tt>y</tt>'¡D µM¦Ó¡A¬Y¨Ç³nÅé®M¥ó(¨Ò¦p X Window ¨t²Î)»Ý­nºô¸ô¤ä´©¡A§Y¨Ï§Aªº¾÷¾¹¨Ã¤£¯u¥¿³s±µ¨ìºô¸ô¤W¡D³o±¡§Î§A¤]À³¸Ó¦^µª `<tt>y</tt>'¡D µM«á¡A§A·|³Q°Ý¨ì¬O§_»Ý­n¤ä´© TCP/IP ºô¸ô¡A¦pªG§A¤£¤Q¤À½T©w¡A´N¦^µª `<tt>y</tt>'¡D <sect2>Limit memory to low 16MB (¨î°O¾ÐÅé¦b 16 MB) <p> ¥i¯à·|¦³¤@¨Ç¤£¨}ªº 386 DMA ±±¨î¾¹µLªk¥¿½T¦a©w§}¨ì 16 MB ¥H¤Wªº°O¾ÐÅé¦ì§}¡F ¦pªG§Aªº¾÷¾¹­è¦n¦³³oºØ(¨u¨£)±¡ªp®É¡A¨º»ò§A¤]´N¥u¦n¦^µª¡ª y ¡ª¤F¡D <sect2>System V IPC <p> ¤@­Ó IPC (¦æµ{¤º³q°T¡AInterprocess Communication) ªº©w¸q´N¦b Perl ®Ñ¤¤ªºµù¸Ñ¡D ³o¨Ã¤£¤j©_©Ç¡A¤@¨Ç Perl µ{¦¡³]­pªÌ¥Î¥¦¨ÓÅý¦æµ{¤§¶¡¤¬¬Û·¾³q¡A´N¹³³\¦h¨ä¥¦®M¥ó(³ÌµÛ¦W¦p DOOM)¤@¼Ë¡D ¦]¦¹°£«D§A§¹¥þ¤F¸Ñ§A¦b°µ¤°»ò¡A¤£µM³Ì¦n§O¦^µª <tt>n</tt>¡D <sect2>Processor type (386, 486, Pentium, PPro) (·L³B²z¾÷ºØÃþ) <p> (¦b¸ûª©¥»ªº®Ö¤ß¤¤¬°: Use -m486 flag for 486-specific optimizations¡A¨Ï¥Î -m486 ºX¼Ð°w¹ï 486 °µ³Ì¨Î¤Æ) <p> «ö·ÓºD¨Ò¦a¡A³o¬O¹ï¤@¯S§Oªº·L³B²z¾÷°µ¬YºØ³Ì¨Î¤Æ; ®Ö¤ß¤´¥i¦b¨ä¥¦´¹¤ù¤W¶]±o«Ü¦n¡A¦ý¥i¯à·|¤ñ¸û¤j¨Ç¡D ¤£¹L¡A¦b¸û·sª©¥»ªº®Ö¤ß¤W¡A¤w¸g¤£¬O³o­Ó¼Ë¤l¤F¡D¦]¦¹§AÀ³¸Ó¥¿½T¦a¦^µª§A­n½sĶªº·L³B²z¾÷ºØÃþ¡D ``386'' ªº®Ö¤ß¥i¥H¦b©Ò¦³ªº¾÷¾¹¤W¤u§@¡D <sect2>SCSI support (SCSI ªº¤ä´©) <p> ¦pªG§A¦³ SCSI ³]³Æ¡A¨º»ò´N¦^µª `<tt>y</tt>'¡D ±µµÛ·|¦³´£¥Ü­n¨D§ó¶i¤@¨Bªº¸ê°T¡A¹³¬O§A¬O§_­n¤ä´©¥úºÐ¾÷¡AºÏºÐ¾÷¡AÁÙ¦³§A¨Ï¥Îªº¬O¨º¤@ºØ SCSI ¤¶­±¥d¡D ³o³¡¥÷½Ð°Ñ¾\ <htmlurl url="HOWTO/SCSI-HOWTO.html" name="SCSI-HOWTO">¡A¦³§ó¸Ô²Óªº»¡©ú¡D <sect2>Network device support (ºô¸ô³]³Æ¤ä´©) <p> ¦pªG§A¦³ºô¸ô¥d¡A©ÎªÌ§A·Q­n¨Ï¥Î SLIP¡APPP¡A©Î¬O¨Ã¦C°ð¬É­±¥d¡A¨º´N¦^µª `<tt>y</tt>'¡D ±µµÛ·|¦³´£¥Ü°Ý§A¨Ï¥Îªº¬O¨º¤@ºØºô¸ô¥d¡A©Î­n¨Ï¥Î¨º¤@ºØ³q°T¨ó©w¡D <sect2>Filesystems (Àɮרt²Î) <p> ³o±N·|¦³´£¥Ü­n§A¦^µª©Ò­n¤ä´©ªºÀɮרt²ÎºØÃþ¡A­p¦³¡G <P> Standard (minix) ¢w ·sªº®M¥ó¤£¦A«Ø¥ß minix Àɮרt²Î¡A¦Ó¥B«Ü¦h¤H¤£¨Ï¥Î¥¦¡A¦ý¬O§â¥¦°t¸m¦b®Ö¤ß¸Ì¤´µM¬O­Ó¦n¥D·N¡D ¬Y¨Ç``«æ±ÏºÏ¤ù''µ{¦¡·|¥Î¨ì¥¦¡A¦Ó¥B¤´µM¦³³\¦h³nºÐºÏ¤ù¥i¯à¥Î minix Àɮרt²Î¡A¦]¬° minix Àɮרt²Î¹ï©ó³B²z³nºÐ¤ù¤è­±¸ûµL°ÝÃD¡D <p> Extended fs ¢w ³o¬OÂX¥RÀɮרt²Îªº²Ä¤@ª©¡A²{¦b¤w¸g¤£¦A¨Ï¥Î¡D¨Ï¥Îªº®É¾÷¬O¡A¦pªG§A¦³»Ý­n¡A§A´N·|ª¾¹Dªº¡D¦pªG§Aı±oÃhºÃ¡A§A´N¤£»Ý­n¥¦¡D <p> Second extended ¢w ³o¬O²{¦b·sµo¦æªº®M¥ó©Ò¼sªx±Ä¥ÎªºÀɮרt²Î¡A§A¥i¯à·|¦³¨ä¤¤¤@ºØ¡A©Ò¥H¥²¶·¦^µª `<tt>y</tt>'¡D <p> xiafs filesystem ¢w ³o­ÓÀɮרt²Î´¿¸g¤@«×«Ü´¶¹M¡A¦ý¬O¦b¼g³o¥÷¤å¥ó®É¡A§Ú¤w¸g¤£ª¾¹D¦³¥ô¦ó¤H¦b¨Ï¥Î¥¦¤F¡D <p> msdos ¢w ¦pªG§A·Q­n¦b linux ¤U¨Ï¥Î§AµwºÐ¤¤ªº MS-DOS ¤À³Î°Ï¡A©Î¬O·Q±N¥Î MS-DOS ®æ¦¡¤Æªº³nºÐ¤ù±¾¶i¨Óªº¸Ü¡A¦^µª `<tt>y</tt>'¡D <p> ums-dos ¢w ³oºØÀɮרt²Î¯à¨Ï MS-DOS Àɮרt²Î¾Ö¦³§ó¦h¹³ Unix ªº¯S©Ê¡A¹³¬OªøÀɦWµ¥µ¥¡D³o¹ï¨º¨Ç¤£¨Ï¥Î MS-DOS ªº¤H(¹³§Ú)¨Ã¤£¬O«Ü¦³¥Î¡D <p> /proc ¢w ¥t¤@ºØ¯«©_ªºªF¦è(§Ú²q³o­Ó·§©À¬OµL®¢¦a±q¨©º¸¹êÅç«Ç¸Ì°½¹L¨Óªº)¡D ¥¦¤£¬O§AµwºÐ¤À³Î°Ï¸Ìªº¥ô¦óªF¦è¡A¦Ó¬O®Ö¤ß»Pµ{§Ç¤§¶¡ªºÀɮרt²Î¤¶­±¡D³\¦hµ{§Ç¤u¨ã(¹³ `<tt>ps</tt>')³£·|¥Î¨ì¥¦¡D ¦³®É¥i¥H¸ÕµÛ¥Î `<tt>cat /proc/meminfo</tt>' ©Î `<tt>cat /proc/devices</tt>'¡D ¬Y¨Ç shell (¯S§O¹³¬O rc) ¨Ï¥Î¤F <tt>/proc/self/fd</tt> (¦b¨ä¥¦¨t²Î¸Ì¥s°µ <tt>/dev/fd</tt>) ¨Ó°µ¿é¥X¿é¤J°Ê§@¡D §A´X¥GÀ³¸Ó¦^µª `<tt>y</tt>'; ³\¦h­«­nªº Linux ¤u¨ã³£¨Ì¿à¥¦¨Ó¹B§@ªº¡D <p> NFS ¢w ¦pªG§A¦bºô¸ôÀô¹Ò¤U¦Ó¥B·Q­n¥Ñ NFS ¨Ó¨Ï¥Î¨ä¥¦¾÷¾¹ªºÀɮרt²Î¡A¦^µª `<tt>y</tt>'¡D <p> ISO9660 ¢w µ´¤j³¡¤Àªº¥úºÐ¤ù³£¨Ï¥Î³o­ÓÀɮרt²Î¡D¦pªG§A¦³¥úºÐ¾÷¦Ó¥B·Q¦b Linux ¤U¨Ï¥Î¡A¦^µª `<tt>y</tt>'¡D <p> OS/2 HPFS ¢w ¦b½s¼g³o¥÷¤å¥óªº®É­Ô¡A³o­ÓÀɮרt²ÎÁÙ¥u¤ä´©¨ì OS/2 HPFS ªºÅª¨ú¡D <p> System V and Coherent ¢w ³o¬O¬° System V ¥H¤Î Coherent ¨t²Îªº¤À³Î°Ï¦Ó³]ªº(¥¦­Ì¬O¥t¤@ºØ¦b PC ¤Wªº Unix ¨t²Î)¡D <sect3>¦ý¬O§Ú¤£ª¾¹D§Ú»Ý­n¨º¨ÇÀɮרt²Î! <p> ¦n§a¡AÁä¤J `<tt>mount</tt>'¡D¥¦¬Ý°_¨Ó·|¹³³o¼Ë¡G <p> <tscreen><verb> blah# mount /dev/hda1 on / type ext2 (defaults) /dev/hda3 on /usr type ext2 (defaults) none on /proc type proc (defaults) /dev/fd0 on /mnt type msdos (defaults) </verb></tscreen> ¥J²Ó¬Ý¬Ý¨C¤@¦æ¡F¦b `<tt>type</tt>' «á­±ªº¨º­Ó¦r´N¬OÀɮרt²Îªº®æ¦¡¡D ¦b³o­Ó¨Ò¤l¤¤¡A§Úªº <tt>/</tt> ©M <tt>/usr</tt> ¤À³Î°Ï¬O second extended ®æ¦¡¡A §Ú¨Ï¥Î¤F /proc ¡A¦Ó¥B±¾¦³¤@±i¥H msdos (bleah) ¬°Àɮרt²Î®æ¦¡ªººÏ¤ù¡D <p> ¦pªG§A¦³¨Ï¥Î <tt>/proc</tt>¡A¥i¥H¸Õ¸Õ `<tt>cat /proc/filesystems</tt>'¡D ¥¦·|µ¹§A¤@¥÷¥Ø«e¨Ï¥Îªº®Ö¤ß©Ò¤ä´©ªºÀɮרt²Î¦Cªí¡D <p> ³o°t¸m¨Ã¤£±`¨Ï¥Î¡D¤£­«­nªºÀɮרt²Î·|¨Ï®Ö¤ßÅã±oÁs¸~; °Ñ¨£¥i¸ü¤J¼Ò²Õ¤@¸`ªº»¡©ú¥HÁ×§K¦¹±¡ªp¡A¥H¤Î``<ref id="pitfalls" name="³´¨À">''¤@¸`»¡©ú¬°¦óÁs¸~ªº®Ö¤ß¤£¦n¡D <sect2>Character devices (¦r¤¸³]³Æ) <p> ¦b³o¸Ì¡A§A±N·|µo²{³\¦h³]³Æ¦WºÙ¡A¥Î¨Ó³]©w§Aªº¦Lªí¾÷¡A¶×¬y±Æ·Æ¹«¡APS/2 ·Æ¹«(¤j³¡¤Àµ§°O«¬¹q¸£¨Ï¥Î¤º«Øªº PS/2 ·Æ¹«)¡A ¥H¤Î¤@¨ÇºÏ±a¾÷ÅX°Êµ{¦¡¡A¥H¤Î¨ä¥¦ªº``¦r¤¸''³]³Æ¡D·í¦³¦X¾Aªº¿ï¶µ®É¡A¦^µª `<tt>y</tt>'¡D <p> ª`·N¡GSelection ³o­Óµ{¦¡¨Ï§A¥i¥H¦b X window ¤§¥~¨Ï¥Î·Æ¹«¦b¦U­ÓµêÀÀ±±¨î¥x¶¡°µ°Å¶Kªº°Ê§@¡D ¦pªG§A¦³¦ê¦C·Æ¹«ªº¸Ü¡A³o¯uªº«Ü´Î¡A¦]¬°¥¦»P X window ¤§¶¡ªº·¾³q¨}¦n¡A ¤£¹L¦pªG§A¥Î¨ä¥¦ºØÃþªº·Æ¹«´N»Ý­nÂI§Þ¥©¤F¡DSelection ´¿¸g¤@«×¬O¿ï¾Üªº°t¸m°t¶µ¡A¤£¹L²{¦b¤w¸g¬O¼Ð·Ç¤F¡D <p> ª`·N¤G: Selection ²{¦b¤w¸g¹L®É¤F¡D²{¦b·sªºµ{¦¡¦W¥s ``gpm''¡D ¥¦¯à°µ§ó¯«©_ªº¨Æ¡A¹³¬OÂà´«·Æ¹«¨ó©w¡A³B²z¦h­«·Æ¹«µ¥¡K¡K <sect2>Sound card (­µ®Ä¥d) <p> ¦pªG§A·QÅ¥¨ì <tt>biff</tt> µ{¦¡¤j¥sªº¸Ü¡A¦^µª `<tt>y</tt>'¡D µM«áµ¥¤@¤U·|½sĶ¥t¤@­Ó°t¸mµ{¦¡¨Ã¸Ô²Ó¸ß°Ý§A©Ò¦³Ãö©ó­µ®Ä¥dªº°ÝÃD¡D (ª`·N: ·í¥¦°Ý§A¬O§_¦w¸Ë§¹¾ãª©¥»ªºÅX°Êµ{¦¡®É¡A§A¥i¥H¦^µª `<tt>n</tt>' ¥H´î¤Ö§A®Ö¤ß°O¾ÐÅé¨Ã¥u¿ï¥Î§A¯u¥¿»Ý­nªº¡D) ¦pªG§A¦³­µ®Ä¥d§Ú±j¯P«ØÄ³¬Ý¤@¤U <htmlurl url="Sound-HOWTO.html" name="Sound-HOWTO"> ¥Hª¾¹D§ó¦hªº²Ó¸`¡D <sect2>¨ä¥¦°t¸m¿ï¶µ<p> ¨S¦³±N©Ò¦³ªº¿ï¶µ³£¦C¥X¨Ó¡A¦]¬°¦³¨Ç¸g±`§ïÅÜ¡A©Î¬O¬Û·í¦Û©úªº(¨Ò¦p 3Com 3C509 support ´N¬O½sͳoºØ¯S§O¤A¤Óºô¸ô¥dªºÅX°Êµ{¦¡)¡A ¦³¤@­Ó¤Q¤À®e©ö²z¸Ñªº©Ò¦³¿ï¶µ¦Cªí(¥]¬A±N¥¦­Ì©ñ¨ì <tt>Configure</tt> «ü¥O½Zªº¤èªk)¥i¦b³o­Ó URL §ä¨ì(¥Ñ Axel Boldt <tt><htmlurl url="mailto:axel@uni-paderborn.de" name="axel@uni-paderborn.de"></tt> ©Ò¦¬¶°): <tscreen> <tt><htmlurl url="http://math-www.uni-paderborn.de/~axel/config_help.html" name="http://math-www.uni-paderborn.de/~axel/config_help.html"></tt> </tscreen> ©Î¸g¥Ñ°Î¦W FTP ¯¸: <tscreen> <tt><htmlurl url="ftp://sunsite.unc.edu/pub/Linux/kernel/config/krnl_cnfg_hlp.x.yz.tgz" name="ftp://sunsite.unc.edu/pub/Linux/kernel/config/krnl_cnfg_hlp.x.yz.tgz"></tt> </tscreen> ¨ä¤¤ <tt>x.yz</tt> ¬Oª©¥»¸¹½X¡D <p> ¨ä«á¨Óªº®Ö¤ß¤¤(2.0.x ¤Î¨ä«áªº)¡A³o¤w³Q¾ã¦X¨ì­ì©lµ{¦¡½X¤¤¡D <sect2>Kernel hacking <p> >³o¬O±q Linus ªº README ¸ÌºK¿ýªº¡G <p> ``kernel hacking'' °t¸mªº²Ó¸`³q±`·|²£¥Í¤@­Ó§ó¤j©Î¬O§óºCªº®Ö¤ß(©ÎªÌ¬O¤S¤j¤SºC)¡A ¦Ó¥B¥i¯à¦]¬°±N¤@¨Ç±`¦¡°t¸m¦¨«Ü¬¡ÅD¦a¥h¹Á¸Õ¤¤Â_¤@¨Ç¤£¨}ªºµ{¦¡½X¥H«K§ä¥X®Ö¤ß¸Ìªº°ÝÃD¡] kmalloc() ¡^¡A ¦Ó¨Ï±o®Ö¤ßÅܱo¤ñ¸û¤£Ã­©w¡D©Ò¥H­n²£¥Í¤@­Ó®Ö¤ß``²£«~''ªº¸Ü¡A§A¦b³o¸ÌÀ³¸Ó¦^µª `n'¡D <sect1>²{¦b©O? (The Makefile) <p> ¦b§A§¹¦¨ <tt>make config</tt> ¤§«á¡AÀ³¸Ó·|¦³¤@­Ó°T®§§i¶D§A®Ö¤ß¤w¸g°t¸m¦n¤F¡A ¥H¤Î­n§A¥h``check the top-level Makefile for additional configuration'' µ¥µ¥°T®§¡D <p> ©Ò¥H¬d¬Ý¤@¤U <tt>Makefile</tt>¡D§AÀ³¸Ó¤£¥²§ïÅÜ¥¦¡A¦ý¬O¬Ý¬ÝµL§«¡D ¤@¥¹·s®Ö¤ß§¹¦¨¡A§A¤]¥i¥H¥Î `<tt>rdev</tt>' «ü¥O¨Ó§ïÅܨ䤤ªº¿ï¶µ¡D <sect>½sĶ®Ö¤ß <p> <sect1>²M°£»P½T»{ <p> ·í¥Î¨Ó¶i¦æ°t¸mªº«ü¥O½Z°õ¦æ§¹¦¨®É¡A¥¦·|§i¶D§A¥h `<tt>make dep</tt>' ¥H¤Î `<tt>clean</tt>'¡D ©Ò¥H­n°õ¦æ`<tt>make dep</tt>'¡D³o±N½T«O©Ò¦³ªº¬Û¨ÌÃö«Y¡A¨Ò¦p include files ³£¨S°ÝÃD¡D °£«D§Aªº¹q¸£¯uªº«ÜºC¡A§_«h¥¦¤£·|ªá¤Ó¤[®É¶¡ªº¡D §¹¦¨«á¡A¦b¸ûª©¥»ªº®Ö¤ß¤¤§AÁÙÀ³¸Ó°µ `<tt>make clean</tt>'¡D ³o·|²M°£®Ö¤ß½sĶªº©Ò¦³¥ØªºÀÉ¥H¤Î¨ä¥¦ªF¦è¡D¦b­««Ø¤@­Ó®Ö¤ß¤§«e<it>¤£­n</it>§Ñ°O³o­Ó¨BÆJ¡D <sect1>½sͮɴÁ <p> ¦b§¹¦¨ `<tt>make dep</tt>' ¤Î `<tt>make clean</tt>' ¤u§@¤§«á¡A§A²{¦b¥i¥H°õ¦æ `<tt>make zImage</tt>' ©Î `<tt>make zdisk</tt>' (³o³¡¥÷»Ý­nªø®É¶¡)¡D `<tt>make zImage</tt>' ±N·|½s֤ͮߡA¨Ã¥B¦b <tt>arch/i386/boot</tt> ¯dµ¹§A¤@­Ó¥s°µ `<tt>zImage</tt>' ªºÀɮסD³o´N¬O·sªºÀ£ÁY®Ö¤ß¡D `<tt>make zdisk</tt>' °µªº¨Æ¤]¤@¼Ë¡A¦ý¬O¥¦·|§â®Ö¤ß©ñ¨ì§A©Ò§Æ±æªººÏ¤ù¥h¡A¥u­n§â³o±iºÏ¤ù©ñ¦b ``A:''¡D `<tt>zdisk</tt>'¹ï©ó´ú¸Õ·s®Ö¤ß«Ü¤è«K¡F¦pªG¥¦·í±¼(©Î¤u§@¤£¥¿±`)¡A¥u­n§âºÏ¤ù®³±¼¦A¥Îªº®Ö¤ß±Ò°Ê§Y¥i¡D ¦pªG§A·N¥~¦a§R°£¤F®Ö¤ß©Î¬O¤°»òªº¡A¥¦¤]¬O­Ó¤è«Kªº±Ò°Ê¿ìªk¡D ·í§A§â¤@¥xºÏºÐªº¤º®e¶É­Ë¨ì¥t¥~¤@¥x¥h®É¡A§A¤]¥i¥H¥Î¥¦¨Ó¦w¸Ë·sªº¨t²Î(°£¤F³o¨Ç¤§¥~ÁÙ¦³§ó¦h¥Î³~¡I) <p> ©Ò¦³ªñ¨Óªº®Ö¤ß³£¬OÀ£ÁY¹Lªº¡A©Ò¥H¦³­Ó `<tt>z</tt>' ¦b¦W¦r«e­±¡DÀ£ÁY¹Lªº®Ö¤ß°õ¦æªº®É­Ô·|¦Û°Ê±N¦Û¤v¸ÑÀ£ÁY¡D <sect1>¨ä¥L¥i¥H``make''ªºªF¦è <p> `<tt>make mrproper</tt>' ±N·|°µ§ó¼sªxªº `²M°£' ¤u§@¡D ³o­Ó°Ê§@¦³®É­Ô¬O¥²¶·ªº¡A©Ò¥H§A¥i¯à·|§Æ±æ¦b¨C¦¸­×¸Éªº®É­Ô°õ¦æ¥¦¡D `<tt>make mrproper</tt>' ÁÙ·|±N§Aªº°t¸mÀÉ®×±þ±¼¡A©Ò¥H¦pªG§A»{¬°¥¦­«­nªº¸ÜÀ³¸Ó¥ý°µ¤@³Æ¥÷(¦b <tt>.config</tt>)¡D <p> `<tt>make oldconfig</tt>' ·|¹Á¸Õ¥Ñ¤@ªº°t¸mÀɮרӰt¸m§Aªº®Ö¤ß¡D¥¦·|¬°§A°õ¦æ `<tt>make config</tt>'¡D ¦pªG§AÁÙ¥¼´¿½s͹L®Ö¤ß©Î¨S¦³Âªº°t¸mÀɮסA¨º»ò§A¥i¯à¤£¸Ó°µ³o­Ó¡A¦]¬°§A´X¥G½T©w·|§ó§ï¹w³]ªº°t¸m¡D <p> °Ñ¨£¥i¸ü¤J¼Ò²Õ¤@¸`¹ï `<tt>make modules</tt>' ªº»¡©ú¡D <p> <sect1>¦w¸Ë®Ö¤ß <p> ¦b§A¤w¸gÀò±o¤@­Ó¬Ý°_¨Ó¯à°÷·Ó§A§Æ±æ¹B§@ªº·s®Ö¤ß¤§«á¡A²{¦b¬O¦w¸Ë¥¦ªº®É­Ô¤F¡D ¤j³¡¥÷ªº¤H¨Ï¥Î LILO (Linux Loader) ¨Ó°µ³o¥ó¨Æ¡D `<tt>make zlilo</tt>' ±N·|¦w¸Ë®Ö¤ß¡AµM«á¹ï¥¦°õ¦æ LILO¡A¨Ï§A§¹¦¨©Ò¦³¶}¾÷ªº·Ç³Æ¡A ¦ý¬O³o¥u¦³¦b LILO ¤w¸g¥H¤U¦C³oºØ¤è¦¡°t¸m¦nªº®É­Ô¤~¥i¥H¡G®Ö¤ß¬° /vmlinuz ¡A lilo ¦b /sbin ¤U¡A¦Ó¥B»P§Aªº LILO °t¸m(<tt>/etc/lilo.conf</tt>)¤@­P¡D <p> ¥t¤@¤è­±¡A§A¥i¯à»Ý­nª½±µ¨Ï¥Î LILO¡D³o¬O¤@­Ó¬Û·í®e©ö¦w¸Ëªº³nÅé¡AµM¦Ó¡A¥¦ªº°t¸mÀɱ`¨Ï¤H§xÂZ¡D ¬d¬Ý°t¸mÀÉ(¤£¬Oª©ªº <tt>/etc/lilo/config</tt> ´N¬O·sª©ªº <tt>/etc/lilo.conf</tt>)¡A¬Ý¬Ý¸Ì­±¦³¨Ç¤°»ò¡D ¥¦¬Ý°_¨Ó¹³³o¼Ë¤lªºªF¦è¡G <p> <verb> image = /vmlinuz label = Linux root = /dev/hda1 ... </verb> ­º¥ý¡A`<tt>image =</tt>' ³]©w¬°¤w¸g¦w¸Ëªº®Ö¤ß¡D¤j³¡¥÷ªº¤H¦ü¥G³£¥Î <tt>/vmlinuz</tt>¡D `<tt>label</tt>' «h¬Oµ¹ lilo ¥Î¨Ó¨M©w²{¦b­n±Ò°Êªº¬O¨º­Ó®Ö¤ß©Î§@·~¨t²Î¡A ¦Ó `<tt>root</tt>' «h¬O³o­Ó¯S§Oªº§@·~¨t²Îªº®Ú¥Ø¿ý <tt>/</tt>¡D ³Æ¥÷¤@¥÷ªº®Ö¤ß¡AµM«á±N§A°µªº <tt>zImage</tt> «þ¨©¶i¥h(¨Ò¦p¡A¦pªG§A¥Î `<tt>/vmlinuz</tt>' ªº¸Ü¡A´N¹³³o¼Ë `<tt>cp zImage /vmlinuz</tt>')¡D µM«á¡A°õ¦æ `<tt>lilo</tt>'¡A¦ý¬O¦b¸ûªº¨t²Î¤W¡A§A¥i¯à¥²¶·°õ¦æ <tt>/etc/lilo/install</tt> ©Î¬Æ¦Ü¬O <tt>/etc/lilo/lilo -C /etc/lilo/config</tt>¡D <p> ¦pªG§A·Qª¾¹D§ó¦h¦³Ãö©ó LILO ªº°t¸m¡A©Î¬O§A¨Ã¨S¦³ LILO ¦ý¬O§A·Q­n¦w¸Ëªº¸Ü¡A ±q§A³ßÅwªº ftp ¸`ÂI¨ú±o³Ì·sªºª©¥»µM«á¨Ì»¡©ú¦æ¨Æ¡D <p> ­n¯à°÷±qµwºÐ±Ò°Ê§AªºÂ®֤ߨ䤤¤§¤@ªº¸Ü(³o¬O¥t¤@­Ó¦b·s®Ö¤ß¥Xª¬ªpªº±¡ªp¤U«OÅ@§A¦Û¤vªº¤èªk)¡A §â LILO °t¸mÀɤ¤©Ò¦³ªº(¥]¬A) `<tt>image = xxx</tt>' «þ¨©¨ìÀɮתº³Ì©³ºÝ¡A µM«á§â `<tt>image = xxx</tt>' §ï¦¨ `<tt>image = yyy</tt>' ¨ä¤¤ªº `<tt>yyy</tt>' ¬O§A³Æ¥÷®֤ߩҦsÀɪº¦W¦r¡D ±µµÛ¡A§â `<tt>label = zzz</tt>' §ï¦¨¹³¬O `<tt>label = linux-backup</tt>' µM«á­«·s°õ¦æ <tt>lilo</tt>¡D §A¥i¯à±o­n¥[¤W¤@¦æ `<tt>delay=x</tt>'¡A¨ä¤¤ªº x ¬O¥H¤Q¤À¤§¤@¬í¬°³æ¦ìªº®É¶¡¡A ³o¬O§i¶D LILO ¦b±Ò°Ê«e¥ýµ¥¤@¤U¡A©Ò¥H§A¥i¥H¤¤Â_¥¦ªº°õ¦æ(¨Ò¦p¥Î shift Áä)¡D µM«áÁä¤J©Ò³Æ¥÷ªº±Ò°Ê¬M¹³¤§ label (¦bµo¥Í¤F¬Y¨Ç¥O¤H¤£´r§Öªº¨Æ±¡ªº±¡ªp¤U)¡D <sect>­×¸É®Ö¤ß <p> <sect1>¨Ï¥Î­×¸ÉÀÉ <p> ®Ö¤ßªº¤p´T§ó·s¬O¥H­×¸ÉÀɪº¤è¦¡µo¦æ¡D¨Ò¦p¡A¦pªG§Aªºª©¥»¬O 1.1.45 ¡A ¦Ó¥B§Aª`·N¨ì¥X²{¤F¤@­Ó `<tt>patch46.gz</tt>' ¥i¥H¥Î¨Ó¤É¯Å¥¦¡A ³o¥Nªí§A¥i¥HÂǥѨϥγo­Ó­×¸ÉÀɱNª©¥»¤É¯Å¨ì 1.1.46¡D §A¤]³\·|·Q­n¥ý³Æ¥÷­ì©lµ{¦¡½X(`<tt>make clean</tt>' µM«á `<tt>cd /usr/src; tar zcvf old-tree.tar.gz linux</tt>' ±N·|¬°§A³y¥X¤@¥÷ tar À£ÁYÀÉ¡A¸Ì­±´N¬O¾ã­Ó­ì©lµ{¦¡½X»P¨äÀɮ׬[ºc)¡D <p> ²{¦b±µµÛÄ~Äò¤W­±ªº¨Ò¤l¡A°²³]§A¤w¸g¨ú±o¤F `<tt>patch46.gz</tt>' ¨Ã©ñ¦b <tt>/usr/src</tt> ¤U¡D <tt>cd</tt> ¨ì <tt>/usr/src</tt> µM«á°õ¦æ `<tt>zcat patch46.gz | patch -p0</tt>' (¦pªG¨Ã¤£¬OÀ£ÁY¹Lªº­×¸ÉÀÉ¡A¨º»ò´N°õ¦æ `<tt>patch -p0 < patch46</tt>')¡A §A±N·|¬Ý¨ì³\¦hªF¦è­¸³u¦Ó¹L(©Î¬OºCºC¸õ¹L¡A¦pªG§Aªº¹q¸£¯uªº«ÜºCªº¸Ü)§i¶D§A¥¦¥¿¸ÕµÛ­×¸Éµ{¦¡¡A¥H¤Î¬O§_¦¨¥\¡D ³q±`¡A³o­Ó¹Lµ{§Ö±oµLªk¥J²Ó¬Ý²M·¡¥¦ªº°Ê§@¡A©Ò¥H§A·|µLªk½T©w¥¦¨ì©³¦³¨S¦³¦¨¥\¦a°õ¦æ¡D ©Ò¥H§A¥i¯à·|·Q¦b <tt>patch</tt> «ü¥O¤¤¥[¤W <tt>-s</tt> ¿ï¶µ¡A§i¶D <tt>patch</tt> µ{¦¡¥u³ø§i¿ù»~°T®§´N¦n¡D (³o¼Ë§A´N¤£·|±o¨ì³\¦h``¶Ù! §Úªº¹q¸£¥¿¦b°µ¬Y¨Ç§ïÅÜ!''ªº·Pı¡A¤£¹L§A¥i¯à¹çÄ@³o¼Ë¡K) ¨º»ò´N±o§ä§ä¬Ý¤@¨Ç¥i¯à¤£¬O¨º»ò¶¶§Qªº¨Æ¡D<tt/cd/ ¨ì <tt>/usr/src/linux</tt> ¨Ã§ä´MÀɦWµ²§À¬° <tt>.rej</tt> ªºÀɮסD ¬Y¨Çª©¥»ªº <tt>patch</tt>¡]¤ñ¸ûªºª©¥»¡A¥¦­Ì¥i¯à¬O¦b¤ñ¸û¦­´ÁªºÀɮרt²Î¤W½sĶªº¡^·|§â³o¨Ç¨S¦³¦¨¥\ªº¾Þ§@°O¿ý¦bÀɦW¦³ <tt>#</tt> ªºÀɮ׸̡D §A¥i¥H¥Î `<tt>find</tt>' ¨Ó´À§A§ä¡F <verb> find . -name '*.rej' -print </verb> ·|±N²{¦æ¥Ø¿ý¤Î¤l¥Ø¿ý¤U©Ò¦³¨ã <tt>.rej</tt> µ²§ÀªºÀɦW¦L¨ì¼Ð·Ç¿é¥X¡D <p> ¦pªG¤@¤Á¥¿½TµL»~ªº¸Ü¡A°õ¦æ²Ä¤T¸`¸ò²Ä¥|¸`©Ò°Q½×ªº `<tt>make clean</tt>'¡A`<tt>config</tt>' ¥H¤Î `<tt>dep</tt>'¡D <p> Ãö©ó <tt>patch</tt> «ü¥O¥t¥~ÁÙ¦³¤@¨Ç¿ï¶µ¡D¦p«e©Ò­z¡A<tt>patch -s</tt> ±N·|§í¨î°£¤F¿ù»~¥H¥~ªº©Ò¦³¨ä¥L°T®§¡D ¦pªG§A§â®Ö¤ß­ì©lµ{¦¡½X©ñ¦b <tt>/usr/src/linux</tt> ¥H¥~ªº¦a¤è¡A¦b¸Ó¥Ø¿ý¤U¥Î <tt>patch -p1</tt> ¤]¥i¥H°®²b«W¸¨ªº°õ¦æ­×¸É¥ô°È¡D ¨ä¥¦ªº <tt>patch</tt> ¿ï¶µ¦b½u¤W¤â¥U(man page)¸Ì³£¦³«Ü¸Ô²Óªº´y­z¡D <sect1>¦pªG¦³¿ù»~µo¥Í <p> (ª`·N: ¥»¸`´£¨ìªº¤j³¡¥÷¬O«üª©ªº®Ö¤ß) <p> ³q±`³Ì±`µo¥Íªº°ÝÃD¬O·í <tt>patch</tt> ­×§ï¤@­Ó¥s°µ `<tt>config.in</tt>' ªºÀɮ׮ɡA³o­ÓÀɮ׬ݰ_¨Ó¤£«ç»ò¹ï«l¡A ¦]¬°§A­×§ï¤F¤@¨Ç¿ï¶µ¨Ó°t¦X§Aªº¾÷¾¹¡D³o­Ó°ÝÃD¤w¸g¤p¤ßªºª`·N¹L¤F¡A¦ýÁÙ¬O¥i¯à¦³¤H·|¦b¸ûªºª©¥»¤W¾D¹J³o­Ó°ÝÃD¡D ­n­×¥¿³o­Ó°ÝÃDªº¸Ü¡A¬d¬Ý <tt>config.in.rej</tt> ³o­ÓÀɮ׸̯d¤U¨Ç¤°»ò°T®§¡D ¦³­×§ï¹Lªº³¡¥÷¥¿±`¨Ó»¡·|¦b¨C¤@¦æ¶}©lªº¦a¤è¼Ð¤W `<tt>+</tt>' ©M `<tt>-</tt>'¡D ¬d¬Ý¦³¼Ð°Oªºªþªñ´X¦æ¡AµM«á°O±o¥¦­Ì¬O³]¦¨ `<tt>y</tt>' ©Î¬O `<tt>n</tt>'¡D ²{¦b½s¿è <tt>config.in</tt> ÀÉ¡AµM«á¦b¾A·íªº¦a ¤è§â `<tt>y</tt>' §ï¦¨ `<tt>n</tt>' ¥H¤Î `<tt>n</tt>' §ï¦¨ `<tt>y</tt>'¡D°õ¦æ <verb> patch -p0 < config.in.rej </verb> ¦pªG¦¨¥\ªº¸Ü(¨S¦³¿ù»~)¡A¨º»ò§A´N¥i¥HÄ~Äò°t¸m»P½sĶªº¤u§@¡D ³o­Ó <tt>config.in.rej</tt> ÀÉÁÙ¬O·|¯d¦b¨º¸Ì¡A¦ý¬O§A¥i¥H¬å±¼¥¦¡D <p> ¦pªG§A¤´µM¾D¹J¨ä¥¦°ÝÃD¡A¨º»ò¥i¯à¬O§A¦w¸Ë¤F¤@¥÷·lÃaªº­×¸ÉÀÉ¡D ¦pªG patch Åã¥Ü `<tt>previously applied patch detected: Assume -R?</tt>'¡A §A¥i¯à¨Ï¥Î¤F¤@¨Ç¤ñ§A¥Ø«eªºª©¥»½s¸¹ÁÙ§Cªº­×¸ÉÀÉ; ¦pªG§A¦^µª `<tt>y</tt>'¡A¥¦·|¹Á¸Õ±N§Aªºµ{¦¡½X­°¯Å¡A¦Ó¥B´X¥G¤@©w·|¥¢±Ñ; ¦p¦¹¡A§A´N»Ý­n­«·s¨ú±o¤@¥÷·sªº­ì©lµ{¦¡½X¡D <p> ­nÁÙ­ì¨ì­×¸É«eªºª¬ºAªº¸Ü¡A¦b­ì¥ýªº­×¸ÉÀɤW°õ¦æ `<tt>patch -R</tt>'¡D <p> ·í­×¸ÉÀɯuªº¥¢±Ñªº®É­Ô¡A³Ì¦nªº¿ìªk¬O±q¤@­Ó°®²bªº­ì©lµ{¦¡½X(¨Ò¦p±q linux-x.x.x.tar.gz Àɮר䤤¤§¤@)¶}©l¡A¦A­«·s°õ¦æ¡D <sect1>¬å±¼ .orig ÀÉ®× <p> ¥u­n°µ¹L´X¦¸­×¸É¥H«á¡A¨º¨Ç <tt>.orig</tt> ªºÀÉ®×±N·|¶}©l°ï¿n¡D ¨Ò¦p¡A§Úªº¤@­Ó 1.1.51 ª©ªºµ{¦¡½X³Ì«á¤@¦¸°µ²M±½¬O¦b 1.1.48 ª©¡]§Ú·Q¬O§a¡^¡D §R°£³o¨Ç <tt>.orig</tt> ÀÉ®×·|¸`¬Ù³\¦hªººÏºÐªÅ¶¡¡D <verb> find . -name '*.orig' -exec rm -f {} ';' </verb> ±N·|´À§A·Ó®Æ³o¥ó¨Æ¡D¬Y¨Çª©¥»ªº <tt>patch</tt> ·|¥Î ˜ ¨Ó¥N´À <tt>.orig</tt>¡D <p> ¦³¨ä¥¦§ó¦nªºªº¿ìªk¥i¬å±¼³o¨Ç <tt>.orig</tt> ÀÉ¡A´N¬O§Q¥Î GNU ªº <tt>xargs</tt>: <verb> find . -name '*.orig' | xargs rm </verb> ©Î¬O§ó¦w¥þ¦ý¦³¨ÇÅo¶Ûªº¤èªk: <verb> find . -name '*.orig' -print0 | xargs --null rm -- </verb> <sect1>¨ä¥¦ªº­×¸ÉÀÉ <p> ¦³¤@¨Ç¨Ã¤£¬O¥Ñ Linus µo¦æªº¨ä¥¦­×¸ÉÀÉ¥X²{(§Ú±NºÙ¤§¬°``«D¼Ð·Çªº'')¡D ¦pªG§A¨Ï¥Î¤F¥¦­Ì¡ALinus ªº­×¸ÉÀÉ¥i¯à·|¦ÓµLªk¥¿½T¦a°õ¦æ¡A ¨º»ò§A¤£¬O±o±N¥¦­ÌÁÙ­ì´N¬O±o¦]¦¹¦Ó¥h­×§ï­ì©lµ{¦¡½X©Î¬O­×¸ÉÀÉ¡D³o­Ó¤u§@¹ïªì¾ÇªÌ³q±`¬O«Ü°Q¹½¡A ©Ò¥H¦pªG§A¤£·Q¥h­×§ï­ì©lµ{¦¡½X(µ²ªG³q±`¤£¤j¦n)¡A¦b¨Ï¥Î Linus ªº­×¸ÉÀɤ§«e¥ýÁÙ­ì³o¨Ç«D¼Ð·Çªº­×¸ÉÀÉ¡A©Î­«·s¦w¸Ë·sªºµ{¦¡½X¡D µM«á¸Õ¸Õ³o«D¼Ð·Çªº­×¸ÉÀɯण¯à¥Î¡D¦pªG¤£¯àªº¸Ü¡A¨º»ò­n¤£§A´NÄ~Äò¨Ï¥Îªº®Ö¤ß¡A ¸ÕµÛ­×§ï­×¸ÉÀɨϨä¯à¥Î¡A­n¤£´Nµ¥«Ý(¥i¯à¬O¤^¨D)·sª©«D¼Ð·Ç­×¸ÉÀÉ¥X²{¡D <p> «D¼Ð·Çªº­×¸ÉÀɦ³¦h´¶¹M? §A¦³¥i¯à´¿¸gÅ¥¹L¥¦­Ì¡D§Ú¨Ï¥Î Bill Paul ªº¤£°{Ã{­×¸ÉÀɨӭקï§ÚªºµêÀÀ±±¨î¥x¡A¦]¬°§Ú°Q¹½·|°{Ã{ªº´å¼Ð(³o­Ó­×¸ÉÀɸg±`¬°·sª©®Ö¤ß¦Ó§ó·s)¡D ¥Ñ©ó¤j³¡¥÷¸û·sªº³]³ÆÅX°Êµ{¦¡³£¤w¸g³Qµo®i¦¨¥i¸ü¤J¼Ò²Õ§Î¦¡¡A¦]¦¹³\¦h«D¼Ð·Çªº­×¸ÉÀɪº­«­n©Ê¤w³vº¥­°§C¡D <sect>ªþ¥[ªº®M¥ó <p> §Aªº Linux ®Ö¤ß¦³³\¦h¦b­ì©lµ{¦¡½X¥»¨­¸Ì­±¨Ã¨S¦³»¡©úªº¯S©Ê¡F ³o¨Ç¯S©Ê¤@¯ë¬O¸g¥Ñ¥~¨Óªº³nÅé¨Ó§Q¥Î¡A¦b³o¸Ì¦C¥X¤@³¡¤À³Ì´¶¹Mªº¡G <sect1>kbd <p> Linux ªº±±¨î¥x¦³µÛ¤ñ§A©Ò¯à¦YÅå§ó¦hªº¯S¦â¡D³o¥]¬A¤Á´«¦r«¬¡A­«·s¹ï¬M§AªºÁä½L¡A¤Á´«Åã¥Ü¼Ò¦¡(¸û·sª©ªº®Ö¤ß)ªº¯à¤Oµ¥µ¥¡D kbd ³o®M³nÅé¸Ì¦³¯à°÷Åý¨Ï¥ÎªÌ°µ³o¨Ç°Ê§@ªº¤ä´©µ{¦¡¡AÁÙ¥[¤W¤@¤j°ïªº¦r«¬¥H¤Î´X¥G¨¬¥H¾A¥Î¥ô¦óÁä½Lªº¤@¨ÇÁä½L¹ï¬Mªí¡D ¥¦¥i¦b©ñ¸m®Ö¤ß­ì©l½Xªº¦P¤@¯¸¥x§ä¨ì¡D <sect1>util-linux <p> Rik Faith (<tt><htmlurl url="mailto:faith@cs.unc.edu" name="faith@cs.unc.edu"></tt>) ¦¬¶°¤F¤@¤j°ï Linux ªº¤u¨ã¡A¥s°µ util-linux¡D ²{¦b¬O¥Ñ Nicolai Langfeldt (<tt><htmlurl url="mailto:util-linux@math.uio.no" name="util-linux@math.uio.no"></tt>) ©ÒºûÅ@¡D ¥i±q sunsite.unc.edu ªº <tt><htmlurl url="ftp://sunsite.unc.edu/pub/Linux/system/misc" name="/pub/Linux/system/misc"></tt> ¨ú±o¡D ¥¦¥]¬A¤F¹³ <tt>setterm</tt>¡A<tt>rdev</tt> ¥H¤Î <tt>ctrlaltdel</tt> »P®Ö¤ß¦³Ãöªº¤u¨ã¡D ´N¹³ Rik ©Ò»¡ªº¡A<it>¤£­n·Q³£¤£·Q´N§â¥¦¸Ë¤W¥h!</it> §A¤£»Ý­n¦w¸Ë¦¹®M¥ó¤¤ªº¨C¤@­ÓªF¦è¡A¦Ó¥B¦pªG§A³o¼Ë°µªº¸Ü¥i¯à·|¤Þ°_ÄY­«ªº°ÝÃD¡D <sect1>hdparm <p> ¹³«Ü¦h³nÅé¤@¼Ë¡A³o´¿¸g¬O¤@­Ó®Ö¤ß­×¸ÉÀɤΨä¤ä´©µ{¦¡¡D ³o¨Ç­×¸ÉÀɳQ©ñ¤J°Ó·~®Ö¤ß¤¤¡A¦Ó¥Î¨Ó³Ì¨Î¤Æ¥H¤Î½Õ¾A§AµwºÐªº¤ä´©µ{¦¡¤@¯ë¬O¤À¶}µo¦æªº¡D <sect1>gpm <p> gpm ¬O general purpose mouse ªºÂ²¼g¡D ³o­Óµ{¦¡¥i¥HÅý§A¨Ï¥Î¤£¦PºØÃþªº·Æ¹«¦bµêÀÀ±±¨î¥x¤§¶¡°Å¶K¡A¥H¤Î°µ¤@¨Ç¨ä¥¦ªº¨Æ±¡¡D <sect>¤@¨Ç³´¨À<label id="pitfalls"> <p> <sect1>make clean <p> ¦pªG§Aªº·s®Ö¤ß·|°µ¤@¨Ç¯uªº«Ü©_©Çªº¨Æ¡A¦³¥i¯à¬O¦]¬°¦b½s֤ͮ߫e§A§Ñ¤F°µ²M°£ <tt>make clean</tt>¡D ¯gª¬±q§Aªº®Ö¤ß¤£¥¿±`¦a±Y¼ì¨ì©_©Çªº¿é¥X¤J°ÝÃD¡A¤@ª½¨ì¥i¼¦ªº°õ¦æ®Ä²vµ¥µ¥¤£¤@¦Ó¨¬¡A¥i¥H¬O¥ô¦ó¨Æ¡D ³Ì¦n¤]­n½T©w§A¦³°µ <tt>make dep</tt>¡D <sect1>¥¨¤j©Î½wºCªº®Ö¤ß <p> ¦pªG§Aªº®Ö¤ß¦û¥Î¤F¤j¶qªº°O¾ÐÅé¡A©ÎªÌ¥¦¯uªº¬O«Ü¤j«Ü¤j¡A¤]©ÎªÌ¬O§Y¨Ï¥Î§A¥þ·sªº 786DX6/440 ¨Ó½sĶ«o³£ÁÙ¹³¬O¥Ã»·½sͤ£§¹ªº¸Ü¡A ¨º»ò¦³¥i¯à¬O¦]¬°§A°t¸m¤F¤Ó¦h¤£¥²­nªºªF¦è(³]³ÆÅX°Êµ{¦¡¡AÀɮרt²Îµ¥µ¥)¡D ¦pªG§A¤£·|¥Î¨ì¬Y¨ÇªF¦è¡A¨º´N¤£­n°t¸m¥¦¡A¦]¬°¥¦¯uªº·|¦û¥Î°O¾ÐÅé¡D ®Ö¤ß¹L©óÁs¸~³Ì©úÅ㪺¯gª¬´N¬Oµo¥Í°O¾ÐÅé»PºÏºÐ¤§¶¡²§±`¤j¶qªº¸ê®Æ¥æ´«¡D ¦pªG§A¤£¬O¥Î¨ººØÁn­µÅ¥°_¨Ó¦n¹³¬O¼Q®g¾÷­°¸¨ªºÂ«¬ Fujitsu Eagles µwºÐ¡AÀˬd¤@¤U§Aªº®Ö¤ß°t¸m¡D <p> §A¥i¥H§ä¥X§A¾÷¾¹¤W¥þ³¡°O¾ÐÅ骺¼Æ¶q¡AµM«á´î±¼ <tt>/proc/meminfo</tt> ¸Ì­±ªº ``total mem'' ©Î `<tt>free</tt>' «ü¥O©Ò±oªº°O¾ÐÅ鼯¶q¨Ó±oª¾®Ö¤ß¨Ï¥Î¤F¦h¤Ö°O¾ÐÅé¡D §A¤]¥i¥H°õ¦æ `<tt>dmesg</tt>' (©ÎªÌ¤]¥i¥H¬d¬Ý®Ö¤ßªº°O¿ýÀÉ¡A¥¦¤@©w¦b·|§Aªº¨t²Î¸Ì)¡D¬Ý°_¨Ó´N¹³³o¤@¦æ¡G <p> <tt> Memory: 15124k/16384k available (552k kernel code, 384k reserved, 324k data) </tt> <p> §Úªº 386 (°t¸m«Ü¤Ö©U§£)Åã¥Ü¦p¤U¡G <p> <tt> Memory: 7000k/8192k available (496k kernel code, 384k reserved, 312k data) </tt> <p> ¦pªG§A`¥²¶·'±o¨ì¤@¤j«¬®Ö¤ß¦ý¨t²Î«o¤£Åý§A°µ¡A§A¥i¥H¸Õ¸Õ `<tt>make bzimage</tt>'¡D §A¥i¯à¥²¶·¦w¸Ë·sª©ªº LILO ¨Ó°µ³o¥ó¨Æ¡D <sect1>®Ö¤ßµLªk½sĶ <p> ¦pªG¥¦¨S¦³³Q½sĶ¡A¨º»ò¥i¯à¬O¦³­Ó­×¸ÉÀÉ¥¢±Ñ¤F¡A©ÎªÌ¬O§A±q¬Y­Ó¦a¤è®³¨ìªº­ì©lµ{¦¡½X¦³°ÝÃD¡D ¤]¦³¥i¯à¬O¦]¬°§Aªº gcc ª©¥»¤£¥¿½T©ÎÃa±¼¤F(¨Ò¦p§t¤JÀɦ³¿ù»~)¡D ½T©w Linus ¦b <tt>README</tt> ¸Ì©Ò´y­zªº²Å¸¹Ãìµ²³£¦³¥¿½T«Ø¥ß¡D ¤@¯ë»¡¨Ó¡A¦pªG®Ö¤ß¨S¯à½sĶ¡A³oªí¥Ü¦b¬Y¨Ç¦a¤è¦³ÄY­«ªº¿ù»~¡A­«·s¦w¸Ë¬Y¨Ç¤u¨ã¥i¯à¬O¥²¶·ªº¡D <p> ©ÎªÌ¥i¯à§A¥Î ELF ½s;¹ (gcc 2.6.3 ©Î¥H«áªº) ¨Ó½sĶ 1.2.x ªº®Ö¤ß¡D ¦pªG½s͹Lµ{¤¤§A±o¨ì¤@¤j°ïªº <tt>xxxx undefined</tt> ªº°T®§¡A³o¥i¯à¬O§Aªº°ÝÃD¡D ­×¥¿ªº¤èªk¤j³¡¥÷³£«Ü²³æ¡D±N³o´X¦æ¥[¨ì <tt>arch/i386/Makefile</tt> ªº³»ºÝ: <tt>arch/i386/Makefile</tt>: <verb> AS=/usr/i486-linuxaout/bin/as LD=/usr/i486-linuxaout/bin/ld -m i386linux CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include </verb> µM«á­«·s°õ¦æ <tt>make dep</tt> »P <tt>zImage</tt>¡D <p> ¦b¤Ö¼Æ±¡ªp¤U¡Agcc ¥i¯à·|¥Ñ©óµwÅé°ÝÃD¦Ó·í±¼¡D¿ù»~°T®§·|¹³ ``xxx exited with signal 15'' ¤§Ãþªº¡A¦Ó¥B·|¬Ý°_¨Ó«Ü©_©Ç¡D §Ú¥»¨Ó¤£·Q´£³oÂIªº¡A¤£¹L¦b§Ú¨­¤W¤]µo¥Í¹L¤@¦¸ - §Ú¦³¤@¨ÇÃaªº cache °O¾ÐÅé¡A½s;¹®É±`·|ÀH¾÷¦a·í±¼¡D ¦pªG§A¦³¦¹°ÝÃDªº¸Ü¥ý¸ÕµÛ­«·s¦w¸Ë gcc¡D¦pªG§A±N¥~³¡ cache Ãö±¼¡A´î¤Ö¤@¨Ç RAM ¤§«á®Ö¤ß´N½sͦ¨¥\¤F¡A§A¤j·§¥u·|ı±o¥iºÃ¡D <p> §i¶D¤H­Ì¥LªºµwÅ馳°ÝÃD±`·|¨Ï¤H§xÂZ¡D¤£¹L¡A³o¤£¬O§Úµo©úªº¡D ³o¬O¤@­Ó FAQ -- ¥i¥H¦b <tt><htmlurl url="http://www.bitwizard.nl/sig11/" name="http://www.bitwizard.nl/sig11/"></tt> §ä¨ì¡E <sect1>·sª©ªº®Ö¤ß¦ü¥G¤£¯à±Ò°Ê <p> §A¨S¦³°õ¦æ LILO ¡A©Î¬O¨S¦³¥¿½Tªº°t¸m¥¦¡D¦³¤@¦¸§Ú´¿¸g¸I¨ìªº°ÝÃD¬O¥X¦b°t¸mÀɸ̡A §Ú¥Î¤F `<tt>boot = /dev/hda1</tt>' ¦Ó¤£¬O `<tt>boot = /dev/hda</tt>' (³o¦b­è¶}©l®É¯uªº¬O«Ü°Q¹½¡A¦ý¬O¤@¥¹§A¦³¤F¤@­Ó¥i¥H¥Îªº°t¸mÀÉ¡AÀ³¸Ó¤£»Ý­n¥h¦A¥h§ïÅÜ¥¦)¡D <sect1>§A§Ñ¤F°õ¦æ LILO¡A©Î¨t²Î®Ú¥»¤£¯à±Ò°Ê <p> ¾¾¡I²{¦b³Ì¦nªº¿ìªk¬O¥ÎºÏ¤ù±Ò°Ê¡A¨Ã¥B·Ç³Æ¥t¤@±i¥i¥H±Ò°ÊªººÏ¤ù(¹³¬O`<tt>make zdisk</tt>'®É°µªººÏ¤ù)¡D §A±oª¾¹D§Aªº®Ú¥Ø¿ý(<tt>/</tt>)©Ò¦bªº¤À³Î°Ï¥H¤Î¥¦ªº®æ¦¡(second extended, minix µ¥µ¥)¡D ¦b¤U­±ªº¨Ò¤l¤¤¡A§A¤]±oª¾¹D§Aªº <tt>/usr/src/linux</tt> ­ì©lµ{¦¡½X¦b¨º­Ó¤À³Î°Ï¡A¥¦ªº®æ¦¡¡A¥H¤Î¥¦¤@¯ë·|±¾¦b¨º¨à¡D <p> ¦b³o­Ó¨Ò¤l¤¤¡A ®Ú¥Ø¿ý <tt>/</tt> ¬O <tt>/dev/hda1</tt>¡A¦Ó«ù¦³ <tt>/usr/src/linux</tt> ªº¤À³Î°Ï¬O <tt>/dev/hda3</tt>¡A¤@¯ë·|±¾¦b <tt>/usr</tt> ¤U¡D ¥¦­Ì³£¬O second extended Àɮרt²Î¡D¥i¥H¹B§@ªº®Ö¤ß¬M¹³¥s°µ <tt>zImage</tt> ¡A©ñ¦b <tt>/usr/src/linux/arch/i386/boot</tt> ©³¤U¡D <p> ³o­Ó¥D·N¬O³o¼Ëªº¡A°²­Y¦³¤@­Ó¥i¥H¹B§@ªº®Ö¤ß¬M¹³¥s°µ <tt>zImage</tt>¡A¥i¯à¥i¥H§â¥¦¥Î¦b·sªººÏ¤ù¤W¡D ¥t¥~¤@­Ó¤£¤@©w·|§ó¦nªºÅܳq¿ìªk(³o¸ò§Aªº¨t²Î«ç»ò²Õ¦¨ªº¦³Ãö)¦b»¡©ú³o­Ó¨Ò¤l¤§«á·|°Q½×¨ì¡D <p> ­º¥ý¡A±q boot/root ºÏ¤ù©ÎªÌ¬O«æ±ÏºÏ¤ù¶}¾÷¡AµM«á±N«ù¦³¥i¹B§@®Ö¤ßªº¤À³Î°Ï±¾¤W¨Ó¡G <p> <verb> mkdir /mnt mount -t ext2 /dev/hda3 /mnt </verb> ¦pªG <tt>mkdir</tt> «ü¥OÅã¥Ü¸Ó¥Ø¿ý¤w¸g¦s¦b¡A©¿²¤±¼¤£¥²²z·|¥¦¡D ²{¦b¡A<tt>cd</tt> ¨ì«ù¦³¥i¹B§@®Ö¤ßªº¦a¤è¡Dª`·N: <verb> /mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot </verb> §â¤@±i®æ¦¡¤Æ¹LªººÏ¤ù©ñ¶i ``A:'' ºÏºÐ¾÷(½T©w¤£¬O§Aªº boot/root ºÏ¤ù!)¡A §â¬M¹³Àɶɭ˨ìºÏ¤ù¸Ì¥h¡AµM«á°t¸m§Aªº®Ú¥Ø¿ý¤À³Î°Ï: <p> <verb> cd /mnt/src/linux/arch/i386/boot dd if=zImage of=/dev/fd0 rdev /dev/fd0 /dev/hda1 </verb> <tt>cd</tt> ¨ì®Ú¥Ø¿ý <tt>/</tt> ¨Ã¥B¨ø¤U¼Ð·Ç <tt>/usr</tt> ¤À³Î°Ï:<p> <verb> cd / umount /mnt </verb> §A²{¦bÀ³¸Ó¥i¥H±q³o±iºÏ¤ù¥¿±`ªº¶}¾÷¤F¡D¦b³o¦¸¶}¾÷«á¤£­n§Ñ°O°õ¦æ lilo (©Î¬O¨ä¥¦§A´¿¸g°µ¿ùªº¤°»ò¨Æ)! <p> ¦p¦P«e­±´¿¸g´£¹Lªº¡AÁÙ¦³¥t¥~¤@ºØ«Ü´¶¹MªºÅܳq¤è¦¡¡D ¦pªG±¡ªp¬O§A¦³¤@­Ó¥i¥H¹B§@ªº®Ö¤ß¦b©ñ¦b <tt>/</tt> (¨Ò¦p <tt>/vmlinuz</tt>)¡A§A¤]¥i¥H¨Ï¥Î¥¦¡D °²©w©Ò¦³ªº±ø¥ó³£¸ò¤W­±ªº¨Ò¤l¤@¼Ë¡A¦Ó§Úªº®Ö¤ß¬M¹³¬O <tt>/vmlinuz</tt>¡A¥u­n¹ï¤W­±ªº¨Ò¤l°µ³o¨Ç§ïÅÜ: §â <tt>/dev/hda3</tt> §ï¦¨ <tt>/dev/hda1</tt> (<tt>/</tt> ¤À³Î°Ï)¡A §â <tt>/mnt/src/linux</tt> §ï¦¨ <tt>/mnt</tt>¡A¨Ã¥B§â <tt>if=zImage</tt> §ï¦¨ <tt>if=vmlinuz</tt>¡D ¦Ü©ó«e­±¦³Ãöª`·N¦p¦ó±À¾É¥X <tt>/mnt/src/linux/arch/i386/boot</tt> ªº¨º­Ó³¡¤À¥i¥H©¿²¤¡D <p> ±N LILO ¨Ï¥Î¦b¤jªºµwºÐ¤W(¶W¹L 1024 ºÏ¬W)¥i¯à·|¦³°ÝÃD¡D ½Ð°Ñ¨£ LILO mini-HOWTO ©Î¨ä¥¦¤å¥óªº»¡©ú¡D <sect1>¨t²Îªí¥Ü `warning: bdflush not running' <p> ³o¥i¥Hºâ¬O¤@­Ó¬Û·íÄY­«ªº°ÝÃD¡D±q 1.0 ª©¥H«áªº®Ö¤ß¶}©l(¤j·§¬O¦b 1994 ¦~¥|¤ë¤G¤Q¤é¥ª¥k)¡A ¦³­Ó·|¶g´Á©Ê¦a§ó·sÀɮרt²Î½w½Ä°Ïªºµ{¦¡¥s°µ `<tt>update</tt>' ³Q¤É¯Å©Î¨ú¥N±¼¤F¡D ¨ú±o `<tt>bdflush</tt>' ªº­ì©lµ{¦¡½X(§AÀ³¸Ó¥i¥H±q§A¨ú±o®Ö¤ßªº¦a¤è§ä¨ì)¡A µM«á½sĶ¥¦(§A¥i¯à·|§Æ±æ¦bª©ªº®Ö¤ß¤U°õ¦æ½sĶ¤Î¦w¸Ë)¡D ¥¦·|¥H `<tt>update</tt>' ¬°¦W¦w¸Ë¥¦¦Û¤v¨Ã¥B¦b­«¶}¾÷¥H«á¡A·s®Ö¤ßÀ³¸Ó·|¹B§@¨}¦n¡D <sect1>¨t²Î»¡ undefined symbols ¦Ó¥BµLªk½sĶ <p> §A¥i¯à¦³¤@ ELF ½s;¹(gcc 2.6.3 ©Î¥H«áªº)¦Ó¥B¬O 1.2.x (©Î§ó¦­ªº)®Ö¤ß­ì©l½X¡D ¤@¯ë­×¥¿ªº¤èªk¬O±N³o´X¦æ¥[¨ì <tt>arch/i386/Makefile</tt> ªº³»ºÝ: <p> <verb> AS=/usr/i486-linuxaout/bin/as LD=/usr/i486-linuxaout/bin/ld -m i386linux CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include </verb> <p> ³o·|¥H a.out µ{¦¡®w¨Ó½sĶ 1.2.x ®Ö¤ß¡D <sect1>µLªkÅý§Úªº IDE/ATAPI CD-ROM ¥¿±`¤u§@ <p> «Ü©_©Ç¡A¤@¤j°ï¤HµLªkÅý¥L­Ìªº ATAPI ¥úºÐ¾÷¤u§@¡A¥i¯à¬O¦]¬°¦³¤Ó¦h¨Æ®e©ö¥X¿ù¡D <p> §Aªº¥úºÐ¾÷¬O¦b¤@¯S§O IDE ¬É­±¤Wªº°ß¤@³]³Æ¡A¥¦¥²¶·³Q½Õ¾ã¬° ``master'' ©Î ``single''¡D ³o¥i¯à¬O³Ì±`¨£ªº¿ù»~¡D <p> Creative Labs ²{¦b±N IDE ¬É­±©ñ¨ì¥L­Ì­µ®Ä¥d¸Ì¡D µM¦Ó¡A³o±N¾É­P¤@­Ó¦³½ìªº°ÝÃD¡AÁöµM¦³¨Ç¤H¥u¦³¤@­Ó IDE ¬É­±¡A³\¦h¤H¦b¥D¾÷ªO¤W¦³¨â­Ó¤º«Øªº IDE ¬É­±(³q±`¦b IRQ15)¡A ¦]¦¹¤@¸Ñ¨Mªº¿ìªk¬O±NÁnÅQ¥dªº¬É­±½Õ¦¨²Ä¤T­Ó IDE (¦³¤H§i¶D§Ú¬O IRQ11)¡D <p> ³o¦b 1.2.x ªº Linux ®Ö¤ß¤W·|¦³°ÝÃD¡A¦]¬°¥¦¤£¤ä´©²Ä¤T­Ó IDE ¬É­±(±q 1.3.x ¨t¦C¤w¶}©l¤ä´©¡A¦ý¥¦ÁÙ¦bµo®i¤¤¡A¦Ó¥B¤£·|¦Û°Ê°»´ú)¡D ­n¸Ñ¨M¦¹°ÝÃD¡A§A¦³¤@¨Ç¿ï¾Ü¡D <p> ¦pªG§A¤w¸g¦³²Ä¤G­Ó IDE °ð¡A¦pªG§A¨S¥Î¥¦©Î¨S¦³¨â³¡³]³Æ¦b¤W­±ªº¸Ü´N¦³¾÷·|¡D ±N ATAPI ¥úºÐ¾÷±q­µ®Ä¥d¤W®³¤U¨Ó¨Ã©ñ¨ì²Ä¤G­Ó¬É­±¤W¡DµM«á§A¥i¥HÃö±¼­µ®Ä¥d¤Wªº¬É­±¡A³o´N¥i¥H¬Ù¤U¤@­Ó IRQ¡D <p> ¦pªG§A¨S¦³²Ä¤G­Ó IDE ¬É­±¡A½Õ¾ã­µ®Ä¥dªº¬É­±(¤£¬O­µ®Ä¥dªº­µ®Ä³¡¥÷)¨ì²Ä¤G¬É­±¥Îªº IRQ15¡A³o¼ËÀ³¸Ó·|°Ê¡D <p> ¦pªG¦]¬°¬Y¨Ç²z¥Ñ«D±o¨Ï¥Î``²Ä¤T­Ó''¬É­±¤£¥i¡A©Î¬O¦³¨ä¥¦°ÝÃD¡A ¨ú±o 1.3.x ªº®Ö¤ß(¨Ò¦p 1.3.57 ´N¦³)¡A¾\Ū <tt>drivers/block/README.ide</tt> ÀɮסD ¨º¸Ì¦³§ó¦hªº¸ê°T»¡©ú¡D <sect1>¨t²ÎÅã¥ÜÃö©ó obsolete routing requests ªº©_©Ç°T®§ <p> ¨ú±o·sª©ªº <tt>route</tt> µ{¦¡¤Î¨ä¥¦»P route ¦³Ãöªºµ{¦¡¡D <tt>/usr/include/linux/route.h</tt> (³o¬O <tt>/usr/src/linux</tt> ¤Uªº¤@­ÓÀÉ®×)¤w¸g°µ¤F­×§ï¡D <sect1>¨¾¤õÀð¥\¯àµLªk¦b 1.2.0 ¤W¤u§@ <p> ¦Ü¤Ö¤É¯Å¨ì 1.2.1 ª©¡D <sect1>``Not a compressed kernel Image file'' («DÀ£ÁY®Ö¤ß¬M¹³ÀÉ) <p> ¤£­n¥Î¦b <tt>/usr/src/linux</tt> ²£¥Íªº <tt>vmlinux</tt> °µ¬°§Aªº±Ò°Ê®Ö¤ß¬M¹³; <tt>[..]/arch/i386/boot/zImage</tt> ¤~¬O¥¿½Tªº¡D <sect1>¤É¯Å¦Ü 1.3.x «á¦b±±¨î¥x²×ºÝ¾÷¤Wªº°ÝÃD <p> ±N±±¨î¥x³]©wÀÉ <tt>/etc/termcap</tt> ¤¤ªº <tt>dumb</tt> §ï¬° <tt>linux</tt>¡D §A¥i¯à·|¥²¶·¼W¥[¤@¶µ terminfo¡D <sect1>®Ö¤ß¤É¯Å«á¦ü¥GµLªk½sĶªF¦è <p> Linux ªº®Ö¤ß­ì©lµ{¦¡½X¥]§t¤F³\¦hªº§t¤JÀÉ(´N¬O¥Î <tt>.h</tt> µ²§ÀªºÀÉ®×)¥²¶·¬°¼Ð·Çªº <tt>/usr/include</tt> ©Ò°Ñ¦Ò¡D ¥¦­Ì³q±`¥Î³oºØ¤èªk³Q°Ñ¦Ò(¨ä¤¤ <tt>xyzzy.h</tt> ¬O¦b <tt>/usr/include/linux</tt> ¤U): <verb> #include <linux/xyzzy.h> </verb> ¥¿±`±¡ªp¤U¡A¦b <tt>/usr/include</tt> ¤U·|¦³¤@¥s°µ <tt>linux</tt> ªº³sµ²¨ì§Aªº®Ö¤ß­ì©l½Xªº <tt>include/linux</tt> ¥Ø¿ý(¤@¯ë¨t²Î¦b <tt>/usr/src/linux/include/linux</tt>)¡D ¦pªG³o­Ó³sµ²¨S¦³¤F¡A©Î«ü¨ì¿ù»~ªº¦a¤è¡A¤j³¡¥÷ªºªF¦è³£±NµLªk½sĶ¡D ¦pªG§Aı±o®Ö¤ß­ì©l½X¦û¤F¤Ó¦hªºªÅ¶¡¦Ó¬å±¼¥¦¡A³oÅãµM·|¤Þµo°ÝÃD¡D ¥t¤@­Ó¥i¯àªº¿ù»~¬O¥¦ªºÀÉ®×Åv­­; ¦pªG§Aªº <tt>root</tt> ¹w³]¤£Åý¨ä¥¦¨Ï¥ÎªÌ¬Ý¨ì¥LªºÀɮסA ¦Ó¥B§A¸Ñ¶}®Ö¤ß­ì©l½X®É¨S¦³¥[¤W <tt>p</tt> («O¯dÀÉ®×¼Ò¦¡)¿ï¶µ¡A¨ä¥¦¨Ï¥ÎªÌ¤]·|µLªk¨Ï¥Î C ½s;¹¡D ÁöµM§A¥i¥H¥Î <tt>chmod</tt> «ü¥O¨Ó­×¥¿¡A¤£¹L§ó®e©öªº¤èªk¬O­«·s¸Ñ¶}§t¤JÀÉ¡D §A¥i¥H¤@¶}©l§A¸Ñ¶}¾ã­Ó­ì©l½Xªº¦P¼Ë¤èªk¡A¤£¹L¦h¥[¤F¤@­Ó°Ñ¼Æ: <verb> blah# tar zxvpf linux.x.y.z.tar.gz linux/include </verb> ½Ðª`·N: ¦pªG <tt>/usr/src/linux</tt> ³sµ²¤£¦bªº¸Ü ``<tt>make config</tt>'' ·|­««Ø¤§¡D <sect1>¼W¥[¤W­­ <p> ¤U­±¤@¨Ç½d¨Ò«ü¥O§i¶D§A¦p¦ó¼W¥[®Ö¤ß´£¨Ñªº¤W­­: <verb> echo 4096 > /proc/sys/kernel/file-max echo 12288 > /proc/sys/kernel/inode-max echo 300 400 500 > /proc/sys/vm/freepages </verb> <sect>¤É¯Å¦Ü 2.0.x ªºª`·N¨Æ¶µ <p> ®Ö¤ß 2.0.x ª©¦b¦w¸Ë¤W¤Þ¤J¤F³\¦hªº§ïÅÜ¡D ¦b­ì©lµ{¦¡½X¸Ìªº <tt>Documentation/Changes</tt> ÀÉ®×¥]§t¤F¤É¯Å¦Ü 2.0.x ª©©ÒÀ³ª¾¹Dªº¸ê°T¡D §A¥i¯àÁٻݭn¤É¯Å¤@¨ÇÃöÁ䪺®M¥ó¡A¨Ò¦p gcc¡Alibc »P SysVInit¡A¨Ã§ïÅܤ@¨Ç¨t²ÎÀɮסD¤£¹L¡A¤]§Oºò±i¡D <sect>¥i¸ü¤J¼Ò²Õ <p> ¥i¸ü¤J¼Ò²Õ¯à°÷¸`¬Ù°O¾ÐÅé¡A¦Ó¥B«Ü®e©ö³]©w¡D ¼Ò²Õªº½d³ò¤w¸g¥]§t¤FÀɮרt²Î¡A¤A¤Óºô¸ô¥dÅX°Êµ{¦¡¡AºÏ±a¾÷¡A¦Lªí¾÷ÅX°Êµ{¦¡¡AÁÙ¦³§ó¦h¡D <sect1>¦w¸Ë¼Ò²Õ¤u¨ã <p> ¼Ò²Õ¤u¨ã¥i¥H±q§A¨ú±o®Ö¤ßªº¦a¤è§ä¨ì¡A¦p <tt>modules-x.y.z.tar.gz</tt>; ¿ï¾Ü»P§A¥Ø«e®Ö¤ßª©¥»¬Ûµ¥©Îµy§Cªº³Ì±µªñªº <tt>x.y.z</tt>¡D ¥Î `<tt>tar zxvf modules-x.y.z.tar.gz</tt>' ¸Ñ¶}¡D <tt>cd</tt> ¨ì¥¦²£¥Íªº¥Ø¿ý(<tt>modules-x.y.z</tt>)¡A¬Ý¤@¤U <tt>README</tt>¡AµM«á«ö·Ó¦w¸Ë«ü¥Ü°õ¦æ (³q±`«Ü²³æ¡A´N¹³ <tt>make install</tt> ¤§Ãþªº)¡D µM«á§A¦b <tt>/sbin</tt> À³¸Ó·|¦³³o¨Çµ{¦¡ <tt>insmod</tt>, <tt>rmmod</tt>, <tt>ksyms</tt>, <tt>lsmod</tt>, <tt>genksyms</tt>, <tt>modprobe</tt>, ¥H¤Î <tt>depmod</tt>¡D ¦pªG§A·Qªº¸Ü¡A¥i¥H¥Î <tt>insmod</tt> ¸Ìªº½d¨ÒÅX°Êµ{¦¡``hw''¨Ó´ú¸Õ³o¨Ç¤u¨ã; °Ñ¨£ <tt>INSTALL</tt> Àɸ̪º²Ó¸`»¡©ú¡D <p> <tt>insmod</tt> «ü¥O±N¤@­Ó¼Ò²Õ´¡¤J¹B¦æ¤¤ªº®Ö¤ß¡D¼Ò²Õ³q·|¥H <tt>.o</tt> ¬°µ²§À; ¤W­±´£¨ìªº½d¨Òµ{¦¡´N¥s°µ <tt>drv_hello.o</tt>¡A¦]¦¹­n´¡¤J¦¹¼Ò²Õ¡A´N¥Î `<tt>insmod drv_hello.o</tt>'¡D ­n¤F¸Ñ¥Ø«e®Ö¤ß¥¿¦b¨Ï¥Îªº¼Ò²Õ¡A¥Î <tt>lsmod</tt> «ü¥O¡D¿é¥X¬Ý°_¨Ó¹³³o¼Ë: <verb> blah# lsmod Module: #pages: Used by: drv_hello 1 </verb> `<tt>drv_hello</tt>' ¬O³o¼Ò²Õªº¦WºÙ¡A¥¦¥Î¤F¤@­¶ (4K) ªº°O¾ÐÅé¡A¦Ó¥B¥Ø«e¨S¦³¨ä¥¦ªº®Ö¤ß¼Ò²Õ¨Ì¿à©ó¥¦¡D ­n²¾°£¦¹¼Ò²Õ¡A¥Î `<tt>rmmod drv_hello</tt>'¡Dª`·N <tt>rmmod</tt> »Ý­nªº¬O<it>¼Ò²Õ¦WºÙ</it>¡A¦Ó¤£¬OÀɮצWºÙ; ´N¬O§A±q <tt>lsmod</tt> «ü¥O¦C¥X¨Óªº¡D¨ä¾l¤u¨ãªº§@¥Î¦b½u¤W¤â¥U¤¤³£¦³»¡©ú¡D <sect1>»P®Ö¤ßµo¦æªº¼Ò²Õ <p> ¦b 2.0.30 ª©¤¤¡A´X¥G©Ò¦³ªºªF¦è³£¥i¥HÅܦ¨¥i¸ü¤J¼Ò²Õ¡D ­n¨Ï¥Î¥i¸ü¤J¼Ò²Õ¡A­º¥ý½T©w§A¨S¦³±N¨ä°t¸m¨ì¥¿±`ªº®Ö¤ß¸Ì¡A¤]´N¬O»¡¡A¦b `<tt>make config</tt>' ®É¤£¬O¦^µª <tt>y</tt>¡D ½sĶ·s®Ö¤ß¨Ã¥Î¥¦¨Ó¶}¾÷¡DµM«á¡A¦A¦¸ <tt>cd</tt> ¨ì <tt>/usr/src/linux</tt>¡AµM«á°õ¦æ `<tt>make modules</tt>'¡D ³o±N½sĶ©Ò¦³§A¥¼«ü©w¦b®Ö¤ß°t¸m¸Ìªº¼Ò²Õ¡A¨Ã±N¨ä³sµ²¨ì <tt>/usr/src/linux/modules</tt>¡D §A¥i¥Hª½±µ¥Ñ¦¹¥Ø¿ý¨Ï¥Î¡A©Î¬O°õ¦æ `<tt>make modules_install</tt>' ±N¨ä¦w¸Ë¨ì <tt>/lib/modules/x.y.z</tt>¡A¨ä¤¤ <tt>x.y.z</tt> ¬O®Ö¤ßª©¥»¡D <p> ³o¹ï³B²zÀɮרt²Î¤W¯S§O«K§Q¡D§A¥i¯à¨Ã¤£¸g±`¨Ï¥Î minix ©Î MS-DOS ªºÀɮרt²Î¡D ¨Ò¦p¡A¦pªG§Ú¹J¨ì¤@ MS-DOS ªº³nºÐ¤ù¡A§Ú·|¥Î <tt>insmod /usr/src/linux/modules/msdos.o</tt>¡A¨Ã¦b¨Ï¥Î§¹¦¨«á¥Î <tt>rmmod msdos</tt> «ü¥O±N¨ä¥h±¼¡D ¦¹¹Lµ{¤j¬ù¥i¥H¸`¬Ù®Ö¤ß 50K ¥ª¥kªº°O¾ÐÅé¡D¹ï©ó minix Àɮרt²Î¦³¤@ÂI­nª`·Nªº´N¬O¡A ¬°¤F­n¨Ï¥Î``«æ±ÏºÏ¤ù''¡A§AÀ³¸Ó<it>Á`¬O</it>ª½±µ±N¥¦°t¸m¨ì®Ö¤ß¤¤¡D <sect>¨ä¥¦°t¸m¿ï¶µ<label id="other-options"> <p> ¥»¸`¥]¬A¤F¦b°t¸m¤@¸`¤¤¥¼¦C¥Xªº®Ö¤ß°t¸m¿ï¶µ(¦b <tt>make config</tt> ®É)¡D ¤j³¡¥÷ªº³]³ÆÅX°Êµ{¦¡¨Ã¥¼¦C¥X¡D <sect1>General setup (¤@¯ë³]©w) <p> <tt>Normal floppy disk support</tt> (¤@¯ë³nºÐ¤ä´©) - ´N¬O³o­Ó¡D §A¥i¯à·|·Q¬Ý¤@¤U <tt>drivers/block/README.fd</tt> ³o­ÓÀÉ®×; ¹ï IBM Thinkpad ªº¨Ï¥ÎªÌ¨Ó»¡¯S§O­«­n¡D <p> <tt>XT harddisk support</tt> (XT µwºÐ¤ä´©) - ¦pªG§A·Q¥Î¦Ñ¥j¸³ªº¤K¦ì¤¸ XT ±±¨î¾¹ªº¸Ü¡D <p> <tt>PCI bios support</tt> (PCI bios ªº¤ä´©) - ¦pªG§A¦³ PCI¡A§A¥i¯à·|·Q¥´¶}¦¹¿ï¶µ¡D ¦ý­n¤p¤ß¡A¬Y¨Çªº PCI ¥D¾÷ªO¦b¦¹¿ï¶µ¤U¥i¯à·|·í±¼¡D§ó¦hÃö©ó PCI ¶×¬y±Æ¦b Linux ¤U¨Ï¥Îªº¸ê°T¥i¥H¦b <htmlurl url="HOWTO/PCI-HOWTO.html" name="PCI-HOWTO"> ¸Ì§ä¨ì¡D <p> <tt>Kernel support for ELF binaries</tt> (®Ö¤ß¤ä´© ELF °õ¦æÀÉ) - ELF ¬O¤@ºØ·sªº¤G¶i¦ì°õ¦æÀÉ¡D Linux ¦ü¥G¥¿´Â¦¹¤è¦V«e¶i¡A©Ò¥H§A¥i¯à·|­n³o­Ó¡D <p> <tt>Set version information on all symbols for modules</tt> - ¦b¹L¥h¡A®Ö¤ß¼Ò²Õ»P¨C­Ó·s®Ö¤ß¤@°_³Q½sĶ¡D ¦pªG§A¦^µª <tt>y</tt>¡A¥¦¥i¯àÅý§A¨Ï¥Î¤£¦P patchlevel ¤U½sĶªº¼Ò²Õ¡D °Ñ¨£ <tt>README.modules</tt> ¤¤ªº¸Ô²Ó»¡©ú¡D <sect1>Networking options (ºô¸ô¿ï¶µ) <p> ºô¸ô¿ï¶µ¦b <htmlurl url="HOWTO/NET-3-HOWTO.html" name="NET-3-HOWTO"> (©Î¬O NET-¤°»ò-HOWTO)¤¤´y­z¡D <sect>¯¦³Z©M§Þ¥© <p> <sect1>­«¾É make ©Î¬O patch «ü¥Oªº¿é¥X <p> ¦pªG§A·Q­n°O¿ý³o¨Ç `<tt>make</tt>' ©Î¬O `<tt>patch</tt>' «ü¥O¨ì©³°µ¤F¨Ç¤°»ò¡A §A¥i¥H§â¿Ã¹õªº¿é¥X­«¾É¨ì¤@­ÓÀÉ®×¥h¡D­º¥ý¡A­nª¾¹D§A¥Îªº¬O¬O¨º¤@ºØ shell¡G `<tt>grep root /etc/passwd</tt>' µM«á´M§ä¬Ý°_¨Ó¹³ `<tt>/bin/csh</tt>' ¤@ÃþªºªF¦è¡D <p> ¦pªG§A¨Ï¥Îªº¬O sh ©Î¬O bash¡A <verb> (command) 2>&1 | tee (output file) </verb> ±N·|§â¤@¥÷ <tt>(command)</tt> ªº¿é¥X©ñ¨ì `<tt>(output file)</tt>' ³o­ÓÀÉ®×¥h¡D <p> ¦pªG¬O csh ©Î tcsh¡A¥Î <verb> (command) |& tee (output file) </verb> ³o­Ó»yªk¡D <p> ¦pªG¬O rc (ª`·N¡G§AÀ³¸Ó¤£·|¬O¥Î rc)¡A»yªk¬O <verb> (command) >[2=1] | tee (output file) </verb> <sect1>±ø¥ó¦¡ªº®Ö¤ß¦w¸Ë <p> °£¤F¨Ï¥Î³nºÐ¤ù¡AÁÙ¦³¼ÆºØ¦b¤£°Ê®֤ߪº±¡ªp¤U´ú¸Õ·s®Ö¤ßªº¤èªk¡D ¤£¹³¨ä¥¦ªº Unix ¨t²Î¡ALILO ¨ã¦³±q¥ô¦ó¦a¤è±Ò°Ê®Ö¤ßªº¯à¤O¡D (¤£¹L¦pªG§A¦³¤jªºµwºÐ¡A¶W¹L 500 MB ªº¡A½Ð°Ñ¦Ò LILO ªº¤å¥ó»¡©ú±N¥i¯à¤Þ°_ªº°ÝÃD¡D) ¦]¦¹¡A¦pªG§A¦b LILO °t¸mÀɮפ¤¥Î¹³³o¼Ëªº <verb> image = /usr/src/linux/arch/i386/boot/zImage label = new_kernel </verb> §A¥i¥H¦b¤£°ÊÂÂ®Ö¤ß <tt>/vmlinuz</tt> ªº±¡ªp¤U¿ï¾Ü°õ¦æ·s½sĶªº®Ö¤ß(·íµM¡A¦b°õ¦æ§¹ <tt>lilo</tt> «á)¡D ¥s LILO ±Ò°Ê·s®Ö¤ß³Ì²³æªº¤èªk´N¬O¦b±Ò°Ê®É«ö¤U shift Áä(·í§A¦b¿Ã¹õ¥u¬Ý¨ì <tt>LILO</tt> ®É)¡A ³o·|µ¹§A¤@´£¥Ü²Å¸¹¡D¦¹®É§A¥i¥HÁä¤J `<tt>new_kernel</tt>' ¨Ó±Ò°Ê·s®Ö¤ß¡D <p> ¦pªG§A·Q¦b¨t²Î¤¤¦P®É«O¦³¼ÆºØ¤£¦Pªº®Ö¤ß­ì©lµ{¦¡½X(¤p¤ß¡A³o·|¥Î±¼<it>¤j¶q</it>ªºµwºÐªÅ¶¡)¡A ³Ì´¶³qªº¤èªk´N¬O±N¨ä©R¦W¬° <tt>/usr/src/linux-x.y.z</tt>¡A¨ä¤¤ <tt>x.y.z</tt> ¬O®Ö¤ßª©¥»¡D µM«á§A¥i¥H¥Î²Å¸¹³sµ²¨Ó``¿ï¾Ü''¤@¥÷­ì©l½X; ¨Ò¦p¡A¥Î `<tt>ln -sf linux-1.2.2 /usr/src/linux</tt>' ·|Åý 1.2.2 ¦¨¬°¥Ø«eªº®Ö¤ß¾ð¡D ¦ý¦b«Ø¥ß²Å¸¹³sµ²¤§«e¡A¥ý½T©w <tt>ln</tt> «ü¥O³Ì«á¤@­Ó°Ñ¼Æ¤£¬O¤@­Ó¯u¥¿ªº¥Ø¿ý(ªº²Å¸¹³sµ²¨S¦³Ãö«Y); §_«hµ²ªG¥i¯à¤£·|¬O§A©Ò¹w´Áªº¡D <sect1>®Ö¤ß§ó·s <p> Russell Nelson (<tt><htmlurl url="mailto:nelson@crynwr.com" name="nelson@crynwr.com"></tt>) Á`µ²¤F·sª©®Ö¤ßªº§ïÅÜ¡D ³o¨Ç¬O²µuªº¡A¦Ó¥B§A¦b¤É¯Å«e¥i¯àÀ³¸Ó¥ý¬Ý¤@¤U¡D¥i¥H±q°Î¦W FTP ¯¸ <tt>ftp.emlist.com</tt> ªº <tt><htmlurl url="ftp://ftp.emlist.com/pub/kchanges" name="pub/kchanges"></tt>¡A <sect>¨ä¥¦¥i¯à¬ÛÃö¦³¥Îªº HOWTOs <p> <itemize> <item> Sound-HOWTO: ­µ®Ä¥d»P¤u¨ã <item> SCSI-HOWTO: ©Ò¦³Ãö©ó SCSI ±±¨î¥d»P³]³Æªº¸ê°T <item> NET-2-HOWTO: ºô¸ô <item> PPP-HOWTO: ¯S§OÃö©ó PPP ºô¸ôªº <item> PCMCIA-HOWTO: µ§°O«¬¹q¸£ªºÅX°Êµ{¦¡ <item> ELF-HOWTO: ¤°»ò¬O ELF¡A¦p¦óÂà´«µ¥¡K <item> Hardware-HOWTO: ¤ä´©µwÅ骺·§­n <item> Module-HOWTO: §ó¦h»P®Ö¤ß¼Ò²Õ¦³Ãöªº <item> Kerneld mini-HOWTO: Ãö©ó kerneld <item> BogoMips mini-HOWTO: §A¥i¯à·|¦³¿³½ìªº </itemize> <sect>Âø¶µ<p> <sect1>§@ªÌ <p> Linux Kernel-HOWTO ªº§@ªÌ¤ÎºûÅ@¤H¬O Brian Ward (<tt><htmlurl url="mailto:bri@blah.math.tu-graz.ac.at" name="bri@blah.math.tu-graz.ac.at"></tt>)¡D ½Ð±N¥ô¦óµû½×¡A¸É¥R»P§ó¥¿±Hµ¹§Ú(§ó¥¿¹ï§Ú¨Ó»¡¬O¯S§O­«­nªº)¡D <p> §A¥i¥H±q³o¨Ç URL §ä¨ì§Úªººô­¶: <tscreen><tt> <htmlurl url="http://www.math.psu.edu/ward/" name="http://www.math.psu.edu/ward/"><newline> <htmlurl url="http://blah.math.tu-graz.ac.at/~bri/" name="http://blah.math.tu-graz.ac.at/~bri/"> </tt></tscreen> <p> ÁöµM§Ú¾¨¥i¯à¦a¥h³B²z¹q¤l¶l¥ó¡A¦ý½Ð°O¦í§Ú¨C¤Ñ³£¦¬¨ì<it>¤j¶q</it>ªº«H¥ó¡A©Ò¥H¥i¯à­nªá¤@ÂI®É¶¡¤~·|¦^ÂЧA¡D ¯S§O¬O±H«H¨Ó°Ý§Ú°ÝÃDªº¡A½Ð¾¨¶q«D±`²M·¡»P¸ÔºÉ¦a´y­z§Aªº°T®§¡D ¦pªG§A»¡ªº¬O¬Y­ÓµLªk¹B§@ªºµwÅé(©ÎÃþ¦üªº)¡A§Ú»Ý­nª¾¹D§AªºµwÅé°t¸m¬O¤°»ò¡D ¦pªG§A­n¦^³ø¿ù»~¡A¤£­n¥u¬O»¡``§Ú³o¼Ë¸Õ¦ý¥¦µ¹§Ú·|¿ù»~°T®§''; §Ú»Ý­nª¾¹D³o­Ó¿ù»~°T®§¬O¤°»ò¡D §Ú¥i¯à¤]·Qª¾¹D§Aªº®Ö¤ß¡Agcc¡Alibc ªºª©¥»¬O¤°»ò¡A¦pªG§A¥u¬O§i¶D§Ú§A¥Îªº¬O³o­Ó©Î¨º­Ó®M¥ó¡A¨º¨S¤°»ò¥Î¡D §Ú¤£¤¶·N§A°Ý§Ú²³æªº°ÝÃD; ½Ð°O¦í¡A¦pªG§A¤£°Ý¡A§A±N¥Ã»·¤£·|±o¨ì¸Ñµª¡D §Ú­n·PÁ¨C­Óµ¹§Ú¦^õXªº¤H­Ì¡D <p> ¦pªG§A¼g«Hµ¹§Ú¦ý¦b¤@¬q¦X²zªº®É¶¡¤º¨S¦³±o¨ì¦^À³(¤T¬P´Á©Î§ó¤[)¡A¨º»ò¥i¯à§Ú¤£¤p¤ß¬å±¼¤F§Aªº«H¥ó©Î½Ñ¦p¦¹Ãþªº(©êºp)¡D ½Ð¦A¸Õ¤@¦¸¡D <p> §Ú¦¬¨ì³\¦h«H¥ó¬OÃö©óµwÅé°ÝÃDªº¡D³o¨S°ÝÃD¡A¦ý½Ð¤F¸Ñ§Ú¨Ã¤£¬O¼ô±x¥@¬É¤W©Ò¦³µwÅ骺¤H¦Ó¥B§Ú¤]¤£ª¾¹D§Ú¯àÀ°¦h¤Ö¦£¡D §Ú­Ó¤H¨Ï¥Îªº¾÷¾¹¦³ IDE »P SCSI µwºÐ¡ASCSI ¥úºÐ¾÷¡A3Com »P WD ªº¤A¤Óºô¸ô¥d¡A¦ê¦C·Æ¹«¡A PCI ¥D¾÷ªO¡ANCR 810 SCSI ±±¨î¾¹¡AAMD 386DX40 w/Cyrix »²§U³B²z¾¹¡AAMD 5x86¡AAMD 486DX4 »P Intel 486DX4 ³B²z¾¹ (³o¥u¬O§Ú¦b¨Ï¥Î¦Ó¥B¼ô±xªºµwÅéºK­n¡A¨Ã¤£¬O«ØÄ³¡A¦ý¦pªG§A·Q­n¥Î¡AÅwªï¨Ó¸ß°Ý <tt>:-) </tt>)¡D <p> 0.1 ª©§¹¦¨©ó 1994 ¦~¤Q¤ë¤T¤é¡D¥»¤å¥ó¥i¥H SGML, PostScript, TeX, roff »P¯Â¤å¦r®æ¦¡¨ú±o¡D <sect1>¹w©w¥Ø¼Ð <p> ``¯¦³Z©M§Þ¥©'' ¤@¸`¤Ó¤Ö¤F¡D§Ú§Æ±æ¯à¥Î±q§O¤H±o¨ìªº«ØÄ³¨ÓÂX¥R¡D <p> ``ªþ¥[ªº®M¥ó'' ¤@¸`¤]¬O¡D <p> Áٻݭn§ó¦hªº°»¿ù/·í¾÷¦^´_¸ê°T¡D <sect1>°^ÄmªÌ <p> ¥]§t¤F¤@¤p³¡¥÷ Linus ªº README ÀÉ®× (kernel hacking ¿ï¶µ)¡D·PÁ Linus! <p> <tt>uc@brian.lunetix.de</tt> (Ulrich Callmeier): patch -s and xargs.<p> <tt>quinlan@yggdrasil.com</tt> (Daniel Quinlan): corrections and additions in many sections.<p> <tt>nat@nat@nataa.fr.eu.org</tt> (Nat Makarevitch): mrproper, tar -p, many other things<p> <tt>boldt@math.ucsb.edu</tt> (Axel Boldt): collected descriptions of kernel configuration options on the net; then provided me with the list<p> <tt>lembark@wrkhors.psyber.com</tt> (Steve Lembark): multiple boot suggestion<p> <tt>kbriggs@earwax.pd.uwa.edu.au</tt> (Keith Briggs): some corrections and suggestions<p> <tt>rmcguire@freenet.columbus.oh.us</tt> (Ryan McGuire): makeables additions<p> <tt>dumas@excalibur.ibp.fr</tt> (Eric Dumas): French translation<p> <tt>simazaki@ab11.yamanashi.ac.jp</tt> (Yasutada Shimazaki): Japanese translation<p> <tt>jjamor@lml.ls.fi.upm.es</tt> (Juan Jose Amor Iglesias): Spanish translation<p> <tt>mva@sbbs.se</tt> (Martin Wahlen): Swedish translation<p> <tt>jzp1218@stud.u-szeged.hu</tt> (Zoltan Vamosi): Hungarian translation<p> <tt>bart@mat.uni.torun.pl</tt> (Bartosz Maruszewski): Polish translation<p> <tt>donahue@tiber.nist.gov</tt> (Michael J Donahue): typos, winner of the ``sliced bread competition''<p> <tt>rms@gnu.ai.mit.edu</tt> (Richard Stallman): ``free'' documentation concept/distribution notice<p> <tt>dak@Pool.Informatik.RWTH-Aachen.DE</tt> (David Kastrup): NFS thing<p> <tt>esr@snark.thyrsus.com</tt> (Eric Raymond): various tidbits<p> ´¿±H«Hµ¹§Ú°Ý°ÝÃDªº¤H¤]¦³«Ü¤jÀ°§U¡D <p> <sect1>ª©ÅvÁn©ú¡A³\¥i¡A½Ñ¦p¦¹Ãþªº <p> Copyright © Brian Ward, 1994-1997.<p> Permission is granted to make and distribute copies of this manual provided the copyright notice and this permission notice are preserved on all copies.<p> Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the derived work is distributed under the terms of a permission notice identical to this one. Translations fall under the catagory of ``modified versions.'' <p> Warranty: None.<p> Recommendations: Commercial redistribution is allowed and encouraged; however, it is strongly recommended that the redistributor contact the author before the redistribution, in the interest of keeping things up-to-date (you could send me a copy of the thing you're making while you're at it). Translators are also advised to contact the author before translating. The printed version looks nicer. Recycle.<p> </article>