The Unix and Internet Fundamentals HOWTO Eric Raymond esr@thyrsus.com JF Project - ú{êó JF@linux.or.jp Revision History Revision 2.4 12 June 2001 Revised by: esr Where to find more. Revision 1.0 29 October 1998 Revised by: esr Initial revision. ±Ì¶ÅÍAPC nÌRs [^â Unix CNÈIy[eBOVXe A¨æÑC^[lbgÉÖ·éÀpIÈîbm¯É¢ÄAZpIÈêå pêðgí¸ÉðàµÄ¢Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª Table of Contents 1. ͶßÉ 1.1. ±Ì¶ÌÚI 1.2. ±Ì¶ÌVo[W 1.3. tB[hobNÆù³ 1.4. ÖA\[X 2. Rs [^ðUwüå 3. Rs [^Ìd¹ðüê½É½ªN±éÌ©? 4. OCµ½Æ«É½ªN±éÌ©? 5. VF©çvOðN®µ½Æ«½ªN±é©? 6. üÍfoCXâèÝÍÇÌæ¤É®ìµÄ¢éÌ©? 7. Rs [^ÍǤâÁġ̱Æð¯És¤Ì©? 8. Rs [^ÍǤâÁÄ¡ÌvZXª±Âµ íÈ¢æ¤ÉµÄ¢é Ì©? 8.1. ¼zFÈÕo[W 8.2. ¼zFÚ×o[W 8.3. Çjbg (memory management unit) 9. Rs [^ÍîñðÇÌæ¤ÉÉÛ·éÌ©? 9.1. 9.2. ¶ 10. Rs [^ÍÇÌæ¤ÉfBXNÉîñðÛ¶·éÌ©? 10.1. áxÅÌfBXNÆt@CVXe\¢ 10.2. t@C¼ÆfBNg 10.3. }Eg|Cg 10.4. t@CÌâ¢í¹ÌdgÝ 10.5. t@CÌLÒAp[~bVAZL eB 10.6. ²qª«¢Æ¢¤ÌÍǤ¢¤±ÆÈÌ© 11. Rs [^¾êÍÇÌæ¤ÈdgÝÅ®¢Ä¢éÌ© 11.1. RpC^̾ê 11.2. C^v^^¾ê 11.3. P-code ¾ê 12. C^[lbgÍÇÌæ¤ÈdgÝÅ®¢Ä¢éÌ© 12.1. ¼OÆê 12.2. hCl[VXe (domain name system) 12.3. pPbgÆ[^ 12.4. TCP Æ IP 12.5. HTTP : AvP[VvgRÌêá 13. àÁÆÚµmè½¢l̽ßÉ 14. ú{êóÉ墀 1. ͶßÉ 1.1. ±Ì¶ÌÚI ±Ì¶ÍALinux âC^[lbgðg¢|·±ÆÅwñÅ¢é[Uðx ·é½ßÌàÌÅ·BÀH©çwÔÆ¢¤ÌÍAÁèÌXLðgɯé û@ƵÄÍ\µªÈ¢ÌÅ·ªA(ÌnIÅÍÈ¢½ß)²î{IÈÍ¸Ì m¯Ìeɪ¶¶ÄµÜ¢ª¿Å·B»µÄA»¤µ½ª éÆA© ªÅ½©ð ç½Él¦oµ½èAguðøÊIÉðµ½è·éÛÉ¢ ïɼʷéàÌÅ·B»ÀɽªN±ÁÄ¢éÌ©ðªÌÅv¢`±Æ ªÅ«È¢©çÅ·B {ÅÍALinux ÆC^[lbgÉÖ·éSÌÌdgÝÉ¢ÄA¾m©Â ½ÕȾtÅྷéÂàèÅ·B{ÌðàÍAPC nn[hEFAãÅ Unix © Linux ðgÁÄ¢élðÎÛɵĢܷB½¾A±±ÅÍA¼Òð í¹ÄPÉ 'Unix' ÆÄÑÜ·B{ÅÌà¾ÌåªÍAeívbgt H[âlXÈíÞÌ Unix ɤʷéà̾©çÅ·B ܽA{ÅÍAÇÒª Intel vZbTðÚµ½ PC ðgÁÄ¢éàÌÆ ¼èµÄ¢Ü·BAlpha vZbTâ PowerPC AàµÍ»êÈOÌ Unix } V𮩵ĢéêAשÈ_ɽá¢Í èÜ·ªA»êÅàî{I ÈRZvgͯ¶Å·B ¯¶±ÆðÇÇq×é±Æ͵ȢÌÅAÓµÄÇñž³¢BÊÌ ¾¢ûð·éÆAd¡µ½à¾ªÈ¢ÌÅADZðÇñÅàVµ¢m¯ð¾ç êéÆ¢¤±ÆÅà èÜ·BÅÍ´ÁÆÇñÅAwñ¾±ÆðÁ»µ½ã ÅA³çɽx©ÇÝÔ·Æ¢¤û@𨷷ߵܷB ±Ì¶ÍXV³êĢܷB[UÌtB[hobNðàÆɵÄZN VðÇÁµÄ¢ÂàèÈÌÅA±ê©çà¿å¿å{ÉÚðʵ Äàç¦êÎÆv¢Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 1.2. ±Ì¶ÌVo[W Unix and Internet Fundamentals HOWTO ÌVo[WÍAèúIÉ comp.os.linux.help <news:comp.os.linux.help> Æ news: comp.os.linux.announce ¨æÑ news.answers <news:news.answers> É|Xg ³êĢܷBܽALDP z[y[WðÜß½eíÌ Linux WWW TCgâ FTP TCgÉàAbv[h³êĢܷB ±Ì¶ÌÅVo[WÍAWorld Wide Web ãÌÌ URL Å©é±ÆªÅ «Ü·B http://www.linuxdoc.org/HOWTO/ Unix-and-Internet-Fundamentals-HOWTO/index.html {ÉÍA|[hê <www.gszczepa.hg.pl/esr1iso2.htm>Ì|óª èÜ ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 1.3. tB[hobNÆù³ ±Ì¶ÉÖ·é¿ââRgª êÎA¶È Eric S. Raymond <esr@thyrsus.com> ÜÅ[ðÁľ³¢BÇÌæ¤ÈñÄâá»Åà ½}µÜ·BÁÉA{ÅÌÂXÌRZvgðæèڵྵĢéTC gÖÌnCp[NÍå½}Å·B±Ì¶ÉÔá¢ð©Â¯½êÍA¥ ñÒÉmç¹Ä¾³¢BÌo[WÅù³µÜ·Bæ뵨袵 Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 1.4. ÖA\[X nbLOÌû@ªmè½Ä±Ì¶ðÇñÅ¢éÈçA¢ÅÉ How To Become A Hacker FAQ <http://www.tuxedo.org/~esr/faqs/hacker-howto.html> (R`ó <http://cruel.org/freeware/hacker.html>AJó <http:// www.linux.or.jp/JF/JFdocs/hacker.html>) àÇñž³¢BðɧÂîñ ÖÌNªLÚ³êĢܷB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 2. Rs [^ðUwüå ÇÒÌRs [^ÉÍAvZbT`bvªà ³êÄ¢ÄA±êªÀÛÌ vZðÀsµÄ¢Ü·BܽAààà ³êĢܷ ( DOS/ Windows ÈÐƽ¿ÍA''RAM'' ÆÄÑÜ·ªAUnix ÈÐƽ¿Í ''RA (core)'' ÆÄñ¾èàµÜ·B±Ì Unix pêÍAܾ RAM ªh[ic^Ì tFCgRAÅoÄ¢½ ̼cÅ·)B»µÄAvZbTÆÍA }U[{[hãÉÚ³êÄ¢ÄA±Ì}U[{[hªRs [^ÌS ÆÈÁĢܷB Rs [^ÉÍAXN[ÆL[{[hà¢ĢܷBܽAn[hh CuâtbsfBXNàà ³êĢܷBXN[ÆfBXNÉÍR g[J[hªKvÅ·B±¤µ½J[hÍ}U[{[hÉ·µÜêA Rs [^ÉæéfoCX§äðâµÄ¢Ü·(L[{[hÍñíÉVv ÈfoCXÈÌÅAêpÌJ[hðKvƵܹñBRg[ÍL[{ [hÌâÌàÉßÜêĢܷ)B ±¤µ½foCXÌ®ì´ÌÚ×É¢ÄÍAãÙÇྵܷB±±ÅÍ Ü¸A±êçªÝ¢ÉǤ¢Á½dgÝÅ®ìµÄ¢éÌ©ðÈPÉà¾µÜ ·B P[XàÉûßçê½Rs [^Ìp[cÍ·×ÄAoX (bus) ÉæÁÄq ªÁĢܷB¨IÉ¢¤ÆAoXÆÍARg[J[hð·µÞ ªÅ·(rfIJ[hâfBXNRg[AêÉæÁÄÍZJh(fB XN)Rg[ÈÇ)B¢íÎoXÆÍAvZbTâXN[AfBX NA·×ÄÌp[cÔÅf[^ð¬Éâèæè·é½ßÌÊHÅ·B ( PC ÖAÌbèÅ 'ISA' â 'PCI', 'PCMCIA' Æ¢Á½pêðÚÉ·é¯êÇ A»êª½È̩檩çȢƢ¤©½ª¢é©àµêܹñB±êçÍ AoXÌ`®Ì±ÆÅ·BISA Æ¢¤ÌÍA¨¨Ü©É¾¤ÆA1980 NãÉ IBM ªÌµÄ¢½úÌ PC Ågp³êÄ¢½ÌƯêÌoX̱ÆÅA» ÝÅÍ·½ê èÜ·BPCI ÆÍAPeripheral Component Interconnection ̪ŠèA»ãÌ PC ¨æÑ Macintosh Ågp³êÄ¢é oXÅ·BPCMCIA ÆÍA¨RlN^ð¬^»µ½ ISA ÌüÇÅÅ èA bvgbvÅgp³êĢܷB) vZbTÍ·×ÄÌ@íð·ép[cÈÌÅ·ªA±êÍÀÛÉÍ¼Ì p[cð¼Ú©é±ÆÍÅ«¸AoXðoRµÄïb·éæ¤ÉÈÁĢܷ BoXÈOÉAvZbTª¼Ú©Â¬ÉANZXÅ«éTuVXeÍA (RA)¾¯Å·B»êä¦AvOðÀsµæ¤Æ·éÈçAv OÍRAà(à)ÉÇÝÜêéKvª èÜ·B Rs [^ªvOâf[^ðfBXN©çÇÝo·êAÀÛÌ®ì ƵÄÍAܸvZbTªAoXðgÁÄAfBXN©çÌÇÝoµNG XgðfBXNRg[ÉεÄMµÜ·BµÎçµÄAfBXNR g[ÍAoXðgÁÄAf[^ðÇÝoµÄàÌ éêÉu¢ ½Æ¢¤±ÆðvZbTÉ`¦Ü·B»êÉæÁÄAvZbTÍAoXð gÁÄA»Ìf[^ð©é±ÆªÅ«éæ¤ÉÈéí¯Å·B L[{[hÆXN[àAoXoRÅvZbTÆR~ jP[Vðæ ÁÄ¢éÌÅ·ªA»Ìû@ÍवPÅ·B±êÉ¢ÄÍãqµÜ· BRs [^Éd¹ðüê½ÛɽªN±é©ðð·éÉÍA¢ÜÌƱ ëA±êÅ[ªÅ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 3. Rs [^Ìd¹ðüê½É½ªN±éÌ©? vOª®¢Ä¢È¢Rs [^ÍA𧽸ÈdqiÌ©½ÜèÉ ·¬Ü¹ñBd¹ðüê½ÛARs [^ªÜ¸ÅÉs¤×«±ÆÍAI y[eBOVXeÆÄÎêéÁÊÈvOðX^[g³¹é±ÆÅ ·BIy[eBOVXeÌdÍARs [^n[hEFA̧äÆ ¢¤ÉßÄÏGÈðâÁÄ̯é±ÆÅA»Ì¼ÌvOÌdðx ·é±ÆÅ·B Iy[eBOVXeðN®·é̱ÆÍAu[g (boot) ÆÄÎê Ģܷ(u[gÆÍAàÆàÆuÒÝã°CÌÂÜÝv(bootstrap)vÌ±Æ Å èACÌÂÜÝvðøÁ£ÁÄ©ª©gð¿ã°é(¢ïÈ¿Ìá¦) Æ¢¤¾¢ûªIy[eBOVXeÌN®ÉÄ¢é±Æ©ç¼t ¯çêܵ½)Bu[gÌèÍRs [^`bvÌÐÆÂÅ é BIOS (Basic Input/Output System ̪) É«ÜêÄ¢éÌÅA(Iy[eB OVXeªN®·éOÅà) Rs [^Íu[gû@ðmé±ÆªÅ« éæ¤ÉÈÁĢܷB BIOS `bvÍARs [^ÉεÄA éÜÁ½êÉ éÁÊÌvO ðT·æ¤Éw¦µÜ·B±êÍÊíAêÔá¢Ôªt¯çê½n[h fBXN (u[gfBXN (boot disk)) ãÉ éAu[g[_ (boot loader) ÆæÎêévOÅ· (Linux ãÅÍA±Ìu[g[_Í LILO ÆæÎêĢܷ)B»µÄAu[g[_ªÉÇÝÜêAN®³êÜ ·Bu[g[_ÌdÍAIy[eBOVXe»ÌàÌðN®·é± ÆÅ·B ±Ì[_ÉæéIy[eBOVXeÌN®Æ¢¤ÌÍAJ[lðT µÄA»êðÉ[hµAX^[g³¹é±ÆÉæèÀs³êÜ·BÇ Òª Linux ðN®·éÆAXN[É "LILO" Æ¢¤¶ÆA»ÌãÉhb gª¢Â©\¦³êé̪ª©éÆv¢Ü·B»ÌÍAu[g[_ªJ [lð[hµÄ¢éÌÅ· (ÐÆÂÌhbgÌ\¦ÍAfBXNubN (disk block) ÐƪÌJ[lR[hª[h³ê½±ÆðÓ¡µÄ¢Ü ·)B (ÇÒÍABIOS ªÈº¼ÚJ[lð[hµÈ¢Ì©AȺí´í´u[g [_ðgÁÄ 2 iKÌð·éÌ©É¢ÄsvcÉv¤©àµêܹñ B±êÍABIOS Æ¢¤ÌªA Üè«È¢©çÈÌÅ·BÀÛRCcÍÆÄ àªª«¢ÌÅAu[gªIíêÎ Linux ÍS BIOS ðg¢Ü¹ñBBIOS ÍàÆàÆfBXNà ÜèÏñŢȢ´nIÈ 8 rbg PC ̽ßÉ© ê½àÌÅAfBXNÉANZXµÄJ[lð¼Ú[h·éæ¤ÈÍ ÀãÅ«È¢ÌÅ·BܽAUnix ÅÍsÌ«¢æ¤Èìƪ Á½ÆµÄ àAu[g[_Æ¢¤ßöðîݳ¹é±ÆÅAfBXNãÌÊÌê ©çÙÈéIy[eBOVXeðN®³¹é±ÆàÂ\ÉÈèÜ·B) ¢Á½ñJ[lªn®·éÆAJ[lÍüÓuÌoðs¢An[hE FAðcç¸F¯µÄAvOðÀs·éõð®¦Ü·B»ÌÛAJ[ lÍAÊíÌÅÍÈAI/O |[g (I/O ports) Æ¢¤êÆâèÆ èðµÜ·BI/O |[gÆÍAÁÊÈoXAhXÅ èAfoCXRg [J[hͽ¢Ä¢±Ì|[gðĵȪçJ[l©çÌR}hðÒ ÁĢܷB±ÌAJ[lÍAI/O |[gð_ÉT·í¯ÅÍ è ܹñBDZðT¹Î½ª éÌ©ARg[ª¶Ý·éêÍǤ¢¤ ½ª éÌ©Æ¢Á½îñªAJ[lÌÈ©É ç©¶ß¬ÁµèÆgÝ ÜêÄ¢é©çÅ·B±ÌvZXÍA©®o (autoprobing) ÆÄÎêÄ ¢Ü·B N®É\¦³êébZ[WÌÙÆñÇÍAJ[lª I/O |[goRÅn [hEFAð©®oµÈªçAǤ¢Á½üÓ@íªpÂ\Å éÌ©ð F¯µA»Ì}VÌ®ì«ÉKµÄ¢ßöÅ\¦³êéàÌÅ·B Linux J[lÍA±Ì@\ªGíÅ èA¼ÌåªÌ Unix æèàDêÄ ¢ÄA DOS â Windows æèà¸ÁÆDGÅ·BÀÛA½Ì Linux ÃQ[ UÌl¦éƱëÉæéÆA(CXg[ðärIeÕÉ·é)±ÌN®Ì ©®o@\ÌoÌdzÉæÁÄALinux Ít[È Unix ðìéÆ¢¤ê AÌÀ±vWFNg©ç²¯oÄAcåÈÌ[UðêCÉø«Â¯çê éæ¤ÉÈÁ½Ì¾Æ¾íêĢܷB µ©µAJ[lð®SÉ[hµÄÀs·é±Æ¾¯ÅAu[gvZXª I¹·éí¯ÅÍ èܹñB±êÍܾAæêiKÉ·¬Ü¹ñ(±ÌiKÍ Ax 1 (run level 1) ÆàæÎêĢܷ)BæêiKªÏÞÆAJ [lÍA'init' ÆÄÎêéÁÊÈvZXɧäðnµA±Ì 'init' v ZXªeíÌÇvZXð§¿ã°Ü·B ÊíA±Ì init vZXÍAÅÌdƵÄAܸfBXNª³í©Ç¤ ©ÌmFðs¢Ü·BfBXNt@CVXeÍ@×ÉÅ«Ä¢éÌÅAà µn[hEFAÌÌáâËRÌd¹ÕfÈÇÅ_[Wðó¯Ä¢½êÍA Unix ª®Sɧ¿ãªÁĵܤOÉAt@CVXeCÌìƪKvÅ ·B±êÉ¢ÄÍAãÙÇAt@CVXeªóêéÆ¢¤ÌÍǤ¢¤ ±Æ©ÌÍÅྵܷB init ÌÌdÍAvgXv[ (print spooler)â[T[oA WWW T[oÆ¢Á½A¢Â©Ìf[ (daemon) ðN®·é±ÆÅ·B±Ìf [Æ¢¤ÌÍAobNOEhÅn¹É®«ÈªçAdª^¦çêé ÌðÒÁÄ¢évO̱ÆÅ·B±¤µ½ÁÊÌvOÍA£· é¡ÌNGXgðãèɲ®µÂÂðµÈ¯êÎÈçÈ¢±Æªæ èÜ·B»¤µ½vOªf[vOÅ éÌÍA½¢Ä¢» ÌûªvOð«â·¢©çÅ·BÐÆÂÌNGXgðÐÆÂÌv Oª·é±ÆɵÄA¯¶vOð¯ÉÀsµÈªçAÝÉ âÎɱµ íÈ¢æ¤ÉHv·éæèàAÐÆÂÌvO¾¯ªí ®¢Ä¢ÄA·×ÄÌNGXgð·éæ¤Éµ½Ù¤ªÈP¾©çÅ· BǤ¢Á½íÞÌf[ªN®·éÌ©ÍVXeÉæÁÄÙÈèÜ·ª A½¢Ä¢ÌêAÈÆàvgXv[ (v^ÌåÔðµÄ¢é f[)ÍN®³êÄ¢é±ÆÆvíêÜ·B ³çÉÌdÍA[U̽ßÌõìÆÅ·Binit ÍA getty ÆæÎê évOðX^[g³¹ÄAR\[ðĵܷ(àµÍA¡Ì getty ðN®µÄA_CCpÌVA|[gàÄ·é±Æª èÜ ·)B±ÌvOÍAR\[ãÉ login vvgð\¦·éàÌÅ ·B·×ÄÌf[ªN®µA^[~iÉ getty vZXªX^[gµ ½çA±Ì_Åx 2 (run level 2) ÉüÁ½±ÆÉÈèÜ·BO CâvOÌÀsÍA±Ìxɨ¢ÄAÂ\ÉÈèÜ·B ÆÍ¢¦Aܾ·×Ī®¹µ½í¯ÅÍ èܹñBÌdÍAlbg [LOÌT[rXðT|[g·éeíf[ðN®·é±ÆÅ·B»µ ÄA»êçªI¹·éÆAx 3 (run level 3) ÉüèAVXeª® SÉg¦éóÔÉÈèÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 4. OCµ½Æ«É½ªN±éÌ©? OC·éÆ¢¤ÌÍA(getty É é¼Oð³¦é±ÆÅ) ©ªªNÈÌ© ðRs [^ÉF¯³¹é±ÆÅ·B»ÌÛA (ª©èÕ¢¼OÌ) login ÆÄÎêévOªN®³êA±êªpX[hðó¯æèA»Ì}V ðg¤ ÀðÁ½[UÅ é©Ç¤©ÌFØðs¢Ü·Bàµg¤ Àª ȯêÎAOCµæ¤ÆµÄàÛ³êÜ·B Àª êÎAlogin v O͢©ÌOñðÏܵ½¤¦ÅAVF (shell) Æ¢¤R} hC^[v^ (command interpreter) ðX^[g³¹Ü·B(à¿ëñA getty Æ login ðÐÆÂÌvOÆ·é±ÆàÂ\ÅÍ èÜ·B¼Òª ÊXɪ©êÄ¢éÌÍAðjIÈR©çÅ èA±±ÅÍÁÉæèã°é æ¤ÈàÌÅÍ èܹñB) ±±ÅÍAVFª\¦³êéÜÅÉAVXeãÅN±é¿É¢ÄठµÚµà¾µÜ·(ãÙÇAt@CVXeÌp[~bVÉ¢Äð à·éÛÉA±ÌÍÌm¯ªKvÉÈèÜ·)B[UÍAOC¼ÆpX [hÉæÁįè³êÜ·BOC¼ÍA/etc/passwd Æ¢¤t@Cð© ÄAmF³êÜ·B±Ìt@CÍAês²ÆÉ»ê¼êÌ[UAJEg ÌîñªLq³ê½t@CÅ·B s²ÆÉ¡ étB[h̤¿AAJEgpX[hÌÍAû³ êĢܷ(êÉæÁÄÍA±Ìû³ê½tB[hÍA /etc/shadow Æ¢¤ÊÌt@CÉÛ¶³êAæèµµ¢p[~bVÝ誳êé±Æ ª èÜ·B±êÉæÁÄApX[hÌNbLOðæè¢ïÉ·éÌÅ ·)BAJEgpX[hƵÄü͵½¶àAÜÁ½¯¶û@Åû ³êAlogin vOÉæè³ÈpX[h©Ç¤©ÌmFªÈ³êÜ· B±Ìû@ªÀSÅ éÆ¢¦éÌÍA½¶pX[hðû·éÌÍÈP ÅàA»ÌtÍﵢƢ¤ÀÉæÁĢܷB»êä¦AN©ªÃ»³ ê½ãÌpX[hð©½ÆµÄàA»êÉæÁÄ»ÌAJEgðg¦éæ ¤ÉÍÈèܹñB (tÉA©ªÌpX[hðYêĵÜÁ½çA»êðà ¤êxmF·é±ÆàÅ«ÈÈèÜ·B½©ÊÌpX[hÉÏX·éÈO É èܹñB) OCɬ÷µ½çApµÄ¢é©ªÌAJEgÉÖAt¯çê½·× ÄÌ ÀðpÅ«éæ¤ÉÈèÜ·BܽA»ÌAJEgÍAÈñç©Ì O[v (group) É®µÄ¢éÆF¯³êéêà èÜ·BO[vÆÍA êè̼Oðt¯çê½[UÌWcÅ èAVXeÇÒÉæÁÄÝè³ êÜ·BO[vÉÍA»ÌÂXÌo[Ì ÀÆÍÊÉAO[vÆ©Ì ÀðÝè·é±ÆªÅ«Ü·BܽA[UÍA¡ÌO[vÌo[ ÆÈé±ÆàÅ«Ü·B(Unix Ì ÀÌdgÝÌÚ×É¢ÄÍAp[~bV ÌÍð²¾³¢B) (ӷ׫ÈÌÍAÊíÍ[U¼âO[v¼Æ¢¤ÌͼOÅÄñÅ¢Ü ·ªAÀÛÉÍAÌ ID ƵÄàÉÛ¶³êÄ¢éÆ¢¤±ÆÅ·B passwd t@CÉÍAAJEg¼Æ»Ì[U ID ÆÌÎÖWª©êÄ ¢ÄA/etc/group t@CÉÍAO[v¼Æ»Ì©çÈéO[v ID ÆÌÎÖWª©êĢܷBAJEg¼âO[v¼ð·éR} hÍA±Ì¼ÒÌÏ·ð©®IÉsÁĢܷB) AJEgÌîñÉÍA»Ì[UÌz[fBNg (home directory) ÉÖ·éîñàÜÜêĢܷBz[fBNgÆÍA Unix t@CV XeãÅ»Ì[UÂlÌt@CªÛdzêÄ¢éê̱ÆÅ·BÅã ÉAAJEgÌîñÉÍA»Ì[UÌVF (shell) ÉÖ·éîñà èÜ·BVFÆÍAR}hC^[v^̱ÆÅ èA login vO ª[U©çÌR}hðó¯æé½ßÉN®·éàÌÅ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 5. VF©çvOðN®µ½Æ«½ªN±é©? VFÆÍA[UªÅ¿ñ¾R}hððß·é Unix ÌC^[v^ Å·B±êªVFÆÄÎêéÌÍAIy[eBOVXeÌJ[lð ïÝñÅA±êð[U©çB·«ðµÄ¢é©çÅ·(óFØÌÀÌä gÅ èAVF (shell) ÆÍkðÓ¡µAjÆÈéÀ(±±ÅÍJ[l) ðïÝñÅ¢é±Æ©çA»Ì¼Oª èÜ·)BVFÆJ[lƪÊX ÌvOÆÈÁÄ¢ÄA¼ÒªêAÌVXeR[oRÅÊM·éÆ¢ ¤dgÝÍAUnix ÌdvÈÁ¥ÆÈÁĢܷB±Ìæ¤É¼Òðª£·é± ÆÅAlXÈVFvOÌÀªÂ\ÆÈèA[UÌDÝÉí¹Ä ¢ë¢ëÈC^[tFCXðI×éæ¤ÉÈÁĢܷB ÊíÌVFÅÍA[UªOC·éÆA(ÁÉJX^}CYðµÄ¢È¢ Àè) '$' Æ¢¤vvgª\¦³êÜ·B±±ÅÍVFÌ\¶âAæÊ ð©Ä¢êξ¢½¢ª©éæ¤È¿ÉÍGêܹñBÞµëA±¤µ½\ ¦ÌwiŽªN±ÁÄ¢éÌ©ðARs [^Ì_©çðàµæ¤Æv ¢Ü·B u[gªI¹µ½ãÅܾ½çvOðÀsµÄ¢È¢_ɨ¯éR s [^Æ¢¤ÌÍAêAÌvZXS̪âé׫dðÒÁÄ¢éóÔÅ éÆl¦é±ÆªÅ«Ü·B çäévZXªCxg (event) ðÒÁÄ ¢éí¯Å·B±±ÅCxgÆÍA[UªL[ð·Æ©}EX𮩷 Æ©¢Á½±ÆÅ·B é¢ÍA}Vªlbg[NÉÚ±³êÄ¢éÈç A»Ìlbg[NzµÉçêÄéf[^pPbgÌ MÈÇàCxg É ½èÜ·B J[l໤µ½vZXÌÐÆÂÅ·B½¾µAJ[lÍÁêÈvZ XÅà èÜ·BJ[lvZXÈOÌ[UvZX (user process) ð ¢ÂÀs·×«©§äðs¤ÌªJ[lvZXÅ èA}VÌn[hE FAɼÚANZXÅ«éÌàÊíÍJ[lvZX¾¯¾©çÅ·BÀÛ A[UvZXªAL[{[hÌüÍðÇÝñ¾èAXN[ɽ©ð \¦µ½èAfBXNÉεÄÇÝ«µ½èAÆÌâèÆèÈOÌ ·×ÄÌð·éÛÉÍAJ[lÉεÄNGXgðçȯêÎÈè ܹñB±¤µ½NGXgÍAVXeR[ (system call) ÆÄÎêÄ¢ Ü·B ÊíAI/O |[gÖÌANZXÍ·×ÄJ[lðʶÄsíêéÌÅAJ[ lÍ»¤µ½ðXPW [Oµ½èAÝ̱Âðh~µ½è·é @\ðÁĢܷB½¾AÌÁÊÈ[UvZXÍAJ[lðʳ ¸É·é Àð^¦çêĢܷB½¢Ä¢ÌêA»êÍ I/O |[gÖ ¼ÚANZXÅ«éÆ¢¤ ÀÅ·BX T[o (±êÍAåªÌ Unix }V ãÅAXN[ÖÌæ\¦ÉÖ·é¼ÌvO©çÌNGXgð ó¯æÁÄAµÄ¢évO̱ÆÅ·) ªA»ÌT^IÈáÅ·B µ©µA¡ÌƱëAܾ X T[oª§¿ãªéƱëÜÅbªiñŢܹ ñBܾA¶[ãÅAVFvvgð©Ä¢éóÔÅ·B VFÍAPÈé[UvZXÅ èA½çÁÊÈ Àð^¦çêÄ¢éí ¯ÅÍ èܹñBVFÍL[Xg[NðÒÁĨèA(J[loRÅ) L[{[hÌ I/O |[gðĵĢܷBJ[lÍL[Xg[NðF¯ ·éÆA»êð»ÌÜÜXN[ãÉ\¦µÜ·BJ[lÍ 'Enter" L[ ª³ê½±ÆðF¯·éÆA»ÌL[ª³êéÜÅÉüͳê½eLXg sðVFÉnµÜ·BVFÍA»êçÌL[Xg[NðR}hÆµÄ ðßµæ¤ÆµÜ·B ½Æ¦ÎAUnix ÌfBNg\¦R}hðN®·é½ßÉA'ls' Æ¢¤ ¶ð^CvµÄAEnter ðµ½ÆµÜ·BVFÍA 究ßgÝÜ êÄ¢é[É]ÁÄ»êððßµA[Uª '/bin/ls' t@CÉ éÀ sR}hðN®µ½ªÁÄ¢é̾ÆðµÜ·BVFÍVXeR[ ðµÄAJ[lÉ /bin/ls ðVKÌqvZX (child process) ÆµÄ N®·éÆÆàÉA»ÌqvZXÉεÄJ[loRÅXN[ÆL[ {[hÖÌANZX Àð^¦éæ¤vµÜ·B»µÄAVFÍX[v óÔÉüèAls R}hªI¹·éÌðÒ¿Ü·B /bin/ls R}hªI¹·éÛAR}hÍA exit VXeR[ðsµ ÄAªI¹µ½±ÆðJ[lÉ`¦Ü·B·éÆAJ[lªAX[ vµÄ¢½VFðÚoß³¹ÄAVFªÀsðÄJÅ«éæ¤ÉÈÁ½± Æð`¦Ü·BVFÍAÄxvvgðµAÌüͪȳêéÌðÒ ¿Ü·B ÆÍ¢¦AãLÌ 'ls' ªÀs³êÄ¢éÅÉA¼ÌvZXðis³¹é ±ÆàÂ\Å·(ñíÉ·¢fBNgÌXgð\¦µæ¤ÆµÄ¢éƵ ܵå¤)B½Æ¦ÎA'ls' ÌÀsÉAÊ̼zR\[ÉØèÖ¦ÄA OCµAQ[Ì Quake ÅVÑnßé±ÆªÅ«Ü·B é¢ÍAC^ [lbgÉÚ±µÄ¢éóԾƷêÎA ls ÌÀsÉAÇÒÌ}Vª [ÌóMð·é±ÆàÂ\Å·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 6. üÍfoCXâèÝÍÇÌæ¤É®ìµÄ¢éÌ©? L[{[hÆ¢¤ÌÍAñíÉVvÈüÍfoCXÅ·BÆ¢¤ÌàAL [{[hÍA(Rs [^Ìî©ç©éÆ)²È¢ÊÌf[^ðñíÉ äÁ趬·éà̾©çÅ·BL[ðµ½è£µ½è·éÛA»ÌCx gMÍAL[{[hP[uð`íÁÄAn[hEFAèÝ (hardware interrupt) 𶳹ܷB ±¤µ½èÝðÄ·éÌÍAIy[eBOVXeÌdÅ·B çäéíÞÌèÝÉηé½ßÉAèÝnh (interrupt handler) Æ¢¤ÌªKvÉÈèÜ·B±êÍAIy[eBOVXeÌê Å èA(L[Xg[NâL[[XÆ¢Á½) èÝÉÖW·éf[ ^Ì·×ÄðA»êª³êéÜÅ۵ĨàÌÅ·B L[{[hpÌèÝnhÌÀÛÌdÆ¢¤ÌÍAL[Ìlð ÌêÌÙ¤É éVXeGAÉi[·é±ÆÅ·BIy[eBOVX eªA»ÝL[{[h©çÌüÍÒ¿ÆvíêévOÉεħäð nµ½ÛA»ÌvOª»±©çlðÇÝo¹éæ¤É·éí¯Å·B fBXNâlbg[NJ[hÌæ¤ÈàÁÆ¡GÈüÍfoCXÌêÅà ®ìû@ͯ¶Å·BÈOÌÍÅÍAfBXNRg[ÍoXðgÁÄf BXNNGXgª®¹µ½±Æð`¦éÆ¢¤bðµÜµ½B»ÌêÌÀ ÛÌ®ìÆ¢¤ÌÍAfBXNªèÝð¶³êéÆ¢¤±ÆÅ·B»Ì Æ«AfBXNÌèÝRg[ÍA¶µ½èÝf[^ð àÉêURs[µÄAã©ç»ÌNGXgðµ½vOªg¦éæ¤ É·éÌÅ·B èÝÉÍAǤ¢¤íÞÌàÌÅ êAK¸ÖA·éDæx (priority level) ªt¢Ä¢Ü·Bá¢DæxÌèÝ(½Æ¦ÎAL [{[hCxg)ÍA¢DæxÌèÝ(½Æ¦ÎANbN`bN (clock tick) âfBXNCxg) ª³êéÌðҽȯêÎÈèܹñ B Unix ÅÍA}V̽ðX[YÉ·é½ßÉAv¬ÈðKvÆ· éCxgÉεÄÍA¢Dæʪ^¦çêéæ¤ÉÝv³êĢܷB Iy[eBOVXeÌN®ÌbZ[WÌÈ©ÉAIRQ ÌÉÖ· é\¦ª éÌð²ÉÈÁ½±Æª éÆv¢Ü·BܽAæ én[h EFAÌÝè~XÌÐÆÂƵÄAñÂÌfoCXª¯¶ IRQ ðg¤æ¤ÉÝ èµÄµÜÁÄ¢½Æ¢¤áª é±Æðä¶m¾Æv¢Ü·B½¾A±ê ª½ÌÝè~XÈÌ©A³mÈRÍÄOmçêĢܹñB »êÍAÂÜ豤¢¤±ÆÅ·BIRQ ÆÍA"èÝNGXg (Interrupt Request)" ̪ŷBIy[eBOVXeÍAN®ÉAÇ Ìn[hEFAªÇÌèÝÔðg¤Ì©méKvª èA»êÉæÁÄ AKØÈèÝnhðÂXÌn[hEFAÉÖAt¯Ä¢Ü·Bàµñ ÂÌÙÈéfoCXª¯êÌ IRQ ðg¨¤Æ·éÆAèݪsKØÈn hÉçêĵܤԪ¶¶Ü·B»ÌêAÊíÍÈÆàfoCX ª½µÈÈÁĵܤ©A é¢ÍAOS 𬳹ĵÜÁÄAOS ªÅ ÜÁĵܤ©ANbV µÄµÜ¤©çÅ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 7. Rs [^ÍǤâÁġ̱Æð¯És¤Ì©? ÀÛÉÍA¡Ì±Æð¯ÉsÁÄ¢éí¯ÅÍ èܹñBRs [^ ÍA»ÌXÅÐÆÂÌ^XN (àµÍvZX (process) ) µ©Å« ܹñBµ©µARs [^ÍA¡Ì^XNðuÉØè֦Ȫç Å«éÌÅAlÔÌ´o©ç·éÆA¡Ì±Æð¯ÉsÁÄ¢éæ¤Éö o³¹é±ÆªÅ«éÌÅ·B±¤µ½û@ÍA^CVFAO (timesharing, ªû®) ÆÄÎêĢܷB ^CVFAOÌÇàAJ[lÌdÌÐÆÂÅ·BJ[lÉÍX PW [ (scheduler) Æ¢¤ªª èA±êª(J[lÈOÌ)SvZ XÉÖ·éîñðàÉ۵ĢܷB 60 ªÌ 1 b²ÆÉAJ[làÌ ^C}[ªiñÅANbNèÝ𶬵ܷBXPW [ÍA»ÝÀ sÌvZXðâ~³¹ÄA»êðKXÛ¯µ½¤¦ÅAÊÌvZXɧ äðnµÜ·B 60 ªÌ 1 bÆ¢¤ÌÍA Üè·¢ÔÆÍv¦È¢©àµêܹñªA¡ úÌ}CNvZbT©ç·éÆAÌ}V½ßðÀsµ¤é¾¯ÌÔ uÅ èA»ê¾¯ êÎA©ÈèÌdª±È¹Ü·B»êä¦A½Ìv ZXª¶Ýµ½ÆµÄàA»ê¼êÌvZXÍA»ÌèÄÔàÉ \ÈdÊð±È¹éí¯Å·B ÀÛÉÍAvOÍ»ÌèÄÔðSg¦È¢êà èÜ·BI/O foCX©çèݪ©©éÆAJ[lÍø¦æ»ÝÌvZXðâ~ ³¹AèÝnhðÀsµÄA»Ì ÆÅ»ÝÌvZXðÄJµÜ· B¢DæÊÌèݪ¬¬ÉN±éÆAÊí̪ÜÁ½sí êÈÈÁĵܢܷB±ÌÙíÔÍAXbVO (thrashing) ÆÄÎ êĢĢܷªAKȱÆÉA»ÝÌ Unix ÅÍßÁ½ÉN±çÈÈÁÄ ¢Ü·B ÀAvOÌÀs¬xÍAvOªæ¾·é}VÔÌÊÉæÁ ħÀ³êéÆ¢¤±ÆÍÙÆñÇ èܹñ (TEhâ 3-D OtBbN ̶¬ÈÇA¢Â©ÌáOÍ èÜ·ª)BÀsÌxªN±é´öÍA½¢ Ä¢AvOªfBXNâlbg[NãÉ éf[^ðæ¾µæ¤Æµ ÄÒÁÄ¢éÔɶ·éÌÅ èAÙÆñÇÌ´öª±êÅ·B ½ÌvZXðɯÀsIÉÅ«éIy[eBOVXeÍA "}`^XN (multitasking) " OS ÆÄÎêÜ·BUnix nÌIy[eB OVXeÍAàÆàÆ}`^XN OS ƵÄÝv³êĨèA»êðñí ɾÓƵĢܷBWindows â Mac OS ÈÇæèà¸ÁÆø¦æÅ« Ü·B Windows â Mac OS ÍA}`^XN@\ðã©çgÝñÅ¢éÌÅ A Unix Éä×éÆâ⨻ÜÂÅ·B±Ìø¦Ìæ¢AMÅ«é}`^ XN@\ÍAlbg[NÊMâEFuT[rX̪ìÅ Linux ðDÊɧ½ ¹éå«ÈvöÆÈÁĢܷB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 8. Rs [^ÍǤâÁÄ¡ÌvZXª±Âµ íÈ¢æ¤ÉµÄ¢é Ì©? J[lÌXPW [ÍAvZXÌÔIÈèUèðSµÄ¢Ü·B ¯ÉAIy[eBOVXeÍAvZXðóÔIÉàèUÁÄA» êçªÝ¢ÌìÆÌæɱµȢæ¤ÉµÈ¯êÎÈèܹñB·× ÄÌvOª¦²µÄ®¢ÄêéƼ赽êÅàA»ÌÇê©ÐÆ ÂÉoOª èA»êÉæÁļÌvOÌÌæªjó³êÄµÜ ¤æ¤ÈÔÍ]ܵ èܹñB±Ìâèðð·é½ßÉAIy[e BOVXeªs¤Îû@ÍAÇ (memory management) ÆÄÎê ĢܷB Rs [^àÌÂXÌvZXÉÍA»ÌR[hðÀsµ½èAÏðÛ¶ µ½èAÌÊði[µ½è·éêƵÄAÆ©ÌÌæªKvÅ ·B±¤µ½ÌæÍA(vZX̽ߪ۳êé)ÇÝoµêpÌæ Å éR[hZOg (code segment) ÆA(vZXÌ·×ÄÌÏªÛ ³êé) «ÝÂ\ÈÌæÅ éf[^ZOg (data segment) ©ç\ ¬³êÄ¢éÆl¦é±ÆªÅ«Ü·Bf[^ZOgÍA¶Ç¨èÂX ÌvZXÉÅLÌÌæÅ·ªAñÂÌvZXª¯êÌR[hðÀsµÄ¢ éêAUnix ÍAÌpø¦ÌÏ_©çA»¤µ½vZXªAPêÌ R[hZOgð¤L·é椲®ðs¢Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 8.1. ¼zFÈÕo[W Íliª¢ÌÅAø¦æp·é±ÆªåØÅ·BÆ«ÉÍA}V ÅÀsÌ·×ÄÌvOSÌðÉ۷龯Ì]TªÈ¢ê ª¶¶Ü·BÁÉAX T[oÌæ¤ÈåÈvOðÀsµÄ¢éæ¤ ÈêÉÍAs«ª¶¶é±Æª èÜ·B±ÌâèÉηé½ßÉ A Unix ÍA¼z (virtual memory) ÆÄÎêéeNjbNðg¢Ü· B±êÍAvZXÌ·×ÄÌR[hÆf[^ðàÉÛµæ¤Æ·é àÌÅÍ èܹñBÞµëAärIÊÌ[LOZbg (working set) ¾¯ðÛ·éæ¤ÉµÄAcèÌvZXóÔÍAn[hfBXNãÌX bvXy[X (swap space) Æ¢¤ÁÊÈÌæÉu¢Ä¨«Ü·B ÓµÄ~µ¢ÌÍAOÌiÅuÆ«ÉÍ....¶¶Ü·vÆ¢½ªÍA ßɨ¢ÄÍAuÙÆñÇ¢ÂබĢܵ½vƾ¢·¦é±ÆªÅ« éÆ¢¤_Å·BÈOÍAÀsÌvOÌTCYÆä×ÄÌTC YªSR«èÈ©Á½ÌÅAXbsOÍpÉÉN±ÁĢܵ½Bµ©µ AÍ¡úÅÍ©ÈèÀ¿ÉÈÁÄ¢ÄA[GhÌ}VÉ·çA© Èè̪ÏÜêéæ¤ÉÈÁĢܷB64 MB ÈãÌðÏñ¾» ÝÌÂlp}VÌêAX âæp·éWuªÅ©çRAÉ[h³ ê½ ÆÅàA»¤µ½vZXðXbsOȵÅÀs·é±ÆªÂ\É ÈÁĢܷB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 8.2. ¼zFÚ×o[W OÍÅÍAÀÛÉ¿åÁÆbðP»µ·¬ÄµÜ¢Üµ½Bm©ÉAvO ÍðAåŽÂÈAhXÌæÅ è¨æèàå«Èà ÌÅ éAÆF¯µÄ¢ÄA»Ì¶zðx¦éàÌƵÄfBXNXbs Oªp³êÄ¢éÆ¢¤ÌÍ{Å·Bµ©µA»ÀÉÍAn[hEFAÍ ÙÈéÜíÞàÌðÁÄ¢ÄAvOªÅ¬xÅÀs³êéæ ¤` [jOµÈ¯êÎÈçÈ¢êÍA±ÌÜíÞÌÔÅÌá¢Í AñíÉdvÈâèÆÈéÌÅ·B}VàŽªN±ÁÄ¢éÌ©ð{É ð·é½ßÉÍA±êçS̪Ǥ¢¤dgÝÅ®¢Ä¢éÌ©ðmçȯ êÎÈèܹñB ÜíÞÌÆÍAÌæ¤ÈàÌÅ·FvZbTÌWX^Aà(ൠÍAIE`bv)LbV AO(àµÍAItE`bv)LbV A CA¨æÑfBXNÅ·B±ê¾¯ÌíÞ̪¶Ý·é±Æ ÌRÍAPÅ·BXs[hðã°éÉͨ઩©é©çÅ·BãLÜí ÞÌÍAANZXÔÌZ¢ÔARXgÌ¢ÔÉÀñŢܷB WX^ÍAŬ©ÂÅà¿ÈàÌÅ èAêbÔÉ\ñç¢ _ANZXªÂ\Å·ªAfBXNÍÅàᬩÂÀ¿Å èAêbÔÉ Sñç¢ÌANZXµ©Å«Ü¹ñB ȺÉA2000NªÌT^IÈfXNgbv}Vɨ¯éeíÌXs [hÌê\ðLڵܷBXs[hÆeÊÍNX㸵A¿iͺªÁÄ¢ «Ü·ªAÔÅÌ»êçÌäáÖWÍñíÉÀèµÄ¢éÆl¦é±Æ ªÅ«Ü·BªKw\¢ðÂÌÍA»¤µ½äáÖWªêèÅ é© çÅ·B fBXN Size: 13000MB Accesses: 100KB/sec C Size: 256MB Accesses: 100M/sec OLbV Size: 512KB Accesses: 250M/sec àLbV Size: 32KB Accesses: 500M/sec vZbT Size: 28 bytes Accesses: 1000M/sec Ŭ̾¯ðgÁÄ·×Äð\z·é±ÆÍūܹñB ÜèÉ¿ ÈàÌÉÈè·¬é©çÅ·B¼É¿ÅÈ©Á½ÆµÄàA¬ÈÍ ö«Å·BÂÜèAd¹ðØéÆA¹Á©Ì¬Êª¸íêĵܢܷB µ½ªÁÄARs [^Ín[hfBXNâ»Ì¼Ìñö«ÌXg[W ðàµÄAd¹ðØÁ½ÛÉàf[^ðÛÅ«éæ¤ÉµÈ¯êÎÈèÜ ¹ñBܽAvZbT̬xÆfBXN̬xÆÌÔÉÍA ÜèÉå«È ᢪ èÜ·B»ÌÔÉ éOÂÌxÌKw (àLbV (internal cache)AOLbV (external cache) ¨æÑC) ÍAî{IÉA¼ÒÌMbvðßé½ßɶݵĢܷB Linux Æ»Ì¼Ì Unix ÉÍA¼zÆÄÎêé@\ªõíÁĢܷB ¼zÆÍAIy[eBOVXeªÀÛÉڵĢéC ÈãÌðÁÄ¢é©Ìæ¤ÉU¤Æ¢¤±ÆðÓ¡µÄ¢Ü·B ÀŲ̂CÍAæèå«Èu¼zvóÔÌAàµÍL bV Ìæ¤ÉUé¢A¼zÌåªÍÀÛÉÍXbvGAÆ ÄÎêéfBXNãÌÌæÉÛ³êÜ·B[UvO©çÍ©¦È¢ ƱëÅAOS ÍAf[^ubNðÆfBXNÌÔÅÚ®³¹A±Ì¶ zð۵ĢܷB»ÌÊA¼zÍAÀæèà¸ÁÆå«¢ ªA»êÙÇxÍȢƵÄ@\·éí¯Å·B ¼zª¨Æä×ÄÇÌöxá¬ÉÈé©Æ¢¤ÌÍAIy[ eBOVXeÌXbsOASYªAÇ꾯vOÉæé ¼zÌpû@ÉKµ½àÌÉÈÁÄ¢é©Æ¢¤±ÆÅÜèÜ· BKȱÆÉAêèÌÔÔuÅ©éÆAÌÇÝoµÆ«ÝÍÔð u©¸Éȳêé±Æª½¢½ßAêIÉ©½êÅàAÌÇÝ« ÍóÔàÌÁèÌêÉW·éÆ¢¤Xüª èÜ·B±ÌXüÍA [JeB (locality) AàµÍæè³®ÉÍt@XÌ[Je B (locality of reference) ÆÄÎêĢܷB±êÍsÌ¢¢±ÆÅ·B ÖÌQÆ (reference) ª¼zóÔàÌlXÈêÉ_És íêéÈçAÊíÍAVµ¢QÆ̽ѲÆÉfBXNÉηéÇÝoµâ «ÝªsíêȯêÎÈç¸A¼zÍfBXNƯ¶ç¢á¬ÉÈ Áĵܤŵå¤Bµ©µAvOÆ¢¤ÌÍêèÌêÅÇÝ«ð s¤Æ¢¤¢Xü (locality) ð¦·àÌÈÌÅAÖÌQƪ éê ÅàAIy[eBOVXeÍXbvðs¤±ÆªärI·ÈÄ ÏÝÜ·B ±êÍAo±¥ÈÌÅ·ªAÅåöñIÉÝÄÅàø¦Ìæ¢pp ^[Æ¢¤ÌÍñíÉVvÈàÌÅ·B»Ìû@ÍALRU àµÍÅ· Ô¢gpASY ("least recently used" algorithm) ÆÄÎêÄ¢Ü ·B¼zVXeÍAKvɶÄAfBXNubNðÌ[ LOZbg (working set) ƵÄæèÝÜ·B[LOZbgp̨ ª«èÈÈÁ½çAÅ·Ô¢gpÌubNðfBXNÉ«oµ ĵܢܷB·×ÄÌ Unix âA¼zðg¤»Ì¼ÌIy[eB OVXeÌåªÍA±Ì LRU É¢ç©ÌÏXðÁ¦½ASYðg ÁĢܷB ¼zÍAfBXNÆvZbTÌXs[hÌá¢ð²®·éæêÌA ÆÈÁĢܷB±êÍAOS ª¾¦IÉǵĢܷBµ©µA¨ ÌXs[hÆAvZbTª»ÌWX^ÉANZX·éXs[hÆÌ ÔÉÍAܾå«ÈMbvª èÜ·BOÆàÌLbV ÍA±êð ßéàÌÅ èA»Ì½ßÉãLÅq×½¼zÆæ½eNjbN ðgÁĢܷB ¨CªfBXNXbvÌæÉηéêAÌâLbV Ìæ ¤ÉUéÁÄ¢éæ¤ÉAOLbV àCÉηéÌæ¤ ÉUé¢Ü·BOLbV ÍA¬ (100M æèଢbÔ 250M ANZ X)ÅAeÊ̬³¢Å·Bn[hEFA (ÁÉARs [^Ì Rg[) ÍALRU Ìû@ðgÁÄAC©çæÁÄ«½êAÌ f[^ðàÆɵÄAOLbV àÌf[^ðǵܷBðjIÈR ÅALbV XbsOÌPÊÍAy[W (page) ÅÍÈC (line) ÆÄÎêĢܷB µ©µA±êÅbªIíÁ½í¯ÅÍ èܹñBàLbV ªAOL bV Ìêð³çÉLbV ·é±ÆÅAANZX¬xÌêã°ÌÅI iKðSµÄ¢Ü·B±ÌàLbV ÍA³çɬÅeÊ̬³¢ Å·BÀA±êÍvZbT`bvÌ·®¤Éu©êĢܷB ÇÒªvOð{ɬµ½¢Æv¤ÈçA±¤µ½×©¢¿ðmÁ Ĩ±ÆªLvÅ·BvOÍA[JeBª¢ÙǬÉÈèÜ ·BLbV ªæèøÊIÉ©çÅ·B»êä¦AvO𬷠éêÔÈPÈû@ÍAvO𬳷é±ÆÅ·BvOª½Ì fBXN I/O ̽ßÉ®«ªÝÈÁ½èAlbg[NCxgðÒÁ½è µÈÄà·ÞêA»êÍAÊíAVXeàÅe³êÄ¢éÅåÌL bV øÊðÆàÈÁ½Xs[hÅÀs³êé͸¾©çÅ·B vOSÌð¬³Å«È¢êÍAXs[hÉÖW·éªð` [j O·éæ¤ÉµÄA¢[JeBðö·éæ¤É·êÎñíêéŵ å¤B»¤µ½` [jOÉÖ·éeNjbNÌÚ×ÍA±Ì¶ÌÍáeð z¦Ü·BÇÒª»êçðKvÆ·é ÉÍARpCÉ©Èè¸ÊµÄ¢ é͸ÈÌÅA»¤µ½û@̸ͨÆðÅ«é͸ŷB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 8.3. Çjbg (memory management unit) [ªÈeÊÌRAª èAXbsOðð¯çêéÆ«ÅàAÇ (memory management) ÆÄÎêéIy[eBOVXeÌêÍAdvÈ ððʽµÄ¢Ü·BmFµÄ¨«½¢ÌÍAvOÍ©ªÌf[^Z Ogµ©ÏXūȢƢ¤±ÆÅ·B·Èí¿A évOÌÌ sïÌ éR[hâ«ÓðÁÄìçê½R[hªA¼ÌvOÌf[ ^ZOgÉf[^ðf«o·±ÆÍoÈ¢dgÝÉÈÁÄ¢éÆ¢¤± ÆÅ·B±êðÀ»·é½ßÉAÇ@\ÅÍAf[^ZOgÆR [hZOgÌꪩê½e[uð۵ĢܷB±Ìe[uÍ AvZXªÇÁÌÌæðvµ½èA»êÜÅgÁÄ¢½Ìæ ðJú·é(ÊíA±êÍvZXI¹ÉN±èÜ·)½ÑÉAXV³êéæ ¤ÉÈÁĢܷB Iy[eBOVXeÌÇ@\ÍA±Ìe[uðgÁÄA MMU àµÍÇjbg (memory management unit) ÆÄÎêéAºÊw Ìn[hEFAÉ éÁÊÈÓÉR}hðnµÄ¢Ü·B»ãÌvZb T`bvÉÍA¡Ì MMU ªà ³êĢܷB MMU ÍAÌæðÛì ·é½ßÌÁÊÈ@\ðÁÄ¢éÌÅAz«IÈQÆÍÛ³êéÆ ÆàÉA»ÌÛÉÍÁêÈèݪ¶·éæ¤ÉÈÁĢܷB ¡ÜÅÉA"Segmentation fault" â "core dumpd" Æ¢Á½bZ[W𩽠±Æª éÈçAܳÉA»¤µ½z«IÈQƪN±Á½Æ¢¤±Æ ðÓ¡µÜ·BÀsÌvOª©ªÈOÌZOgÉANZX µæ¤Æ·éÆAv½IÈèݪN«éÌÅ·B±êÍAvOÉo Oª é±ÆðÓ¡µÄ¢Ü·BMMU ªc· core dump ÍAvO}ª»Ì oOðÇÕ·éÌðx·é½ßÌffîñÈÌÅ·B vZXÌݱÂÌh~ÍAvZXªANZXÅ«éÌæ𪣷 é±ÆÈOÉA³çÉÊÌÏ_©çàȳêĢܷBÇÒÍAãLÈOÉà At@CÖÌANZX§äªoéæ¤ÉµÄAoOÌ évOâ« ÓðÁÄÂçê½vOªVXeÌdvt@CðjóÅ«È¢æ ¤Éµ½¢Æv¤±Æŵå¤B Unix ªAt@Cp[~bVÆ¢¤d gÝðÁÄ¢éÌÍA±Ì½ßÅ·B±êÉ¢ÄÍAãÙÇྵܷB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 9. Rs [^ÍîñðÇÌæ¤ÉÉÛ·éÌ©? Rs [^ãÅÍA·×ĪrbgñƵÄÛ¶³êÄ¢é±ÆÍä¶m¾ Æv¢Ü·(ñiÆ¢¤ÌÍAêA̬³ÈIEItÌXCb`Æl¦é± ƪūܷ)B±±ÅÍA»¤µ½rbgÉæÁÄARs [^ãŵíê é¶âªÇÌæ¤É\³êÄ¢éÌ©ðྵܷB à¾ÉüéOÉAܸRs [^Ì[hTCY (word size) É¢Äð ·éKvª èÜ·B[hTCYÆÍA»ÌRs [^ãÅp³êÄ¢ éAîñðâèæè·é½ßÌPÊ̱ÆÅ·BZpIɾ¤ÆA±êÍv ZbTÌWX^ (registers) Ì̱ÆÅ èAWX^ÆÍAvZbT ªvZâ_Zðs¤ÛÉ»Ìîñði[·éêÅ·BRs [^ÉÍ rbgTCYª éÆ©êÄ¢éê (½Æ¦ÎA»êçð 32-bit â 64-bit Rs [^ÈÇÆÄñÅ¢éê)A»êÍRs [^Ì[hT CY̱Æð¾ÁÄ¢éí¯Å·B (386 â 486 ¨æÑ Pentium PC ðÜÞ) åªÌRs [^ÍA32 bit Ì [hTCYÆÈÁĢܷBâ 286 Ì}VÍA16 rbgÌ[hTC Yŵ½B®ÌCt[¾Æ 36 bit [hÌà̪æ èÜ·B ¢Â©ÌvZbTÅÍ (½Æ¦ÎA DEC » Compaq ªoµÄ¢é Alpha ÈÇÍ)A64 rbgÌ[hTCYÆÈÁĢܷB64 bit [hÍA±ê© ç 5 NÙÇÌÔÉÍAàÁÆêÊIÈàÌÉÈéŵå¤BIntel ÍA Pentium V[YÌ`bvð "Itanium" ÆÄÎêé 64 bit `bvÉu«·¦ æ¤væµÄ¢é©çÅ·B Rs [^ÍAðA[©ç»Ì}VÌTCYÌãÀÉY ·élÜÅÌÔðUÁ½AêAÌ[hÌÀÑƵĩĢܷB±Ì TCYÌãÀÌlÆ¢¤ÌÍA[hTCYÉæÁÄÜèÜ·B286 ÈÇ Ì®Ì}VpÌvOªåeÊðÇ·éÌÉA©Èè³È ±¶Â¯ðgíȯêÎÈçÈ¢Ìͻ̽ßÅ·B±±ÅÍ»¤µ½±¶Â ¯ÌdgÝÉ¢ÄÍq×ܹñªANyÌvO}ÍA¢Ü¾É±êª´ öŤȳêÄ¢½èµÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 9.1. ®ÍAvZbTÌ[hTCYɶÄA[h©AàµÍ[hÌy AÉæÁÄ\»³êĢܷB32 bit }VÅÍA[hªÅàî{IÈ® Ì\»PÊÆÈÁĢܷB ®ÌvZÍAñiÌvZÆĢܷªAÀÛ͵ÙÈèÜ·BÈ ñiÅÍAºÊrbg©çÉ 1, É 2, »µÄ 4 ð\µÜ·ªA³ Ìt«ÍA2 Ìâ (twos-complement) Æ¢¤\LÅ\³êÜ·BÅ ãÊrbgÍArbg (sign bit) Å èA±ÌrbgðgÁÄÌlª ÂçêÜ·B»µÄAÌÍ·×ÄA³ÌÌrbgðSt]³¹ ÄA»êÉ 1 ðÁ¦é±ÆÅÏ·Â\Å·B 32 bit }VãÅ®ÌlÌ ªA-2^31 ©ç 2^31 -1 (±±ÅA^ ÌLÍA׫ÌZqð\µA2^3 = 8 Å·) Üŵ©È¢ÌÍA»Ì½ßÅ·B32 bit ÚÌrbgÍA³p ÉgíêéÌÅ·B Rs [^¾êÌÈ©ÉÍAȵZ (unsigned arithmetic) ªÅ«é àÌà èÜ·B»ÌêÍA[Ƴ̾¯ðgÁ½ÊíÌñiZÆ ÈèÜ·B åªÌvZbTâRs [^¾ê̢©ÍA®¬_ (floating-point) Å̪Â\Å·(±Ì@\ÍAÅßÌ(PC p)vZb T`bvÈçA·×ÄÉgÝÜêĢܷ)B®¬_ðg¤ÆA®æ èàL¢ÍÍÌl𵤱ƪū龯ÅÈAªà\»Å«éæ¤ÉÈ èÜ·B®¬_vZðÀ»·éû@ÍAlXÈíÞª èÜ·µA±±Å ðà·éÉÍ¿åÁÆ¡G·¬éÌÅ·ªAåܩɾ¤ÆA¢íäéuÈw IÈ\L@vÆ¢íêéàÌA·Èí¿ 1.234 * 10^23 Ìæ¤È\L@Æñí ÉæĢܷBðR[fBO·éÛÍA¼ (mantissa) (·Èí¿ 1.234) ÆA10 ÌxLƵÄÌwª (·Èí¿ 23) Æɪ£³êÜ·B (ÂÜèA±±Å̼ÍA¬_鼃 3 éÌÅA±ÌêÌvZÊ ÍA»ÌÌ ÆÉ 0 ª 20 Âtí¯Å·B) ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 9.2. ¶ ¶ÍAÊíAASCII (American Standard Code for Information Interchange) ÆÄÎêéR[fBOɵ½ªÁ½ 7 bit ÌÀÑƵÄ\» ³êÜ·B»ÝÌ}VÅÍA128 ÂÌ ASCII ¶Ì»ê¼êªAINebg (octet) àµÍ 8-bit ÌoCg (byte) ÌºÊ 7 bit ðgÁÄ\³êÄ¢ Ü·BINebgÍAÌ[hPÊÉÜÆßçêéÌÅA½Æ¦Î 6 ̶ñÌêA½Æà 2 [hªÌ굩æèܹñB±Ì ASCII ¶ÌR[h\ð©éÉÍAUnix vvgãÅ `man 7 ascii' ÆÅ Áľ³¢B ÆÍ¢¦AãLÌiÍAÓ½ÂÌ_Åëððµ©àµêܹñBܸAÐ ÆÂÚÍAââש¢±ÆÅ·ªAINebgÆ¢¤pêÅ·B±êÍA³® ÉÍÔáÁÄܹ͢ñªAÀÛÉÍÙÆñÇgíêĢܹñBåªÌl ÍAINebgðoCg(byte) ÆÄÑAoCgð 8 bit ·Å éÆl¦Ä¢ Ü·Bµ§É¢¤ÆAoCgÆ¢¤pêÍAàÁÆêÊIÈÓ¡ðÁÄ¢Ü ·B½Æ¦ÎAÈOÍ 36-bit }VÅ 9-bit oCgÆ¢Á½¾¢ûàȳê Ä¢½ÌÅ·(ऱ¤µ½g¢û͵ÄȳêÈ¢ÆÍv¤ÌÅ·ª)B Ó½ÂÚÌæèdvÈâèÍAS¢EÅ ASCII ¶ªgíêÄ¢éí¯ÅÍÈ ¢Æ¢¤±ÆÅ·BÀA½ÌÅÍAASCII ðgÁĢܹñBASCII Í AAJpêÌêÉÍâèÈ¢ÌÅ·ªA¼Ì¾êÌpÒªKvÆ·é ANZgt«Ì¶âÁêÈLÌt¢½¶Ì½ªµÄ¢é©çÅ ·BppêÅ·çA|hLª¯Ä¢é±Æ©çAASCII ¶ÅÍâè ª¶¶ÄµÜ¤ÌÅ·B ±Ìâèððµæ¤Æ·éÝÍAßÉ¢Âàȳêīܵ½B»ê çÍ·×ÄAASCII ÅÍgíêĢȢÅãÊ bit ðg¤Æ¢¤àÌÅ èA »êÉæÁÄ 256 ¶Zbgðà¤ÐÆÂìÁĵܨ¤Æ¢¤àÌÅ·A» êç̤¿AàÁÆàLp³êÄ¢é̪ Latin-1 ÆÄÎêéàÌÅ· (³®ÉÍAISO 8859-1 ÆÄÎêĢܷ)B±êÍA Linux, HTML ¨æÑ X ÅÌftHg̶ZbgÆÈÁĢܷB Microsoft Windows ÍA Latin-1 ÉèðÁ¦A³®È Latin-1 ÅÍðjIÈR©çóƳêÄ¢é ÓɶEÌñdøpLÈÇðÇÁµÄ¢Ü·B(±êªAguðø«N ±·´öÉÈÁÄ¢éÆ¢¤ÌðàÍAdemoroniser <http:// www.fourmilab.ch/webtools/demoroniser/> Ìy[Wðä¾³¢B) Latin-1 ÍApêAtXêAhCcêAXyCêAC^AêAI _êAmEF[êAXEF[fêAf}[NêÆ¢Á½¼[bpÌ ¾êðµ¤àÌÅ·Bµ©µALatin-1 ÍAÇêÐÆÂ̾êɨ¢Äà« ÌäoÅÍÈ¢½ßÉA»ÌÊƵÄALatin-2 ©ç Latin-9 ÜÅÌê A̶Zbgª¶ÜêA±êçðgÁÄAMVêAArAêAwu CêAGXygêAZrAENA`AêÈÇàµÁĢܷBÚµ ÍAISO alphabet soup <http://www.utia.cas.cz/user_data/vs/documents/ ISO-8859-X-charsets.html> Ìy[Wðä¾³¢B ÉÌðôªAUnicode (¨æÑA»ÌoqÌZíÅ é ISO/IEC 10646-1: 1993) ÆÄÎêécåÈWKiÅ·BUnicode ÍA`ªÌ 256 ÓÉÂ¢Ä Í Latin-1 ÆÜÁ½¯¶Å·B»êÈ~Ì 16 bit óÔÉÍAMVAL AAjAAwuCAArAAf@i[K[(óFTXN bgEqfB[»Ì¼ðÜÞ»ãChê)AxKAOL[(ó FpWunû̶)AOW[gAI[(óFChÌ Orissa B)A^~AgDOAJi_(óFChÌ Mysore B)A}[i (óFChì¼)A^CAIXAOWAA`xbgAú{¼¼A»ãØ ÌnO®SÅAEú{EØÌ\Ó¶ (¿) ÌêZbgÆ¢ Á½¶R[hªÜÜêĢܷBÚµÍA Unicode z[y[W <http:/ /www.unicode.org/> ðä¾³¢B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 10. Rs [^ÍÇÌæ¤ÉfBXNÉîñðÛ¶·éÌ©? Unix ãÌn[hfBXNÉÍA¢ë¢ëȼOªÂ¢½fBNgât@C ªKwIÉÀñÅ¢éÌð²¶m¾Æv¢Ü·BÊíÍ»êÈã[T· éKvÍÈ¢ÌÅ·ªAfBXNªNbV µÄàÌt@CðÈñÆ© ³¹éKvª¶¶½êÉÍA»Ì ʺŽªN±ÁÄ¢éÌ©ðmÁ Ä¢é±ÆÍñíÉLvÉÈèÜ·BcOȪçAfBXNÌdgÝÉ墀 iÚɵĢét@CÌx©çiXڵྷéæ¤Èª©èâ· ¢û@ªÈ¢ÌÅA±±ÅÍAn[hEFAxÌྩçnßÄA¶å¶ åÉúíIÈìÌûÉbðàÁÄ¢æ¤Éµ½¢Æv¢Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 10.1. áxÅÌfBXNÆt@CVXe\¢ fBXNÌ\ÊÆ¢¤ÍAf[^ªÛ³êéêÈí¯Å·ªA±±ÍA_ [cÌIÌæ¤Éô©Ì\¬ªÉª³êĢܷB¯S~óÌgbN ª½{àÁÄ¢ÄA»êç̨̨̪ApCðØ誯éÆ«Ìæ¤ÉZ N^ɪ¯çêĢܷBfBXNÌOüÉߢgbNÌÙ¤ªÌXs hÉߢgbNæèàÌæªL¢ÌÅAOüÌgbNÍAàüÌg bNæèà½ÌZN^ɪ³êĢܷBÂXÌZN^ (àµÍAf BXNubN (disk block) Æྡྷܷ) ÍA¯êTCYÆÈÁĢܷ B±êÍA»ÝÌ Unix n OS ÅÍAêÊIÉÍA1 oCi k (1024 8-bit [h) ÆÈÁĢܷB»ê¼êÌfBXNubNÉÍAÅLÌAhX A¾¢©¦éÆfBXNubNÔ(disk block number) ªt¯çêÄ¢Ü ·B Unix ÍAfBXNðfBXNp[eBV (disk partition) ÖƪµÜ ·BÂXÌp[eBVÍAA±µ½fBXNubN©ç¬éêèÌfB XNÌæÅ èA»¤µ½p[eBVÍA¼Ìp[eBVÆÍSÆ §µ½ÌæƵÄAt@CVXe©XbvXy[XƵĵíêÜ·B p[eBVðª·éàÆàÆÌRÍAܾfBXNÌANZX¬xª ¡æè¸ÁÆxAG[ཀྵÁ½ãɨ¢ÄAfBXNNbV ÉÎ ·é½ßŵ½Bep[eBVÌÔÉ«Eðݯé±ÆÉæÁÄAfB XNÌêªA»ÌÉ_ɶ·ésÇÂÉæÁÄAANZXÅ« ÈÈÁ½èAjó³ê½è·éÂ\«ðy¸µÄ¢½ÌÅ·B»ÝAp[e BVªÍAæèdv«ðµÄ¢Ü·B·Èí¿A («ÓðÁ½Nü ÒªdvÈVXet@C𫷦ĵܤ±Æðh~·é½ßÉ) Áè Ìp[eBVðÇÝoµêpɵ½èA±Ì¶ÅÍGêÈ¢æ¤Èeí ÌèiÉæÁÄAlbg[NzµÉ¤LÂ\ÉÝèµ½èÅ«é©çÅ·B Åàá¢Ôªt¢½p[eBVÍA½¢Ä¢Au[gp[eBV (boot partition) ƵÄÁÊȵ¢ðó¯Ü·Bu[gp[eBVÆÍA N®·×«J[lðu±ÆªÅ«ép[eBV̱ÆÅ·B ÂXÌp[eBVÍA(¼zðÀ·é½ßÉp³êé) Xbv Xy[X (swap space) ©At@CðÛ·é½ßÉp³êét@CV Xe ( file system) ©ÌÇ¿ç©Å·BXbvXy[XÌp[eBV ÍAA±µ½êAÌfBXNubNƵĵíêÜ·B»êÆÍÙÈèA t@CVXeÉÍAt@C¼ðfBXNubNÉÎt¯édgݪ KvÅ·Bt@CÍÔÌoßÆÆàÉTCYª¸µ½ègªÏíÁ½ è·éÌÅAt@CÌf[^ubNÆ¢¤ÌÍAA±µÄÀñÅ¢éí¯ ÅÍÈAY·ép[eBVSÌÉUçÎÁÄ¢é±Æªæ èÜ· (Iy[eBOVXeÍAgpÅÈ¢fBXNubNð»êªp[e BVÌÇ±É é©ÉÍÖWÈg¤æ¤ÉoÄ¢é©çÅ·)B±Ì æ¤ÉfBXNubNªeÉUçÎÁ½êÌÇóÍtOe[V (fragmentation) ÆÄÎêĢܷB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 10.2. t@C¼ÆfBNg et@CVXeàÅÍAt@C¼ÆfBXNubNÆÌÎÖWÍA i-node ÆÄÎêé\¢Ì (structure) ð}îɵijêĢܷB±¤ µ½¿ÉÖ·éîñÍAt@CVXeÌ檪 (¬³ÈÔÌfBX NubNQ) ÉÛ¶³êĢܷ(ÀÛÉŬÌÔðÂfBXNubN QÍA±±ÅÍà¾ÍµÜ¹ñªAîñÌ®ÆxOÌÚIÅp³ê Ü·)BÐÆÂÌ i-node ªÐÆÂÌt@CÌîñðLq·éæ¤ÉÈÁÄ¢ Ü·B(fBNgðÜÞ) t@CÌf[^ubNÍAi-node æèàã ÌÌæ (å«ÈÔðàÂfBXNubNã)Éu©êĢܷB ÂXÌ i-node ÉÍAK¸»êªLq·ét@CÉ®·éfBXNubN ÌÔÌXgªÜÜêĢܷB(±êÍAÀÛÉͬ³Èt@CÌêÉ µ©ÄÍÈçÈ¢ÌÅ·ªAáOÉÖ·éÚ×ͱ±ÅÍdv«ðÁÄ¢ ܹñB) ÓµÄÙµ¢ÌÍAi-node ÉÍAt@C¼É¢ÄÌîñÍÜ ÜêȢƢ¤±ÆÅ·B t@C¼ÍAfBNg\¢Ì (directory structure) ÌÈ©É èÜ· B·Èí¿AfBNg\¢ÌªAt@C¼ð i-node ÉÎt¯Ä¢é í¯Å·B Unix ÅÍAÐÆÂÌt@Cª³®Èt@C¼ð¡Â±Æ ªÂ\ÉÈÁÄ¢é(±êÍAn[hN (hard links) Æྡྷܷ) ÌÍ A±Ì½ßÅ·B»êçÍ¡ÌfBNgGgÅ èASª¯êÌ i-node ð|CgµÄ¢Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 10.3. }Eg|Cg ÅàPÈ\¬ÅÍAUnix t@CVXeÌSÌÍA½Á½ÐÆÂÌfBX Np[eBVÉi[·é±ÆªÅ«Ü·B±¤µ½\¬ð¬³ÈÂlpÌ Unix VXeãŲÉÈé±Æª éƵÄàA±Ì\¬ÍêÊIÈàÌÅ éÆÍ¢¦Ü¹ñBÞµëA¡ÌfBXNp[eBVÉܽªÁÄ\ ¬³êé̪ÊÅ·B»êä¦A½Æ¦ÎA¬³Èp[eBVãÉJ[ lðu¢ÄAµå«ßÌp[eBVÉ OS Ì[eBeBðu«A ³çÉñíÉå«Èp[eBVð[UÌz[fBNgÉ·éÆ¢ Á½\¬ªl¦çêÜ·B VXeÌN®¼ãÉANZX·ép[eBVÍA[gp[eBV (root partition) ¾¯Å·BN®ÌÛÍA(ÙÚAK¸)±±©çN®³êéÆ ¢¤êÅ·B±±ÉÍAt@CVXeÌ[gfBNgª èA¼ Ì·×ÄÌN_ÆÈéÅãÊÌKw(top node)Å·B ¡Ìp[eBVðÂt@CVXeSÌÖÌANZXðÂ\É·é ÉÍAt@CVXeàÉ é»êÈOÌp[eBVðA±Ì[gp [eBVÉt¯Á¦Ä¢©È¯êÎÈèܹñBN®vZX̾¢½¢ ÙÇÅAUnix ͱ¤µ½[gÈOÌp[eBVðANZXÂ\ÉµÜ ·B»ÌÛAUnix ÍA»¤µ½p[eBV̨̨ÌðA[gp[eB VÉ éfBNgãÉ}Eg(mount) µÜ·B ½Æ¦ÎA/usr Æ¢¤fBNgª Unix ãÉ éêA¨»ç±±Í} Eg|CgÅ èACXg[³ê½vO̤¿AVXeÌN ®ÉKvÌÈ¢àÌðu¢Ä¢ép[eBVª}Eg³êéêÉÈÁ Ä¢é͸ŷB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 10.4. t@CÌâ¢í¹ÌdgÝ ±±ÜÅÌà¾ÅAã\¢©çº\¢ðßéõªÅ«Üµ½BÇÒª t@CðJÆ« (½Æ¦ÎA/home/esr/WWW/ldp/fundamentals.sgml Æ¢ ¤¼O¾ÆµÜ·)AÀÛÌ®ìÍÌæ¤ÉÈÁĢܷB J[lÍAܸ ([gp[eBVÉ é) Unix t@CVXeÌ [gfBNg©çõðJnµÜ·BJ[lÍA[gfBNgÅ 'home' ÆÄÎêéfBNgðTµÜ·B½¢Ä¢A'home' ÍA[gp [eBVÆÍÊÌAåÈ[Up[eBVÌ}Eg|CgÅ éÌÅAJ[lÍ»Ìp[eBVÉÚ®µÜ·B»Ì[Up[eBV ÌÅãwÌfBNg\¢ÌÌÅAJ[lÍ 'esr' ÆÄÎêéG gðTµA»Ì i-node ÔðoµÜ·BJ[lª»Ì i-node Ì é êÉsÆA»êÉÖAt¯çê½t@CÌf[^ubNªfBNg \¢ÌÉÈÁÄ¢é±ÆÉCt«A»êä¦É 'WWW' ðTµÜ·B»µÄ A»Ì i-node ðoµ½çA¡xÍA»Ì i-node ÉY·éTufBN gÉsÁÄA'ldp' ðTµÜ·B±êÍA³çÉÊÌfBNg i-node ÖÆJ[lð±«Ü·B»ÌfBNgðJÆA»±Å 'fundamentals.sgml' t@CÌ i-node Ôð©Â¯Ü·B±Ì i-node ª fBNgÅÍÈA»Ìt@CÉÖAt¯çê½fBXNubNÌ Xgð۵ĢܷB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 10.5. t@CÌLÒAp[~bVAZL eB vOªAÌâ¼lÌ«Ó és×ÉæÁÄA{ANZXÅ«È¢Í ¸Ìf[^ÌæÉNü·éÌðh®½ßÉAUnix ÉÍAp[~bV (permission) Æ¢¤@\ª èÜ·B±Ì@\ÍàÆàÆAÌܾ Unix ªå É¿È~jRs [^ƵÄå¨Å¤LµÄp³êÄ¢½ A¯ê}V ãÌ¡Ì[UªÝɱµȢæ¤É·é±ÆÅAªû®ðT| [g·é½ßÉÝv³êܵ½B t@CÌp[~bVðð·éÉÍAOCµ½Æ«É½ªN±é ©?ÌZNVÉ Á½[UÆO[vÌà¾ðv¢o·Kvª èÜ·B ÂXÌt@CÉÍA»êðL·é[UÆO[vƪ èÜ·B»êç ÍA»Ìt@CÌì¬ÒÌ[U¼âO[v¼ªt¯çêÜ·ªA chown (1) â chgrp (1) Æ¢¤vOðgÁÄ»êçðÏX·é±ÆàÅ «Ü·B t@CÉÖWt¯çêéî{IÈp[~bVÉÍA`read' (»±©çf [^ðÇÝo¹éÆ¢¤ À)A`write' (»êðÏX·é±ÆªÅ«é À)A ¨æÑ `execute' (»êðvOƵÄÀs·é±ÆªÅ«é À)Æ¢¤ ̪ èÜ·B»µÄAÂXÌt@CÍA±¤µ½p[~bVÌZbg ðOÂÁĢܷBÐÆÂÍAt@CLÒpÉAà¤ÐÆÂÍLO [vÉ®·éS[UpÉA»µÄOÂÚÍ»êÈOÌ·×ÄÌlpÌàÌÅ ·B[UªOCÉæ¾·éu À (privilege)vÆ¢¤ÌÍAt@C Ìp[~bVrbgªÂµÄ¢éÍÍÅÌÇÝE«EÀs ÀÆÈ èÜ·B·Èí¿A[UÌ[U ID ªAt@CÉt³ê½ ID Æêv· éêÍA»ÌÍÍÅÌ Àðæ¾µA®O[vªêv·éêÍA»± ÅÌ ÀA¨æÑNàªANZXÅ«ét@CÌêÍA»±ÅKè³ê½ Àðæ¾·é±ÆÉÈèÜ·B ±êçÌp[~bVªÝÉǤ¢¤«ðµÄ¢éÌ©AUnix ÅÇÌæ ¤É\¦³êéÌ©ðmé½ßÉA¼ÉȺÌæ¤È Unix VXeª éÆ µÄA»Ìt@CÌêð©ÄÝܵå¤B½Æ¦ÎAÌæ¤É\¦³ê ½ÆµÜ·B ¡¢ snark:~$ ls -l notes -rw-r--r-- 1 esr users 2993 Jun 17 11:00 notes ¤£ ãLÍÊíÌf[^t@CÅ·B±Ì\¦©çª©é±ÆÍA±Ìt@C ÍA[U `esr' ªL·éàÌÅ èALO[v `users' É®·éà ÌƵÄ쬳ê½Æ¢¤±ÆÅ·B±±ÅáƵݽ}VÅÍAÊí Ì[UÍ·×ıÌO[vÉ®·éæ¤AftHgÅÝè³êÄ¢éÌ Åµå¤B^CVFAO}VãÅæ©©¯é»êÈOÌO[v¼ ÉÍA`stuff' â `admin' A `wheel'ÈǪ èÜ·(RͨðèÉÈéÆ v¢Ü·ªAÂl[UpÌ[NXe[Vâ PC ãÅÍAO[vÍ» êÙÇdvÅÍ èܹñ)BÇÒÌ Unix ãÅÍAftHgÅá¤O[v ¼ªgp³êÄ¢é©àµêܹñB¨»çAÇÒÌ[U ID ðàÆɵ ÄA¼Oªt¯çêÄ¢é±Æŵå¤B ¶ñ "-rw-r--r-" Æ¢¤ÌÍAt@CÌp[~bVrbgð\µÄ¢ Ü·BæªÌ_bV (-)ÍAfBNgrbgð\¦·éÊuÅ·B൱ Ìt@CªfBNgÅ Á½ÈçA»±ÉÍ "d" Æ\¦³êÜ·B»ê È~ÌÊuÉ¢ÄÍAÅÌOª[Up[~bVAÌOªO [vp[~bVA»ÌãÌOª»êÈOÌl̽ßÌp[~bV(± êÍA"world" permission ÆàÄÎêĢܷ)Å·B±Ìt@CÌêA LÒ "esr" ÍAt@CÌÇÝoµE«ÝªÅ«A"users"O[vÉ ®·éLÒÈOÌlÍt@CÌÇÝoµA¨æÑS[Uªt@CÌÇ Ýoµðoéæ¤ÉÈÁĢܷB±êÍAÊíÌf[^t@CƵÄñ íÉT^IÈp[~bVÌÝèÅ·B ÉAãLÆÍ©ÈèÙÈÁ½p[~bVðÝè³ê½t@Cð©ÄÝ Üµå¤B±Ìt@CÍAGCC, ·Èí¿AGNU C RpCÅ·B ¡¢ snark:~$ ls -l /usr/bin/gcc -rwxr-xr-x 3 root bin 64796 Mar 21 16:41 /usr/bin/gcc ¤£ ãLt@CÍA"root" Æ¢¤[UÉ®µA"bin" Æ¢¤O[vÉ®µ ĢܷBܽA«Ý(ÏX)Í "root" µ©Å«Ü¹ñªAÇÝoµÆÀ sÍNàªÅ«éæ¤ÉÈÁĢܷB±¤µ½ÝèÍAvCXg[³ êÄ¢éVXeR}hÉæ éL`Ô¨æÑp[~bVÝèÅ· B"bin" Ƥ¢O[vÍAUnix ãÅVXeR}hðO[v»·éÌÉ gíê½èµÜ·(±Ì¼ÌÍðjIȼcÅ èA"binary" ÌȪ`Å·)B ÇÒÌ Unix ÅÍA "root" Æ¢¤O[v¼ªgíêÄ¢é©àµêܹñ (±êÍA "root" [UÆ¢¤ÌÆÍ¿åÁÆá¢Ü·)B "root" [UÆ¢¤ÌÍA[U ID Ô 0 Ì[U̵pIȼÌÅ·B ±êÍA·×ÄÌ ÀÝèð´zµ½AÁÊ©ÂÁ IÈAJEgÅ·B root ÅÌANZXÍAÖÅÍ èÜ·ªAë¯Åà èÜ·Broot ÅO CµÄ¢éÔÉ^Cv~Xð·éÆAÊíÌ[UAJEg©ç¯¶R} hðÀsµ½êÉÍGé±Æ·çÅ«È¢æ¤ÈdvÈVXet@C ðjóµÄµÜ¤±Æª é©çÅ·B root AJEgÍñíÉptÈÌÅAroot ÖÌANZXÍTdÉK[h µÈ¯êÎÈèܹñBroot ÌpX[hÍAVXeÌZL eBîñÆ µÄÍÅdvÚÅ èA¼lÌVXeð_¤NbJ[âNüÒª½æè àæ¾µæ¤ÆÚ_Þ̪A±Ì root pX[hÅ·B pX[hÍAµÄ«¯ß½èµÄÍ¢¯Ü¹ñBܽA{[Cth âK[thAzôÒ̼OÌæ¤ÈAÈPɪªÂæ¤ÈpX[ hðIñ¾èàµÈ¢Å¾³¢B±êÍAÁÙÇL µÄ¢é«ÈÅ èANbJ[É¢ÂÜÅàèðÝ·æ¤ÈàÌÅ·BêÊÉA«ÉÚÁ Ä¢éæ¤ÈPêðIñÅÍ¢¯Ü¹ñBdictionary crackers ÆÄÎêév Oª èA±êÍêÊIÈPêÌêðgÁÄAªÅpX[hðT µÄéàÌÅ·B«È¢eNjbNÌÐÆÂƵÄAPêÆÆà¤Ð ÆÂÌPêÌgÝí¹Æ¢¤Ìª èÜ·B"shark6cider" â "jump3joy" Æ¢Á½àÌÅ·B±ê¾ÆAdictionary crack ÌõóÔªåÉÈéÌÅ A©Â¯éÌÍïµÈéŵå¤B½¾A±±É°½áð»ÌÜÜg¤± Æͨ~ß¾³¢BNbJ[ͱ̶ðÇñ¾ ÆÅAãLÌpX[ hð·ÅÉõ«ÌÈ©ÉÇÁµÄ¢é©àµêÈ¢©çÅ·B ÅÍAæOÌP[Xð©ÄÝܵå¤B ¡¢ snark:~$ ls -ld ~ drwxr-xr-x 89 esr users 9216 Jun 27 11:29 /home2/esr snark:~$ ¤£ ãLÌt@CÍfBNgÅ·("d" Æ¢¤¶ªp[~bVÌÅÌ ÊuÉ é±ÆÉÓðµÄ¾³¢)B±êÍAesr Ìݪ«Ý Àð ¿ANÅàÇÝoµÆÀsªÅ«éÆ¢¤±Æªª©éÆv¢Ü·B ÇÝoµÌp[~bVª éÌÅA»ÌfBNgàɽª éÌ©\ ¦·é±ÆªÂ\ÉÈÁĢܷB·Èí¿A»ÌfBNgÉÜÜêét @CâfBNg¼Ìêð©é±ÆªÅ«éÆ¢¤±ÆÅ·B«Ý p[~bVª éÆA»ÌfBNgàÉt@Cð쬵½èAí µ½è·é±ÆªÅ«Ü·BfBNgÉÍAt@CÆTufBNg ̼ÌÌêªÜÜêÄ¢éÆ¢¤Ìðv¢o·ÈçA±¤µ½[ÉÍ[ ¾ª¢Æv¢Ü·B fBNgÌÀsp[~bVÆ¢¤ÌÍA»ÌfBNgðoRµÄ »êȺÌKwÉ ét@CâfBNgðJ±ÆªÅ«éÆ¢¤±Æ ðÓ¡µÄ¢Ü·BÀÛÉÍA±êÍAfBNgàÌ i-node ÉANZX ·ép[~bVð^¦Ä¢Ü·BfBNg©çÀs ÀðSOµÄ µÜ¤ÆA»ÌfBNgªg¦ÈÈÁĵܢܷB Às ÀÍSÄÌlÉ^¦éªÇÝoµ ÀͧÀµÄ¢éfBNgÆ¢ ¤ÌðÆ«Ç«äÉÈéÆv¢Ü·B±êÍAÇÌæ¤È[UÅà»Ìf BNg鼃 ét@CâfBNgÉB·é±ÆªÅ«é̾ª A»êç̳mȼOðµÁÄ¢éêÅȢƾ߾Ƣ¤±ÆðÓ¡µÜ ·(ÂÜèAfBNgðê\¦·é±ÆªÅ«È¢í¯Å·)B éfBNgÌÇÝoµE«ÝEÀsÌp[~bVÍA»ÌfB Ng鼃 ét@CâfBNgÌp[~bVÆÍƧÌâè Å éÆ¢¤±Æðo¦Ä¨¢Ä¾³¢BÁÉAfBNgÌ«Ýp [~bVÆ¢¤ÌÍA»±ÉVKÌt@Cð쬵½èAù¶Ìt@C ðíµ½èÅ«é ÀðÓ¡·éàÌÅ èA»±É éù¶Ìt@C ÖÌ«Ý Àð©®IÉ^¦éàÌÅÍ èܹñB ÅãÉAOCvO©ÌÌp[~bVð©ÄÝܵå¤B ¡¢ snark:~$ ls -l /bin/login -rwsr-xr-x 1 root bin 20164 Apr 17 12:57 /bin/login ¤£ ±êÍAVXeR}hÉæ©çêép[~bVÅ·B½¾A±±Ì 's' Æ¢¤ALÒÀs bit (owner-execute bit) ÌÝèÆ¢¤ÌÍáOIÅ ·B±êÍA'set-user-id' àµÍ setuid bit ÆÄÎêéÁÊÈp[~b Vð\µÄ¢Ü·B setuid bit Æ¢¤ÌÍAêÊÉAÁêÈvOÉεÄt^³êép[~ bVÅ·B·Èí¿Aroot Ì ÀðAêȩ̀Àt«ÅêÊ[UÉà^ ¦éKvÌ évOª»êÉYµÜ·Bsetuid bit ªÀsvO ÉZbg³ê½êA[UÍA»ÌvOt@CÌLÒƯ¶ À ðsgÅ«éæ¤ÉÈéÌÅ·ªA¼ûÅA[Uª»ÌLÒÅ é©Û© ÉÖç¸A»ÌvOÍ[U©g̼ÅÀs³êéÆ¢¤àÌÅ·B root AJEg©ÌƯlAsetuid ³ê½vOàÖÅÍ èÜ·ª Aë¯Å· root ªLÒÅ é setuid ³ê½vOðjóµ½èÏX µ½èÅ«éÐÆÈç¾êÅàA»ÌvOðgÁÄ root ÀðÁ½ VFðN®·é±ÆªÅ«é©çÅ·B»êä¦AåªÌ Unix VXe ÅÍA½©«Þ½ßÉ»Ìt@CðJ¢½_ÅA setuid bit ª©® IɳøÉÈéæ¤ÉÈÁĢܷBUnix ZL eBÉηéU̽ª Asetuid vOðjó·é½ßÉAsetuid vOÌoOð«pµæ ¤ÆµÄ¢Ü·Bµ½ªÁÄAZL eBÓ¯ðÁÄ¢éVXeÇÒ ÍA»¤µ½vOÉÁÉTdÉÈÁÄ¢ÄAo½Î©èÌ(oOª ³êĢȢ)vOÍCXg[µ½ªèܹñB ±êÜÅp[~bVÉ¢Äðൽ±ÆÌÚ×ÉÖµÄA¢Â©dv ȱƪ èÜ·B·Èí¿ALO[vÆp[~bVÍA»Ìt@C ªì¬³ê½ÛÉÇÌæ¤Èû@ÅèÄçêéÌ©Æ¢¤±ÆÅ·B [UÍ¡ÌO[vÌo[ÆÈé±ÆªÅ«éÌÅA±ÌO[vÌ èÄÍâèÅÍ éÌÅ·ªA»ÌÐÆÂÍA(/etc/passwd t@CàÌ» Ì[UÌGgÅwè³êÄ¢é)[UÌftHgO[v (default group) ªèÄçêA[UÉæÁÄ쬳ê½t@CÍAÊí»ÌO [vªL·é±ÆÉÈèÜ·B p[~bV bit Ìæª bit ÌbÍAष±µ¡GÅ·BÈñç©Ìt @CÌì¬ðº¤vOÍAÊíA»Ìt@CÌúÝèƵÄÌp [~bVðwèµÜ·Bµ©µA»êçÍA umask ÆÄÎêé[UÌ «ÏÉæÁÄÏX³êĵܢܷB umask ÍAt@Cð쬷éÛÉÇ Ìp[~bV bit ð³øÉ·é©ðwè·éàÌÅ·BÅàêÊIÈlÅ èA½¢Ä¢ÌVXeãÌftHgÆÈÁÄ¢éÌÍA------w- ൠÍA 002 Å·B±êÍANÅà«ÝªoéÆ¢¤ Àð³øÉ·éàÌ Å·B±êÉÖ·éÚµ¢à¾ÍAÇÒÌ shell Ì man y[WÉ é umask R}hÉÖ·é¶ðä¾³¢B fBNgO[vÌúÝèÆ¢¤ÌàAââ¡GÅ·BUnix ÌÈ©ÉÍ AVKfBNgÌO[vÉÍA»êð쬵½[UÌftHgO [vðÄéà̪ èÜ·(±êÍASystem V n̵KÅ·)B»êÈOÉà A쬳ê½fBNgÌefBNgÌLO[vªèÄçêé àÌà èÜ·(±êÍABSD ̵KÅ·)BLinux ðÜÞ»ÝÌ Unix ÌÈ© ÉÍA set-group-ID ð»ÌfBNgÉÝè·é(chmod g+s)±ÆÉæÁÄ AãÒÌæ¤É®ì·éæ¤ÝèÅ«éà̪ èÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 10.6. ²qª«¢Æ¢¤ÌÍǤ¢¤±ÆÈÌ© ÈOAt@CVXeÍñíÉ@×Å éÆ¢¤±ÆðRÆ¢¢Üµ½ª A¢ÜÌ_ÅÍAt@CÉB·éÉÍAfBNgÆ i-node ðQÆ µÈªçAÇ꾯·¢©ª©çÈ¢A½ðHÁÄ¢©È¯êÎÈçȢƢ ¤±Æªª©ÁÄ¢éÆv¢Ü·BÅÍAn[hfBXNÉsÇÓª¶µ ½êA±êÍǤÈéŵ天? K^ÉbÜêêÎAt@Cf[^̢©ð_ɷ龯ÅÏÝÜ·B »¤ÅÈ¢êÍAfBNg\¢â i-node ÔðjóµÄµÜÁÄAV XeàÌÁèÌTuc[Ⱥª¨ßÞÉÈÁĵܤ©àµêܹñB³ çÉAt@C\¢©ÌªóêĵÜÁÄAG½ÈANZXª¯êÌfBXN ubNâ i-node ÉWµÄµÜÁ½è·é©àµêܹñB»¤µ½sï ÍAÊíÌìð±¯Ä¢éÆAÇñÇñLªÁÄ¢ÁÄAÅÌsÇÓ É Á½f[^ªVXeSÌÉÎçT©êĵܤ©àµêܹñB K¢ÉàA±ÌèÌôÌÍAfBXNÌn[hEFAÌM«ªÜÁ½ ±ÆÅAÙÆñǶ¶ÈÈèܵ½ªA»êÅàAâÍèAUnix ÅÍAèú IÉt@CVXeÌ®«`FbNðsÈÁÄA½àÙíªÈ¢±Æðm F·éKv«ª èÜ·B»ÝÌ Unix ÍAÂXÌp[eBVÉεÄA N®Ì}Eg¼OÉ·Î⮫Ì`FbNðs¤æ¤ÉÈÁĢܷ B½ñ©ÉêxÍAपԪ©©é®SÈ`FbNðsȤdgÝÉÈ ÁĢܷB ±¤µ½±ÆðÇñÅAUnix Ͱ뵡GÅsïªN«â·¢©Ìæ¤É v¦½ÈçA±¤l¦Ä¾³¢B±êçÌN®Ì`FbNÍAÊíÍæ éæ¤ÈâèðoEC³µÄA»êª{ÌåSÉ¢½éÌðh¢Å¢ éÌÅ·B±¤µ½@\ð½È¢¼ÌIy[eBOVXeÌêAm ©ÉN®Í¬ÉÈèÜ·ªAÀÛÉè®ÅµÈ¯êÎÈçÈÈÁ½ ÍAâ誱¶êĵÜÁÄ[ÈóÔÉÈÁÄ¢é±Æª èÜ·(ÆÍ¢¦ A±êÍA»à»à Norton Utility ©»êÉÞ·éc[ðÁÄ¢éê Å·ª...jB ÅßÌ Unix ÌÝvãÌghÌÐÆÂÉA journalling file systems ª èÜ·B±êÍAfBXNÆÌâèæèð²®·é±ÆÅAíÉ®«ªÛ ½êé±ÆðÛصAVXeªN®·éƫɪÂ\ÉÈéæ¤É·é dgÝÅ·B±êÍAN®Ì®«`FbNð©È謻·é±ÆªÅ« Ü·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 11. Rs [^¾êÍÇÌæ¤ÈdgÝÅ®¢Ä¢éÌ© vOðÀs·édgÝÉ¢ÄÍA·ÅÉྵܵ½B çäév OÍAÅIIÉAêAÌoCgñA·Èí¿Rs [^Ì}V¾ê (machine language) Å\»³ê½½ßƵÄÀs³êȯêÎÈèܹñBµ ©µAlÔÍA±¤µ½}V¾êÍã赦ܹñB»¤µ½±ÆÍठÉßÄHÉÈèAnbJ[ÌÔÅàp»µÄ¢Ü·B J[l©ÌÌàÉ én[hEFAC^[tFCXð¼ÚT|[g·é Ê̪ðÆAÙÚSÄÌ Unix R[hÍA¡úÅÍA ¾ê (high-level language) Å©êĢܷB(±ÌpêÌu vÆ¢¤ª ÍAó¢¾tÅAuá vÌAZu¾ê (assembler languages Æ æÊ·éÓ¡Ågp³êéàÌÅ·BAZu¾êÆÍAî{IÉ}Vê ðᱪ©èÕµ½æ¤È¾ê̱ÆÅ·)B ¾êÉÍA¢ë¢ëÈíÞª èÜ·B±¤µ½vO¾êÉ¢ Äb·ÛÍAvOÌ\[XR[h (source code) (·Èí¿AlÔªì ¬µ½àÌÅAÏXªÂ\ÈR[h) ÍA½ç©ÌÏ·ðoé±ÆÅA} VªÀÛÉÀsÅ«é}VR[hÉÏ·³êéKvª é̾Ƣ¤±Æ ð¥ñªÌÐ÷Åo¦Ä¨¢Ä¾³¢B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 11.1. RpC^̾ê Rs [^¾êÌÅÅà`IÈ̪ARpC^¾ê (compiled language) Å·BRpC^¾êÍA»Ì¼ÌÊèRpC (compiler) ÆÄÎêéÁÊÈvOÉæÁÄAÀst@CÅ éoCi`®Ì} VR[hÖÆÏ·³êÜ·BêUoCiª¶¬³êéÆAÄx\[Xt@ CðQƹ¸ÆàA¼Ú»ÌoCiðÀs·é±ÆªÅ«Ü·B(åªÌ \tgEFAÍARpC³ê½oCi`®Åzz³êA»Ì³ÉÈÁÄ ¢éR[hð©é±ÆÍūȢ̪êÊÅ·B) RpC^¾êÍAptH[}XÉDêAOS \[XÖÌANZXàÅà ø¦æs¤±ÆªÅ«Ü·ªAvO·é̪ﵢƢ¤Xüª è Ü·B C ¾êÍAUnix ðLqµÄ¢é¾êÅ èA(»Ìh¶¾êÅ é C++ ÆÆà É) RpC¾êÌȩų|IÈdv«ðÁĢܷBFORTRAN àܽ RpC^̾êÅ èA¢ÜÅàGWjAâÈwÒÌÔÅÍp³êÄ ¢Ü·ªA C æèàÃA®ÈàÌÅ·BUnix Ì¢EÅÍA»êÈOÌR pC¾êÍACXg[ƵÄÍp³êĢܹñB»êÈOÅ ÍACOBOL ªAàZârWlXp\tgEFAƵÄLp³êĢܷB ÈOÍA¢ë¢ëÈRpC^¾êª èܵ½ªAÙÆñÇÍ·½ê½© A¤pÌc[Ƶĵ©gíêÈÈÁĢܷBÇÒªRpC¾ê ðg¤VlÌ Unix JÒÈçAgp¾êÍ C © C++ Å é±ÆªÙÆñÇ Å·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 11.2. C^v^^¾ê C^vg^¾ê (interpreted language) ÆÍA\[Xððß·évO (interpreter program) ðKvÆ·é¾êÅ·B»ÌvOªAÀs ÌÛ»Ì\[XR[hðÇÝñÅAZâVXeR[ªÂ\È`®ÉÏ ··édgÝÉÈÁĢܷB±ÌêAR[hªÀs³êé½ÑÉA( \[ Xððß·évOªN®³êÄA) \[XR[hÌÏ·ªsíêȯê ÎÈèܹñB C^v^^¾êÍARpC^¾êæèàÀs¬xªxAºKwÉ éIy[eBOVXeân[hEFAÖÌANZXà§À³êé±Æ ª½¢ÌXüª èÜ·B»Ì½ÊARpC^¾êÉä×ÄvOª eÕÅAR[hÉG[ª ÁÄà[ÈÔÉÈèÉ©Á½èµÜ·B VFâ bc(1), sed(1), awk(1) ðÜÞ½Ì Unix [eBeBÍA©È è¬^ÌC^v^^¾êÅ·BBASIC àÊíÍC^v^^Å èA Tcl ໤ŷBðjIÉ©ÄAÅàdvÈC^v^^¾êÍALISP Å· (½¢ãàÌJÒ½¿ÉæèAåÈüPªÙDZ³êīܵ½)B»ÝÅ ÍAEmacs GfB^àÅgpÅ«éVFÆ LISP ªA¨»çÅàdvÈ C^v^^¾êÅ éÆvíêÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 11.3. P-code ¾ê 1990 NÈARpCÆC^v^̼ûðg¤êíÌnCubh¾ê ̶ݪdvÉÈÁīĢܷBP-code ¾êÆ¢¤ÌÍA\[XR[hªR pNgÈoCiR[hÉÏ·³êÄA»êªÀÛÉÀs³êéÆ¢¤_Å ÍRpC^¾êÆĢܷªAÏ·³ê½R[hÌ`Ôª}VR[h ÅÍȢƢ¤_ÅÙÈèÜ·B»êÍA^R[h (pseudocode) (àµÍ p-code) Å èA±êÍÀÛÌ}VR[hæèàVv©ÂptÈà ÌÅ·BvOÌÀsÉÍA±Ì p-code ª (C^v^Éæè) Ï ·³êÜ·B p-code ÍARpC^¾êÌoCiÆÙÚ¯¶ç¢ÌÀs¬xð¿Ü · (P©Â¬^ÅAXs[fBÈ p-code C^[v^ð쬷é±Æª Å«é©çÅ·)BÂÜèAp-code ÍA_î©ÂptÈC^v^^¾ êÌ·à۵Ģéí¯Å·B dvÈ p-code ¾êƵÄÍAPython, Perl, ¨æÑ Java ª èÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 12. C^[lbgÍÇÌæ¤ÈdgÝÅ®¢Ä¢éÌ© C^[lbgªÇÌæ¤ÈdgÝÅ®¢Ä¢éÌ©ðµâ··é½ßÉ A±±ÅÍAT^IÈC^[lbgÌìA·Èí¿ALinux Documentation Project ÌEFuy[WãÉ é±Ì¶ÌÅÌy[WðuEUãÅN bNµ½êÉAÇÌæ¤È±ÆªN±ÁÄ¢éÌ©ðTϵܵå¤BᦠÎA±Ì¶ÍÌêÉ èÜ·B ¡¢ http://www.linuxdoc.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/index.html ¤£ ãLÍALDP/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/index.html Æ¢ ¤t@Cª www.linuxdoc.org Æ¢¤zXgÌ World Wide Web É¢ÄÌ öJfBNgãÉu©êÄ¢éÆ¢¤±ÆðÓ¡µÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 12.1. ¼OÆê uEUªÜ¸ßɵȯêÎÈçÈ¢±ÆÍA»Ì¶ªu©ê½}V ÆÌÔÉlbg[NRlNVðm§·é±ÆÅ·B»êð·éÉÍAæ êÉA»ÌzXg (host) Å é www.linuxdoc.org Ì élbg[NãÌ êðT·Kvª èÜ·(±±ÅuzXgvÆÍAuzXg}VvAൠÍulbg[NzXgv̪ŷB www.linuxdoc.org Æ¢¤¼OÍA² êÊIÈzXg¼ (hostname) Å·)BÊMÌÛÌêÌwèÍAÀÛÉÍA IP AhX (IP address) ÆÄÎêéÔªgp³êÜ·(IP AhXÆ¢¤ pêÌ IP ̪É¢ÄÍAãÙÇྵܷ)B IP AhXðméÉÍAuEUÍl[T[o (name server) ÆÄÎêé vOÉâ¢í¹ðµÜ·Bl[T[oÍ©ªÌ}VãÉ ÁÄà æ¢ÌÅ·ªA½¢Ä¢ÌêÍêpÌ}VãÅ®¢Ä¢éÌÅA»êÉâ ¢í¹ðé±ÆÉÈÁĢܷBISP Æ_ñµ½Æ«A»ÌZbgAbv èÌÈ©ÅAISP Ìlbg[NãÉ él[T[oÌ IP AhXðA è¿ÌC^[lbg\tgEFAÉw¦·éÆ¢¤èª«ÁÆÜÜêÄ ¢½Í¸Å·B ÙÈé}VãÅ®l[T[oÍA¨Ý¢ÉÊMðµAzXg¼ð (· Èí¿AzXg¼ð IP AhXÉÏ··é) ÉKvÈ·×ÄÌîñðð ·µ ¢AÂËÉÅVÌóÔÉÛÁĢܷBl[T[oÍA www.linuxdoc.org Æ¢¤zXg¼ðÌßöÅOx©lxlbg[N²µÉ ¶Ý·é¼ÌTCgÉâ¢í¹ðµÜ·ªA±êÍÊíñíɬÉsíê Ü·(êbȺŷ)Bl[T[oÌÚ×É¢ÄÍAÍÅTϵܷB l[T[oÍuEUÉεÄAwww.linuxdoc.org Ì IP AhXª 152.19.254.81 Å é±Æð³¦Ü·B±êðmé±ÆÉæÁÄAÇÒÌ}V ÍAwww.linuxdoc.org ÆÌÔżÚîñð·ªÅ«éæ¤ÉÈèÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 12.2. hCl[VXe (domain name system) vOÆf[^x[XðAg³¹ÄzXg¼ð IP AhXÉÏ··éd gÝSÌÍADNS (Domain Name System) ÆÄÎêĢܷB"DNS T[o" Æ ÄÔêA±êÍPÉul[T[ovÆÄÔÌƯ¶Ó¡ÅgíêÜ·B± ±ÅÍA»ÌVXeSÌÌdgÝÉ¢ÄྵܷB C^[lbgÌzXg¼ÍAhbgÅæØç꽢©̪©ç\¬³ êĢܷBhC (domain) ÆÍAzXg¼Ìöªª¯êÅ é}V ÌW̱ÆÅ·BhCÍA¼ÌhCÌàÉà¶Ý·é±ÆªÅ «Ü·B½Æ¦ÎAwww.linuxdoc.org Æ¢¤}VÍA .org Æ¢¤hC ÌÌ .linuxdoc.org Æ¢¤TuhCɶݵĢܷB ÂXÌhCÍA»ÌhCàÌSÄÌ}VÌ IP AhXðL¯µÄ ¢é Ð él[T[o (authoritative name server) ÉæÁÄK¥³êÄ ¢Ü·B Ð é(àµÍuvC}v) l[T[oÍAÌáÉõ¦Äo bNAbv³êÄ¢é±Æà èÜ·BZJ_l[T[o (secondary name server) (àµÍAZJ_ DNS) Æ¢¤Lqª éêA»êÍ» ¤µ½obNAbvzXg̱Æð¾ÁÄ¢éí¯Å·B±¤µ½ZJ_ T[oQÍAÊíAvC}T[o©çÔ²ÆÉîñðó¯æÁÄXV µÄ¢éÌÅAvC}T[oãÅzXg¼Æ IP ÆÌÎÖWÉÏXªÁ ¦çê½êÍA©®IÉ»êªZJ_¤Éà`¦çêéæ¤ÉÈÁÄ¢ Ü·B Ì¿ÍñíÉdvÅ·B·Èí¿A éhCÌl[T[oÍA¼Ì hC(¨æÑA»êç©gÌTuhC)É é·×ÄÌ}VÌÊuð méKvÍȢƢ¤±ÆÅ·Bl[T[oªmçȯêÎÈçÈ¢ÌÍA ¼Ìl[T[oÌÊu¾¯Å·BæÙÇÌáÅÍA.org hCÌ Ð é l[T[oÍA.linuxdoc.org Ì Ð él[T[oÌ IP AhXðm ÁĢܷªAlinuxdoc.org àÉ é»êÈOÌ}VÌAhXÉ¢ÄÍ mèܹñB DNS VXeàÌhCÍAØðt³Üɵ½æ¤ÈKw\¢ðÂæ¤ zñ³êĢܷB¸_É éÌÍA[gT[oÅ·B·×ÄÌl[T[ oÍA[gT[oÌ IP AhXðmÁĢܷB[gT[oÌ IP Ah XÍADNS \tgEFAÉgÝÜêÄ¢é©çÅ·B±êçÌ[gT[ oÍA .com â .org Æ¢Á½gbvxhCÉÖ·él[T[oÌ IP AhXðmÁĢܷªA»êçÌàÉ é}VÌAhXÍmèÜ ¹ñBÂXÌgbvxhCÌT[oÍA»Ì¼ºÌhCÌl[ T[oÌêðmÁÄ¢ÄAȺ»¤µ½ÖWª±«Ü·B DNS ÍAñíÉÓ[Ýv³êÄ¢ÄAe}Vª±ÌØ\¢ÉÖ·éKv ŬÀÌîñðâèæè·é¾¯Å·Þæ¤ÉA»µÄAÇIÈTuc[ ÌÏXÍAêÓ¾¯Ì Ð él[T[o̼OÆ IP AhXÆÌ}b sOðÏX·é¾¯ÅÀ{Å«éæ¤ÉÈÁĢܷB www.linuxdoc.org Ì IP AhXðâ¢í¹½êAÀÛÉÍÌæ¤È± ƪN±èÜ·BæêÉA»Ìâ¢í¹ðó¯½l[T[o(x)ªA[g T[oÉεÄA.org ÉÖ·él[T[oªÇ±É éÌ©³¦éæ¤â¢ í¹ðµÜ·B»êªª©éÆAÉ(x Í)A.org ÌT[oÉ뵀 A.linuxdoc.org Ìl[T[oªÇ±É éÌ©³¦Äêéæ¤A⢠í¹ðµÜ·B»Ì¦ªÔÁÄ«½çA¡xÍ(x Í)A .linuxdoc.org Ìl [T[oÉεÄAwww.linuxdoc.org Æ¢¤zXgÌ IP AhXð³¦é æ¤â¢í¹Ü·B ½¢Ä¢ÌêAl[T[oÍÀÛÉãLÌæ¤ÈÊ|Èdð·éKvÍ èܹñBl[T[oÍåÊÌîñðLbV µÄ¢é©çÅ·B¼O ÌðªÅ«½Æ«Al[T[oÍüèµ½ IP AhXÆÌÎÖWðµ ÎçÌÔàÉ۵ܷBßÄÌEFuTCgðT[t·éÛAu zXgðTµÄ¢Ü·vÆ¢¤uEU©çÌbZ[Wª\¦³êéÌÍê ÔÅÌy[WðJ¢½ê¾¯Å éÌÍAãLÌæ¤ÈdgÝÉÈÁÄ¢ é©çÅ·BÅIIÉÍA¼OÆAhXÆÌ}bsOÍÔØêÆÈèA DNS ͻ̼OðÄxâ¢í¹È¯êÎÈçÈÈèÜ·B±Ì@\ªdv ÈÌÍA ézXg¼ÆAhXÆÌÑ«ªÏX³ê½Æ«ÉA³øÉÈ Á½îñª¢ÂÜÅà×ð·éæ¤È±ÆªÈ¢Æ¢¤±ÆÅ·B éTC gÉÖ·éLbV ³ê½ IP AhXÍA»ÌzXgÉBÅ«ÈÈÁ ½êÉàAjü³êÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 12.3. pPbgÆ[^ uEUªÀsµæ¤ÆµÄ¢éÌÍAwww.linuxdoc.org ãÌEFuT[oÉ ÎµÄÌæ¤ÈR}hðM·é±ÆÅ·B ¡¢ GET /LDP/HOWTO/Fundamentals.html HTTP/1.0 ¤£ ȺÅA»ÌÛɽªN±éÌ©É¢ÄྵܷBãLR}hÍApP bg(packet) Æ¢¤rbgÌòɪ³êAdñÌêÌæ¤ÉAÌæ¤È OÂÌdvðt¯Á¦½ãÅbv³êÜ·B»ÌdvÆÍAM³ AhX (source address) (ÇÒÌ}VÌ IP AhX)A ÄæAhX (destination address) (±êÍA152.19.254.81)A¨æÑ»êªEFuÉÖ· éNGXgÅ é±Æð¦·T[rXÔ (service number) àµÍ|[ gÔ (port number) (±ÌêÅÍA80 Ô)Å·B ÉAÇÒÌ}VÍ»ÌpPbgðñü(ISP â[Jlbg[NÆÌR lNV) ãÉM·éÆA»ÌpPbgÍ[^(router) ÆÄÎêéÁÊ È}VÉÍ«Ü·B[^ÍAC^[lbgÌn}ðàÉL¯µÄ ¢Ü·B±êÍK¸µà®SÈn}ÅÍ èܹñªA»Ìlbg[NÌü ÓnæÉ¢ÄÍ®SÉLqµÄ¢éÌÅAC^[lbgã̼ÌüÓ[ ^Éé׫û@ÍðµÄ¢Ü·B Mµ½pPbgÍA¢Â©Ì[^ðÊߵȪçA ÄæÖÆBµÜ ·B[^ÍñíÉãèoĢܷB[^ÍApPbgðóMµ½|Ì BmFð¼Ì[^©çó¯æéÜÅÌoßÔðĵĢܷBܽA »ÌoßÔÉÖ·éîñðgÁÄAó¢Ä¢éNãÉpPbgð¬·æ ¤gtBbN𲮵ĢܷBܽA[^Í»ÌîñðgpµÄA¼Ì [^âP[uª´öÅlbg[NÉx᪶¶½ÛÉAÊÌ[^ðT ·±ÆÅÂ\ÈÀèßí¹ðµæ¤ÆµÜ·B C^[lbgÍjíÉϦçêéæ¤ÉÝv³ê½Æ¢¤\ªsïÅéç ·lXÌÔų³â©êÄ¢ÜB±êÍ^ÀÅÍÈ¢ÌÅ·ªAµ©µAC ^[lbgÌÝvÆ¢¤ÌÍA±Ìsm©È±Æª½¢¢Eɨ¢ÄAèÉ ÈçÈ¢n[hEFA©çÅàMÉ«éptH[}Xðø«oµÄêé ¾¯ÌÉßÄDê½ÝvvzÌàÆÉ\z³êĢܷB±Ì±ÆÍAÜ³É ÌÀÉæÁĢܷB·Èí¿A(dbñüÔÌæ¤É)ÌåÅÆã Èð·@ÉðW³¹éÌÅÍÈA³Ì[^É»¤µ½Ìð ðªUµ½Æ¢¤±ÆÅ·BÂÜèAáQÍ ÜÅÇnIÈàÌɯÜéæ ¤ÉÈÁÄ¢ÄAlbg[NÍ»¤µ½áQðð¯Ä[eBO·é±Æ ªÅ«éÌÅ·B pPbgªêU ÄæÌ}VÜÅBµ½ÈçA»Ì}VÍT[rXÔ ðgÁÄA»ÌpPbgðEFuT[oÉnµÜ·BEFuT[oÍA»ÌR }hpPbgÌM³ IP AhXð©é±ÆÅADZÉÔðÔ¹Îæ¢ Ì©ðmé±ÆªÅ«Ü·BãLÌáÅA»ÌEFuT[oª±Ì¶ðM ·éÛÍA¶Í¢Â©ÌpPbgÖƪ³êÜ·BpPbgÌTCYÍ Albg[NãÌ`û@âT[rXÌíÞÉæÁÄÙÈèÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 12.4. TCP Æ IP ±¤µ½ª³ê½pPbgðg¤ÊMû@Ì̵©½ðð·éÉÍA C^[lbgÍÀÛÉÍÓ½ÂÌvgRðgpµÄ¢ÄAêûª¼ûÌ ãÉÏÝdËçêÄ¢éÆ¢¤ÊMÌdgÝðméKvª èÜ·B ºÊwÅ é IP (Internet Protocol) ÍAM³AhX©ç ÄæAh XÉÂÊÌpPbgðB³¹é½ßÌû@ÍmÁĢܷ(±êçª IP Ah XÆÄÎêéÌͻ̽ßÅ·)Bµ©µÈªçAIP ÍM«É¯Ä¢Ü ·BpPbgªrÅsûs¾ÉÈÁ½èÁ¸µ½èµÄàAM³Æ Äæ Ì}V͵ĻêÉCéȢŵå¤Blbg[NpêÅÍAIP ÍR lNVX (connection less) ÈvgRÅ·BMÒÍpPbgðó MÒÉεÄ龯ŠèAóM¤©çÌmFÍúÒūܹñB µ©µAIP ÍA¬©ÂÀ¿Å·B¬©ÂÀ¿Å êÎAM«ªÈÆà âèȢƢ¤êà èÜ·BDoom â Quake ðlbg[NãÅvC· éÆ«ÍAeÛÌÐÆÂÐÆÂà IP pPbgÅçêĢܷBeÛÌ2,3 Á¸µÄµÜÁ½ÆµÄàAÁÉâèÍȢ͸ŷB ãÊwÌ TCP (Transmission Control Protocol) ÍAM«Ì½ßÌvgR Å·BñäÌ}VªÝÉð嵀 TCP RlNVð£è (±êÍAIP ðgÁÄsíêÜ·)AóM¤ªóMµ½pPbgÉ¢ÄÌBmFðM¤ Ééæ¤ÉÈÁĢܷBM¤ªêèÔàÉ épPbgÌBmFð ó¯æçÈ¢êÍA»ÌpPbgðĵܷB³çÉAM¤ÍAÂXÌ TCP pPbgÉʵÔðUÁÄ¢éÌÅAóM¤ÅÍ»êðgÁÄApPb gÌ ª¶Á½êÅ໤µ½pPbgðÀ×¼·±ÆªÅ«éæ¤ ÉÈÁĢܷB(±êÍAlbg[NãÌoHªARlNVÌÅÉÏ ®µ½êÉÍAæN±é»ÛÅ·B) TCP/IP pPbgÉÍ`FbNT (checksum) Æ¢¤îñàÜÜêÄ¢ÄAo HãÉáQª¶¶Äf[^ªóêĵÜÁ½èµÄ¢È¢©ðoÅ«éæ¤ ÉÈÁĢܷB (`FbNTÍAܸ`FbNT©Ìð¢½pPbg ÌcèÌîñ©çZo³êÜ·B»¤µÄ¨ÆApPbgÌcè̪©` FbNT©Ìª(oHãÅ) óêĵÜÁÄ¢½êÍA(BæÅ)»ÌpP bg©çÄx`FbNTðZoµÄAàÆÌ`FbNTÆär·é±ÆÅ AG[ÌL³ð¢m¦Åo·é±ÆªÅ«éí¯Å·)B»êä¦A TCP /IP Æl[T[oÆ¢¤ÌÍAg¤¤Ì_©çÝéÆAzXg¼ÆT[r XÔÅæʳê½ñäÌzXgÔÅoCgXg[ð`Bµ ¤û@Ƶ ÄÍAMÉ«éàÌƾÁÄࢢŵå¤BܽAlbg[NvgR ðl©ç·éÆA±Ìlbg[NKwȺÅN±ÁÄ¢épPbgª âpPbgÌÄ\¬AG[`FbNA`FbNTÌvZAÄÆ¢Á½ ¿ðÙÆñÇl¶µÈÄàæÈèÜ·B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 12.5. HTTP : AvP[VvgRÌêá ±±ÅAæÙÇÌáèÉßèܵå¤BEFuuEUÆT[oÆÍAAv P[VvgR (application protocol) ðgÁÄïbðµÄ¢Ü·B ±êÍATCP/IP KwÌãÊÅÀs³êévgRÅ èA TCP/IP ðoCg ñÌâèÆèÌèiƵÄpµÄ¢éàÌÅ·BãLÌáÅÌvgRÍ A HTTP (Hyper-Text Transfer Protocol) ÆÄÎêéàÌÅA»±Ågíêé R}hÌê᪠GET ÅnÜé¶ñÅ é±ÆÍùɲÉÈÁ½ÊèÅ· B ãLÌ GET R}hª www.linuxdoc.org ÌEFuT[oÉT[rXÔ 80 ÔÅB·éÆAEFuT[oͱêðA80 Ô|[gÅÒ@µÄ¢éT[of [ (server daemon) ÖÆnµÜ·BåªÌC^[lbgT[rXÍA T[of[ƵÄÀ³êÄ¢ÄA±êçÍAçêÄé͸ÌR} hðĵAÀs·é½ßÉAÁèÌ|[gŽ¾Ð½·çÒ¿ó¯óÔ𱠯ĢܷB C^[lbgÌÝvÉÖ·éêå´¥ª éÆ·éÈçA»êÍ·×ÄÌ ªªÅ«éÀèVvÅlÔª©Äª©éæ¤È`É·éÆ¢¤±ÆÅ·B HTTP Æ»ÌeÊ (Simple Mail Transfer Protocol, SMTP Æ¢¤AzXgÔÅ dq[ðâèÆè·é½ßÉgíêévgRÈÇ) ÍALbWE ^[(A)ÆCEtB[h(üs)ÅI¹·éAlÔªÇñÅàÓ¡Ì ª©éVvÈeLXgR}hðg¤Æ¢¤Xüª èÜ·B ±¤µ½û@ÍA©Èèñø¦Å·B«ÉæÁÄÍAª¿ª¿ÉÅßçê½ oCivgRðgÁÄXs[hAbvð}é±ÆàÅ«é͸ŷBµ ©µAo±ª¦·Æ±ëÉæéÆAlÔÉÆÁÄà¾âð̵ⷢR} hðg¤±ÆÌbgÍAgbL[Ū©èÉ¢àÌðí´í´ìé± ÆžçêéÍ©Èø¦Ìã¸ðÍé©ÉãñéàÌÈÌÅ·B µ½ªÁÄAT[of[ª TCP/IP oRÅèÔ·ÔàeLXg`®Å ·BÔÌÅ̪ÍAÌæ¤ÈàÌÆÈèÜ·(wb_ÌêÍȪµÄ ¢Ü·)B ¡¢ HTTP/1.1 200 OK Date: Sat, 10 Oct 1998 18:43:35 GMT Server: Apache/1.2.6 Red Hat Last-Modified: Thu, 27 Aug 1998 17:55:15 GMT Content-Length: 2982 Content-Type: text/html ¤£ ãLÌæ¤Èwb_ÌãÉósªÐÆÂüèA»ÌãÉEFuy[WÌeLX gª±«Ü·(»êçÌMªIíÁ½_ÅARlNVªØf³êÜ·) BuEUÍA»êçð\¦·é¾¯Å·Bwb_ÍAuEUÉÎµÄ»Ì \¦û@ðw¦·éàÌÅ· (ÁÉAContent-Type Æ¢¤wb_ÅÍAÔMf [^ªÀÛÉ HTML Å éÆ¢¤±ÆðuEUÉ`¦Ä¢Ü·)B ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 13. àÁÆÚµmè½¢l̽ßÉ Reading List HOWTO <http://www.linuxdoc.org/HOWTO/Reading-List-HOWTO/> Æ¢¤¶ª èÜ·B±êÍQl¶£ÌêÅ èA±êçðÇßÎA{ ÅGê½gsbNÉ¢ÄàÁÆÚµwԱƪūܷB How To Become A Hacker <http://www.tuxedo.org/~esr/faqs/hacker-howto.html> Æ¢¤¶ àQlÉÈé©àµêܹñB ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª 14. ú{êóÉ墀 »ÝÌo[WÍAxcÏp³ñÌ|óðx[XÉ Linux Japanese FAQ Project ªì¬µÜµ½B|óÉÖ·é²Ó©Í JF vWFNg <JF@linux.or.jp> ¶ÉAµÄ¾³¢B üùððȺɦµÜ·B v1.1j, 15 January 1999 |óF xcÏp (sim@remus.dti.ne.jp) Z³F ·Jìõ (yaz-hase@qb3.so-net.ne.jp) ìm (uv9h-hykw@asahi-net.or.jp) ìY (nakano@apm.seikei.ac.jp) ¡¾ (akendo@t3.rim.or.jp) v1.4j, 8 December 1999 XVF ¡´Pà (fujiwara@linux.or.jp) Z³F é³½ (takavoid@palette.plala.or.jp) v2.4j, 15 July 2001 XVF çUTi (ysenda@pop01.odn.ne.jp) Z³F é³½ (takavoid@palette.plala.or.jp) É¡Sê (kade@@kadesoft.com) T. Hayashi (smiff@nifty.com)