Background

¡iĶ¦W¡j¹õ«á¡B­I´º

¡i»¡©ú¡jUNIX¨t²Î¬O¤@­Ó¦h¤H¦h¤u¨t²Î¡C´«¨¥¤§¡A¥¦¥i¥H¦b¦P¤@®É¶¡¤ºªA°È¦h­Ó¨Ï¥ÎªÌ¤Î°õ¦æ¦h­Ó¤u§@¡A¦]¦¹»Ý­n¦³¹õ«e¡B¹õ«á¤§¤À¡C¦b­I´ºªº±¡ªp¤U¡A¨Ï¥ÎªÌ©Ò¤U¹Fªº«ü¥O¨Ã¤£·|°¨¤W°õ¦æ¡A¦Ó¬O©ñ¨ì¤@­Ó¦î¦C¡]queue¡^¤¤¡Aµ¥«Ý CPU ªº²²ÅU¡A¦Ü©ó¦ó®É³Q°õ¦æ¡H°õ¦æªº²Ó¸`¦p¦ó¡H¨Ï¥ÎªÌµLªk¥ß§Y¥Ñ²×ºÝ¾÷ª¾¾å¡A¦]¦¹¥H¡u­I´º¡vºÙ¤§ ¡C¤@¯ë§@ªk¬O¦b«ü¥O«á­±¥[¤W "&" ²Å¸¹¡A¨Óªí¥Ü§Ú­Ì­n¨D¨t²Î¥H­I´ºªº¤è¦¡¨Ó§@³B²z¡Aµ¥¨ì°õ¦æ§¹²¦¡A·|¶Ç¦^¸Ó«ü¥Oªº³B²zµ{§ÇÃѧO½X¡]process ID¡^¥H¤Îµ²§ôªº°T®§¡C

¡i½d¨Ò¡j$spell memo.aut > errors &

¡i°Ñ¦Ò¡jforeground, process ID, background process¡C

Background process

¡iĶ¦W¡j¹õ«á³B²zµ{§Ç¡B­I´º³B²zµ{§Ç

¡i»¡©ú¡j¦pªG¨Ï¥ÎªÌ©Ò«Ø¥ßªº³B²zµ{§Ç¬O¥H¹õ«áªº¤è¦¡°õ¦æ¡A´NºÙ¤§¡u¹õ«á³B²zµ{§Ç¡v¡C¥¦ªº¤@¤ÁÀu¥ýÅv§Q¡]priority¡^¡A¨Ò¦p¡G°õ¦æªº®É¶¡¡B¸ê·½ªº¨ú±oµ¥¡A³£¸û¡u¹õ«e³B²zµ{§Ç¡v¡]foreground process¡^¬°§C¡C

¡i°Ñ¦Ò¡jbackground, priority, foreground process¡C

backup

¡iĶ¦W¡j³Æ¥÷

¡i»¡©ú¡j¤@¯ëªx«üÀɮרt²Î¡]file system¡^ªº«þ¨©¡A¥Øªº¬O¬°¤F¨¾¤î¾÷¾¹ªº·í¾÷¡BºÐªº·N¥~·l·´©Î¬O¨Ï¥ÎªÌµL·N¤§¶¡§R°£­«­nªº¸ê®Æ¡C

¡i°Ñ¦Ò¡jfile system¡C

Baud rate

¡iĶ¦W¡jÀj²v

¡i»¡©ú¡j¥Î¥H­pºâ¶Ç¿é³t²vªº³æ¦ì¡C­Y¬Y¤¶½è¡]media¡^¨C¬í¯à¶Ç°e n ­Ó°T¸¹­È¡A«h¨äÀj²v§Y¬° n ¡C¦ý¬O¶Ç¿é³t²v¬° n Àj²vªº½u¸ô¨Ã¤£¤@©wªí¥Ü¨C¬í¶Ç°e n ­Ó¦ì¤¸¡C¦pªG¤@­Ó°T¸¹­È¥i¥Î¨Ó¶Ç°e 3 ­Ó¦ì¤¸¡M«h¨ä¦ì¤¸³t²v¬°Àj²vªº 3 ­¿¡F¦pªG¤@­Ó°T¸¹­È¥u¶Ç°e 1 ­Ó¦ì¤¸¡M«h¨ä¦ì¤¸³t²v§Yµ¥©óÀj²v¡C

Berkeley fast file system

¡iĶ¦W¡j¬f§JµÜ§Ö³tÀɮרt²Î¡A²ºÙ bfs

¡i»¡©ú¡j¬f§JµÜ§Ö³tÀɮרt²Î±NºÏºÐªº¤À³Î°Ï¡]partition¡^¤À³Î¬°³\¦hªººÏ¬W¸s ¡]Cylinder Group¡^¡A¨C¤@­ÓºÏ¬W¸s¨ÌºÏºÐªº¤j¤p¡A¥]§t¤F 1 ¨ì 32 ­Ó¬Û¾FªººÏ¬W¡A¦bºÏ¬W¸s¤W¡A¾Ö¦³¡u¶W¯Å°Ï¶ô¡v¡]super block¡^¡AºÏ¬W¸s°Ï¶ô©M¯Á¤Þ¸`ÂI°Ï¶ô¡]½Ð°Ñ¦Ò¤U¹Ï¡^¡AºÏ¬W¸s°Ï¶ô¥]§t¤F¦³Ãö¦b¦¹ºÏ¬W¸s¤¤ªÅ¥Õ°Ï¶ô©MªÅ¥Õ¯Á¤Þ¸`ÂIªº¸ê®Æ¥H¤ÎºÏ¬W¸s¹B¥Îªºª¬ºA¡A¦Ó¶W¯Å°Ï¶ô¡]super block¡^¦bÀɮרt²Î¤¤¨C­ÓºÏ¬W¸s³£¦û¦³¤£¦Pªº¦ì¸m¡A¨Ò¦p¤@­Ó¥i¯à¦bºÏ­y¡]TRACK¡^5 ¤W¦Ó¥t¤@­Ó«h¦bºÏ­y 6 ¤W¡]©ñ¦b¤ñ«e¤@­Ó¦h¤@­Ó TRACK ªº¦ì¸m¡^¡A¦]¦¹©Ò¦³¶W¯Å°Ï¶ô¦P®É·lÃaªº¾÷²v«Ü¤p¡C·íÀɮרt²Î¶W¯Å°Ï¶ô·lÃa®É¡A¥i¨Ì·Ó¨ä¥Lªº¶W¯Å°Ï¶ô¤Wªº¸ê®Æ¨Ó­×´_¡C

±Ò°Ê°Ï¶ô

¶W¯Å°Ï¶ô

ºÏ¬W¸s°Ï¶ô

¯Á¤Þ¸`ÂI°Ï¶ô

.

.

.

¸ê®Æ°Ï¶ô

.

.

.

¸ê®Æ°Ï¶ô

¶W¯Å°Ï¶ô

ºÏ¬W¸s°Ï¶ô

¯Á¤Þ¸`ÂI°Ï¶ô

.

.

.

¸ê®Æ°Ï¶ô

¦]¬°¨C­ÓºÏ¬W¸s³£¦³¯Á¤Þ¸`ÂIªí¡A¦Ó§Ö³tÀɮרt²Î¤S¾¨¥i¯à¦a±N¦bÄÝ©ó¦P¼Ë¤@­Ó¥Ø¿ýªº¯Á¤Þ¸`ÂI©M¸ê®Æ°Ï¶ô©ñ¤J¦b¦P¤@­ÓºÏ¬W¸s¤¤¡]¥Ñ¯Á¤Þ¸`ÂIªºª½±µ«ü¼Ð©Ò«ü¨ìªº¸ê®Æ°Ï¶ô³q±`³Q©ñ©ó©M¥Ø¿ý¬Û¦PªººÏ¬W¸sùØ¡A¶¡±µ«ü¼Ð©Ò«ü¦Vªº¸ê®Æ°Ï¶ô«h¦s©ó«á­±ªººÏ¬W¸s¤¤¡^¡A¦]¦¹§ä´M¸ê®Æªº³t«×¤]¬Û¹ïªº´£°ª¤F³\¦h¡C¹ï©ó¤@­Ó·s«Ø¥ßªº¥Ø¿ýÀɮסA§Ö³tÀɮרt²Î·|§ä¨ì¦³¸û¦hªÅ¯Á¤Þ¸`ÂIªººÏ¬W¸s¨Ó¦s©ñ¡A¦Ó¥BÀɮרt²Î¾¨¶q¦bºÏ¬W¸s¤W¯d¤U¤@¨ÇªÅ¶¡¦Ó¤£±N¨ä©ñº¡¡A¨ÏºÏ¬W¸s§ó¦³¼u©Ê¡C¦¹¥~¡ABSD ªº§Ö³tÀɮרt²Î¨Ï¥Î¸û¤jªºÅÞ¿è°Ï¶ô¡]4K ©Î 8K¡^¡A©Ò¥H³t«×«Ü§Ö¡A¦ý¬O¤]¦]¬°¦p¦¹¦s©ñÀɮ׮ɡA©¹©¹·|®ö¶O³\¦hªÅ¶¡¡A©Ò¥H§Ö³tÀɮרt²Î­ã³\¤pªºÀɮצs©ñ¦b§OªºÀɮפ¤¥¼¨Ï¥ÎªºªÅ¶¡¡]ºÙ¬° fragment¡^¡A¦p¦¹¥i¥H´î¤ÖºÏºÐ®ö¶Oªºª¬ªp¡A¤@¯ë¦Ó¨¥¤@­Ó fragment ¦û¸ÓÅÞ¿è°Ï¶ôªº1/8¡C

¦¹¥~¡A§Ö³tÀɮרt²Î«O¯d¤F¤@³¡¥÷ªººÏºÐªÅ¶¡¡A¥u¦³ root ªº¨Ï¥ÎªÌ¦³Åv§QÀ³¥Î³o³¡¥÷ºÏºÐªÅ¶¡¡A³o¼Ë¨Ï±oÀɮרt²Î¦sº¡®É¡A¨t²ÎºÞ²z®v¤´¦³¨¬°÷ªÅ¶¡¯à¾Þ§@¡A©Ò¥H¦³®É±z¨Ï¥Î df «ü¥O®É·|µo²{Àɮרt²Î·|¶W¹L 100% ªº¨Ï¥Î²v¡C¦b§Ö³tÀɮרt²Î¤¤«O¯d¤§ºÏºÐªÅ¶¡ªº¹w³]­È¬O 10%¡A¤£¹L±z¥i¥H§ó§ï MINFREE ªº­È©Î¨Ï¥Î "newfs -m" ªº«ü¥O¨Ï±o«Ø¥ßªº·sÀɮרt²Î§Q¥Î¤£¦Pªº¤ñ²v¡C¨Ò¦p/usr ¤Wªº¸ê®Æ¤ñ¸û¤£±`§ïÅÜ¡A§Ú­Ì¥i±N«O¯dªº¤ñ²v­°§C¡C

¡i°Ñ¦Ò¡jfragmentation¡C

binary file

¡iĶ¦W¡j¤G¶i¦ìÀÉ

¡i»¡©ú¡j³oºØÀÉ®×»P DOS ¤¤¥H .EXE ©Î .COM µ²§ÀªºÀɬÛÃþ¦ü¡A¦bÀÉÀY«e´X­Ó¦ì¤¸²Õªº¦a¤è°O¿ýµÛ¤@¨ÇÃö©ó¨t²Îªº¸ê®Æ¡A¥H¤Î©Ò¿×ªº¡uÅ]³N¼Æ¦r¡v¡]magic number¡^¡C·í¨t²Î°õ¦æ¦¹ÃþÀɮ׮ɡA«K·|ÂǦ¹§PÂ_³o¬O§_¬°¦X®æªº¤G¶i¦ì¥i°õ¦æÀÉ¡C

¡i°Ñ¦Ò¡jmagic number¡C

Block

¡iĶ¦W¡j°Ï¶ô¡]¦Wµü¡^¡Aªý¹j¡þÀÁ¸m¡]°Êµü¡^

¡i»¡©ú¡j¡u°Ï¶ô¡v¬O«ü UNIX ¨t²Î¦b§@¤j¶q¸ê®Æ·h²¾ªº°Ê§@®É¡A©Ò¨Ï¥Îªº¸ê®Æ¶q³æ¦ì¡A±`¨£ªº°Ï¶ô¤j¤p¬O 512 ©Î 1024 ­Ó¦ì¤¸²Õ¡A¦b SVR4 ³Ì¦h¥i¥HÅý¤@­Ó°Ï¶ô¤j¦Ü 8192 ­Ó¦ì¤¸²Õ¡C¦pªG Block ¥Î°µ°Êµü¡A¨Ò¦p¬Y­Ó³B²zµ{§Ç¦]¬°µ¥­Ô¿é¤J¡þ¿é¥X§@·~ªº§¹¦¨¦Ó³B©ó³Qªý¹jªº±¡§Î¡C

Block device

¡iĶ¦W¡j°Ï¶ô³]³Æ

¡i»¡©ú¡j¦b®Ö¤ß¡]kernel¡^¤¤¦³³\¦hªº³]³ÆÅX°Êµ{¦¡¡]device driver¡^¨ÓºÞ²z¦UºØ¤£¦Pªº¶gÃä³]³Æ¡A³o¨Ç³]³Æ¦]©Ê½èªº¤£¦P¥i¤À¬°¨âÃþ¡G¦r¤¸³]³Æ»P°Ï¶ô³]³Æ¡C¦Ó°Ï¶ô³]³Æ¬O«ü¦b°µ¸ê®Æªº¿é¥X¿é¤J®É¡A¯à¤@¦¸³B²z¦h­Ó¦ì¤¸²Õ¸ê®Æªº³]³Æ¡C¨Ò¦p¡GºÏºÐ¾÷¡BºÏ±a¾÷¡C¥¦ªº§@ªk¬O¢w¨Ï¥Î¤@­Ó©T©w¤j¤pªº³sÄò°O¾ÐÅé°Ï¶ô·í§@¸ê®Æªº¼È¦s½w½Ä°Ï¡]buffer¡^¡Aµ¥¨ì¦sº¡¤F¥H«á¦A¤@¦¸°µ¿é¥X©Î¿é¤J¡C

¡i°Ñ¦Ò¡jcharacter device, kernel, device driver¡C

block special file

¡iĶ¦W¡j°Ï¶ô¯S®íÀÉ

¡i»¡©ú¡j©Ò¿×ªº¡u°Ï¶ô¯S®íÀÉ¡v¬O«ü¦¹ÀÉ®×¥¦©Ò¹ïÀ³ªº³]³Æ¤@¦¸¥i³B²z¦h­Ó¦ì¤¸²Õ¸ê®Æ¡C¦b¦¡ªº UNIX Àɮרt²Î¡A¨ä¤j¤p³q±`¬O 512 ­Ó¦ì¤¸²Õ©Î¬O 1024 ­Ó¦ì¤¸²Õ¡C²{¦bªº¤@¨ÇÀɮרt²Î«h©¹©¹¤j¨ì¤@­Ó°Ï¶ô 8192 ­Ó¦ì¤¸²Õ¡C

¡i°Ñ¦Ò¡jcharacter device, character special file, block device¡C

Boot

¡iĶ¦W¡j±Ò°Ê

¡i»¡©ú¡jUNIX ©M DOS ªº³Ì¤j¤£¦PÂI«K¬O¦b UNIX Àô¹Ò¤¤¡A¨Ï¥ÎªÌ¬O¨S¦³Åv¤O©M¥ô¦ó¶gÃä³]³Æ³sµ¸¡A¦Ó©Ò¦³ªº«ü¥O°Ê§@¥²¶·³z¹L¡u®Ö¤ß¡v¡C¡u®Ö¤ß¡v¬O¦b¨t²Î±Ò°Ê®É«K¤@ª½®y¸¨©ó°O¾ÐÅ餧¤º¡A¦Ó¦p¦ó±N¡u®Ö¤ß¡v¦b±Ò°Ê®É©ñ¤J°O¾ÐÅ餤«K¬O¨t²Î±Ò°Ê³Ì­«­nªº¥Ø¼Ð¡C

·í¨t²Î±Ò°Ê®É¡A¾÷¾¹¤Wªº ROM, PROM ©Î EPROM ·|¦Û°Êªº±N±Ò°Ê°Ï¶ô¡]boot block¡^©ñ¤J°O¾ÐÅ餤¡A±q±Ò°Ê°Ï¶ô¡]boot block¡^¤W¡A¨t²Î·|§ä¨ì¤@­Ó¤p¤pªºµ{¦¡¥s "boot program loader"¡]¦³ªº¨t²ÎºÙ¤§¬° boot 0¡^¡A·í°õ¦æ "boot program loader" µ{¦¡®É¡A¥¦·|¨Ì¾Ú¦b±Ò°Ê°Ï¶ô¡]boot block¡^¤Wªº°O¿ý§ä¨ì "/boot" µ{¦¡¡]³o¦W¦r¥i¯à¦]¨t²Îªº¤£¦P¦Ó¤£¤@¼Ë¡^¦Ó±N¨ä©ñ¤J°O¾ÐÅ餤°õ¦æ¡C¦]¬°¨Ï¥ÎªÌ¥i¯à¦b±Ò°Ê®É¤Þ¥Î¯S§OªºÅܼơA¨Ò¦p¥H³æ¤@¨Ï¥ÎªÌ¼Ò¦¡¡] single user mode¡^±Ò°Ê¡A©Î¬O§Æ±æ¥Î¬Y¤@­Ó¯S§Oªº®Ö¤ß¡]¦p±Ä¥Î /unix.old ¦Ó¤£¥Î /unix¡^¡A"/boot" ·|§ä¨ì±Ò°Ê©Ò­nªºÅܼƤή֤ߪº¦ì¸m¡AµM«á±N®Ö¤ß©ñ¤J°O¾ÐÅ餺°õ¦æ¡C®Ö¤ß±Ò°Ê«á·|±N©Ò¦³ªºªí³£¾ã²z¦n¡A¦P®É»{ÃѤF¦b¶g³òªº³]³Æ¡A¦w±Æ¦n±Æµ{³B²z¡AµM«á¥¦·|²£¥Í "init" ¤Î "page daemon" ¨â­Ó­«­nªº³B²zµ{§Ç¡A³Ì«á±Ò°Ê³B²zµ{§Ç·|Åܦ¨ "swapper" µ{§Ç¡C

boot block

¡iĶ¦W¡j¸ü¤J°Ï¶ô

¡i»¡©ú¡j§Ú­Ì¥iµø UNIX ªºÀɮרt²Î¡]file system¡^ ¬°¤@³s¦ê°Ï¶ô¡]blocks¡^ªº²Õ¦¨¡C¨ä¤¤ªº²Ä¤@­Ó°Ï¶ô¬°¡u¸ü¤J°Ï¶ô¡v¡A«O¯dµ¹±Ò°Êµ{¦¡¨Ï¥Î¡A¨ä§@¥Î¦b©ó¨t²Î±Ò°Ê®É¡A±N¨t²Î®Ö¤ß(kernel)¸g¥ÑºÏºÐ¸ü¤J¥D°O¾ÐÅ餤¡AµM«á¦A±N±±¨îÅv¥æµ¹¨t²Î®Ö¤ß¨Ó«ü´§¾ã­Ó¨t²Îªº¹B§@¡C¨C­ÓÀɮרt²Î³£¾Ö¦³¸ü¤J°Ï¶ô¡A¦ý¬O¥u¦³®ÚÀɮרt²Î¡]root file system¡^ªº¸ü¤J°Ï¶ô¦³¸ü¤Jµ{¦¡¡]boot program loader¡^¡A¨ä¥Lªº¸ü¤J°Ï¶ôÁöµM¦s¦b¡A ¦ý¬O¨Ã¤£¨Ï¥Î¡C

¡i°Ñ¦Ò¡jfile system, kernel¡C

Bourne shell

¡iĶ¦W¡jµL

¡i»¡©ú¡jBourne shell ¬O¥Ñ AT&T ¨©º¸ Steve Bourne ©Òµo®i¥X¨Óªº«ü¥O¸ÑĶ¾¹¡A©ó 1978 ¦~¤½¶}°Ý¥@¡C³o¬O¤@­Óµ{¦¡¤£¤j¦Ó¥B¬Û·í¦³®Ä²vªº shell ¡A¥D­n¬O¥H UNIX System V ¬°¥D¡C»P C shell ¬Û¤ñ¸û¡A¥¦ªº°õ¦æ³t«×¸û§Ö¡A¦P®É©Ò¦û°O¾ÐÅéªÅ¶¡¸û¤Ö¡C¦ý¬O»P Korn shell ¬Û¤ñ¸ûªº¸Ü¡A¥¦ªº°õ¦æ³t«×´NºC¤F¤@¨Ç¡C¨º¬O¦]¬° Korn shell ¨Ï¥Î¨Ï¥Î¤F³\¦hªº¤º«Ø¨ç¦¡¡A¯àª½±µ¥Ñ shell °õ¦æ¡A¦Ó¤£»Ý­n¥t¥~¦A«Ø¥ß¤@­Ó¤l shell °õ¦æ¡A¬G®Ä²v¸û¦n¡C¦ý¬Û¹ï¦a¡A¥¦©Ò¦ûªº°O¾ÐÅéªÅ¶¡¤]´N¸û¤j¤F¡C°£¦¹¤§¥~¡A¹ï¤@¨Ç¸û±M·~ªº¨Ï¥ÎªÌ¦Ó¨¥¡A Bourne shell ¦³´X­Ó¬ü¤¤¤£¨¬¤§³B¡C²Ä¤@¡G¥¦¨S¦³´£¨Ñ©Ò¿×ªº¡u©R¥O¾ú¥v²M³æ¡v¡]command history¡^ªº¥\¯à¡F²Ä¤G¡G¥¦¨S¦³´£¨Ñ¡u§O¦W¡v¡]alias¡^ªºªA°È°È¡C­n¾a¨Ï¥ÎªÌ¦Û¦æ³]­pµ{¦¡¤~¯à¹F¦¨¡C

¡i°Ñ¦Ò¡jC shell, Korn shell¡C

BSD (Berkley Software Distributions)

¡iĶ¦W¡jµL

¡i»¡©ú¡j±q¦è¤¸ 1979 ¶}©l¡A¥Ñ¬ü°ê¥[¦{¤j¾Ç¬f§JµÜ¤À®Õ©Òµo®i¥X¨Óªº UNIX ¨t²Î¡A§¡¥H BSD §@¬°¨äª©¥»¦WºÙ¡C²Ä¤@­Óª©¥»¬° 3BSD¡A¤§«á¸g¹L§ï¶i¦³4.0 BSD¡B 4.1aBSD¡B 4.1cBSD¡B 4.2BSD¡B 4.3BSD ¨ì²{¦bªº BSD 4.4 ª©¡C

buffer

¡iĶ¦W¡j½w½Ä°Ï

¡i»¡©ú¡j·í¤¤¥¡³B²z¾¹¡]CPU¡^¹ï¶gÃä³]³Æ¡A¦p¡GºÏºÐ¾÷¡B¦Lªí¾÷°µ¿é¥X¤J®É¡A¥Ñ©ó©¼¦¹ªº³t«×¬Û®t¤Ó¦h¡A¨Ï±o¤¤¥¡³B²z¾¹¥²¶·µ¥¶gÃä³]³Æ³B²z§¹²Ä¤@µ§¸ê®Æ«á¤~¥á²Ä¤Gµ§¸ê®Æµ¹¥¦¡A¦p¦¹¤@¨Ó¡A¨Ï±o¤¤¥¡³B²z¾¹Ä_¶Qªº®É¶¡³£®ö¶O¦bµ¥«Ý¤§¤¤¡C¬°¤F§ïµ½³o­Ó¯ÊÂI¡A´£°ª¤¤¥¡³B²z¾¹ªº¤u§@®Ä²v¡A©ó¬O´N¦b°O¾ÐÅ餺¹º¥X¤@¶ô°Ï°ì¡AºÙ¬°¡©½w½Ä°Ï¡ª¡C·í¦³¸ê®Æ­n¿é¥X®É¡A¥ý±N¸ê®Æ©ñ¤J½w½Ä°Ï¤¤¡A¥Ñ¶gÃä³]³Æ¥h³B²z½w½Ä°Ï¤ºªº¸ê®Æ¡A¦¹®É¤¤¥¡³B²z¾¹´N¥i¥H¥ý¥h°µ§Oªº¨Æ¡Aµ¥¶gÃä³]³Æ³B²z§¹½w½Ä°Ï¤ºªº¸ê®Æ«á¡A¦A³qª¾¤¤¥¡³B²z¾¹©ñ¤J²Ä¤Gµ§¸ê®Æ¡C¦Ó¿é¤J¸ê®Æ®É¡A«h¬O¥Ñ¶gÃä³]³Æ±N¸ê®Æ©ñ¤J½w½Ä°Ï«á¦A³qª¾¤¤¥¡³B²z¾¹¨Ó³B²z¡C¦p¦¹¤@¨Ó¡A¤¤¥¡³B²z¾¹´N¤£¥Î¬\µ¥¶gÃä³]³Æ¡A¦Ó¯à±NÄ_¶Qªº®É¶¡¥Î¦b§Oªº¦a¤è¡C¦]¦¹¡A½w½Ä°Ï¨ä¹ê´N¬O¤@¶ô°O¾ÐÅé¡A¥Øªº´N¦b©ó´£°ª¤¤¥¡³B²z¾¹ªº®Ä²v¡C

buffer.gif (3238 bytes)

Buffer cache

¡iĶ¦W¡j§Ö³t½w½Ä°Ï

¡i»¡©ú¡j¦b·L³B²z¾÷¶V¨Ó¶V§Öªº¤µ¤Ñ¡A¹q¸£¨t²Îªº³t«×²~ÀV´X¥G¥þ¥d¦b¿é¥X¿é¤J³]³Æ³o³¡¥÷¡A¦b§ó§Ö³tªº¿é¥X¿é¤J³]³Æ¥¼²£¥Í«e¡A¥[§Ö¿é¥X¿é¤J³t«×ªº³Ì¦³®Ä³~®|¦ü¥G´N¥u¦³±q´î¤Ö¿é¥X¿é¤J¦¸¼ÆµÛ¤â¡C§Ö³t½w½Ä°Ï´N¬O UNIX ¨t²Î¥Î¨Ó´î¤Ö¿é¥X¿é¤J¦¸¼Æªº³]­p¡C

¦b§@·~¨t²Îªº³]­p¤W¡A§Ú­Ì±N¸ê®ÆªºÀx¦s¸Ë¸m¤À¦¨¨âÃþ¡A¤@Ãþ¬O¥D°O¾ÐÅé¡]primary memory¡^¡A¥t¤@ÃþºÙ§@»²§U°O¾ÐÅé¡]secondary storage device¡^¡C¥D°O¾ÐÅé¦s¨ú³t«×§Ö¡A³q±`¥H¦Ê¸U¤À¤§´X¬í¬Æ¦Ü»õ¤À¤§´X¬í¬°³æ¦ì¡A¦ý¬O©ù¶Q¦Ó¥B¹q·½¤@¥¹Ãö³¬¤@¤Á¸ê®Æ´N³£ÀH­·¦Ó³u¡A»²§U°O¾ÐÅéÁöµM¦s¨ú³t«×ºC¡]¥H¤d¤À¤§´X¬í¬°­pºâ³æ¦ì¡^¡A¥i¬O»ù®æ«K©y¦Ó¥B¤£·|¦]¬°¹q·½¤¤Â_¦Ó¿ò¥¢¸ê®Æ¡A¨Ò¦p±zªºµwºÐ¾÷¡B¥úºÐ¾÷µ¥´N¬OÄݩ󻲧U°O¾ÐÅé¡A³q±`¥Î¤áªº¸ê®ÆÀɳ£¬O¦s¦b³oùØ¡C

²{¥Nªº·L³B²z¾÷³t«×¶V¨Ó¶V§Ö¡A¦]¦¹¬Û¹ïªº¤]¶·­n§ó§Öªº°O¾ÐÅé»P¤§¤Ç°t¡A¦pªG¥þ³¡ªº¥D°O¾ÐÅé³£¨Ï¥Î³oºØ°ª³t°O¾ÐÅ馨¥»¤S¤Ó°ª¡A©Ò¥H¤S¦³©Ò¿×§Ö¨ú°O¾ÐÅé¡]cache¡^ªº¥X²{¡A ³oºØ§Ö¨ú°O¾ÐÅé¯Âºé¬OµwÅé¡A±z®aªº PC ¦b¶}¾÷®É¤£¬O·|¬Ý¨ì 64K cache ©Î¬O 256K cache ªº¦r¼Ë¶Ü¡H¨º´N¬O©Ò¿×ªº§Ö¨ú°O¾ÐÅé¡CŪªÌ­n¯d·N¡A§O±N§Ö¨ú°O¾ÐÅé»P§Ö³t½w½Ä°Ïµ¹§Ë²V¤F¡A«eªÌ¬O¦Ê¤À¤§¤@¦ÊªºµwÅé¡A«áªÌ«h¬O¤@­Óµ{¦¡¡A¨Ò¦p DOS Àô¹Ò¤Uªº SMART DRIVER ¡]smartdrv.exe¡^´N¬O¤@ºØ§Ö³t½w½Ä°Ï³nÅé¡C

·í³B²zµ{§Ç¦VÀɮרt²Î´£¥X¦s¨úÀɮתº»Ý¨D®É¡A®Ö¤ß¡]kernel¡^·|±N©Ò­nªº¸ê®Æ¸ü¤J¥D°O¾ÐÅé¡A¥H¨Ñ³B²zµ{§Ç¨ú¥Î¡]³z¹L open¡]¡^¡Bread¡]¡^¡Bwrite¡]¡^µ¥¨t²Î©I¥s¡^¡F¦b³B²zµ{§Ç¨Ï¥Î§¹«á¡A®Ö¤ßÁÙ±o±N³o¨Ç¸ê®Æ¦A¦^¦s¨ì»²§UÀx¦s³]³Æ¡C³o¼Ëªº§@ªk¬Ý¨Ó¤Q¤À²z©Ò·íµM¡A¥i¬O¨t²Î¦pªG¯uªº³o¼Ë³B²z¡A¨t²Îªº¾ãÅé°õ¦æ®Ä²v±N·|¤j¬°§C¸¨¡A³o¬O¥Ñ©ó½wºCªººÏºÐ¦s¨ú©ì²Ö¤F¾ãÅ骺°õ¦æ³t«×¡A¨Ã¥B³y¦¨·L³B²z¾÷¤j³¡¥÷ªº®É¶¡³£¬O¦bµ¥«Ý¿é¥X¿é¤J°Ê§@ªº§¹¦¨¡C

¬°¤F§JªA³o­Ó»Ùê¡AUNIX ¨Ï¥Î¤@³¡¥÷¥D°O¾ÐÅ鬰¨t²Î¥»¨­ªº¸ê®Æ½w½Ä°Ï¡A½w½Ä°Ï¤¤¦s©ñµÛ¥Î¶q¸û¬°ÀWÁcªº¸ê®Æ¡A¥H­°§C¹ê»Ú¹ïµwÅé³]³ÆŪ¼gªº¦¸¼Æ¡A³o¨Ç¥D°O¾ÐÅé§Y¬O©Ò¿×ªº§Ö³t½w½Ä°Ï¡C

¥Ñ¤U¹Ï±z¥i¥Hµoı§Ö³t½w½Ä°Ï¦ì©óÀɮרt²Î©M°Ï¶ô³]³Æ¡]block¡^´«¨¥¤§¡A·í®Ö¤ß¥ø¹Ï¥Ñ°Ï¶ô³]³ÆŪ¨ú¸ê®Æ®É¡A¥¦·|¥ý¹Á¸ÕµÛ¬Ý¬Ý§Ö³t½w½Ä°Ï¤¤¬O§_¦³¥¦­nªº¸ê®Æ¡A¦pªG¦³´Nª½±µ±q§Ö³t½w½Ä°Ï¤º¨ú¥Î¡A°²¨Ï¨S¦³´N¥ÑºÏºÐ¤¤´M§ä¡A¨Ã±N´M±oªº¸ê®Æ©ñ¤@¥÷¨ì§Ö³t½w½Ä°Ï¤¤¡C¦P¼Ëªº¡A·í®Ö¤ß±N¸ê®Æ¼g¥X®É¡A¥ç·|¥ý±N¸ê®Æ¼g¤J§Ö³t½w½Ä°Ï¥H«K¤U¦¸­nŪ¨ú®É¯à°÷¤£¶·¨ìµwºÐ¤º¥h§ä¡C

±q UNIX ªº­ì©l½X¨Ó¬Ý¡A§Ö¼Æ½w½Ä°Ïªº¦¨¬O½X¦@¤À¬°¤T­Ó¥D­nªº¼Ò²Õ¡G¤@­Ó¬O»PÀɮרt²Îªº¤¶­±¡A¥]¬A¹ï°Ï¶ô³]³Æªº¦UºØ¾Þ§@¡F¤@­Ó¬O§Ö³t½w½Ä°Ï¦î¦C¥»¨­ªººÞ²z¼Ò²Õ¡F³Ì«á¤@­Ó«h¬Oª½±µ©M°Ï¶ô³]³Æ¤ÎÅX°Êµ{¦¡·¾³q¡A¾ã­ÓÃö³s½Ð¬Ý¤U¹Ï¡G

Buffer cache.gif (4278 bytes)

±q¤W­±ªº»¡©ú§Ú­Ì¥i¥Hª¾¹D¦pªG¨t²Î¨C¦¸¦s¨úªº¸ê®Æ³£¯à¦b§Ö³t½w½Ä°Ïùاä¨ì¡A«h¨t²Îªº°õ¦æ®Ä²v¦ÛµM«Ü¦n¡F¦ý¬O¦p¦óÅý§Ö³t½w½Ä°Ï¯à¦³°ª©R¤¤²v©O¡]high hit rate¡^¡H¤@ºØ¬O±N§Ö³t½w½Ä°Ï®a¤j¡A¥t¤@ºØ´N¬O±Ä¥Î¾A·íªººtºâªk¡AÅý¨Ï¥Î³ÌÀWÁcªº¸ê®Æ³£¯d¦b§Ö³t½w½Ä°Ï¤º¡A¤@¯ë¦Ó¨¥¡ALRU¡]Least Recently Used¡^ºtºâªk¸û±`³Q±Ä¥Î¡C

¡i°Ñ¦Ò¡jfile system, block device¡C

buffer device

¡iĶ¦W¡j½w½Ä³]³Æ

¡i»¡©ú¡j¦P¡u°Ï¶ô³]³Æ¡v¡]block device¡^¤@Ãã¡C

¡i°Ñ¦Ò¡jblock device, character device¡C

buffer pool

¡iĶ¦W¡j½w½Ä°ÏÀx¦s¦À

¡i»¡©ú¡j¨t²Î¥Î¥HºÞ²z¥þ³¡½w½Ä°Ï©Ò¨Ï¥Îªº¤@ºØ¸ê®Æµ²ºc¡C³z¹L¦¹ºØµ²ºc¡A¨t²Î¥i¥H°Ï¤À¥X¨C¤@­Ó½w½Ä°Ï¬O³B¦b¨º¤@ºØª¬ºA¡C¥H BSD ª©¬°¨Ò¡A¥¦±N½w½Ä°Ï¤À¬°¡G¦s¦³¸ê®Æ¥B¸ê®Æ¥¼³Q¨Ï¥Îªºª¬ºA¡B¦s¦³¸ê®Æ¦ý¸ê®Æ¤w³Q¨Ï¥Î¹Lªºª¬ºA¡B¨S¦³¦s¸ê®Æªºª¬ºA..µ¥¡C¹ïºÏºÐ¤W¸g±`·|³Q¨Ï¥Î¨ìªº¸ê®Æ¡A³o¨Ç¨t²Î½w½Ä°Ïµ¥©ó´£¨Ñ¤F¤@­Ó¼È®ÉÀx¦sªº³õ©Ò¡A¥Î¥H¼W¶i CPU ªº¨Ï¥Î®Ä²v¡A¦]¦¹¥¦­Ì¤]³QºÙ¬°¡u°ª³t½w½Ä°Ï¡v¡]buffer cache¡^¡C

¡i°Ñ¦Ò¡jBSD, buffer cache¡C

byte order

¡iĶ¦W¡j¦ì¤¸²Õ§Ç¦C

¡i»¡©ú¡j«ü¸ê®Æ¦b°O¾ÐÅ餤ªºÀx¦s¶¶§Ç¡C