Copyright © 1996 Addison-Wesley Longman, Inc
¤³¤Îʸ½ñ¤Ï½ÐÈǸµ¤Îµö²Ä¤Î²¼¤Ë The Design and Implementation of the 4.4BSD Operating System ¤ÎÂèÆó¾Ï¤òÈ´¿è¤·¤¿¤â¤Î¤Ç¤¹¡£ ¤³¤ÎÈ´¿è¤ÎÊ£À½¤äºÆÇÛÉÛ¤ò½ÐÈǸµ¤ÎÌÀ¼¨Åª¤Êµö²Ä¤Ê¤¯¹Ô¤Ê¤¦¤³¤È¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î¾Ï¤Ç¾Ò²ð¤µ¤ì¤Æ¤¤¤ë³Æ³µÇ°¤Ë¤Ä¤¤¤Æ¤Ï ËܤλĤê¤ÎÉôʬ¤ËÈó¾ï¤Ë¾ÜºÙ¤Ë½ñ¤«¤ì¤Æ¤ª¤ê¡¢ BSD UNIX ¤Ë¶½Ì£¤ò»ý¤ÄÆÉ¼Ô¤Ë¤È¤Ã¤ÆÍ¥¤ì¤¿»²¹Íʸ¸¥¤Î°ì¤Ä¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤ÎËܤ˴ؤ¹¤ë¾ÜºÙ¤Ï½ÐÈǸµ¤«¤éÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤½¤³¤ÇÅÐÏ¿¤¹¤ë¤³¤È¤Ç ´ØÏ¢½ñÀÒ ¤Î¥Ë¥å¡¼¥¹¤ò¼õ¤±¼è¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ ¤Þ¤¿¡¢Kirk McKusick »á¤è¤ê BSD courses ¤Ë´Ø¤¹¤ë¾ðÊó¤âÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¤³¤Îʸ½ñ¤ÎÆüËܸ첽¤Ï FreeBSD ÆüËܸì¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤ï¤ì¤Þ¤·¤¿¡£ ÆüËܸ첽¤Î¾ÜºÙ¤ÏAppendix A¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
The second chapter of the book, The Design and Implementation of the 4.4BSD Operating System is excerpted here with the permission of the publisher. No part of it may be further reproduced or distributed without the publisher's express written permission. The rest of the book explores the concepts introduced in this chapter in incredible detail and is an excellent reference for anyone with an interest in BSD UNIX. More information about this book is available from the publisher, with whom you can also sign up to receive news of related titles. Information about BSD courses is available from Kirk McKusick.
4.4BSD ¥«¡¼¥Í¥ë¤Ï 4 ¤Ä¤Î´ðËܵ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ ¤½¤ì¤Ï¥×¥í¥»¥¹¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¢¥³¥ß¥å¥Ë¥±¡¼¥·¥ç¥ó¡¢¤½¤·¤Æ¥·¥¹¥Æ¥à¤Îµ¯Æ°¤Ç¤¹¡£ ¤³¤ÎÀá¤Ç¤Ï¤½¤Î 4 ¤Ä¤Î´ðËÜ¥µ¡¼¥Ó¥¹¤Î¤½¤ì¤¾¤ì¤Ë¤Ä¤¤¤Æ ¤³¤ÎËܤǽñ¤«¤ì¤Æ¤¤¤ë¤³¤È¤ò¾Ò²ð¤·¤Þ¤¹¡£
¥×¥í¥»¥¹¤Ï¥¢¥É¥ì¥¹¶õ´Ö¾å¤Ç¤Î¥³¥ó¥È¥í¡¼¥ë¤Îή¤ì¤ò¹½À®¤·¤Þ¤¹¡£ À¸À®¤ä½ªÎ»¤ä¤½¤Î¾¤Î¥×¥í¥»¥¹¤ò¥³¥ó¥È¥í¡¼¥ë¤¹¤ë¤¿¤á¤Î»ÅÁÈ¤ß¤Ï 4 ¾Ï¤Ë½Ò¤Ù¤Þ¤¹¡£¥·¥¹¥Æ¥à¤Ï³Æ¥×¥í¥»¥¹¤Î¸ÄÊ̤β¾ÁÛ¥¢¥É¥ì¥¹¶õ´Ö¤ò ¿½Å²½¤·¤Þ¤¹¡£¤³¤Î¥á¥â¥ê´ÉÍý¤Ë¤Ä¤¤¤Æ¤Ï 5 ¾Ï¤ÇµÄÏÀ¤·¤Þ¤¹¡£
¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¥Ç¥Ð¥¤¥¹¤Ø¤Î¥æ¡¼¥¶¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï»÷¤Æ¤¤¤ë¤¿¤á¡¢ 6 ¾Ï¤Ç¤Ï¤½¤ì¤é¤Ë¶¦Ä̤¹¤ëÆÃħ¤Ë¤Ä¤¤¤ÆµÄÏÀ¤·¤Þ¤¹¡£ 7 ¾Ï¤ÇÀâÌÀ¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¤¬ÌÚ¹½Â¤¤Ë¤Ê¤Ã¤¿³¬ÁؤÇÁÈ¿¥¤µ¤ì¤¿Ì¾Á°ÉÕ¤¤Î¥Õ¥¡¥¤¥ë¤È¡¢ ¤½¤ì¤é¤ò°·¤¦¤¿¤á¤ÎÁàºî¤«¤é¤Ê¤ê¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤Ï¥Ç¥£¥¹¥¯¤Î¤è¤¦¤ÊʪÍýŪ¤Ê¥á¥Ç¥£¥¢¾å¤Ë¸ºß¤·¤Þ¤¹¡£ 4.4BSD ¤Ï¥Ç¥£¥¹¥¯¾å¤Î¥Ç¡¼¥¿ÇÛÃÖË¡¤ò¤¤¤¯¤Ä¤«¥µ¥Ý¡¼¥È¤·¤Æ¤ª¤ê¡¢ ¤½¤ì¤Ï 8 ¾Ï¤ÎÃæ¤Ç½Ò¤Ù¤Þ¤¹¡£ ±ó³Ö¥Þ¥·¥ó¾å¤Î¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤Ë¤Ä¤¤¤Æ¤Ï 9 ¾Ï¡¢ ¥·¥¹¥Æ¥à¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë»È¤ï¤ì¤Æ¤¤¤ëüËö¤È¤½¤Îưºî¤Ë¤Ä¤¤¤Æ¤Ï 10 ¾Ï¤Ç°·¤¤¤Þ¤¹¡£
UNIX ¤Ç¸Å¤¯¤«¤éÄ󶡤µ¤ì¤Æ¤¤¤ëÄÌ¿®µ¡¹½¤Ë¤Ï¡¢ ´ØÏ¢¤¹¤ë¥×¥í¥»¥¹´Ö¤Ë¤ª¤±¤ëñ½ã¤Ç¿®ÍêÀ¤Î¹â¤¤¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à (11.1 Àá¥Ñ¥¤¥×¤ò»²¾È)¤ª¤è¤Ó¡¢ Îã³°¥¤¥Ù¥ó¥È¤ÎÄÌÃÎ (4.7 À᥷¥°¥Ê¥ë¤ò»²¾È)¤¬¤¢¤ê¤Þ¤¹¡£ ¤Þ¤¿¡¢4.4BSD ¤ÏÈÆÍÑ¤Î¥×¥í¥»¥¹´ÖÄÌ¿®µ¡¹½¤âÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ 11 ¾Ï¤Ë½Ò¤Ù¤ë¤³¤ÎÄÌ¿®µ¡¹½¤Ï¡¢ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤â¤Î¤È¤Ï°Û¤Ê¤ë¥¢¥¯¥»¥¹µ¡¹½¤ò»ÈÍѤ·¤Æ¤¤¤Þ¤¹¤¬¡¢ °ìÅÙÀܳ¤¬³ÎΩ¤µ¤ì¤ì¤Ð¡¢ ¥×¥í¥»¥¹¤«¤é¤Ï¥Ñ¥¤¥×¤ÈƱ¤¸¤è¤¦¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ 12 ¾Ï¤Ç¤ÏÈÆÍѤΥͥåȥ¥¯ÄÌ¿®¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤Ë¤Ä¤¤¤Æ°·¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤ÏÄ̾IPC µ¡¹½¤Î²¼°Ì¥ì¥¤¥ä¤È¤·¤Æ»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î¤Ç¤¹¡£ 13 ¾Ï¤Ç¤Ï¡¢¤¢¤ëÆÃÄê¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤Î¼ÂÁõ¤Ë¤Ä¤¤¤Æ¾ÜºÙ¤Ë½Ò¤Ù¤Þ¤¹¡£
¤¤¤«¤Ê¤ë¼ÂºÝ¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¤â¡¢ ¤É¤Î¤è¤¦¤Ëµ¯Æ°¤¹¤ë¤«¤È¤¤¤¦¤è¤¦¤Ê±¿ÍѾå¤ÎÏÃÂ꤬¤¢¤ê¤Þ¤¹¡£ 14 ¾Ï¤Ç¤Ïµ¯Æ°»þ¤ä±¿ÍѾå¤ÎÏÃÂê¤Ë¤Ä¤¤¤Æ½Ò¤Ù¤Þ¤¹¡£
2.3 Àᤫ¤é 2.14 Àá¤Ï 3 ¾Ï¤«¤é 14 ¾Ï¤ÎÆâÍÆ¤ò¾Ò²ð¤¹¤ë¤â¤Î¤Ç¤¹¡£ ¤ï¤¿¤·¤¿¤Á¤ÏÍѸì¤òÄêµÁ¤·¡¢´ðËÜŪ¤Ê¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤Ä¤¤¤Æ°·¤¤¡¢ ³«È¯¤ÎÎò»Ë¤Ë¤Ä¤¤¤Æ²òÀ⤷¤Æ¤¤¤¤Þ¤¹¡£ ¤½¤·¤ÆºÇ¸å¤Ë¡¢Ãæ¿´¤È¤Ê¤Ã¤Æ¤¤¤ë¿ô¿¤¯¤ÎÀ߷פ¬¡¢ ¤É¤¦¤ä¤Ã¤ÆÁª¤Ð¤ì¤¿¤Î¤«¤È¤¤¤¦Íýͳ¤ò¼¨¤·¤Þ¤¹¡£
¥«¡¼¥Í¥ë ¤Ï¥×¥í¥Æ¥¯¥È¥â¡¼¥É¤Çưºî¤·¡¢ ¤¹¤Ù¤Æ¤Î¥æ¡¼¥¶¥×¥í¥°¥é¥à¤¬´ðËÜŪ¤Ê¥Ï¡¼¥É¥¦¥§¥¢ (¤¿¤È¤¨¤Ð CPU¡¢¥Ç¥£¥¹¥¯¡¢Ã¼Ëö¡¢¥Í¥Ã¥È¥ï¡¼¥¯Àܳµ¡´ï) ¤ª¤è¤Ó ¥½¥Õ¥È¥¦¥§¥¢¤ò¹½À®¤¹¤ë¤â¤Î (¤¿¤È¤¨¤Ð¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë) ¤Ø¤Î¥¢¥¯¥»¥¹¤ò²ò·è¤·¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¤Ï´ðÁÃŪ¤Ê¥·¥¹¥Æ¥à¤Îµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ ¤½¤ì¤Ï¥×¥í¥»¥¹¤òÀ¸À®¤·¤Æ´ÉÍý¤ò¹Ô¤¤¡¢¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤Î¥¢¥¯¥»¥¹µ¡Ç½¤ä ¥³¥ß¥å¥Ë¥±¡¼¥·¥ç¥óµ¡Ç½¤òÄ󶡤·¤Þ¤¹¡£ ¥·¥¹¥Æ¥à¥³¡¼¥ë ¤È¸Æ¤Ð¤ì¤ë¤³¤ì¤é¤Îµ¡Ç½¤Ï ¥é¥¤¥Ö¥é¥ê¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤È¤·¤Æ¥æ¡¼¥¶¥×¥í¥»¥¹¤Ë¸½¤ì¤Þ¤¹¡£ ¤³¤ì¤é¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥×¥í¥»¥¹¤¬¤³¤ì¤é¤Îµ¡Ç½¤ËÂФ·¤Æ»ý¤Ã¤Æ¤¤¤ë Í£°ì¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ç¤¹¡£ ¥·¥¹¥Æ¥à¥³¡¼¥ëµ¡¹½¤Î¾ÜºÙ¤Ï¡¢ ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¼Â¸½¤µ¤ì¤Æ¤¤¤ë¤â¤Î°Ê³°¤Î¡¢ ¤¤¤¯¤Ä¤«¤Î¥«¡¼¥Í¥ëÆâµ¡¹½¤òÀâÌÀ¤·¤¿ 3 ¾Ï¤Ç°·¤¤¤Þ¤¹¡£
½¾Íè¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ÎÍѸì¤Ë¤ª¤±¤ë ¥«¡¼¥Í¥ë ¤È¤Ï¡¢ ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë¥µ¡¼¥Ó¥¹¤òÄɲ乤ë¼ÂÁõ¤ò¹Ô¤¦¤¿¤á¤ËɬÍ×¤Ê ºÇ¾®¸Â¤Î»ÅÁȤߤÀ¤±¤òÄ󶡤¹¤ë¡¢ ¥½¥Õ¥È¥¦¥§¥¢¤Î¾®¤µ¤Ê³Ë¤È¤Ê¤ëÉôʬ¤Î¤³¤È¤Ç¤¹¡£ Ʊ»þÂå¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î¸¦µæ¡¢¤¿¤È¤¨¤Ð Chorus Rozier et al, 1988, Mach Accetta et al, 1986, Tunis Ewens et al, 1985, V Kernel Cheriton, 1988 ¤Ç¤Ï¡¢ ¤³¤Î¥«¡¼¥Í¥ë¤È¤¤¤¦µ¡Ç½¤Ë¤è¤ë¶èʬ¤¬¡¢¤µ¤é¤ËÏÀÍýŪ¤ËÊ£¿ô¤Ëʬ¤±¤é¤ì¤Æ¤¤¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ä¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë¤È¤¤¤Ã¤¿¥µ¡¼¥Ó¥¹¤Ï¡¢ ¤½¤Î³Ë¤â¤·¤¯¤Ï¥«¡¼¥Í¥ë¤ËÂФ¹¤ë¥¯¥é¥¤¥¢¥ó¥È¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤È¤·¤Æ ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
4.4BSD ¥«¡¼¥Í¥ë¤ÏÊ£¿ô¤Î¥×¥í¥»¥¹¤Ë¤Ïʬ³ä¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ¤³¤Î´ðËÜÀ߷פηèÄê¤Ï UNIX ¤ÎºÇ½é¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¹Ô¤ï¤ì¤Þ¤·¤¿¡£ Ken Thompson ¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤¿½é¤á¤Î 2 ¤Ä¤Î¼ÂÁõ¤Ç¤Ï ¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤¬¤Ê¤¯¡¢ ¥æ¡¼¥¶¤ª¤è¤Ó¥«¡¼¥Í¥ë¶õ´Ö¤Ï¥Ï¡¼¥É¥¦¥§¥¢¤Ë¤è¤ëʬΥ¤¬¹Ô¤Ê¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¤Ç¤·¤¿ Ritchie, 1988¡£ ¥á¥Ã¥»¡¼¥¸ÅÁ㥷¥¹¥Æ¥à¤Ï¡¢ ¼ÂºÝ¤Ë¼ÂÁõ¤µ¤ì¤¿¥«¡¼¥Í¥ë¤È¥æ¡¼¥¶¥×¥í¥»¥¹¤Î¥â¥Ç¥ë¤È Ʊ¤¸¤¯¤é¤¤Íưפ˼ÂÁõ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤·¤¿¡£ ñ½ã²½¤ÈÀǽ¤Î¤¿¤á¤Ë¥â¥Î¥ê¥·¥Ã¥¯¥«¡¼¥Í¥ë¤¬Áª¤Ð¤ì¤Þ¤·¤¿¡£ ¤Þ¤¿¡¢½é´ü¤Î¥«¡¼¥Í¥ë¤ÏÈó¾ï¤Ë¾®¤µ¤¤¤â¤Î¤Ç¤·¤¿¤¬¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯¤Î¤è¤¦¤Êµ¡Ç½¤¬Äɲ䵤ì¤ë¤³¤È¤Ç ¼¡Âè¤ËÂ礤¯¤Ê¤Ã¤Æ¤¤¤¤Þ¤·¤¿¡£ ¸½ºß¤Î¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Î¸¦µæ¤ÎºÇÀèü¤Ç¤Ï ¤½¤Î¤è¤¦¤Ê¥µ¡¼¥Ó¥¹¤ò¥æ¡¼¥¶¶õ´Ö¤ËÃÖ¤¯¤³¤È¤Ç ¥«¡¼¥Í¥ë¤ÎÂ礤µ¤ò¸º¤é¤½¤¦¤È¤¹¤ë·¹¸þ¤Ë¤¢¤ê¤Þ¤¹¡£
¥æ¡¼¥¶¤ÏÄ̾ ¥·¥§¥ë¤È¸Æ¤Ð¤ì¤ë ¥³¥Þ¥ó¥É¸À¸ì¥¤¥ó¥¿¥×¥ê¥¿¤ä¡¢ Äɲ䵤줿¥æ¡¼¥¶¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥à¤òÄ̤·¤Æ¥·¥¹¥Æ¥à¤ÈÂÐÏä·¤Þ¤¹¡£ ¤½¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤ä¥·¥§¥ë¤Ï¡¢¥×¥í¥»¥¹¤ò»È¤Ã¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤½¤ì¤é¤Î¥×¥í¥°¥é¥à¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï¤³¤ÎËܤÎÈϰϤòͤ¨¤Þ¤¹¤Î¤Ç¡¢ ¤³¤³¤Ç¤Ï¥«¡¼¥Í¥ë¤Ë¤Ä¤¤¤Æ¤Î¤ß¡¢¹Í¤¨¤ë¤³¤È¤Ë¤·¤Þ¤¹¡£
2.3 Àá¡¢2.4 Àá¤Ç¤Ï 4.4BSD ¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ë¥µ¡¼¥Ó¥¹¤äºÇ¶á¤ÎÀ߷פγµÍפˤĤ¤¤Æ°·¤¤¤Þ¤¹¡£ ¤½¤·¤Æ¸å¤Î¾Ï¤Ç¤Ï¡¢ 4.4BSD ¤Ë¸½¤ì¤ë¤½¤ì¤é¤Î¥µ¡¼¥Ó¥¹¤ÎÀ߷פȼÂÁõ¤Î¾ÜºÙ¤òÀâÌÀ¤·¤Þ¤¹¡£
¤³¤ÎÀá¤Ç¤Ï¡¢2 ¤Ä¤Î¦Ì̤«¤é 4.4BSD ¥«¡¼¥Í¥ë¤Î¹½À®¤ò¸«¤Æ¤¤¤¤Þ¤¹¡£
¥½¥Õ¥È¥¦¥§¥¢¤ÎÀÅŪ¦ÌÌ¡¢¤Ä¤Þ¤ê¥«¡¼¥Í¥ë¤ò¹½ÃÛ¤¹¤ë¤¿¤á¤Î¥â¥¸¥å¡¼¥ë ¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤¿µ¡Ç½À¤Ë¤è¤ëʬÎà
¤½¤ÎưŪ¤Êµ¡Ç½¡¢¤Ä¤Þ¤ê¥æ¡¼¥¶¤ËÄ󶡤µ¤ì¤ë¥µ¡¼¥Ó¥¹¤Ë¤è¤ëʬÎà
¥«¡¼¥Í¥ë¤ÎÂçÉôʬ¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÄ̤·¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤¬ ¥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Î¥·¥¹¥Æ¥à¥µ¡¼¥Ó¥¹¤ò¼ÂÁõ¤·¤Æ¤¤¤Þ¤¹¡£ 4.4BSD ¤Ç¤Ï¡¢¤³¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ï¼¡¤Î¤è¤¦¤Ê¹½À®¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
´ðÁÃŪ¤Ê¥«¡¼¥Í¥ëµ¡Ç½: ¥¿¥¤¥Þ¡¼¤ª¤è¤Ó¥·¥¹¥Æ¥à»þ·×¤Î¼è¤ê°·¤¤¡¢ µ½Ò»Ò´ÉÍý¡¢¤½¤·¤Æ¥×¥í¥»¥¹´ÉÍý
¥á¥â¥ê´ÉÍý¤Î¥µ¥Ý¡¼¥È: ¥Ú¡¼¥¸¥ó¥°¤È¥¹¥ï¥Ã¥Ô¥ó¥°
ÈÆÍѤΥ·¥¹¥Æ¥à¥¤¥ó¥¿¥Õ¥§¡¼¥¹: I/O¡¢¥³¥ó¥È¥í¡¼¥ë¡¢ µ½Ò»Ò¤Ë¤è¤Ã¤Æ¼Â¸½¤µ¤ì¤ë¿½Å²½Áàºî
¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à: ¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê¡¢¥Ñ¥¹Ì¾¤Î²ò¼á¡¢¥Õ¥¡¥¤¥ë¥í¥Ã¥¯¡¢ I/O ¥Ð¥Ã¥Õ¥¡´ÉÍý
üËö¤Î¼è¤ê°·¤¤¤Î¥µ¥Ý¡¼¥È: üËö¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥É¥é¥¤¥Ð¤È ¥é¥¤¥ó¥Ç¥£¥·¥×¥ê¥ó
¥×¥í¥»¥¹´ÖÄÌ¿®µ¡Ç½: ¥½¥±¥Ã¥È
¥Í¥Ã¥È¥ï¡¼¥¯ÄÌ¿®¤Ø¤ÎÂбþ: ·ÐÏ©À©¸æÅù¤ÎÄÌ¿®¥×¥í¥È¥³¥ë¡¢°ìÈÌŪ¤Ê¥Í¥Ã¥È¥ï¡¼¥¯µ¡Ç½
Table 2-1. 4.4BSD ¥«¡¼¥Í¥ë¤Ë¤ª¤±¤ëµ¡¼ïÈó°Í¸¤Ê¥½¥Õ¥È¥¦¥§¥¢
ʬÎà | ¥³¡¼¥É¹Ô¿ô | ¥«¡¼¥Í¥ëÆâ¤Ç¤Î³ä¹ç |
---|---|---|
¥Ø¥Ã¥À | 9,393 | 4.6 |
½é´ü²½Éôʬ | 1,107 | 0.6 |
¥«¡¼¥Í¥ë¤Îµ¡Ç½ | 8,793 | 4.4 |
ÈÆÍѤΥ¤¥ó¥¿¥Õ¥§¡¼¥¹ | 4,782 | 2.4 |
¥×¥í¥»¥¹´ÖÄÌ¿® | 4,540 | 2.2 |
üËö¤Î¼è¤ê°·¤¤ | 3,911 | 1.9 |
²¾ÁÛ¥á¥â¥ê | 11,813 | 5.8 |
vnode ´ÉÍý | 7,954 | 3.9 |
¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥Í¡¼¥ß¥ó¥° | 6,550 | 3.2 |
FFS | 4,365 | 2.2 |
¥í¥°¹½Â¤²½¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à | 4,337 | 2.1 |
¥á¥â¥ê¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à | 645 | 0.3 |
cd9660 ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à | 4,177 | 2.1 |
¤½¤Î¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (10) | 12,695 | 6.3 |
¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à | 17,199 | 8.5 |
¥Í¥Ã¥È¥ï¡¼¥¯ÄÌ¿® | 8,630 | 4.3 |
¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥×¥í¥È¥³¥ë | 11,984 | 5.9 |
ISO ¥×¥í¥È¥³¥ë | 23,924 | 11.8 |
X.25 ¥×¥í¥È¥³¥ë | 10,626 | 5.3 |
XNS ¥×¥í¥È¥³¥ë | 5,192 | 2.6 |
µ¡¼ïÈó°Í¸Éôʬ¤ÎÁí·× | 162,617 | 80.4 |
¤³¤ì¤é¤Î¥«¥Æ¥´¥ê¤Î¥½¥Õ¥È¥¦¥§¥¢¤Î¤Û¤È¤ó¤É¤Ïµ¡¼ïÈó°Í¸¤Ç¤¢¤ê¡¢¤·¤«¤â °Û¤Ê¤ë¥Ï¡¼¥É¥¦¥§¥¢¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ë°Ü¿¢¤Ç¤¤ë¤â¤Î¤Ç¤¹¡£
¥«¡¼¥Í¥ë¤Îµ¡¼ï°Í¸Éôʬ¤ÏËÜή¤Î¥³¡¼¥É¤«¤éʬΥ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ÆÃ¤Ë¡¢µ¡¼ï°Í¸¤·¤Æ¤¤¤ë¥³¡¼¥É¤Î¤É¤ì¤ò¼è¤Ã¤Æ¤â¡¢ ÆÃÄê¤Î¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Î¤¿¤á¤Î¥³¡¼¥É¤ò´Þ¤ó¤Ç¤¤¤Þ¤»¤ó¡£ µ¡¼ï¤Ë°Í¸¤¹¤ëµ¡Ç½¤¬É¬ÍפʤȤ¤Ë¤Ï¡¢µ¡¼ï¤Ë°Í¸¤·¤Ê¤¤¥³¡¼¥É¤Ï µ¡¼ï°Í¸¤Î¥³¡¼¥ÉÆâ¤Ë¤¢¤ë¥¢¡¼¥¥Æ¥¯¥Á¥ã°Í¸¤Î´Ø¿ô¤ò¸Æ¤Ó½Ð¤·¤Þ¤¹¡£ µ¡¼ï°Í¸¤Ç¤¢¤ë¥½¥Õ¥È¥¦¥§¥¢¤Ï¼¡¤Î¤â¤Î¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£
Äã¥ì¥Ù¥ë¤Ê¥·¥¹¥Æ¥àµ¯Æ°¤Î¤¿¤á¤Îưºî
¥È¥é¥Ã¥×¤ª¤è¤Ó¥Õ¥©¡¼¥ë¥È¤Î°·¤¤
¥×¥í¥»¥¹¤Îưºî¾õÂ֤˴ؤ¹¤ëÄã¥ì¥Ù¥ë¤ÊÁàºî
¥Ï¡¼¥É¥¦¥§¥¢¥Ç¥Ð¥¤¥¹¤ÎÀßÄê¤È½é´ü²½
I/O ¥Ç¥Ð¥¤¥¹¤Î¥é¥ó¥¿¥¤¥à¥µ¥Ý¡¼¥È
Table 2-2. 4.4BSD ¥«¡¼¥Í¥ëÆâ¤Ë¤¢¤ë HP300 ÍѤε¡¼ï°Í¸Éôʬ
ʬÎà | ¥³¡¼¥É¹Ô¿ô | ¥«¡¼¥Í¥ëÆâ¤Ç¤Î³ä¹ç |
---|---|---|
µ¡¼ï°Í¸Éôʬ¤Î¥Ø¥Ã¥À | 1,562 | 0.8 |
¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Î¥Ø¥Ã¥À | 3,495 | 1.7 |
¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Î¥½¡¼¥¹¥³¡¼¥É | 17,506 | 8.7 |
²¾ÁÛ¥á¥â¥ê | 3,087 | 1.5 |
¾¤Îµ¡¼ï°Í¸Éôʬ | 6,287 | 3.1 |
¥¢¥»¥ó¥Ö¥ê¸À¸ì¤Ç½ñ¤«¤ì¤¿¥ë¡¼¥Á¥ó | 3,014 | 1.5 |
HP/UX ¸ß´¹µ¡Ç½ | 4,683 | 2.3 |
µ¡¼ï°Í¸Éôʬ¤ÎÁí·× | 39,634 | 19.6 |
Table 2-1 ¤Ï HP300 ÍÑ 4.4BSD ¥«¡¼¥Í¥ë¤ò¹½À®¤¹¤ë¥½¥Õ¥È¥¦¥§¥¢¤Î¤¦¤Á¡¢ µ¡¼ïÈó°Í¸¤ÎÉôʬ¤ò¤Þ¤È¤á¤¿¤â¤Î¤Ç¤¹¡£ 2 ÎóÌܤοôÃÍ¤Ï C ¸À¸ì¤Î¥½¡¼¥¹¥³¡¼¥É¡¢¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¡¢¤½¤·¤Æ ¥¢¥»¥ó¥Ö¥ê¸À¸ì¤Î¤â¤Î¤òɽ¤·¤Æ¤ª¤ê¡¢ ¥¢¥»¥ó¥Ö¥ê¸À¸ì¤Î¤â¤Î¤Ï 2% °Ê²¼¤·¤«¤¢¤ê¤Þ¤»¤ó¡£ ¤Þ¤¿¡¢Table 2-2 ¤ÎÅý·×¤¬¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ µ¡¼ï°Í¸¤Î¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¢HP/UX ¤ä¥Ç¥Ð¥¤¥¹¥µ¥Ý¡¼¥È¤ò½ü¤¤¤Æ¡¢ ¥«¡¼¥Í¥ë¤Î¤¦¤Á¤ï¤º¤«¤Ë 6.9% ¤·¤«¤¢¤ê¤Þ¤»¤ó¡£
¥«¡¼¥Í¥ë¤Î¤´¤¯¾®¤µ¤ÊÉôʬ¤À¤±¤¬¥·¥¹¥Æ¥à¤Î½é´ü²½¤ËÀìǰ¤·¤Þ¤¹¡£ ¤³¤Î¥³¡¼¥É¤Ï¥·¥¹¥Æ¥à¤¬ µ¯Æ°¤¹¤ë ¤È¤¤ËÍѤ¤¤é¤ì¡¢ ¥«¡¼¥Í¥ë¤¬¥Ï¡¼¥É¥¦¥§¥¢¤ä¥½¥Õ¥È¥¦¥§¥¢¤Î´Ä¶¹½ÃÛ¤ò¤¹¤ë¤¿¤á¤Î´ðËÜÉôʬ¤È ¤Ê¤ê¤Þ¤¹ (14 ¾Ï»²¾È)¡£ (À©¸Â¤µ¤ì¤¿ÊªÍý¥á¥â¥ê¤ò»ý¤Ä¤â¤Î¤Ë¤ÏÆÃ¤Ë) ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤ÎÃæ¤Ë¤Ï ¤³¤ì¤é¤Îµ¡Ç½¤¬¼Â¹Ô¤µ¤ì¤¿¸å¤Ë¤½¤Î¥½¥Õ¥È¥¦¥§¥¢¤òÇÑ´þ¤·¤Æ¤·¤Þ¤¦¤«¡¢ ¾å¤«¤éʤ¤Ã¤Æ¤·¤Þ¤¦ ¤â¤Î¤â¤¢¤ê¤Þ¤¹¡£ 4.4BSD ¥«¡¼¥Í¥ë¤Ï¡¢µ¯Æ°¤¹¤ë¤¿¤á¤ËÍפ·¤¿¥³¡¼¥É¤Î¤¿¤á¤Î¥á¥â¥ê¤òºÆÍøÍѤ·¤Þ¤»¤ó¡£ ¤½¤ì¤ÏÄ̾ï¤Îµ¡¼ï¤Ç¤Ï¥«¡¼¥Í¥ë¤Î¥ê¥½¡¼¥¹¤Î¤¦¤Á 0.5% ¤Ë²á¤®¤Ê¤¤¤«¤é¤Ç¤¹¡£ ¤½¤·¤Æ¡¢µ¯Æ°¤Î¤¿¤á¤Î¥³¡¼¥É¤Ï¥«¡¼¥Í¥ë¤ÎÃæ¤Î°ìÉôʬ¤Ë¸Ç¤Þ¤Ã¤Æ¤Ï¤¤¤Þ¤»¤ó¡£ ¤½¤ì¤ÏÁ´ÂΤˤ錄¤Ã¤Æ»¶ºß¤·¤Æ¤ª¤ê¡¢½é´ü²½¤µ¤ì¤¿¤È¤¤ËÏÀÍýŪ¤Ë´ØÏ¢¤·¤Æ¤¤¤¿ ¾ì½ê¤Ë¸ºß¤·¤Þ¤¹¡£
¥«¡¼¥Í¥ë¥ì¥Ù¥ë¥³¡¼¥É¤È¥æ¡¼¥¶¥ì¥Ù¥ë¥³¡¼¥É¤Î´Ö¤Î¶³¦¤Ï¡¢ ´ðÈפȤʤë¥Ï¡¼¥É¥¦¥§¥¢¤ÇÄ󶡤µ¤ì¤ë¥Ï¡¼¥É¥¦¥§¥¢¥ì¥Ù¥ë¤ÎÊݸǽ¤Ë¤è¤Ã¤Æ ʬΥ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¤Ï¡¢¥æ¡¼¥¶¥×¥í¥»¥¹¤Ë¤È¤Ã¤Æ¥¢¥¯¥»¥¹¤·¤Ë¤¯¤¤ÀÚ¤êÎ¥¤µ¤ì¤¿ ¥¢¥É¥ì¥¹¶õ´Ö¤Çºîư¤·¤Þ¤¹¡£ÆÃ¸¢¤Î¤¢¤ëÁàºî -- ¤¿¤È¤¨¤Ð I/O ¤Î³«»Ï¤äÃæ±û½èÍýÁõÃÖ (CPU) ¤ÎÄä»ß -- ¤Ï¡¢¥«¡¼¥Í¥ë¤À¤±¤¬ÍøÍѲÄǽ¤Ç¤¹¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤Æ¥«¡¼¥Í¥ë¤Ë ¥µ¡¼¥Ó¥¹¤òÍ׵ᤷ¤Þ¤¹¡£¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÏÆó¼¡µ²±ÁõÃ֤˥ǡ¼¥¿¤ò ½ñ¤¹þ¤à¤è¤¦¤ÊÊ£»¨¤Êºî¶È¤ä¡¢¸½ºß¤ÎÆü»þ¤òÊÖ¤¹¤è¤¦¤Êñ½ã¤Êºî¶È¤ò ¥«¡¼¥Í¥ë¤Ë¼Â¹Ô¤µ¤»¤ë¤¿¤á¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤«¤é¤Ï¡¢ ¤¹¤Ù¤Æ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Æ±´üŪ¤Ë¼Â¹Ô¤¹¤ë¤è¤¦¤Ë¸«¤¨¤Þ¤¹¡£ ¤Ä¤Þ¤ê¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥«¡¼¥Í¥ë¤¬¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë´ØÏ¢¤·¤¿ ưºî¤ò¤·¤Æ¤¤¤ë¤È¤¤Ë¤ÏÄä»ß¤·¤Æ¤¤¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ëÁàºî¤Î°ìÉô¤ò¡¢ ¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Ìá¤Ã¤¿¸å¤Ë´°Î»¤¹¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð write ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ ¥×¥í¥»¥¹¤¬ÂԤäƤ¤¤ë´Ö¤Ë½ñ¤¹þ¤à¥Ç¡¼¥¿¤ò¥æ¡¼¥¶¥×¥í¥»¥¹¤«¤é¥«¡¼¥Í¥ë¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤·¤Þ¤¹¤¬¡¢ Ä̾¤½¤Î¥«¡¼¥Í¥ë¥Ð¥Ã¥Õ¥¡¤¬¥Ç¥£¥¹¥¯¤Ë½ñ¤¹þ¤Þ¤ì¤ëÁ°¤Ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤«¤éÌá¤ê¤Þ¤¹¡£
Ä̾¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï CPU ¤Î¼Â¹Ô¥â¡¼¥É¤ª¤è¤Ó¸½ºß¤Î¥¢¥É¥ì¥¹¶õ´Ö¥Þ¥Ã¥Ô¥ó¥°¤òÊѹ¹¤¹¤ë ¥Ï¡¼¥É¥¦¥§¥¢¥È¥é¥Ã¥×¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥æ¡¼¥¶¤Ë¤è¤Ã¤ÆÍ¿¤¨¤é¤ì¤¿¥·¥¹¥Æ¥à¥³¡¼¥ëÃæ¤Î¥Ñ¥é¥á¡¼¥¿¤Ï¡¢ »ÈÍѤµ¤ì¤ëÁ°¤Ë¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¸¡¾Ú¤µ¤ì¤Þ¤¹¡£ ¤½¤Î¤è¤¦¤Ê¥Á¥§¥Ã¥¯¤Ï¥·¥¹¥Æ¥à¤Î´°Á´À¤òÊݾڤ·¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¤ØÅϤµ¤ì¤¿¥Ñ¥é¥á¡¼¥¿¤Ï¤¹¤Ù¤Æ¥«¡¼¥Í¥ë¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÉûºîÍѤˤè¤ê¸¡¾Ú¤µ¤ì¤¿¥Ñ¥é¥á¡¼¥¿¤¬ Êѹ¹¤µ¤ì¤Ê¤¤¤³¤È¤òÊݾڤ¹¤ë¤¿¤á¤Ç¤¹¡£ ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÌá¤êÃͤϡ¢¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¥Ï¡¼¥É¥¦¥§¥¢¥ì¥¸¥¹¥¿Ãæ¤ËÊÖ¤µ¤ì¤ë¤«¡¢ ¤¢¤ë¤¤¤Ï¥æ¡¼¥¶¤¬»ØÄꤷ¤¿¥á¥â¥ê¥¢¥É¥ì¥¹¤Ë¥³¥Ô¡¼¤µ¤ì¤ëÃͤÇÊÖ¤µ¤ì¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¤ØÅϤµ¤ì¤¿¥Ñ¥é¥á¡¼¥¿¤Î¤è¤¦¤Ë ·ë²Ì¤òÌ᤹¤¿¤á¤Ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¤Ï¡¢ ¤½¤ì¤é¤¬³Î¼Â¤Ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î°ìÉô¤Ç¤¢¤ë¡¢ ¤È¤¤¤¦¤³¤È¤¬¸¡¾Ú¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò½èÍý¤¹¤ë´Ö¤Ë¥«¡¼¥Í¥ë¤¬¥¨¥é¡¼¤ËÁø¶ø¤·¤¿¾ì¹ç¡¢¥«¡¼¥Í¥ë¤Ï ¥æ¡¼¥¶¤Ë¥¨¥é¡¼¥³¡¼¥É¤òÊÖ¤·¤Þ¤¹¡£ C ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ì¤Ë¤ª¤¤¤Æ¤Ï¡¢¤³¤Î¥¨¥é¡¼¥³¡¼¥É¤¬Âç°èÊÑ¿ô errno¤Ë³ÊǼ¤µ¤ì¤Þ¤¹¡£¤Þ¤¿¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò ¼Â¹Ô¤·¤¿´Ø¿ô¤Ï -1 ¤ÎÃͤòÊÖ¤·¤Þ¤¹¡£
¥æ¡¼¥¶¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤È¥«¡¼¥Í¥ë¤Ï¡¢¸ß¤¤¤ËÆÈΩ¤·¤ÆÆ°ºî¤·¤Þ¤¹¡£ 4.4BSD ¤Ï I/O ¥³¥ó¥È¥í¡¼¥ë¥Ö¥í¥Ã¥¯¤ä¡¢ ¥ª¥Ú¥ì¡¼¥Æ¥£¥ó¥°¥·¥¹¥Æ¥à¤Ë´ØÏ¢¤¹¤ë¤½¤Î¾¤Î¥Ç¡¼¥¿¹½Â¤ÂΤò ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë³ÊǼ¤·¤Þ¤»¤ó¡£ ¥æ¡¼¥¶¥ì¥Ù¥ë¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¤½¤ì¤¾¤ì¡¢ ¼Â¹Ô¤Î¤¿¤á¤ÎÆÈΩ¤·¤¿¥¢¥É¥ì¥¹¶õ´Ö¤òÄ󶡤µ¤ì¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¤Ï¡¢¤¿¤È¤¨¤ÐÊÌ¤Î¥×¥í¥»¥¹¤¬Áö¤Ã¤Æ¤¤¤ë´Ö¤½¤Î¥×¥í¥»¥¹¤òÄä»ß¤µ¤»¡¢ ´Ø·¸¤¹¤ë¥×¥í¥»¥¹¤Ë¸«¤¨¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤È¤¤¤¦¤è¤¦¤Ê¡¢ ¾õÂÖÊѹ¹¤Î¤Û¤È¤ó¤É¤ò¼Â¸½¤·¤Æ¤¤¤Þ¤¹¡£
4.4BSD ¤Ï¥Þ¥ë¥Á¥¿¥¹¥¯´Ä¶¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ ¼Â¹Ô¤µ¤ì¤¿¤½¤ì¤¾¤ì¤Î¥¿¥¹¥¯¤Þ¤¿¤Ï¥¹¥ì¥Ã¥É¤Ï ¥×¥í¥»¥¹¤È¸Æ¤Ð¤ì¤Æ¤¤¤Þ¤¹¡£ 4.4BSD ¤Î¥×¥í¥»¥¹¤Î¥³¥ó¥Æ¥¥¹¥È¤Ï¡¢ ¥¢¥É¥ì¥¹¶õ´Ö¤ÎÆâÍÆ¤È¥é¥ó¥¿¥¤¥à´Ä¶¤ò´Þ¤à¥æ¡¼¥¶¥ì¥Ù¥ë¤Î¾õÂ֤ȡ¢ ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤Î¥Ñ¥é¥á¡¼¥¿¤ä¥ê¥½¡¼¥¹À©¸æ¡¢¼±Ê̾ðÊó¤ò´Þ¤à ¥«¡¼¥Í¥ë¥ì¥Ù¥ë¤Î¾õÂÖ¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥³¥ó¥Æ¥¥¹¥È¤Ë¤Ï¥«¡¼¥Í¥ë¤¬¥×¥í¥»¥¹¤Ë¥µ¡¼¥Ó¥¹¤ò Ä󶡤¹¤ëºÝ¤Ë»ÈÍѤ¹¤ë¤¹¤Ù¤Æ¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥æ¡¼¥¶¤Ï¥×¥í¥»¥¹¤òÀ¸À®¤·¡¢¤½¤Î¼Â¹Ô¤òÀ©¸æ¤·¡¢ ¥×¥í¥»¥¹¤Î¼Â¹Ô¾õÂÖ¤¬ÊѲ½¤·¤¿¤È¤¤ËÄÌÃΤò¼õ¤±¼è¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤Ë¤Ï¥×¥í¥»¥¹ ID (PID) ¤È¸Æ¤Ð¤ì¤ë°ì°Õ¤ÎÃͤ¬³ä¤êÅö¤Æ¤é¤ì¤Þ¤¹¡£ ¤³¤ÎÃͤϥ«¡¼¥Í¥ë¤¬¥æ¡¼¥¶¤Ë¼Â¹Ô¾õÂÖ¤ÎÊѲ½¤òÊó¹ð¤¹¤ë¤È¤¤Ë¥×¥í¥»¥¹¤Î¿È¸µ¤ò³Îǧ¤·¤¿¤ê¡¢ ¥æ¡¼¥¶¤¬¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Ë»²¾È¤¹¤ëºÝ¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£
¥«¡¼¥Í¥ë¤Ï¾¤Î¥×¥í¥»¥¹¤Î¥³¥ó¥Æ¥¥¹¥È¤òÊ£À½¤·¤Æ¥×¥í¥»¥¹¤òÀ¸À®¤·¤Þ¤¹¡£ ¿·¤·¤¯À¸À®¤µ¤ì¤¿¥×¥í¥»¥¹¤ò ¸µ¤Î¿Æ¥×¥í¥»¥¹¤Î »Ò¥×¥í¥»¥¹¤È¸Æ¤Ó¤Þ¤¹¡£ ¥×¥í¥»¥¹À¸À®»þ¤ËÊ£À½¤µ¤ì¤¿¥³¥ó¥Æ¥¥¹¥È¤Ï¡¢¥æ¡¼¥¶¥ì¥Ù¥ë¤Î¥×¥í¥»¥¹¤Î¼Â¹Ô¾õÂÖ¤È ¥«¡¼¥Í¥ë¤¬´ÉÍý¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Î¥·¥¹¥Æ¥à¾õÂÖ¤ÎξÊý¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¤Î¾õÂ֤˴ؤ¹¤ë½ÅÍפʹ½À®Í×ÁǤˤĤ¤¤Æ¤Ï¡¢4 ¾Ï¤Ç²òÀ⤷¤Æ¤¤¤Þ¤¹¡£
Figure 2-1¤Ç¤Ï¥×¥í¥»¥¹¤Î¥é¥¤¥Õ¥µ¥¤¥¯¥ë¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£ ¥×¥í¥»¥¹¤Ï fork ¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤Æ¡¢ ¸µ¤Î¥×¥í¥»¥¹¤Î¥³¥Ô¡¼¤È¤·¤Æ¿·¤·¤¤¥×¥í¥»¥¹¤òÀ¸À®¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ fork ¤Ï¸Æ¤Ó½Ð¤µ¤ì¤ë¤È ÆóÅÙÌá¤ê¤Þ¤¹¡£°ìÊý¤Ï¿Æ¥×¥í¥»¥¹¤Ë»Ò¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤òÊÖ¤·¡¢ ¤â¤¦°ìÊý¤Ï»Ò¥×¥í¥»¥¹¤Ë 0 ¤òÊÖ¤·¤Þ¤¹¡£ ¥×¥í¥»¥¹¤Î¿Æ»Ò´Ø·¸¤Ï¥·¥¹¥Æ¥à¾å¤Î¥×¥í¥»¥¹¤ÎÁȤ˳¬Áع½Â¤¤ò¤â¤¿¤é¤·¤Þ¤¹¡£ ¿·¤·¤¯À¸À®¤µ¤ì¤¿¥×¥í¥»¥¹¤Ï¥Õ¥¡¥¤¥ëµ½Ò»Ò¤ä¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Î¾õÂÖ¡¢ ¥á¥â¥ê¥ì¥¤¥¢¥¦¥È¤Î¤è¤¦¤Ê¿Æ¤¬»ý¤Ã¤Æ¤¤¤ë¥ê¥½¡¼¥¹¤¹¤Ù¤Æ¤ò¶¦Í¤·¤Þ¤¹¡£
¿Æ¤Î¥³¥Ô¡¼¤È¤·¤ÆÀ¸À®¤µ¤ì¤¿¿·¤·¤¤¥×¥í¥»¥¹¤Ç¤¢¤Ã¤Æ¤â¡¢ ÊÌ¤Î¥×¥í¥°¥é¥à¤ò¥í¡¼¥É¤·¼Â¹Ô¤¹¤ë¤³¤È¤Ç¤è¤êÊØÍø¤ÇÆÃÍ¤ÎÆ°ºî¤ò¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£ ¥×¥í¥»¥¹¤Ï execve ¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤ë¤³¤È¤Ç¡¢ ÊÌ¤Î¥×¥í¥°¥é¥à¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤Ç¼«Ê¬¼«¿È¤ò¾å½ñ¤¤·¤Æ¡¢ ¿·¤·¤¤°ú¿ô¤ÎÁȤò¤½¤Î¿·¤·¤¯ºîÀ®¤·¤¿¥¤¥á¡¼¥¸¤Ë°ú¤ÅϤ¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ °ú¿ô¤Î°ì¤Ä¤Ï¡¢¥·¥¹¥Æ¥à¤Çǧ¼±¤µ¤ì¤ë¥Õ¥©¡¼¥Þ¥Ã¥È (¥Ð¥¤¥Ê¥ê¼Â¹Ô¥Õ¥¡¥¤¥ë¤ä»ØÄꤵ¤ì¤¿¥¤¥ó¥¿¥×¥ê¥¿¥×¥í¥°¥é¥à¤Îµ¯Æ°¤òÂ¥¤¹¥Õ¥¡¥¤¥ë) ¤ò¤·¤¿¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¹¡£
¥×¥í¥»¥¹¤Ï exit ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¼Â¹Ô¤¹¤ë¤³¤È¤Ç¡¢ ¿Æ¥×¥í¥»¥¹¤Ë 8 ¥Ó¥Ã¥È¤Î exit ¥¹¥Æ¡¼¥¿¥¹¤òÁ÷¿®¤·¤Æ½ªÎ»¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤â¤·¥×¥í¥»¥¹¤¬ 1 ¥Ð¥¤¥È°Ê¾å¤Î¾ðÊó¤ò¿Æ¥×¥í¥»¥¹¤ËÅÁ¤¨¤¿¤¤¾ì¹ç¤Ë¤Ï¡¢ ¥Ñ¥¤¥×¤ä¥½¥±¥Ã¥È¡¢¤Þ¤¿¤ÏÃç²ð¥Õ¥¡¥¤¥ë¤òÍѤ¤¤Æ ¥×¥í¥»¥¹´ÖÄÌ¿®¥Á¥ã¥Í¥ë¤ò¥»¥Ã¥È¥¢¥Ã¥×¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¥×¥í¥»¥¹´ÖÄÌ¿®¤Ë¤Ä¤¤¤Æ¤Ï 11 ¾Ï¤ÇÂ礤¯¼è¤ê¾å¤²¤Æ¤¤¤Þ¤¹¡£
¥×¥í¥»¥¹¤Ï¡¢wait ¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍѤ¤¤Æ »Ò¥×¥í¥»¥¹¤Î¤¤¤º¤ì¤«¤¬½ªÎ»¤¹¤ë¤Þ¤Ç¼Â¹Ô¤òÃæÃǤ¹¤ë¤³¤È¤¬¤Ç¤¡¢ wait ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï½ªÎ»¤·¤¿»Ò¥×¥í¥»¥¹¤Î PID ¤È½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤òÊÖ¤·¤Þ¤¹¡£ ¿Æ¥×¥í¥»¥¹¤Ï¡¢»Ò¥×¥í¥»¥¹¤¬½ªÎ»¤Þ¤¿¤Ï°Û¾ï½ªÎ»¤·¤¿¤È¤¤Î¥·¥°¥Ê¥ë¤Ë¤è¤ëÄÌÃΤΤµ¤ìÊý¤òÄ´À°¤Ç¤¤Þ¤¹¡£ wait4 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ¹¤ë¤³¤È¤Ç¡¢ ¿Æ¥×¥í¥»¥¹¤Ï»Ò¥×¥í¥»¥¹¤Î½ªÎ»¤ò°ú¤µ¯¤³¤·¤¿¥¤¥Ù¥ó¥È¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤È¡¢ »Ò¥×¥í¥»¥¹¤¬À¸Â¸´ü´Ö¤Î´Ö¤Ë¾ÃÈñ¤·¤¿¥ê¥½¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤â¤·¿Æ¥×¥í¥»¥¹¤¬Àè¤Ë½ªÎ»¤·¤¿¤¿¤á¤Ë¥ê¥½¡¼¥¹¤¬¥ª¡¼¥Õ¥¡¥ó¥É (¿Æ¤Î¤Ê¤¤¾õÂÖ) ¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¡¢¥«¡¼¥Í¥ë¤Ï init ¤È¤¤¤¦ÆÃÊÌ¤Ê¥×¥í¥»¥¹¤Ë¤½¤Î»Ò¥×¥í¥»¥¹¤Î ½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤¬ÅϤµ¤ì¤ë¤è¤¦Ä´À°¤·¤Þ¤¹¡£¤³¤ì¤Ë¤Ä¤¤¤Æ¤Ï 3.1 Àᤪ¤è¤Ó 14.6 Àá¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£
5 ¾Ï¤Ç¤Ï¡¢¥«¡¼¥Í¥ë¤¬¤É¤Î¤è¤¦¤Ë¤·¤Æ¥×¥í¥»¥¹¤òÀ¸À®¤· ¾ÃÌǤµ¤»¤ë¤«¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤ò½Ò¤Ù¤Æ¤¤¤Þ¤¹¡£
¥×¥í¥»¥¹¤Ï¥×¥í¥»¥¹Í¥ÀèÅ٤Ȥ¤¤¦¥Ñ¥é¥á¡¼¥¿¤Ë½¾¤Ã¤Æ ¼Â¹Ô¤ò¥¹¥±¥¸¥å¡¼¥ë¤µ¤ì¤Þ¤¹¡£ ¤³¤ÎÍ¥ÀèÅ٤ϥ«¡¼¥Í¥ë¥Ù¡¼¥¹¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥¢¥ë¥´¥ê¥º¥à¤Ë¤è¤Ã¤Æ´ÉÍý¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¤ÎÍ¥ÀèÅÙÁ´ÂΤ˽ŤߤŤ±¤¹¤ëÆÃÊ̤ʥѥé¥á¡¼¥¿ (nice) ¤Ë¤è¤Ã¤Æ¡¢¥æ¡¼¥¶¤Ï¥×¥í¥»¥¹¤Î¼Â¹ÔÍ¥ÀèÅ٤˱ƶÁ¤òÍ¿¤¨¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¤¬¡¢ ¥«¡¼¥Í¥ë¤Î¥¹¥±¥¸¥å¡¼¥ê¥ó¥°¥Ý¥ê¥·¤Ë½¾¤Ã¤Æ¡¢´ðËܤȤʤë CPU ¥ê¥½¡¼¥¹¤ò¶¦Í¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
¥·¥¹¥Æ¥à¤Ï¥×¥í¥»¥¹¤ËÁ÷¤ë¤³¤È¤¬¤Ç¤¤ë ¥·¥°¥Ê¥ë¤Î¥»¥Ã¥È¤òÄêµÁ¤·¤Æ¤¤¤Þ¤¹¡£ 4.4BSD ¤Ë¤ª¤±¤ë¥·¥°¥Ê¥ë¤Ï¥Ï¡¼¥É¥¦¥§¥¢³ä¤ê¹þ¤ß¤ò¥â¥Ç¥ë¤È¤·¤Æ¤¤¤Þ¤¹¡£ ¥×¥í¥»¥¹¤Ï¥æ¡¼¥¶¥ì¥Ù¥ë¤Î¥µ¥Ö¥ë¡¼¥Á¥ó¤ò¥·¥°¥Ê¥ë¤¬Á÷¤é¤ì¤ë¤Ù¤ ¥Ï¥ó¥É¥é¤È¤·¤Æ»ØÄê¤Ç¤¤Þ¤¹¡£ ¥·¥°¥Ê¥ë¤¬È¯À¸¤·¤Æ¡¢¤½¤ì¤¬¥Ï¥ó¥É¥é¤Ë¤è¤Ã¤ÆÊ᪤µ¤ì¤Æ¤¤¤ë´Ö¤Ï ¤µ¤é¤Ê¤ë¥·¥°¥Ê¥ë¤ÎȯÀ¸¤Ï¥Ö¥í¥Ã¥¯¤µ¤ì¤Þ¤¹¡£ ¥·¥°¥Ê¥ë¤òÊ᪤¹¤ë¤³¤È¤Ç¡¢¸½ºß¤Î¥×¥í¥»¥¹¤Î¥³¥ó¥Æ¥¥¹¥È¤òÊݸ¤·¡¢ ¥Ï¥ó¥É¥é¤ò¼Â¹Ô¤¹¤ë¤¿¤á¤Î¿·¤¿¤Ê¥³¥ó¥Æ¥¥¹¥È¤ò¹½ÃÛ¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥·¥°¥Ê¥ë¤¬¥Ï¥ó¥É¥é¤ËÅÁ¤ï¤ë¤È¡¢¤½¤Î¥Ï¥ó¥É¥é¤Ï¥×¥í¥»¥¹¤ò¥¢¥Ü¡¼¥È¤µ¤»¤¿¤ê¡¢ (¤ª¤½¤é¤¯Âç°èÊÑ¿ô¤ËÃͤòÀßÄꤷ¤¿¸å¤Ç) ¼Â¹ÔÃæ¤Î¥×¥í¥»¥¹¤ËÌá¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£ ¥Ï¥ó¥É¥é¤«¤éÌá¤ë¤È¡¢¤½¤Î¥·¥°¥Ê¥ë¤Ï¥Ö¥í¥Ã¥¯¤µ¤ì¤Ê¤¯¤Ê¤ê¡¢ ȯÀ¸¤¹¤ë (¤½¤·¤ÆÊ᪤µ¤ì¤ë) ¤³¤È¤¬ºÆ¤Ó²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£
¤Þ¤¿¡¢¥×¥í¥»¥¹¤Ï¥·¥°¥Ê¥ë¤ò̵»ë¤¹¤ë¤³¤È¤ä¡¢ ¥«¡¼¥Í¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥Ç¥Õ¥©¥ë¥È¤Îưºî¤ò¹Ô¤Ê¤¦¤è¤¦¤Ë»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤¢¤ë¼ï¤Î¥·¥°¥Ê¥ë¤Î¥Ç¥Õ¥©¥ë¥È¤Ç¤Îưºî¤Ï¥×¥í¥»¥¹¤ò½ªÎ»¤µ¤»¤ë¤³¤È¤Ç¤¹¡£ ¤³¤Î¤è¤¦¤Ê¾ì¹ç¤Î½ªÎ»¤Ï¡¢»ö¸å¤Î¥Ç¥Ð¥Ã¥°¤Ë»ÈÍѤǤ¤ë¤è¤¦¤Ë¤½¤Î»þ¤Î¥×¥í¥»¥¹¤Î¥á¥â¥ê¥¤¥á¡¼¥¸¤ò´Þ¤ó¤À ¥³¥¢¥Õ¥¡¥¤¥ë¤ÎÀ¸À®¤òȼ¤¤¤Þ¤¹¡£
¤¤¤¯¤Ä¤«¤Î¥·¥°¥Ê¥ë¤ÏÊ᪤¹¤ë¤³¤È¤â̵»ë¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤»¤ó¡£ ¤½¤Î¥·¥°¥Ê¥ë¤Ï¡¢Ë½Áö¤·¤¿¥×¥í¥»¥¹¤òÄä»ß¤µ¤»¤ë SIGKILL ¤ä¡¢ ¥¸¥ç¥Ö¥³¥ó¥È¥í¡¼¥ë¥·¥°¥Ê¥ë¤Ç¤¢¤ë SIGSTOP ¤Ç¤¹¡£
¥×¥í¥»¥¹¤Ï¥·¥°¥Ê¥ë¤òÆÃÊ̤ʥ¹¥¿¥Ã¥¯¤ËÅÁ㤵¤»¤ë¤³¤È¤âÁªÂò¤Ç¤¤Þ¤¹¡£ ¤³¤ì¤Ë¤è¤ê¡¢ÀöÎý¤µ¤ì¤¿¥½¥Õ¥È¥¦¥§¥¢¥¹¥¿¥Ã¥¯Áàºî¤¬²Äǽ¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¥³¥ë¡¼¥Á¥ó¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¸À¸ì¤Ç¤Ï ¤½¤ì¤¾¤ì¤Î¥³¥ë¡¼¥Á¥ó¤Ë¥¹¥¿¥Ã¥¯¤òÄ󶡤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤½¤Î¸À¸ì¤Î¼Â¹Ô¥·¥¹¥Æ¥à¤Ï¡¢4.4BSD ¤ÇÄ󶡤µ¤ì¤ëñ°ì¤Î¥¹¥¿¥Ã¥¯¤òʬ³ä¤¹¤ë¤³¤È¤Ç¡¢ ¤³¤ì¤é¤Î¥¹¥¿¥Ã¥¯¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤â¤·¥«¡¼¥Í¥ë¤¬ÆÈΩ¤·¤¿¥·¥°¥Ê¥ë¥¹¥¿¥Ã¥¯¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ ¤½¤ì¤¾¤ì¤Î¥³¥ë¡¼¥Á¥ó¤Ë³ä¤êÅö¤Æ¤é¤ì¤¿Îΰè¤ò ¥·¥°¥Ê¥ë¤ÎÊ᪤ËɬÍפÊʬ¤À¤±³ÈÄ¥¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£
¤¹¤Ù¤Æ¤Î¥·¥°¥Ê¥ë¤Ï¡¢Æ±¤¸Í¥ÀèÅÙ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤â¤·Ê£¿ô¤Î¥·¥°¥Ê¥ë¤¬Æ±»þ¤Ë̤½èÍý¤È¤Ê¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢ ¥·¥°¥Ê¥ë¤ÎÆÏ¤¯½ç½ø¤Ï¼ÂÁõ¤Ë°Í¸¤·¤Þ¤¹¡£ ¥·¥°¥Ê¥ë¥Ï¥ó¥É¥é¤Ï¡¢¤½¤Î¥·¥°¥Ê¥ë¤¬¥Ö¥í¥Ã¥¯¤µ¤ì¤ë¤è¤¦¤Ë¤·¤Æ¼Â¹Ô¤·¤Þ¤¹¤¬¡¢ ¾¤Î¥·¥°¥Ê¥ë¤Ï°ÍÁ³È¯À¸²Äǽ¤Ç¤¹¡£ ¤³¤Î¥á¥«¥Ë¥º¥à¤Ë¤è¤ê¡¢¥×¥í¥»¥¹¤Ï ¥³¡¼¥É¤Î¥¯¥ê¥Æ¥£¥«¥ë¤ÊÉôʬ¤òÆÃÄê¤Î¥·¥°¥Ê¥ë¤ÎȯÀ¸¤ËÂФ·¤ÆÊݸ¤ë¤³¤È¤¬¤Ç¤¤ë¤Î¤Ç¤¹¡£
¥·¥°¥Ê¥ë¤ÎÀ߷פȼÂÁõ¤Î¾ÜºÙ¤Ï¡¢4.7 Àá¤Ç²òÀ⤷¤Æ¤¤¤Þ¤¹¡£
Ê£¿ô¤Î¥×¥í¥»¥¹¤òÁÈ¿¥¤·¤Æ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤¬ºî¤é¤ì¤Þ¤¹¡£ ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÏüËö¤Ø¤Î¥¢¥¯¥»¥¹¤ÎÀ©¸æ¤ä ´Ø·¸¥×¥í¥»¥¹¤Î½¸¹ç¤Ë¥·¥°¥Ê¥ë¤òÁ÷¤ë¼êÃʤòÄ󶡤¹¤ë¤Î¤Ë»ÈÍѤµ¤ì¤Þ¤¹¡£ ¥×¥í¥»¥¹¤Ï¿Æ¥×¥í¥»¥¹¤«¤é¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ò°ú¤·Ñ¤®¤Þ¤¹¡£ ¥×¥í¥»¥¹¤¬¼«Ê¬¼«¿È¤Þ¤¿¤Ï¼«Ê¬¤Î»Ò¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤òÊѹ¹¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë ¥á¥«¥Ë¥º¥à¤ò¥«¡¼¥Í¥ë¤ÏÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ ¿·¤·¤¤¥×¥í¥»¥¹¥°¥ë¡¼¥×¤òºîÀ®¤¹¤ë¤³¤È¤Ï´Êñ¤Ç¤¹¡£ ¿·¤·¤¤¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ÎÃͤϤ¿¤¤¤Æ¤¤ ºîÀ®¤·¤¿¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹ ID ¤È¤Ê¤ê¤Þ¤¹¡£
¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¤ª¤±¤ë¥×¥í¥»¥¹¤Î½¸¹ç¤Ï¡¢¥¸¥ç¥Ö¤È¸Æ¤Ð¤ì¤ë¤³¤È¤¬¤¢¤ê¡¢ ¥·¥§¥ë¤Î¤è¤¦¤Ê¹â¥ì¥Ù¥ë¤Î¥·¥¹¥Æ¥à¥½¥Õ¥È¥¦¥§¥¢¤ÇÁàºî¤µ¤ì¤Þ¤¹¡£ ¥·¥§¥ë¤Ë¤è¤Ã¤ÆÀ¸À®¤µ¤ì¤ë¤è¤¯¤¢¤ëÎà¤Î¥¸¥ç¥Ö¤Ï¡¢¤¤¤¯¤Ä¤«¤Î¥×¥í¥»¥¹¤ò¥Ñ¥¤¥×¤Ç¤Ä¤Ê¤¤¤À ¥Ñ¥¤¥×¥é¥¤¥ó¤Ç¡¢ºÇ½é¤Î¥×¥í¥»¥¹¤Î½ÐÎϤ¬ 2 ÈÖÌÜ¤ÎÆþÎϤȤʤꡢ 2 ÈÖÌܤνÐÎϤ¬ 3 ÈÖÌÜ¤ÎÆþÎϤȤʤꡢ4 ÈÖÌÜ¤âÆ±ÍÍ¤Ë¡Ä ¤È¤¤¤¦¤â¤Î¤Ç¤¹¡£ ¥·¥§¥ë¤Ï¥Ñ¥¤¥×¥é¥¤¥ó¤Î³ÆÃʳ¬¤Ë¤ª¤¤¤Æ¥×¥í¥»¥¹¤ò fork ¤·¤Æ¡¢ ¤³¤ì¤é¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤òÊÌ¸Ä¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë¤ª¤¯¤³¤È¤Ç ¤³¤Î¤è¤¦¤Ê¥¸¥ç¥Ö¤òÀ¸À®¤·¤Þ¤¹¡£
¥æ¡¼¥¶¥×¥í¥»¥¹¤Ï¡¢Ã±ÆÈ¤Î¥×¥í¥»¥¹¤ËÁ÷¤ë¾ì¹ç¤ÈƱÍÍ¤Ë ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î¤½¤ì¤¾¤ì¤Î¥×¥í¥»¥¹¤Ë¤Þ¤È¤á¤Æ¥·¥°¥Ê¥ë¤òÁ÷¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ »ØÄꤵ¤ì¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë°¤¹¤ë¥×¥í¥»¥¹¤¬ ¤½¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë±Æ¶Á¤¹¤ë¥½¥Õ¥È¥¦¥§¥¢³ä¤ê¹þ¤ß¤ò¼õ¤±¼è¤ë¤È¡¢ ¤½¤ì¤Ë¤è¤Ã¤Æ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ï¼Â¹Ô¤òÃæÃÇ¤äºÆ³«¤ò¤·¤¿¤ê¡¢ ³ä¤ê¹þ¤ß¤ò¼õ¤±¤¿¤ê¡¢½ªÎ»¤µ¤»¤é¤ì¤¿¤ê¤·¤Þ¤¹¡£
üËö¤Ë¤Ï¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î ID ¤Ï¡¢Ã¼Ëö¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î ID ¤¬Ä̾糧¥Ã¥È¤µ¤ì¤Þ¤¹¡£ ¥¸¥ç¥Ö¥³¥ó¥È¥í¡¼¥ëµ¡Ç½¤ò»ý¤Ä¥·¥§¥ë¤Ï¡¢Æ±¤¸Ã¼Ëö¤Ë´ØÏ¢¤Å¤±¤µ¤ì¤¿ ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤ò¿¿ôºîÀ®¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤½¤ÎüËö¤Ï¡¢¤³¤ì¤é¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Ë°¤¹¤ë¥×¥í¥»¥¹¤ÎÀ©¸æÃ¼Ëö¤È¤Ê¤ê¤Þ¤¹¡£ ¥×¥í¥»¥¹¤Ï¡¢Ã¼Ëö¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤È¤½¤Î¥×¥í¥»¥¹¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤¬°ìÃפ·¤¿¤È¤¤Î¤ß¡¢ À©¸æÃ¼Ëö¤òµ½Ò»Ò¤«¤éÆÉ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤â¤·¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤¬°ìÃפ·¤Æ¤¤¤Ê¤±¤ì¤Ð¡¢ ¥×¥í¥»¥¹¤¬¤½¤ÎüËö¤«¤éÆÉ¤ß¹þ¤â¤¦¤È¤¹¤ëºÝ¤Ë¥Ö¥í¥Ã¥¯¤µ¤ì¤Þ¤¹¡£ üËö¤Î¥×¥í¥»¥¹¥°¥ë¡¼¥× ID ¤òÊѹ¹¤¹¤ë¤³¤È¤Ç¡¢ ¥·¥§¥ë¤Ï¤¤¤¯¤Ä¤«¤Î°Û¤Ê¤ë¥¸¥ç¥Ö¤Î´Ö¤ÇüËö¤òÄ´Ä䤹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤³¤ÎÄ´Ää¤Ï¥¸¥ç¥Ö¥³¥ó¥È¥í¡¼¥ë¤È¸Æ¤Ð¤ì¡¢ ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤È¤È¤â¤Ë 4.8 Àá¤Ç²òÀ⤷¤Æ¤¤¤Þ¤¹¡£
´ØÏ¢¤¹¤ë¥×¥í¥»¥¹¤Î½¸¹ç¤ò¥×¥í¥»¥¹¥°¥ë¡¼¥×¤È¤·¤Æ¤Þ¤È¤á¤ë¤³¤È¤¬¤Ç¤¤ë¤Î¤ÈƱ¤¸¤è¤¦¤Ë¡¢ ¥×¥í¥»¥¹¥°¥ë¡¼¥×¤Î½¸¹ç¤ò¥»¥Ã¥·¥ç¥ó¤È¤·¤Æ¤Þ¤È¤á¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¥»¥Ã¥·¥ç¥ó¤Î¤ª¤â¤ÊÍÑÅӤϡ¢¥Ç¡¼¥â¥ó¥×¥í¥»¥¹¤È¤½¤Î»Ò¥×¥í¥»¥¹¤ËÂФ·¤Æ³ÖÎ¥¤·¤¿´Ä¶¤òºî¤ê½Ð¤·¤¿¤ê¡¢ ¥æ¡¼¥¶¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤È¤½¤Î¥·¥§¥ë¤¬ºî¤ê½Ð¤¹¥¸¥ç¥Ö¤ò¤Ò¤È¤Þ¤È¤á¤Ë¤¹¤ë¤³¤È¤Ç¤¹¡£
¤½¤ì¤¾¤ì¤Î¥×¥í¥»¥¹¤Ï¥×¥í¥»¥¹¤´¤È¤Î¥×¥é¥¤¥Ù¡¼¥È¥¢¥É¥ì¥¹¶õ´Ö¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¥¢¥É¥ì¥¹¶õ´Ö¤Ï¡¢ºÇ½é¤ËÏÀÍýŪ¤Ê3¤Ä¤Î¥»¥°¥á¥ó¥È¤Ëʬ³ä¤µ¤ì¤Þ¤¹: ¥Æ¥¥¹¥È¡¢ ¥Ç¡¼¥¿¡¢¤ª¤è¤Ó ¥¹¥¿¥Ã¥¯¤Ç¤¹¡£ ¥Æ¥¥¹¥È¥»¥°¥á¥ó¥È¤ÏÆÉ¤ß½Ð¤·ÀìÍѤǡ¢¥×¥í¥°¥é¥à¤ÎÌ¿Îá¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ ¥Ç¡¼¥¿µÚ¤Ó¥¹¥¿¥Ã¥¯¥»¥°¥á¥ó¥È¤ÏÆÉ¤ß¼è¤ê½ñ¤¹þ¤ß¤È¤â¤Ë²Äǽ¤Ç¤¹¡£ ¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤Ë¤Ï ½é´ü²½¤µ¤ì¤Æ¤¤¤ë¥Ç¡¼¥¿¤È½é´ü²½¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ç¡¼¥¿¤¬¤¢¤ë¤Î¤ËÂФ·¡¢ ¥¹¥¿¥Ã¥¯¥»¥°¥á¥ó¥È¤Ï¥é¥ó¥¿¥¤¥à¥¹¥¿¥Ã¥¯¤òÊÝ»ý¤·¤Þ¤¹¡£ ¤Û¤È¤ó¤É¤Î¥Þ¥·¥ó¤Ç¤Ï¡¢¥×¥í¥»¥¹¤¬¼Â¹Ô¤¹¤ë¤È¤È¤â¤Ë¡¢ ¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤Æ¥¹¥¿¥Ã¥¯¥»¥°¥á¥ó¥È¤Ï¼«Æ°Åª¤Ë³ÈÄ¥¤µ¤ì¤Þ¤¹¡£ ¥×¥í¥»¥¹¤Ï¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ê¥Ç¡¼¥¿¥»¥°¥á¥ó¥È¤ò³ÈÄ¥¤¹¤ë»ö¤¬²Äǽ¤Ç¤¹¤¬¡¢ ¥»¥°¥á¥ó¥È¤ÎÆâÍÆ¤¬¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤é¤Î¥Ç¡¼¥¿¤Ç¤¢¤ë¾ì¹ç¡¢¤¢¤ë¤¤¤Ï ¥Ç¥Ð¥Ã¥°»þ¤Ë¸Â¤ê¥×¥í¥»¥¹¤Ï¤½¤Î¥Æ¥¥¹¥È¥»¥°¥á¥ó¥È¤Î¥µ¥¤¥º¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ »Ò¥×¥í¥»¥¹¤Î¥»¥°¥á¥ó¥È¤Î½é´ü¤ÎÆâÍÆ¤Ï¿Æ¥×¥í¥»¥¹¤Î¥»¥°¥á¥ó¥È¤Î¥³¥Ô¡¼¤Ç¤¹¡£
¥×¥í¥»¥¹¥¢¥É¥ì¥¹¶õ´Ö¤ÎÁ´ÆâÍÆ¤Ï¥×¥í¥»¥¹¤¬¼Â¹Ô¤¹¤ë¤Î¤Ë¤ÏɬÍפ¬¤¢¤ê¤Þ¤»¤ó¡£ ¥×¥í¥»¥¹¤¬¥á¥¤¥ó¥á¥â¥ê¤Ë¤ª¤¤¤ÆÊÝ»ý¤µ¤ì¤Æ¤¤¤Ê¤¤¥¢¥É¥ì¥¹¶õ´Ö¤Î°ìÉô¤ò»²¾È¤¹¤ë¾ì¹ç¡¢ ¥·¥¹¥Æ¥à¤Ï¥á¥¤¥ó¥á¥â¥ê¡¼¤«¤é¥á¥â¥ê¤ÎÃæ¤ÎɬÍפʾðÊó¤ò ¥Ú¡¼¥¸ ¤Ë¤Ä¤±¤Þ¤¹¡£ ¥·¥¹¥Æ¥à¥ê¥½¡¼¥¹¤¬ÉÔ¤¹¤ë¾ì¹ç¡¢¥·¥¹¥Æ¥à¤ÏÍøÍѲÄǽ¤Ê»ñ¸»¤ò°Ý»ý¤¹¤ë¤¿¤á¤Ë2¥ì¥Ù¥ë¤Î¥¢¥×¥í¡¼¥Á¤ò¤·¤Þ¤¹¡£ ŬÅÙ¤ÎÎ̤Υá¥â¥ê¤¬ÍøÍѲÄǽ¤Ê¾ì¹ç¤Ç¤³¤ì¤é¤Î»ñ¸»¤¬ºÇ¶á»ÈÍѤµ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ ¥·¥¹¥Æ¥à¤Ï¥×¥í¥»¥¹¤«¤é¥á¥â¥ê¥ê¥½¡¼¥¹¤ò²òÊü¤·¤Þ¤¹¡£ ¥á¥â¥ê¡¼ÉÔ¤¬¿¼¹ï¤À¤Ã¤¿¾ì¹ç¡¢¥·¥¹¥Æ¥à¤Ï¥×¥í¥»¥¹¤ÎÁ´¾ð¶·¤ò£²¼¡¥¥ã¥Ã¥·¥å¤Î ¥¹¥ï¥Ã¥× ¤ËÍê¤ê¤Þ¤¹¡£ ¥Ú¡¼¥¸¥ó¥° ¤È ¥¹¥ï¥Ã¥× ¤Î¸ò´¹¤Ï¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤¿¡¢¥×¥í¥»¥¹¤Ë͸ú¤Ç¤¹¡£ ¥×¥í¥»¥¹¤Ï¼Â¹Ô±ç½õ¤È¤·¤ÆÍ½´ü¤µ¤ì¤¿¾Íè¤Î¥á¥â¥êÍøÍѤˤĤ¤¤Æ¥·¥¹¥Æ¥à¤Ë½õ¸À¤¹¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£
Á¤ι¤¤¥¢¥É¥ì¥¹¶õ´Ö¤Î¥µ¥Ý¡¼¥È¡¢ ¥á¥â¥ê¥Þ¥Ã¥×¥Õ¥¡¥¤¥ë¡¢¶¦Í¥á¥â¥ê¤Ï¡¢ 4.2BSD ¤ËÍ׵ᤵ¤ì¤¿¤â¤Î¤Î°ì¤Ä¤Ç¤·¤¿¡£ ÆÈΩ¤·¤¿¥×¥í¥»¥¹·²¤¬¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò¥Õ¥¡¥¤¥ë¤Ë¥Þ¥Ã¥Ô¥ó¥°¤·¡¢ ¤½¤ì¤Î¶¦Í¤ò²Äǽ¤Ë¤¹¤ë mmap ¤È¸Æ¤Ð¤ì¤ë¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬µ¬Äꤵ¤ì¤Þ¤·¤¿¡£ Ê£¿ô¤Î¥×¥í¥»¥¹¤¬Æ±¤¸¥Õ¥¡¥¤¥ë¤Ë¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤¿¾ì¹ç¡¢ °ì¤Ä¤Î¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë¤Ë¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤¿¥¢¥É¥ì¥¹¶õ´Ö¤Î°ìÉôʬ¤ËÂФ·¤Æ ²Ã¤¨¤¿Êѹ¹¤Ï¡¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤¬¤½¤¦¤Ç¤¢¤ë¤Î¤ÈƱÍÍ¡¢ Ʊ¤¸Éôʬ¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤Æ¤¤¤ë¾¤Î¥×¥í¥»¥¹¤Ë¤âÈ¿±Ç¤µ¤ì¤Þ¤¹¡£ ¤·¤«¤··ë¶É¡¢4.2BSD¤Ï mmap ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò´Þ¤Þ¤Ê¤¤·Á¤Ç¥ê¥ê¡¼¥¹¤µ¤ì¤Þ¤·¤¿¡£ ¤³¤ì¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¤Î¤è¤¦¤Ê¾¤Îµ¡Ç½¤ò¼Â¸½¤¹¤ëÊý¤¬½ÅÍפǡ¢ »þ´ÖŪ¤Ê;͵¤¬¤Ê¤«¤Ã¤¿¤«¤é¤Ç¤¹¡£
mmap ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î³«È¯¤Ï¡¢4.3BSD ¤Îºî¶È¤Î´Ö¤â³¤±¤é¤ì¤Þ¤·¤¿¡£ 40 ¼Ò¤òͤ¨¤ë²ñ¼Ò¤È¸¦µæ¥°¥ë¡¼¥×¤¬¡¢ Berkeley Software Architecture Manual McKusick et al, 1994 ¤ËµºÜ¤µ¤ì¤¿¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Î²þÄûÈǤòºöÄꤹ¤ëµÄÏÀ¤Ë»²²Ã¤·¡¢ ¤¤¤¯¤Ä¤«¤Î´ë¶È¤Ï¤½¤Î²þÄûÈǤΥ¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¼ÂÁõ¤·¤Þ¤·¤¿ Gingell et al, 1987¡£
¤·¤«¤·¡¢¤Þ¤¿¤â¤ä»þ´ÖŪ¤ÊÌäÂê¤Ë¤è¤ê 4.3BSD ¤Ø¤Î mmap ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î¼ÂÁõ¤Ï¸«Á÷¤é¤ì¤Þ¤·¤¿¡£ ¤â¤Á¤í¤ó´û¸¤Î 4.3BSD ²¾ÁÛµ²±¥·¥¹¥Æ¥à¤Ë¤½¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÁȤ߹þ¤à¤³¤È¤Ï ²Äǽ¤À¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢4.3BSD ¤Î²¾ÁÛµ²±¥·¥¹¥Æ¥à¤Î¼ÂÁõ¤Ï 10 ǯ¶á¤¯Á°¤Î¤â¤Î¤Ç¤¢¤Ã¤¿¤¿¤á¡¢³«È¯¼Ô¤¿¤Á¤Ï¤½¤ì¤òÁȤ߹þ¤Þ¤Ê¤¤¤³¤È¤Ë·èÄꤷ¤¿¤Î¤Ç¤¹¡£ 4.3BSD ¤Î²¾ÁÛµ²±¥·¥¹¥Æ¥à¤Ï¥í¡¼¥«¥ë¤ËÀܳ¤µ¤ì¤¿¥Ç¥£¥¹¥¯ÁõÃ֤Ϲ⮡¦ÂçÍÆÎÌ¡¦°Â²Á¤Ç¡¢ ¥³¥ó¥Ô¥å¡¼¥¿¤Î¥á¥â¥ê¤Ï¾®ÍÆÎÌ¡¦¹â²Á¤Ç¤¢¤ë¤È¤¤¤¦²¾Äê¤Ë´ð¤Å¤¤¤ÆÀ߷פµ¤ì¤Æ¤ª¤ê¡¢ ¤½¤Î¤¿¤á¡¢¤½¤ÎÀ߷פϥá¥â¥êÍøÍÑÎ̤òÀáÌó¤Ç¤¤ëÂå¤ï¤ê¤Ë ;ʬ¤Ê¥Ç¥£¥¹¥¯¥¢¥¯¥»¥¹¤òÀ¸À®¤·¤Æ¤·¤Þ¤¦¤â¤Î¤Ç¤·¤¿¡£ ¤Þ¤¿¡¢¤³¤Î¼ÂÁõ¤Ï VAX ¤Î¥á¥â¥ê´ÉÍý¥Ï¡¼¥É¥¦¥§¥¢¤Ë¶¯¤¯°Í¸¤¹¤ë¤â¤Î¤Ç¡¢ ¾¤Î¥³¥ó¥Ô¥å¡¼¥¿¥¢¡¼¥¥Æ¥¯¥Á¥ã¤Ø¤Î°Ü¿¢¤¬º¤Æñ¤Ç¤·¤¿¡£ ºÇ¸å¤Ë¤â¤¦°ì¤ÄÉÕ¤±²Ã¤¨¤ë¤Ê¤é¡¢¤³¤Î²¾ÁÛµ²±¥·¥¹¥Æ¥à¤Ï ¸½ºßÉáµÚ¤¬¤¹¤¹¤ß½ÅÍפˤʤäƤ¤Æ¤¤¤ëÌ©·ë¹ç¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¤Ë Âбþ¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤Æ¤¤¤Ê¤«¤Ã¤¿¤Î¤Ç¤¹¡£
¸Å¤¤²¾ÁÛµ²±¥·¥¹¥Æ¥à¤Î¼ÂÁõ¤ò²þÎɤ·¤è¤¦¤È¤¤¤¦»î¤ß¤Ï¡¢ ¤Þ¤¹¤Þ¤¹¼ºÇÔ¤¬±¿Ì¿¤Å¤±¤é¤ì¤¿¤è¤¦¤Ë»×¤ï¤ì¤Þ¤·¤¿¡£ ¤½¤Î°ìÊý¤Ç¡¢´°Á´¤Ë¿·¤·¤¤À߷פÏÂçÍÆÎÌ¥á¥â¥ê¤òÍøÍѤ·¡¢ ¥Ç¥£¥¹¥¯¤Ø¤Î¥Ç¡¼¥¿Å¾Á÷¤òÄ㸺¤·¡¢ ¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¤Çưºî¤¹¤ë¤³¤È¤¬¤Ç¤¤ëǽÎϤò»ý¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¤½¤Î·ë²Ì¡¢²¾ÁÛµ²±¥·¥¹¥Æ¥à¤Ï 4.4BSD ¤Ç´°Á´¤ËÃÖ¤´¹¤¨¤é¤ì¤ë¤³¤È¤Ë¤Ê¤Ã¤¿¤Î¤Ç¤¹¡£ 4.4BSD ²¾ÁÛµ²±¥·¥¹¥Æ¥à¤Ï Mach 2.0 VM ¥·¥¹¥Æ¥à Tevanian, 1987 ¤ò¥Ù¡¼¥¹¤Ë¡¢Mach 2.5 ¤È Mach 2.0 ¤Î²þÎɤòºÎ¤êÆþ¤ì¤¿¤â¤Î¤Ç¤¹¡£ ¤³¤Î¼ÂÁõ¤Ï¡¢ ¥á¥â¥ê¶¦Í¤Î¸úΨ¤¬Îɤ¯µ¡¼ï°Í¸Éôʬ¤Èµ¡¼ïÈó°Í¸Éôʬ¤¬¤¤ì¤¤¤ËʬΥ¤µ¤ì¤Æ¤¤¤Æ¡¢ (¸½ºß¤Ï»È¤ï¤ì¤Æ¤¤¤Þ¤»¤ó¤¬) ¥Þ¥ë¥Á¥×¥í¥»¥Ã¥µ¤ËÂбþ¤·¤Æ¤¤¤ë¤È¤¤¤¦ÆÃħ¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ³Æ¥×¥í¥»¥¹¤Ï¼«Ê¬¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Î¤¢¤é¤æ¤ëÉôʬ¤ò¥Õ¥¡¥¤¥ë¤Ë¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤³¤È¤¬¤Ç¤¡¢ ¸ß¤¤¤ËƱ°ì¤Î¥Õ¥¡¥¤¥ë¤Ë¥¢¥É¥ì¥¹¶õ´Ö¤ò¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤³¤È¤Ç¡¢ ¥×¥í¥»¥¹´Ö¤Ç¥¢¥É¥ì¥¹¶õ´Ö¤Î°ìÉô¤ò¶¦Í¤¹¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ °ì¤Ä¤Î¥×¥í¥»¥¹¤¬²Ã¤¨¤¿Êѹ¹¤Ï¾¤Î¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤âÈ¿±Ç¤µ¤ì¡¢ ¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¼«¿È¤Ë¤â½ñ¤¹þ¤Þ¤ì¤Þ¤¹¡£ ¤Þ¤¿¡¢¥×¥í¥»¥¹¤Ï¥Õ¥¡¥¤¥ë¤ò¥×¥é¥¤¥Ù¡¼¥È¥Þ¥Ã¥Ô¥ó¥°¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ ¥×¥é¥¤¥Ù¡¼¥È¥Þ¥Ã¥Ô¥ó¥°¤È¤Ï¡¢¥×¥í¥»¥¹¤¬²Ã¤¨¤¿Êѹ¹¤¬¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤Æ¤¤¤ë¾¤Î¥×¥í¥»¥¹¤«¤é¸«¤¨¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤ê¡¢ ¥Õ¥¡¥¤¥ë¼«¿È¤Ë½ñ¤Ìᤵ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤â¤Î¤Ç¤¹¡£
²¾ÁÛµ²±¥·¥¹¥Æ¥à¤ÎÊú¤¨¤ë¤â¤¦°ì¤Ä¤ÎÌäÂê¤Ï¡¢ ¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬È¯¹Ô¤µ¤ì¤¿»þ¤Ë¥«¡¼¥Í¥ë¤Ë¾ðÊó¤òÅϤ¹ÊýË¡¤Ç¤¹¡£ 4.4BSD ¤Ç¤Ï¡¢¾ï¤Ë¥×¥í¥»¥¹¤Î¥¢¥É¥ì¥¹¶õ´Ö¤«¤é¥«¡¼¥Í¥ëÆâ¤Î¥Ð¥Ã¥Õ¥¡¤Ë ¥Ç¡¼¥¿¤ò¥³¥Ô¡¼¤·¤Æ¤¤¤Þ¤·¤¿¡£ ÂçÍÆÎ̤Υǡ¼¥¿¤òžÁ÷¤¹¤ëÆÉ¤ß½ñ¤Áàºî¤¬È¯À¸¤¹¤ë¤³¤È¤ò¹Í¤¨¤ë¤È¡¢ ¤³¤Î¥³¥Ô¡¼¤Î¼Â¹Ô¤Ë¤Ï»þ´Ö¤¬¤«¤«¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£ ¥³¥Ô¡¼¤ò¼Â¸½¤¹¤ë¤â¤¦°ì¤Ä¤ÎÊýË¡¤È¤·¤Æ¡¢ ¥×¥í¥»¥¹¤Î¥á¥â¥ê¤ò¥«¡¼¥Í¥ëÆâ¤ËºÆ¥Þ¥Ã¥Ô¥ó¥°¤¹¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£ ¤·¤«¤· 4.4BSD ¥«¡¼¥Í¥ë¤Ï¡¢ °Ê²¼¤ÎÍýͳ¤«¤é¾ï¤Ë¥Ç¡¼¥¿¤ò¥³¥Ô¡¼¤·¤Þ¤¹¡£
¤Û¤È¤ó¤É¤Î¾ì¹ç¥æ¡¼¥¶¥Ç¡¼¥¿¤Ï¥Ú¡¼¥¸¶³¦¤Ë¥¢¥é¥¤¥ó¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¤·¡¢ ¥Ï¡¼¥É¥¦¥§¥¢¥Ú¡¼¥¸Ä¹¤ÎÇÜ¿ô¤Ç¤â¤¢¤ê¤Þ¤»¤ó¡£
¤½¤Î¥Ú¡¼¥¸¤ò¥×¥í¥»¥¹¤¬ÇË´þ¤·¤Æ¤·¤Þ¤¦¤È¡¢ ¥«¡¼¥Í¥ë¤¬¥Ú¡¼¥¸¤ò»²¾È¤Ç¤¤Ê¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤¹¡£ ¥×¥í¥°¥é¥à¤ÎÃæ¤Ë¤Ï¡¢¥«¡¼¥Í¥ëÆâ¤Î¥Ð¥Ã¥Õ¥¡¤Ë ½ñ¤«¤ì¤¿¥Ç¡¼¥¿¤¬»Ä¤Ã¤Æ¤¤¤ë¤³¤È¤òÁÛÄꤷ¤Æ¤¤¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£
(¸½ºß¤Î 4.4BSD ¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ç²Äǽ¤Ê¤è¤¦¤Ë) ¥×¥í¥»¥¹¤¬¥Ú¡¼¥¸¤Î¥³¥Ô¡¼¤ò»ý¤Æ¤ë¾ì¹ç¡¢ ¤½¤Î¥Ú¡¼¥¸¤Ïɬ¤º¥³¥Ô¡¼¥ª¥ó¥é¥¤¥È(copy-on-write) ¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ ¥³¥Ô¡¼¥ª¥ó¥é¥¤¥È¤Î¥Ú¡¼¥¸¤È¤Ï¡¢ ÆÉ¤ß¹þ¤ßÀìÍѤËÀßÄꤹ¤ë¤³¤È¤Ç½ñ¤¹þ¤ß¤ËÂФ¹¤ëÊݸǽ¤ò͸ú²½¤·¤¿¥Ú¡¼¥¸¤Î¤³¤È¤Ç¤¹¡£ ¥×¥í¥»¥¹¤¬¤½¤Î¥Ú¡¼¥¸¤òÊѹ¹¤·¤è¤¦¤È¤¹¤ë¤È¥«¡¼¥Í¥ë¤Ï½ñ¤¹þ¤ßÎã³°¤ò¸¡½Ð¤·¤Þ¤¹¡£ ¤½¤ÎºÝ¥«¡¼¥Í¥ë¤Ï¡¢¥×¥í¥»¥¹¤¬Êѹ¹¤Ç¤¤ë¤è¤¦¤Ë¤½¤Î¥Ú¡¼¥¸¤Î¥³¥Ô¡¼¤òºîÀ®¤·¤Þ¤¹¡£ »Äǰ¤Ê¤¬¤é¡¢¥×¥í¥»¥¹¤ÏÄ̾魯¤°¤Ë½ÐÎϥХåե¡¤Ë¿·¤·¤¤¥Ç¡¼¥¿¤ò½ñ¤³¤¦¤È¤¹¤ë¤¿¤á¡¢ ·ë¶É¥Ç¡¼¥¿¤Î¥³¥Ô¡¼¤¬È¯À¸¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£
¥Ú¡¼¥¸¤¬¿·¤·¤¤²¾ÁÛ¥á¥â¥ê¥¢¥É¥ì¥¹¤ËºÆ¥Þ¥Ã¥Ô¥ó¥°¤µ¤ì¤ëºÝ¡¢ ¤Û¤È¤ó¤É¤Î¥á¥â¥ê´ÉÍý¥Ï¡¼¥É¥¦¥§¥¢¤Ç¤Ï¡¢ ¥Ï¡¼¥É¥¦¥§¥¢¥¢¥É¥ì¥¹ÊÑ´¹¥¥ã¥Ã¥·¥å¤Î°ìÉô¤òÇË´þ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¿¤¯¤Î¾ì¹ç¡¢¤³¤Î¥¥ã¥Ã¥·¥å¤ÎÇË´þ¤Ï»þ´Ö¤¬¤«¤«¤ë¤¿¤á¡¢ 4 ¤«¤é 8 ¥¥í¥Ð¥¤¥È¤è¤ê¾®¤µ¤¤¥Ç¡¼¥¿¥Ö¥í¥Ã¥¯¤ËÂФ·¤Æ¤Ï¡¢ ¥³¥Ô¡¼¤¹¤ë¤è¤ê¤âºÆ¥Þ¥Ã¥Ô¥ó¥°¤¹¤ëÊý¤¬¼Â¼ÁŪ¤ËÃÙ¤¤¡¢ ¤È¤¤¤¦·ë²Ì¤È¤Ê¤ê¤Þ¤¹¡£
¥á¥â¥ê¥Þ¥Ã¥Ô¥ó¥°¤ÎºÇ¤âÂ礤ÊÌÜŪ¤Ï¡¢ µðÂç¤Ê¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤È¡¢ ¥×¥í¥»¥¹´Ö¤ÎÂçÍÆÎ̤Υǡ¼¥¿Å¾Á÷¤È¤¤¤¦Í×µá¤Ë±þ¤¨¤ë¤³¤È¤Ç¤¹¡£ mmap ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢ ξÊý¤ÎÍ×µá¤ò¥³¥Ô¡¼¤ò¹Ô¤Ê¤¦¤³¤È¤Ê¤¯¼Â¸½¤¹¤ë°ì¤Ä¤ÎÊýË¡¤òÄ󶡤·¤Þ¤¹¡£
¥«¡¼¥Í¥ë¤Ï°ì¤Ä¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î´Ö¤À¤±É¬ÍפȤµ¤ì¤ë¥á¥â¥ê¤Î³ä¤êÅö¤Æ¤òÉÑÈˤ˹Ԥʤ¤¤Þ¤¹¡£ ¥æ¡¼¥¶¥×¥í¥»¥¹¤Ç¤Ï¤ª¤½¤é¤¯¡¢ ¤½¤Î¤è¤¦¤Êû´ü´Ö»È¤ï¤ì¤ë¥á¥â¥ê¤Ï¥é¥ó¥¿¥¤¥à¥¹¥¿¥Ã¥¯¤Ë³ä¤êÅö¤Æ¤é¤ì¤ë¤Ç¤·¤ç¤¦¡£ ¥«¡¼¥Í¥ë¤Î¥é¥ó¥¿¥¤¥à¥¹¥¿¥Ã¥¯¤Ë¤Ï¾å¸Â¤¬¤¢¤ë¤¿¤á¡¢ ¾®¤µ¤á¤Î¥á¥â¥ê¥Ö¥í¥Ã¥¯¤À¤È¤·¤Æ¤â¥¹¥¿¥Ã¥¯¤Ë¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ ¤½¤Î¤¿¤á¡¢ ¤½¤Î¤è¤¦¤Ê¥á¥â¥ê¤Ï¤â¤Ã¤ÈưŪ¤Êµ¡Ç½¤òÍѤ¤¤Æ³ä¤êÅö¤Æ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¥·¥¹¥Æ¥à¤¬¥Ñ¥¹Ì¾¤Î²ò¼á¤ò¹Ô¤Ê¤¦¾ì¹ç¡¢ ¥Ñ¥¹Ì¾¤òÊÝ»ý¤¹¤ë¤¿¤á¤Ë 1 ¥¥í¥Ð¥¤¥È¤Î¥Ð¥Ã¥Õ¥¡¤ò³ä¤êÅö¤Æ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤·¤«¤·¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Ï°ì¤Ä¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤è¤ê¤â Ť¯»ý³¤·¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¤¿¤á¡¢ ¥¹¥¿¥Ã¥¯¤Ë¶õ¤¤¬¤¢¤Ã¤¿¤È¤·¤Æ¤â¡¢¤½¤³¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¤Ç¤·¤ç¤¦¡£ ¤³¤¦¤¤¤¦Îã¤Î°ì¤Ä¤Ë¡¢¥Í¥Ã¥È¥ï¡¼¥¯¤¬Àܳ¤µ¤ì¤Æ¤¤¤ë´Ö°Ý»ý¤·¤Æ¤¤¤ëɬÍפ¬¤¢¤ë ¥×¥í¥È¥³¥ëÀ©¸æ¥Ö¥í¥Ã¥¯¤¬¤¢¤ê¤Þ¤¹¡£
¥«¡¼¥Í¥ëÆâ¤ÎưŪ¤Ê¥á¥â¥ê³ä¤êÅö¤Æ¤ËÂФ¹¤ë¼ûÍפϡ¢ ¥µ¡¼¥Ó¥¹¤¬Äɲ䵤ì¤ë¤Ë¤Ä¤ì¤ÆÁý²Ã¤·¤Æ¤¤¤Þ¤¹¡£ ÈÆÍѤΥá¥â¥ê¥¢¥í¥±¡¼¥¿¤¬¤¢¤ì¤Ð¡¢ ¥«¡¼¥Í¥ëÆâÉô¤Î¥³¡¼¥É¤ò½ñ¤¯ºÝ¤ÎÊ£»¨¤µ¤òÄ㸺¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤½¤Î¤¿¤á 4.4BSD ¥«¡¼¥Í¥ë¤Ç¤Ï¡¢¥·¥¹¥Æ¥à¤Î¤¢¤é¤æ¤ë¾ìÌ̤ÇÍøÍѲÄǽ¤Ê ñ°ì¤Î¥á¥â¥ê¥¢¥í¥±¡¼¥¿¤òÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥°¥é¥àÍѤΥá¥â¥ê³ä¤êÉÕ¤±¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë C ¥é¥¤¥Ö¥é¥ê¥ë¡¼¥Á¥ó¤Ë´Þ¤Þ¤ì¤Æ¤¤¤ë malloc ¤È free ¤ÈÎà»÷¤·¤¿¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹ McKusick & Karels, 1988¡£ ¤³¤Î³ä¤êÉÕ¤±¥ë¡¼¥Á¥ó¤Ï C ¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÈƱÍÍ¡¢ °ú¿ô¤È¤·¤ÆÉ¬Íפʥá¥â¥ê¥µ¥¤¥º¤ò»ØÄꤷ¤Þ¤¹¡£ ³ä¤êÅö¤Æ¤ë¥á¥â¥ê¥µ¥¤¥º¤Î¾å¸Â¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢ ³ä¤êÅö¤Æ¤é¤ì¤ë¤Î¤ÏʪÍý¥á¥â¥ê¤Ç¤¢¤ê¡¢¥Ú¡¼¥¸¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¥á¥â¥ê²òÊü¥ë¡¼¥Á¥ó¤Ï²òÊü¤¹¤ë¥á¥â¥ê¤Ø¤Î¥Ý¥¤¥ó¥¿¤ò°ú¿ô¤Ë¤È¤ê¤Þ¤¹¡£ ¤½¤ÎºÝ¡¢²òÊü¤¹¤ë¥á¥â¥ê¥µ¥¤¥º¤ò»ØÄꤹ¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
´ðËÜŪ¤Ê UNIX ¤Î I/O ¥·¥¹¥Æ¥à¥â¥Ç¥ë¤Ï¡¢¥é¥ó¥À¥à¥¢¥¯¥»¥¹¤ª¤è¤Ó ¥·¡¼¥±¥ó¥·¥ã¥ë¥¢¥¯¥»¥¹¤Î²Äǽ¤Ê¥Ð¥¤¥ÈÎó¤Ç¤¹¡£ Ä̾ï¤Î UNIX ¥æ¡¼¥¶¡¼¥×¥í¥»¥¹¤Ë¤Ï¡¢ ¥¢¥¯¥»¥¹¥á¥½¥Ã¥É ¤ä ¥³¥ó¥È¥í¡¼¥ë¥Ö¥í¥Ã¥¯ ¤Ï¸ºß¤·¤Þ¤»¤ó¡£
I/O ¤Ë¤µ¤Þ¤¶¤Þ¤Ê¥ì¥Ù¥ë¤Î¹½Â¤¤ò´üÂÔ¤¹¤ë¥×¥í¥°¥é¥à¤Ï³Æ¼ï¤¢¤ê¤Þ¤¹¤¬¡¢ ¥«¡¼¥Í¥ë¤Ï I/O ¤Ë¹½Â¤¤ò²Ý¤·¤Þ¤»¤ó¡£ ¤¿¤È¤¨¤Ð¡¢¥Æ¥¥¹¥È¥Õ¥¡¥¤¥ë¤Ï²þ¹Ôʸ»ú (ASCII LF ʸ»ú) ¤Ç¶èÀÚ¤é¤ì¤¿ ASCII ʸ»ú¤Î¹Ô¤Î½¸¤Þ¤ê¤Ç¤¹¤¬¡¢ ¥«¡¼¥Í¥ë¤Ï¤½¤Î¤è¤¦¤Ê¹½Â¤¤ò´ØÃΤ·¤Þ¤»¤ó¡£ ¤Û¤È¤ó¤É¤Î¥×¥í¥°¥é¥à¤Ë¤È¤Ã¤Æ¡¢ ¤³¤Î¥â¥Ç¥ë¤Ï¥Ç¡¼¥¿¥Ð¥¤¥È¤Î¥¹¥È¥ê¡¼¥à¤â¤·¤¯¤Ï I/O ¥¹¥È¥ê¡¼¥à ¤Ë¤¹¤®¤Þ¤»¤ó¡£ ¤³¤Î¤è¤¦¤Êñ°ì¤Î¥Ç¡¼¥¿¹½Â¤¤¬¡¢UNIX ¤Î¥Ä¡¼¥ë¥Ù¡¼¥¹¤Î¥¢¥×¥í¡¼¥Á (tool-based approach) ¤ò²Äǽ¤Ë¤·¤Æ¤¤¤ë¤Î¤Ç¤¹Kernighan & Pike, 1984¡£ ¤¢¤ë¥×¥í¥°¥é¥à¤Î½ÐÎÏ¥¹¥È¥ê¡¼¥à¤Ï¡¢Â¾¤Î¤Û¤È¤ó¤É¤Î¥×¥í¥°¥é¥à¤ÎÆþÎÏ ¥¹¥È¥ê¡¼¥à¤È¤·¤Æ¤½¤Î¤Þ¤ÞÍ¿¤¨¤ë»ö¤¬¤Ç¤¤Þ¤¹ (¤³¤Î¤è¤¦¤ÊÅÁÅýŪ¤Ê UNIX ¤Î I/O ¥¹¥È¥ê¡¼¥à¤ò¡¢Eighth Edition ¤Î¥¹¥È¥ê¡¼¥à I/O ¥·¥¹¥Æ¥à¤ä¡¢ System V Release 3 ¤Î STREAMS ¤Èº®Æ±¤¹¤Ù¤¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢ ¤É¤Á¤é¤Î¥¹¥È¥ê¡¼¥à¤âÅÁÅýŪ¤Ê I/O ¥¹¥È¥ê¡¼¥à¤ÈƱ¤¸¤è¤¦¤Ë¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹)¡£
UNIX ¤Î¥×¥í¥»¥¹¤Ï¡¢I/O ¥¹¥È¥ê¡¼¥à¤ò»²¾È¤¹¤ë¤Î¤Ë µ½Ò»Ò(descriptor)¤ò»ÈÍѤ·¤Þ¤¹¡£ µ½Ò»Ò¤Ï open ¤Þ¤¿¤Ï socket ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ê¼èÆÀ¤µ¤ì¤ëÉä¹æÌµ¤·¤Î¾®¤µ¤ÊÀ°¿ô¤Ç¤¹¡£ open¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ °ú¿ô¤Ë¥Õ¥¡¥¤¥ë̾¤ª¤è¤Óµö²Ä¥â¡¼¥É¤ò¤È¤ê¡¢ ¤½¤ì¤¾¤ì³«¤¯¥Õ¥¡¥¤¥ë¤ª¤è¤Ó¡¢¥â¡¼¥É (ÆÉ¤ß¹þ¤ß¡¢½ñ¤¹þ¤ß¤Þ¤¿¤ÏÆÉ¤ß½ñ¤) ¤ò»ØÄꤷ¤Þ¤¹¡£ open ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¿·¤·¤¤¶õ¤Î¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤Ë¤â»ÈÍѤǤ¤Þ¤¹¡£ read¤ª¤è¤Ó write¥·¥¹¥Æ¥à¥³¡¼¥ë¤òµ½Ò»Ò¤ËÂФ·¤Æ»ÈÍѤ·¡¢ ¥Ç¡¼¥¿¤ÎžÁ÷¤ò¹Ô¤¤¤Þ¤¹¡£ close¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Ç¤°Õ¤Îµ½Ò»Ò¤ò³«Êü¤·¤Þ¤¹¡£
µ½Ò»Ò¤Ï¡¢¥«¡¼¥Í¥ë¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤òɽ¤·¤Þ¤¹¡£ 4.4BSD ¤Ç¤Ï¡¢¥Õ¥¡¥¤¥ë¡¢¥Ñ¥¤¥×¡¢¥½¥±¥Ã¥È¤Î 3 ¤Ä¤Î¥ª¥Ö¥¸¥§¥¯¥È¤ò ɽ¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£
¥Õ¥¡¥¤¥ë¤Ï¡¢¾¯¤Ê¤¯¤È¤â 1 ¸Ä¤Î̾Á°¤ò»ý¤Ä¥Ð¥¤¥ÈÎó¤Ç¤¹¡£ ¥Õ¥¡¥¤¥ë¤Ï¡¢¤¹¤Ù¤Æ¤Î̾Á°¤òÌÀ¼¨Åª¤Ëºï½ü¤·¡¢ ¤½¤Îµ½Ò»Ò¤ò»ý¤Ä¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤¬¾ÃÌǤ¹¤ë¤Þ¤Ç¸ºß¤·¤Þ¤¹¡£ ¥×¥í¥»¥¹¤Ï¡¢open ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ê¡¢ »ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤ò»ý¤Ä¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ëµ½Ò»Ò¤ò¼èÆÀ¤·¤Þ¤¹¡£ I/O ¥Ç¥Ð¥¤¥¹¤Ï¥Õ¥¡¥¤¥ë¤È¤·¤Æ¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤¹¡£
¥Ñ¥¤¥×¤È¤Ï¡¢ ¥Õ¥¡¥¤¥ë¤ÈƱ¤¸¤¯¥Ð¥¤¥ÈÎó¤Ç¤¹¤¬ I/O ¥¹¥È¥ê¡¼¥à¤È¤·¤Æ¤Î¤ß»È¤ï¤ì¡¢Ã±°ìÊý¸þ¤Ë¤Î¤ß»È¤ï¤ì¤Þ¤¹¡£ ¥Ñ¥¤¥×¤Ë¤Ï̾Á°¤¬¤Ê¤¤¤Î¤Ç¡¢open ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤Ï³«¤¯¤³¤È¤¬¤Ç¤¤Þ¤»¤ó¡£ ¥Ñ¥¤¥×¤ò³«¤¯¤Ë¤Ï¡¢pipe ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Þ¤¹¡£ pipe¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï 2 ¤Ä¤Îµ½Ò»Ò¤òÊÖ¤·¤Þ¤¹¡£ ¤Ò¤È¤Ä¤Îµ½Ò»Ò¤ËÆþÎϤµ¤ì¤¿¥Ç¡¼¥¿¤Ï¡¢ ¤â¤¦°ìÊý¤Îµ½Ò»Ò¤Ë¤½¤Î¤Þ¤Þ½ç½ø¤òÊѤ¨¤º¤Ë½ÐÎϤµ¤ì¤Þ¤¹¡£ ̾Á°ÉÕ¤¥Ñ¥¤¥× (FIFO) ¤â»ÈÍѤǤ¤Þ¤¹¡£ ̾Á°¤¬¤¢¤ë¤Î¤Ç¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤ËÇÛÃÖ¤µ¤ì¡¢ open ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥¢¥¯¥»¥¹¤Ç¤¤ë°Ê³°¤Ï¡¢ ¥Ñ¥¤¥×¤ÈƱ°ì¤Îµ¡Ç½¤ò»ý¤Á¤Þ¤¹¡£ FIFO ¤ò»ÈÍѤ·¤Æ¥×¥í¥»¥¹´ÖÄÌ¿®¤ò¹Ô¤¤¤¿¤¤¾ì¹ç¤Ï¡¢ ÊÒÊý¤Î¥×¥í¥»¥¹¤¬ FIFO ¤ò½ñ¤¹þ¤ßÍѤ˳«¤¡¢ ¤â¤¦ÊÒÊý¤Ç¤ÏÆÉ¤ß¹þ¤ßÍѤ˳«¤¤Þ¤¹¡£
¥½¥±¥Ã¥È¤Ï¡¢ ¥×¥í¥»¥¹´ÖÄÌ¿®¤Î¤¿¤á¤Ë»ÈÍѤµ¤ì¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Ç¡¢ ¥½¥±¥Ã¥È¤ò»²¾È¤¹¤ëµ½Ò»Ò¤ò»ý¤Ä¥×¥í¥»¥¹¤¬Â¸ºß¤¹¤ë´Ö¤Î¤ß¸ºß¤·¤Þ¤¹¡£ ¥½¥±¥Ã¥È¤Ï socket ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÇºîÀ®¤·¤Þ¤¹¡£ socket ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ ºîÀ®¤·¤¿¥½¥±¥Ã¥È¤Îµ½Ò»Ò¤òÊÖ¤·¤Þ¤¹¡£ ¤µ¤Þ¤¶¤Þ¤ÊÄÌ¿®ÊýË¡¤ò¼Â¸½¤¹¤ë¤¿¤á¤Ë¡¢ ³Æ¼ï¤Î¥½¥±¥Ã¥È¤¬¤¢¤ê¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¿®ÍêÀ¤Î¹â¤¤¥Ç¡¼¥¿Å¾Á÷¤òÌÜŪ¤È¤·¤¿¥½¥±¥Ã¥È¡¢ ¥á¥Ã¥»¡¼¥¸¤Î½çÈÖ¤òÊÝ»ý¤¹¤ë¥½¥±¥Ã¥È¡¢ ¥á¥Ã¥»¡¼¥¸¤Î¶³¦¤òÊݸ¤ë¥½¥±¥Ã¥È¤Ê¤É¤¬¤¢¤ê¤Þ¤¹¡£
4.2BSD ¤Ç¥½¥±¥Ã¥È¤¬Æ³Æþ¤µ¤ì¤ë¤Þ¤Ç¡¢ ¥Ñ¥¤¥×¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òÍѤ¤¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¡£ 4.2BSD °Ê¹ß¤Ç¤Ï¡¢¥½¥±¥Ã¥È¤ò»ÈÍѤ·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¥«¡¼¥Í¥ë¤Ï¤½¤ì¤¾¤ì¤Î¥×¥í¥»¥¹¤Îµ½Ò»Ò¥Æ¡¼¥Ö¥ë¤òÊÝ»ý¤·¤Æ¤ª¤ê¡¢ µ½Ò»Ò¤Î³°Éôɽ¸½¤òÆâÉôɽ¸½¤ËÊÑ´¹¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤Þ¤¹ (µ½Ò»Ò¤½¤Î¤â¤Î¤Ï¤³¤Î¥Æ¡¼¥Ö¥ë¤Ø¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹Ãͤˤ¹¤®¤Þ¤»¤ó)¡£ µ½Ò»Ò¥Æ¡¼¥Ö¥ë¤Ï¡¢¿Æ¥×¥í¥»¥¹¤«¤é»Ò¥×¥í¥»¥¹¤Ë·Ñ¾µ¤µ¤ì¤Þ¤¹¡£ ¤½¤Î¤¿¤á¡¢µ½Ò»Ò¤Î»²¾ÈÀè¤âƱ¤¸¤¯·Ñ¾µ¤µ¤ì¤Þ¤¹¡£ µ½Ò»Ò¤òÆÀ¤ë¤¿¤á¤Ë¤Ï¡¢¥ª¥Ö¥¸¥§¥¯¥È¤ò³«¤¤¤¿¤ê¡¢ ºîÀ®¤·¤¿¤ê¤¹¤ë°Ê³°¤Ë¡¢ ¤³¤Î¤è¤¦¤Ê¿Æ¥×¥í¥»¥¹¤«¤é¤Î·Ñ¾µ¤Ë¤è¤ëÊýË¡¤¬¤¢¤ê¤Þ¤¹¡£ ¤Þ¤¿ IPC ¥½¥±¥Ã¥È¤ò»ÈÍѤ¹¤ì¤Ð¡¢ Ʊ°ì¥Þ¥·¥ó¾å¤Çưºî¤·¤Æ¤¤¤ë̵´Ø·¸¤Ê¥×¥í¥»¥¹´Ö¤Ç¡¢ µ½Ò»Ò¤Î¤ä¤ê¤È¤ê¤¬²Äǽ¤Ç¤¹¡£
¤¹¤Ù¤Æ¤Î͸ú¤Êµ½Ò»Ò¤Ï¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¤ÎÀèÆ¬¤«¤é¤Î°ÌÃÖ¤ò ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È ¤È¤·¤Æ¥Ð¥¤¥Èñ°Ì¤ÇÊÝ»ý¤·¤Æ¤¤¤Þ¤¹¡£ ÆÉ¤ß¹þ¤ß¤ª¤è¤Ó½ñ¤¹þ¤ßưºî¤Ï¡¢ ¤³¤Î¥ª¥Õ¥»¥Ã¥È°ÌÃÖ¤«¤é¹Ô¤ï¤ì¡¢ ¥Ç¡¼¥¿¤¬Å¾Á÷¤µ¤ì¤ëËè¤Ë¥ª¥Õ¥»¥Ã¥È¤Î°ÌÃ֤Ϲ¹¿·¤µ¤ì¤Þ¤¹¡£ ¥é¥ó¥À¥à¥¢¥¯¥»¥¹¤òµö²Ä¤·¤Æ¤¤¤ë¥ª¥Ö¥¸¥§¥¯¥È¤Î¾ì¹ç¡¢ ¥Õ¥¡¥¤¥ë¥ª¥Õ¥»¥Ã¥È¤Ï¡¢lseek ¥·¥¹¥Æ¥à¥³¡¼¥ë¤òÍøÍѤ·¤Æ°Üư¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£ Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤ä¤¢¤ë¼ï¤Î¥Ç¥Ð¥¤¥¹¤Ï¥é¥ó¥À¥à¥¢¥¯¥»¥¹²Äǽ¤Ç¤¹¡£ ¥Ñ¥¤¥×¡¢¥½¥±¥Ã¥È¤Ï¥é¥ó¥À¥à¥¢¥¯¥»¥¹¤Ç¤¤Þ¤»¤ó¡£
¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤È¡¢ ¥«¡¼¥Í¥ë¤Ï¤½¤Î¥×¥í¥»¥¹¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤¿¤¹¤Ù¤Æ¤Î¼±Ê̻Ҥò²ó¼ý¤·¤Þ¤¹¡£ ¥×¥í¥»¥¹¤¬¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤òÊÝ»ý¤·¤¿¤Þ¤Þ½ªÎ»¤·¤¿¾ì¹ç¤Ï¡¢ ¥ª¥Ö¥¸¥§¥¯¥È¥Þ¥Í¡¼¥¸¥ã¤ËÄÌÃΤ·¡¢¥Õ¥¡¥¤¥ë¤Îºï½ü¡¢ ¥½¥±¥Ã¥È¤Î³«Êü¤Ê¤É¤ÎɬÍפʥ¯¥ê¡¼¥ó¥¢¥Ã¥×¤ò¹Ô¤ï¤»¤Þ¤¹¡£
¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢¥×¥í¥»¥¹¤¬µ¯Æ°¤µ¤ì¤ë¤È¡¢ 3 ¤Ä¤Îµ½Ò»Ò¤¬¤¹¤Ç¤Ë³«¤«¤ì¤Æ¤¤¤Þ¤¹¡£ ¤½¤ì¤é¤Îµ½Ò»Ò¤Ï¡¢0¡¢1¡¢2 ¤Ç¡¢¤½¤ì¤¾¤ì°ìÈÌŪ¤Ë¤Ï¡¢ ɸ½àÆþÎÏ¡¢ ɸ½à½ÐÎÏ¡¢ ɸ½à¥¨¥é¡¼½ÐÎÏ ¤È¤·¤ÆÃΤé¤ì¤Æ¤¤¤Þ¤¹¡£ Ä̾盧¤ì¤é¤Î¼±Ê̻Ҥϡ¢ ¥í¥°¥¤¥ó¥×¥í¥»¥¹¤Ë¤è¤ê¥æ¡¼¥¶¤ÎüËö¤Ë³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Þ¤¹ (14.6 ÀỲ¾È)¡£¤¹¤Ê¤ï¤Á¡¢¥¡¼¥Ü¡¼¥É¤«¤é¤ÎÆþÎϤòɸ½àÆþÎϤȤ·¤Æ¼õ¤±¼è¤ê¡¢ ɸ½à½ÐÎϤؤνÐÎϤÏüËö¤Î²èÌ̤Ëɽ¼¨¤µ¤ì¤Þ¤¹¡£ ɸ½à¥¨¥é¡¼½ÐÎϤ⥨¥é¡¼½ÐÎÏÍѤ˽ñ¤¹þ¤ßÍѤ˳«¤«¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢ Ä̾ï¤Î½ÐÎϤˤÏɸ½à½ÐÎϤ¬ÍøÍѤµ¤ì¤Þ¤¹¡£
¤³¤ì¤é¤Îµ½Ò»Ò¤ò (¾¤Îµ½Ò»Ò¤â) üËö°Ê³°¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë³ä¤êÅö¤Æ¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ ¤³¤Î¤è¤¦¤Ê³ä¤êÅö¤Æ¤ò¡¢ I/O ¥ê¥À¥¤¥ì¥¯¥È¤È¸Æ¤Ó¤Þ¤¹¡£ ¤¹¤Ù¤Æ¤Îɸ½à¥·¥§¥ë¤Ç¤Ï¡¢¥æ¡¼¥¶¤¬ I/O ¥ê¥À¥¤¥ì¥¯¥È¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ µ½Ò»Ò 1 (ɸ½à½ÐÎÏ) ¤òÊĤ¸¡¢ »ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤òµ½Ò»Ò 1 ¤È¤·¤Æ³«¤¯¤³¤È¤Ç¡¢ ¥·¥§¥ë¤Ï½ÐÎϤò¥Õ¥¡¥¤¥ë¤ËÁ÷¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ƱÍͤˡ¢µ½Ò»Ò 0 ¤òÊĤ¸¡¢ »ØÄꤷ¤¿¥Õ¥¡¥¤¥ë¤ò³«¤¯¤³¤È¤Ç¡¢ ¥Õ¥¡¥¤¥ë¤«¤éɸ½àÆþÎϤò¼õ¤±¼è¤ë¤è¤¦¤Ë¤Ç¤¤Þ¤¹¡£
¥Ñ¥¤¥×¤Ï¡¢¥×¥í¥°¥é¥à¤ÎÊѹ¹¤ò¤Þ¤Ã¤¿¤¯¹Ô¤ï¤º (ºÆ¥ê¥ó¥¯¤âɬÍפ¢¤ê¤Þ¤»¤ó)¡¢¤¢¤ë¥×¥í¥°¥é¥à¤Î½ÐÎϤò ¾¤Î¥×¥í¥°¥é¥à¤ËÆþÎϤ¹¤ë¤³¤È¤ò²Äǽ¤Ë¤·¤Þ¤¹¡£ ½ÐÎϦ¤Î¥×¥í¥°¥é¥à¤Îµ½Ò»Ò 1 (ɸ½à½ÐÎÏ) ¤Ï¡¢Ã¼Ëö½ÐÎϤÎÂå¤ï¤ê¤Ë¥Ñ¥¤¥×¤ÎÆþÎϵ½Ò»Ò¤Ë³ä¤êÅö¤Æ¤é¤ì¤Þ¤¹¡£ ƱÍÍ¤ËÆþÎϦ¤Î¥×¥í¥°¥é¥à¤Îµ½Ò»Ò 0 (ɸ½àÆþÎÏ) ¤Ï¡¢ üËö¤«¤é¤Î¥¡¼¥Ü¡¼¥ÉÆþÎϤǤϤʤ¯¥Ñ¥¤¥×¤Î½ÐÎϵ½Ò»Ò¤Ë³ä¤êÅö¤Æ¤é¤ì¤Þ¤¹¡£
open¡¢ pipe¡¢ socket ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¿·¤·¤¤µ½Ò»Ò¤òÀ¸À®¤·¡¢ »ÈÍѤǤ¤ëºÇ¤â¾®¤µ¤¤ÈÖ¹æ¤ò³ä¤êÅö¤Æ¤Þ¤¹¡£ ¥Ñ¥¤¥×¤òưºî¤µ¤»¤ë¤¿¤á¤Ë¤Ï¡¢¤½¤Î¤è¤¦¤ËÀ¸À®¤µ¤ì¤¿µ½Ò»Ò¤ò 0 ¤ä 1 ¤Ë¥Þ¥Ã¥×¤¹¤ë»ÅÁȤߤ¬É¬Íפˤʤê¤Þ¤¹¡£ dup ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ Ʊ°ì¤Î¥Õ¥¡¥¤¥ë¥Æ¡¼¥Ö¥ë¥¨¥ó¥È¥ê¤ò»Ø¤¹µ½Ò»Ò¤Î¥³¥Ô¡¼¤òºîÀ®¤·¤Þ¤¹¡£ ¿·¤·¤¤µ½Ò»Ò¤âƱ¤¸¤¯»ÈÍѲÄǽ¤ÊºÇ¾®¤ÎÈֹ椬»È¤ï¤ì¤ë¤¿¤á¡¢ dup¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Æ¡¢ ɬÍפʥޥåפò¹Ô¤¨¤Þ¤¹¡£ ¤¿¤À¡¢µ½Ò»Ò 1 ¤¬É¬Íפʾì¹ç¤Ç¤â¡¢µ½Ò»Ò 0 ¤¬´û¤ËÊĤ¸¤é¤ì¤Æ¤¤¤ë¤È¡¢ µ½Ò»Ò 0 ¤¬³ä¤êÅö¤Æ¤é¤ì¤Æ¤·¤Þ¤¤¤Þ¤¹¤Î¤ÇÃí°Õ¤¬É¬ÍפǤ¹¡£ ¤³¤ÎÌäÂê¤òÈò¤±¤ë¤¿¤á¡¢ dup2 ¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬¤¢¤ê¤Þ¤¹¡£ dup ¤Ë°ú¿ô¤¬ 1 ¤ÄÄɲ䵤졢 ³ä¤êÅö¤Æ¤¿¤¤µ½Ò»Ò¤ÎÈÖ¹æ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹ (¤â¤·¡¢»ØÄꤵ¤ì¤¿ÈÖ¹æ¤Îµ½Ò»Ò¤¬»ÈÍÑÃæ¤Î¾ì¹ç¡¢ dup2 ¤Ï¡¢¤Þ¤º¤½¤Îµ½Ò»Ò¤òÊĤ¸¤¿¤Î¤Á¡¢ ºÆ³ä¤êÅö¤Æ¤·¤Þ¤¹)¡£
¥Ï¡¼¥É¥¦¥§¥¢¥Ç¥Ð¥¤¥¹¤Ï¥Õ¥¡¥¤¥ë̾¤ò»ý¤Á¡¢Ä̾ï¤Î¥Õ¥¡¥¤¥ë¤È Ʊ°ì¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¥¢¥¯¥»¥¹¤Ç¤¤Þ¤¹¡£¥«¡¼¥Í¥ë¤Ï¡¢ ¥Ç¥Ð¥¤¥¹ÆÃ¼ì¥Õ¥¡¥¤¥ë ¤ä ÆÃ¼ì¥Õ¥¡¥¤¥ë¤ò¶èÊ̤·¡¢ »²¾È¤·¤Æ¤¤¤ë¥Ç¥Ð¥¤¥¹¤òÆÃÄê¤Ç¤¤Þ¤¹¤¬¡¢ ¤Û¤È¤ó¤É¤Î¥×¥í¥»¥¹¤Ë¤È¤Ã¤Æ¡¢¤³¤Î¤è¤¦¤Ê¶èÊ̤ÏɬÍפ¢¤ê¤Þ¤»¤ó¡£ üËö¡¢¥×¥ê¥ó¥¿¡¢¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Ï¡¢4.4BSD ¤Î¥Ç¥£¥¹¥¯¥Õ¥¡¥¤¥ë¤ÈƱÍÍ¡¢ ¥Ð¥¤¥ÈÎó¤È¤·¤Æ¥¢¥¯¥»¥¹¤µ¤ì¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢¥Ç¥Ð¥¤¥¹°Í¸Éôʬ¤äÆÃ¼ìÉôʬ¤Ï¡¢ ²Äǽ¤Ê¸Â¤ê¥«¡¼¥Í¥ë¤Ë±£Ê䵤졢¤µ¤é¤Ë¥«¡¼¥Í¥ëÆâ¤Ç¤â¡¢ ¤½¤ì¤é¤ÎÂçÉôʬ¤¬¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥ÐÆâ¤ËʬΥ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
¥Ï¡¼¥É¥¦¥§¥¢¥Ç¥Ð¥¤¥¹¤Ï¡¢ ¹½Â¤¤ò»ý¤Ä¥Ç¥Ð¥¤¥¹¤È ¹½Â¤¤ò»ý¤¿¤Ê¤¤¥Ç¥Ð¥¤¥¹¤Ëʬ¤±¤é¤ì¤Þ¤¹¡£ ¤½¤ì¤¾¤ì¡¢ ¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¡¢ ¥¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤È¸Æ¤Ð¤ì¤Þ¤¹¡£ ¤½¤ì¤é¤Î¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤Ï¡¢¥«¡¼¥Í¥ëÆâ¤Î ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð ¤È¸Æ¤Ð¤ì¤ë¥½¥Õ¥È¥¦¥§¥¢¥â¥¸¥å¡¼¥ë¤Ë¤è¤Ã¤Æ½èÍý¤µ¤ì¤Þ¤¹¡£ ¤Û¤È¤ó¤É¤Î¥Í¥Ã¥È¥ï¡¼¥¯ÄÌ¿®¥Ï¡¼¥É¥¦¥§¥¢¥Ç¥Ð¥¤¥¹¤Ï¡¢ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤ËÆÃ¼ì¥Õ¥¡¥¤¥ë¤ò»ý¤¿¤º¡¢ ¥×¥í¥»¥¹´ÖÄÌ¿®µ¡Ç½¤Ë¤è¤Ã¤Æ¤Î¤ß¥¢¥¯¥»¥¹¤Ç¤¤Þ¤¹¡£ ¤½¤ì¤Ï¡¢raw-socket¤ÎÊý¤¬ÆÃ¼ì¥Õ¥¡¥¤¥ë¤è¤ê¡¢ ¤è¤ê¼«Á³¤Ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤Ǥ¤ë¤¿¤á¤Ç¤¹¡£
ŵ·¿Åª¤Ê¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹ (¹½Â¤¤ò»ý¤Ä¥Ç¥Ð¥¤¥¹) ¤È¤·¤Æ¤Ï¡¢ ¥Ç¥£¥¹¥¯¡¢¼§µ¤¥Æ¡¼¥×¤¬¤¢¤²¤é¤ì¤Þ¤¹¤¬¡¢ ¤Û¤È¤ó¤É¤Î¥é¥ó¥À¥à¥¢¥¯¥»¥¹¥Ç¥Ð¥¤¥¹¤¬¤½¤ì¤Ë³ºÅö¤·¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¤Ï¡¢ÆÉ¤ß¹þ¤ß-Êѹ¹-½ñ¤¹þ¤ß¤ËÂФ·¤Æ¥Ð¥Ã¥Õ¥¡¥ê¥ó¥°¤òÄ󶡤·¡¢ Ä̾ï¥Õ¥¡¥¤¥ë¤ÈƱÍͤΡ¢ ´°Á´¤Ê¥Ð¥¤¥È¥¢¥É¥ì¥¹»ØÄê¤Î¥é¥ó¥À¥à¥¢¥¯¥»¥¹¤òÄ󶡤·¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¥Ö¥í¥Ã¥¯¥Ç¥Ð¥¤¥¹¾å¤Ë¹½ÃÛ¤µ¤ì¤Þ¤¹¡£
¹½Â¤¤ò»ý¤¿¤Ê¤¤¥Ç¥Ð¥¤¥¹¤Ï¡¢ ¥Ö¥í¥Ã¥¯¹½Â¤¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤¥Ç¥Ð¥¤¥¹¤Ç¡¢ÄÌ¿®Àþ¡¢¥é¥¹¥¿¥×¥í¥Ã¥¿¡¢ ¥Ð¥Ã¥Õ¥¡¤Î¤Ê¤¤¼§µ¤¥Ç¥£¥¹¥¯¤ä¥Æ¡¼¥×¤Ê¤É¤Ç¤¹¡£ ¹½Â¤¤ò»ý¤¿¤Ê¤¤¥Ç¥Ð¥¤¥¹¤ÏÄ̾ ÂçÍÆÎ̤Υ֥í¥Ã¥¯ I/O žÁ÷¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£
¹½Â¤¤ò»ý¤¿¤Ê¤¤¥Õ¥¡¥¤¥ë¤Ï¥¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¤È¸Æ¤Ð¤ì¤Þ¤¹¡£ ¤³¤ì¤ÏºÇ½é¤Ë¼ÂÁõ¤µ¤ì¤¿¤³¤Î¼ïÎà¤Î¥Ç¥Ð¥¤¥¹¤¬¡¢ üËö¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤À¤Ã¤¿¤«¤é¤Ç¤¹¡£ ¤³¤Î¤è¤¦¤Ê¥Ç¥Ð¥¤¥¹¤ËÂФ¹¤ë¥«¡¼¥Í¥ë¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¡¢ ¾¤Î¥Ö¥í¥Ã¥¯¹½Â¤¤ò»ý¤¿¤Ê¤¤¥Ç¥Ð¥¤¥¹¤ËÂФ·¤Æ¤âÍÍѤǤ¢¤ë¤³¤È¤¬¾ÚÌÀ¤µ¤ì¤Þ¤·¤¿¡£
¥Ç¥Ð¥¤¥¹ÆÃ¼ì¥Õ¥¡¥¤¥ë¤Ï¡¢ mknod¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤êºîÀ®¤µ¤ì¤Þ¤¹¡£ ioctl¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢ ÆÃ¼ì¥Õ¥¡¥¤¥ë¤ËÂбþ¤¹¤ë¥Ç¥Ð¥¤¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤òÁàºî¤¹¤ë¤Î¤Ë»È¤ï¤ì¤Þ¤¹¡£ ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Â¾¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¿·¤¿¤Êµ¡Ç½¤òÄɲ令º¤Ë¡¢ ¥Ç¥Ð¥¤¥¹¤ÎÆÃ¼ì¤Êµ¡Ç½¤òÁàºî¤¹¤ë¤³¤È¤ò²Äǽ¤Ë¤·¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢ioctl¤ò»ÈÍѤ·¤Æ¡¢ ½ªÎ»¥Þ¡¼¥¯¤ò¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Ë½ñ¤¹þ¤à¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ write ¤ËÊѹ¹¤ò²Ã¤¨¤¿¤ê¡¢ ÆÃ¼ì¤Ê¥Ð¡¼¥¸¥ç¥ó¤òÍѰդ¹¤ëɬÍפϤ¢¤ê¤Þ¤»¤ó¡£
4.2BSD ¥«¡¼¥Í¥ë¤Ï¥½¥±¥Ã¥È¤òÍøÍѤ·¤Æ¡¢¥Ñ¥¤¥×¤è¤ê½ÀÆð¤Ê IPC µ¡Ç½¤òƳÆþ¤·¤Þ¤·¤¿¡£¥½¥±¥Ã¥È¤Ï¡¢¥Õ¥¡¥¤¥ë¤ä¥Ñ¥¤¥×¤ÈƱÍÍ¡¢ µ½Ò»Ò¤Ë¤è¤ê»²¾È¤µ¤ì¤ë¡¢ÄÌ¿®¤ÎËöüÅÀ¤Ç¤¹¡£ 2 ¤Ä¤Î¥×¥í¥»¥¹¤¬¤½¤ì¤¾¤ì¡¢¥½¥±¥Ã¥È¤òºîÀ®¤·¤ÆÀܳ¤¹¤ë¤³¤È¤Ë¤è¤ê¡¢ ¿®ÍêÀ¤Î¹â¤¤¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à¤òºîÀ®¤Ç¤¤Þ¤¹¡£ Àܳ¤µ¤ì¤ì¤Ð¡¢¤½¤ì¤¾¤ì¤Î¥×¥í¥»¥¹¤Ï¡¢¥Ñ¥¤¥×¤ÈƱ¤¸¤è¤¦¤Ë¡¢ ÆÉ¤ß¹þ¤ß½ñ¤¹þ¤ß¤ò¥½¥±¥Ã¥È¤ËÂФ·¤Æ¹Ô¤¨¤Þ¤¹¡£ ¥½¥±¥Ã¥È¤ÎÆ©ÌÀÀ¤Ë¤è¤ê¡¢¥«¡¼¥Í¥ë¤Ï¥×¥í¥»¥¹¤Î½ÐÎϤò¡¢ Ê̤Υޥ·¥ó¾å¤Î¥×¥í¥»¥¹¤ÎÆþÎϤËÁ÷¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£ ¥Ñ¥¤¥×¤È¥½¥±¥Ã¥È¤ÎÂ礤ʰ㤤¤Ï¡¢ ¥Ñ¥¤¥×¤Ï¶¦ÄÌ¤Î¿Æ¥×¥í¥»¥¹¤¬ÀßÄꤹ¤ëɬÍפ¬¤¢¤ë¤Î¤ËÂФ·¤Æ¡¢ ¥½¥±¥Ã¥È¤Ï¤Þ¤Ã¤¿¤¯Ìµ´Ø·¸¤Î (°Û¤Ê¤ë¥Þ¥·¥ó¾å¤Çưºî¤¹¤ë) ¥×¥í¥»¥¹´Ö¤Ç¤â»ÈÍѤǤ¤ëÅÀ¤Ç¤¹¡£
System V ¤Ï¡¢FIFO ¤â¤·¤¯¤Ï̾Á°ÉÕ¤¥Ñ¥¤¥×¤È¸Æ¤Ð¤ì¤ë ¥í¡¼¥«¥ë¥×¥í¥»¥¹´ÖÄÌ¿®¤Î»ÅÁȤߤòÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£ FIFO ¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Î¥ª¥Ö¥¸¥§¥¯¥È¤È¤·¤Æ¸½¤ï¤ì¡¢ ¥Ñ¥¤¥×¤ÈƱÍͤÊÊýË¡¤Ç¥ª¡¼¥×¥ó¤·¡¢¥Ç¡¼¥¿¤òÁ÷¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤½¤Î¤¿¤á¡¢FIFO ¤Ï¶¦ÄÌ¤Î¿Æ¥×¥í¥»¥¹¤Ë¤è¤Ã¤ÆÀßÄꤵ¤ì¤ëɬÍפϤʤ¯¡¢ ¥×¥í¥»¥¹Æ±»Î¤¬µ¯Æ°¤·Æ°ºî³«»Ï¤·¤Æ¤«¤éÀܳ¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ ¤·¤«¤·¥½¥±¥Ã¥È¤È¤Ï°Û¤Ê¤ê¡¢ °Û¤Ê¤ë¥Þ¥·¥ó¾å¤Çưºî¤¹¤ë¥×¥í¥»¥¹¤ËÂФ·¤Æ¤Ï»ÈÍѤǤ¤Þ¤»¤ó¡£ 4.4BSD ¤Ç¡¢FIFO ¤¬¼ÂÁõ¤µ¤ì¤Æ¤¤¤ë¤Î¤Ï¡¢ POSIX.1 ɸ½à¤Ë½àµò¤¹¤ë¤¿¤á¤Î¤ß¤Ç¤¹¡£ FIFO ¤Îµ¡Ç½¤Ï¡¢¥½¥±¥Ã¥È¤Îµ¡Ç½¤Î°ìÉô¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¥½¥±¥Ã¥Èµ¡¹½¤ò¼Â¸½¤¹¤ë¤Ë¤Ï¡¢ ÅÁÅýŪ¤Ê UNIX ¤Î I/O ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë̾Á°ÉÕ¤±¤äÀܳµ¡Ç½¤òÄɲ乤ëɬÍפ¬¤¢¤ê¤Þ¤·¤¿¡£ ³«È¯¼Ô¤Ï¡¢´û¸¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ø¤Î³ÈÄ¥¤Ï´û¸¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Êѹ¹¤Ê¤·¤Ë»ÈÍѤǤ¤ëÈϰϤˤȤɤᡢ Äɲõ¡Ç½¤ò°·¤¦¿·¤·¤¤¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÀ߷פ·¤Þ¤·¤¿¡£ ¥Ð¥¤¥È¥¹¥È¥ê¡¼¥à·¿¤ÎÀܳ¤ÎÆÉ¤ß¹þ¤ß½ñ¤¹þ¤ß¤ò¹Ô¤¦ read¤È write ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë²Ã¤¨¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯¥À¥¤¥¢¥°¥é¥à¤Î¤è¤¦¤Ê°¸Ì¾ÉÕ¤¥á¥Ã¥»¡¼¥¸¤òÆÉ¤ß¹þ¤à¤¿¤á¡¢ ¿·¤¿¤Ë 6 ¤Ä¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ ¥á¥Ã¥»¡¼¥¸½ñ¤¹þ¤ßÍѤΠsend¡¢ sendto¡¢ sendmsg ¥·¥¹¥Æ¥à¥³¡¼¥ë¤È¡¢ ¥á¥Ã¥»¡¼¥¸¤ÎÆÉ¤ß¹þ¤ßÍѤΠrecv¡¢ recvfrom¡¢ recvmsg ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¹¡£ ¹Í¤¨Ä¾¤·¤Æ¸«¤ë¤È¡¢ ¤½¤ì¤¾¤ì¤ÎÆÉ¤ß½ñ¤ÍѤΥ·¥¹¥Æ¥à¥³¡¼¥ë¤Î¤¦¤ÁºÇ½é¤Î 2 ¤Ä¤Ï¼¡¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÎÆÃ¼ì¤Ê¾ì¹ç¤Ç¤¢¤ë¤Î¤Ç¡¢ recvfrom ¤È sendto ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¤½¤ì¤¾¤ì recvmsg ¤È sendmsg ¤Î¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤· ¤ÆÄɲ乤٤¤À¤Ã¤¿¤«¤âÃΤì¤Þ¤»¤ó¡£
´û¸¤Î read ¤ª¤è¤Ó write ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë²Ã¤¨¡¢ 4.2BSD ¤Ç scatter/gather I/O µ¡Ç½¤¬Æ³Æþ¤µ¤ì¤Þ¤·¤¿¡£ scatter ÆþÎÏ¤Ï readv ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¡¢ Ê£¿ô¤Î°Û¤Ê¤ë¥Ð¥Ã¥Õ¥¡¤ËÂФ·¤ÆÃ±°ì¤ÎÆÉ¤ß¹þ¤ß¤ò¼Â¹Ô¤Ç¤¤Þ¤¹¡£ µÕ¤Ë writev ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Ê£¿ô¤Î°Û¤Ê¤ë¥Ð¥Ã¥Õ¥¡¤ËÂФ·¤Æ¥¢¥È¥ß¥Ã¥¯¤Ê½ñ¤¹þ¤ß¤ò¼Â¹Ô¤Ç¤¤Þ¤¹¡£ read ¤ä write ¤Ë¤è¤Ã¤Æ¹Ô¤ï¤ì¤ë¤è¤¦¤Ë¡¢ ñ°ì¤Î¥Ð¥Ã¥Õ¥¡¤ÈŤµ¤ò¥Ñ¥é¥á¡¼¥¿¤È¤·¤ÆÅϤ¹Âå¤ï¤ê¤Ë¡¢ ¥Ð¥Ã¥Õ¥¡¤ÈŤµ¤ÎÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤È¤½¤Î¥µ¥¤¥º¤òÅϤ·¤Þ¤¹¡£
¤³¤Îµ¡Ç½¤Ë¤è¤ê¡¢ ¥×¥í¥»¥¹¥¢¥É¥ì¥¹¶õ´Ö¤Î°Û¤Ê¤ë¾ì½ê¤Ë¤¢¤ë¥Ð¥Ã¥Õ¥¡¤ËÂФ·¤Æ¥¢¥È¥ß¥Ã¥¯¤Êñ°ì¤Î½ñ¤¹þ¤ß¤ò¹Ô¤¨¡¢ ÎÙÀܤ¹¤ë¥Ð¥Ã¥Õ¥¡¤Ë¥³¥Ô¡¼¤¹¤ëɬÍפ⤢¤ê¤Þ¤»¤ó¡£ ¥Æ¡¼¥×¥Ç¥Ð¥¤¥¹¤Î¤è¤¦¤Ë¡¢¤½¤ì¤¾¤ì¤ÎÍ×µá¤ËÂФ·¡¢ ¥Æ¡¼¥×¥Ö¥í¥Ã¥¯¤ò½ÐÎϤò¤¹¤ëɬÍפ¬¤¢¤ë¤è¤¦¤Ê¥ì¥³¡¼¥É¥Ù¡¼¥¹¤Î¥Ç¥Ð¥¤¥¹¤òÃê¾Ý²½¤·¤¿¾ì¹ç¡¢ ¥¢¥È¥ß¥Ã¥¯¤Ê½ñ¤¹þ¤ß¤¬É¬Íפˤʤê¤Þ¤¹¡£ ¤Þ¤¿¡¢Ã±°ì¤ÎÆÉ¤ß¹þ¤ß¥ê¥¯¥¨¥¹¥È¤ÇÊ£¿ô¤Î¥Ð¥Ã¥Õ¥¡¤ËÆÉ¤ß¹þ¤á¤ë¤Î¤ÏÈó¾ï¤ËÊØÍø¤Ç¤¹ (¤¿¤È¤¨¤Ð¥ì¥³¡¼¥É¥Ø¥Ã¥À¤È¥Ç¡¼¥¿¤ò¤½¤ì¤¾¤ìÊ̤ΥХåե¡¤ËÆÉ¤ß¹þ¤à¾ì¹ç¤Ê¤É)¡£ ¤â¤Á¤í¤óñ°ì¤ÎÂ礤ʥХåե¡¤Ë¥Ç¡¼¥¿¤òÆÉ¤ß¹þ¤ß¡¢ ÆÉ¤ß¹þ¤ó¤À¥Ç¡¼¥¿¤òɬÍפʾì½ê¤Ë°Üư¤¹¤ë¤³¤È¤Ç scatter ưºî¤ò¥·¥ß¥å¥ì¡¼¥È¤¹¤ë¤³¤È¤Ï²Äǽ¤Ç¤¹¡£ ¤¿¤À¤·¡¢¤³¤Î¤è¤¦¤Ê¥á¥â¥ê´Ö¤Î¥³¥Ô¡¼¤Î¥³¥¹¥È¤Ï¡¢ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Îưºî¤ËɬÍפʻþ´Ö¤ò 2 Çܰʾå¤Ë¤·¤Æ¤·¤Þ¤¦¤³¤È¤âÎɤ¯¤¢¤ê¤Þ¤¹¡£
send ¤È recv ¤¬¤½¤ì¤¾¤ì¡¢ sendto ¤È recvfrom ¤Î¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ¼ÂÁõ²Äǽ¤Ç¤¢¤Ã¤¿¤Î¤ÈƱ¤¸¤¯¡¢ read ¤È write ¤ò¤½¤ì¤¾¤ì¡¢ readv ¤È writev ¤Î¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ¼ÂÁõ¤â²Äǽ¤Ç¤¢¤Ã¤¿¤Ç¤·¤ç¤¦¡£ ¤·¤«¤·¡¢ read ¤È write ¤Ï¤è¤êÉÑÈˤ˻Ȥï¤ì¤ë¤¿¤á¡¢ ¥·¥ß¥å¥ì¡¼¥È¤¹¤ë¤¿¤á¤ÎÄɲå³¥¹¥È¤ò¹Í¤¨¤ë¤È ¥é¥¤¥Ö¥é¥ê¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤È¤·¤Æ¤Î¼ÂÁõ¤Ï³ä¤Ë¹ç¤ï¤Ê¤«¤Ã¤¿¤Ç¤·¤ç¤¦¡£
¥Í¥Ã¥È¥ï¡¼¥¯¥³¥ó¥Ô¥å¡¼¥Æ¥£¥ó¥°¤Îȯã¤Ë¤è¤ê¡¢ ¥í¡¼¥«¥ë¤ª¤è¤Ó¥ê¥â¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ø¤ÎÂбþ¤¬Ë¾¤Þ¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥µ¥Ý¡¼¥È¤ò´Êñ¤Ë¤¹¤ë¤¿¤á¤Ë¡¢ ³«È¯¼Ô¤Ï vnode ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¥«¡¼¥Í¥ë¤ËÄɲä·¤Þ¤·¤¿¡£ vnode ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤«¤éÄ󶡤µ¤ì¤ëÁàºî¤Ï¡¢ °ÊÁ°¤Ë¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÁàºî¤È¤Û¤ÜƱ¤¸¤Ç¤¹¤¬¡¢ Éý¹¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤è¤ê»ÈÍѤ¬¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£
¥í¡¼¥«¥ë¤Î¥Ç¥£¥¹¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à
³Æ¼ï¥ê¥â¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥×¥í¥È¥³¥ë¤Ë¤è¤ê¥¤¥ó¥Ý¡¼¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë
ÆÉ¤ß¹þ¤ßÀìÍÑ CD-ROM ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à
ÆÃ¼ìµ¡Ç½¤òÄ󶡤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¡£ ¤¿¤È¤¨¤Ð /proc ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ê¤É
4.4BSD ͳÍè¤Î OS ¤ÎÃæ¤Ë¤Ï FreeBSD ¤Î¤è¤¦¤Ë¡¢ mount ¤Ç¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬½é¤á¤Æ»²¾È¤µ¤ì¤¿»þ¤Ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤òưŪ¤ËÆÉ¤ß¹þ¤à¤³¤È¤¬ ¤Ç¤¤ë¤â¤Î¤â¤¢¤ê¤Þ¤¹¡£ vnode ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤Ä¤¤¤Æ¤Ï 6.5 Àá¡¢ Êä½õ¥µ¥Ý¡¼¥È¥ë¡¼¥Á¥ó¤Ë¤Ä¤¤¤Æ¤Ï 6.6 Àá¡¢ ÆÃ¼ìµ¡Ç½¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ä¤¤¤Æ¤Ï 6.7 Àá¤ËµºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
Ä̾ï¥Õ¥¡¥¤¥ë¤È¤Ï°ì¼¡¸µ¤Î¥Ð¥¤¥ÈÎó¤Ç¤¢¤ê¡¢ Ǥ°Õ¤Î¾ì½ê¤«¤éÆÉ¤ß¹þ¤ß¡¦½ñ¤¹þ¤ß¤¬²Äǽ¤Ç¤¹¡£ ¥«¡¼¥Í¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î¥ì¥³¡¼¥É¶³¦¤òǧ¼±¤·¤Þ¤»¤ó¤¬¡¢ ¿¤¯¤Î¥×¥í¥°¥é¥à¤Ï ²þ¹Ô (LF) ʸ»ú¤ò¹Ô¤Î½ª¤ê¤Èǧ¼±¤·¤Þ¤¹¡£ ¤Þ¤¿¤³¤ì¤È¤Ï°Û¤Ê¤ë¥Õ¥¡¥¤¥ë¹½Â¤¤òÍøÍѤ¹¤ë¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤â¤¢¤ê¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¼«¿È¤Ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ë´Ø¤¹¤ë¥·¥¹¥Æ¥à¾ðÊó¤Ï¤Þ¤Ã¤¿¤¯´Þ¤Þ¤ì¤Þ¤»¤ó¡£ ³Æ¥Õ¥¡¥¤¥ë¤Î¥Õ¥¡¥¤¥ë½êͼԡ¢µö²Ä°À¡¢ »ÈÍѾõ¶·¤Ê¤É¤Î¤¤¤¯¤Ä¤«¤Î¾ðÊó¤Ï¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ÊÝ»ý¤·¤Æ¤¤¤Þ¤¹¡£
¥Õ¥¡¥¤¥ë̾¤ÏºÇÂç 255 ʸ»ú¤Þ¤Ç¤Îʸ»úÎó¤Ç¤¹¡£ ¥Õ¥¡¥¤¥ë̾¤Ï¥Ç¥£¥ì¥¯¥È¥ê ¤È¸Æ¤Ð¤ì¤ë·¿¤Î¥Õ¥¡¥¤¥ë¤ËÊݴɤµ¤ì¤Þ¤¹¡£ ¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î¾ðÊó¤Ï¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤È¸Æ¤Ð¤ì¡¢ ¥Õ¥¡¥¤¥ë̾°Ê³°¤Ë¥Õ¥¡¥¤¥ë¤½¤Î¤â¤Î¤Ø¤Î¥Ý¥¤¥ó¥¿¤â´Þ¤ß¤Þ¤¹¡£ ¥Ç¥£¥ì¥¯¥È¥ê¥¨¥ó¥È¥ê¤Ë¤ÏÄ̾ï¤Î¥Õ¥¡¥¤¥ë°Ê³°¤Ë¡¢ ¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò»²¾È¤¹¤ë¥¨¥ó¥È¥ê¤¬´Þ¤Þ¤ì¤Þ¤¹¡£ ¤³¤Î¤è¤¦¤Ë¤·¤Æ¥Ç¥£¥ì¥¯¥È¥ê¤È¥Õ¥¡¥¤¥ë¤Ë¤è¤ë³¬Áؤ¬·Áºî¤é¤ì¡¢ ¤½¤Î³¬Áع½Â¤¤ò¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¸Æ¤Ó¤Þ¤¹¡£
Figure 2-2¤Ï¾®µ¬ÌϤʥե¡¥¤¥ë¥·¥¹¥Æ¥à¤Î°ìÎã¤Ç¤¹¡£ ¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤ò´Þ¤à¤³¤È¤¬¤Ç¤¡¢ Æþ¤ì»Ò¤Î¿¼¤µ¤Ë¤ÏÆÃ¤ËÀ©¸Â¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î°ì´ÓÀ¤òÊݤĤ¿¤á¡¢ ¥«¡¼¥Í¥ë¤Ï¥×¥í¥»¥¹¤¬Ä¾Àܥǥ£¥ì¥¯¥È¥ê¤Ø½ñ¤¹þ¤à¤³¤È¤ò¶Ø»ß¤·¤Æ¤¤¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤Ï¡¢Ä̾ï¥Õ¥¡¥¤¥ë¡¢¥Ç¥£¥ì¥¯¥È¥ê°Ê³°¤Ë¡¢ ¥Ç¥Ð¥¤¥¹¥Õ¥¡¥¤¥ë¤ä¥½¥±¥Ã¥È¤Ê¤É¤Î¾¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ø¤Î»²¾È¤â´Þ¤Þ¤ì¤Þ¤¹¡£
¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢ ¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê ¤ò»ÏÅÀ¤È¤¹¤ëÌÚ¹½Â¤¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ ¥¹¥é¥Ã¥·¥å ¤È¸Æ¤Ð¤ì¤ë¾ì¹ç¤â¤¢¤ê¡¢¼ÐÀþʸ»ú(/)¤Çɽ¤µ¤ì¤Þ¤¹¡£ ¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Þ¤¹¡£ ¿Þ 2.2 ¤ÎÎã¤Ç¤Ï¡¢ usr ¥Ç¥£¥ì¥¯¥È¥ê¤¬´Þ¤Þ¤ì¡¢¤½¤Î usr ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢ bin ¥Ç¥£¥ì¥¯¥È¥ê¤¬´Þ¤Þ¤ì¤Þ¤¹¡£ bin ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤Ï¡¢Ä̾ï ls ¤ä vi ¤ò¤Ï¤¸¤á¤È¤¹¤ë¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô²Äǽ¥³¡¼¥É¤¬´Þ¤Þ¤ì¤Þ¤¹¡£
¥×¥í¥»¥¹¤Ï¡¢¥Õ¥¡¥¤¥ë¤Î»ØÄê¤ò¥Ñ¥¹Ì¾¤Ë¤è¤Ã¤Æ¹Ô¤¤¤Þ¤¹¡£ ¥Ñ¥¹Ì¾¤Ï¡¢0 ¸Ä°Ê¾å¤Î¥Õ¥¡¥¤¥ë̾¤ò¼ÐÀþʸ»ú(/)¤Ç¶èÀڤä¿Ê¸»úÎó¤Ç¤¹¡£ ¥«¡¼¥Í¥ë¤Ï¥Ñ¥¹Ì¾¤ò²ò¼á¤¹¤ë¤¿¤á¡¢¤½¤ì¤¾¤ì¤Î¥×¥í¥»¥¹¤Ë 2 ¤Ä¤Î¥Ñ¥¹Ì¾¤ò´ØÏ¢ÉÕ¤±¤Þ¤¹¡£ ¥×¥í¥»¥¹¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ ¥×¥í¥»¥¹¤¬¥¢¥¯¥»¥¹¤Ç¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤ÇºÇ¤â¾å°Ì¤ÎÅÀ¤Ç¤¹¡£ Ä̾¤³¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥àÁ´ÂΤΥ롼¥È¥Ç¥£¥ì¥¯¥È¥ê¤ËÀßÄꤵ¤ì¤Þ¤¹¡£ ¼ÐÀþʸ»ú (/) ¤Ç¤Ï¤¸¤Þ¤ë¥Ñ¥¹Ì¾¤ÏÀäÂХѥ¹Ì¾¤È¸Æ¤Ð¤ì¡¢ ¥«¡¼¥Í¥ë¤Ï¡¢¤½¤Î¥Ñ¥¹Ì¾¤¬¥×¥í¥»¥¹¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤«¤é ³«»Ï¤¹¤ë¤â¤Î¤È²ò¼á¤·¤Þ¤¹¡£
¼ÐÀþʸ»ú (/) ¤Ç¤Ï¤¸¤Þ¤é¤Ê¤¤¥Ñ¥¹Ì¾¤ÏÁêÂХѥ¹Ì¾¤È¸Æ¤Ð¤ì¡¢ ¥×¥í¥»¥¹¤Î¥«¥ì¥ó¥Èºî¶È¥Ç¥£¥ì¥¯¥È¥ê¤ò´ð½à¤È¤·¤¿ÁêÂÐŪ¤Ê¥Ñ¥¹¤È¤·¤Æ²ò¼á¤µ¤ì¤Þ¤¹ (¤³¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢Ã»½Ì¤·¤Æ ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê ¤Þ¤¿¤Ï¡¢ ºî¶È¥Ç¥£¥ì¥¯¥È¥ê ¤È¤â¸Æ¤Ð¤ì¤Þ¤¹)¡£ ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤½¤Î¤â¤Î¤Ï¡¢ ¥É¥Ã¥È ¤È¤â¸Æ¤Ð¤ì¡¢1 ¤Ä¤Î¥Ô¥ê¥ª¥É (.) ¤Çɽ¤µ¤ì¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë̾ ¥É¥Ã¥È¥É¥Ã¥È (..) ¤Ï¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤òɽ¤·¤Þ¤¹¡£ ¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¼«¿È¤Ç¤¹¡£
chroot ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ê¡¢¥×¥í¥»¥¹¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢ chdir ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ê¡¢¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤òÊѹ¹¤Ç¤¤Þ¤¹¡£ chdir ¤Ï¤¤¤Ä¤Ç¤â¹Ô¤¨¤Þ¤¹¤¬¡¢ chroot ¤Î¼Â¹Ô¤Ï¡¢´ÉÍý¼ÔÆÃ¸¢¤ò»ý¤Ä¥×¥í¥»¥¹¤Ë¸Â¤é¤ì¤Þ¤¹¡£ chroot ¤ÏÄ̾¥·¥¹¥Æ¥à¤ËÂФ¹¤ë¥¢¥¯¥»¥¹À©¸Â¤ò²Ý¤¹¤¿¤á¤ËÍѤ¤¤é¤ì¤Þ¤¹¡£
¿Þ 2.2 ¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢¥×¥í¥»¥¹¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê ¤¬¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ç¡¢¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤¬ /usr ¤Ç¤¢¤Ã¤¿¤È¤·¤Þ¤¹¡£¤³¤Î¤È¤¡¢ vi ¤ò»²¾È¤¹¤ë¤Ë¤Ï¡¢ÀäÂХѥ¹¤òÍѤ¤¤Æ¡¢ /usr/bin/vi ¤È¤â½ñ¤±¤Þ¤¹¤·¡¢¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤«¤é¤ÎÁêÂХѥ¹¤òÍѤ¤¤Æ¡¢ bin/vi ¤È¤â½ñ¤±¤Þ¤¹¡£
¥·¥¹¥Æ¥à¤Î¥æ¡¼¥Æ¥£¥ê¥Æ¥£¤ä¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¡¢ ¤è¤¯ÃΤé¤ì¤¿¤¢¤ë·è¤Þ¤Ã¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ËÊݸ¤µ¤ì¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î³¬Áع½Â¤¤È¤·¤Æ¤è¤¯ÃΤé¤ì¤¿¤â¤Î¤Ë¡¢ ³Æ¡¹¤Î¥æ¡¼¥¶¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤¬¤¢¤ê¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¿Þ 2.2 ¤Î /usr/staff/mckusick ¤ä /usr/staff/karels ¤Ê¤É¤Ç¤¹¡£ ¥æ¡¼¥¶¤¬¥í¥°¥¤¥ó¤¹¤ë¤È¡¢ ¥·¥§¥ë¤Î¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Ï¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ËÀßÄꤵ¤ì¤Þ¤¹¡£ ¥æ¡¼¥¶¤Ï¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥êÆâ¤ÇÄ̾ï¥Õ¥¡¥¤¥ë¤ÎºîÀ®¤ÈƱÍͤ˥ǥ£¥ì¥¯¥È¥ê¤âºîÀ®¤Ç¤¤ë¤¿¤á¡¢ Ê£»¨¤Ê³¬Áع½Â¤¤ò¹½ÃÛ¤¹¤ë¤³¤È¤â²Äǽ¤Ç¤¹¡£
¥æ¡¼¥¶¤«¤é¤Ï¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ 1 ¤Ä¤Ë¸«¤¨¤Þ¤¹¤¬¡¢ ¥·¥¹¥Æ¥à¤Ï 1 ¤Ä¤Î²¾ÁÛ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬¡¢ ¼ÂºÝ¤Ë¤Ï°Û¤Ê¤ë¥Ç¥Ð¥¤¥¹¾å¤ÎÊ£¿ô¤ÎʪÍý¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤«¤é¹½À®¤µ¤ì¤Æ¤¤¤ë¤³¤È¤òǧ¼±¤·¤Æ¤¤¤Þ¤¹¡£ ʪÍý¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢°Û¤Ê¤Ã¤¿¥Ç¥Ð¥¤¥¹¤Ë¤Þ¤¿¤¬¤ë¤³¤È¤Ï¤Ç¤¤Þ¤»¤ó¡£ ¤Û¤È¤ó¤É¤Î¾ì¹ç¡¢ÊªÍý¥Ç¥£¥¹¥¯¥Ç¥Ð¥¤¥¹¤ÏÊ£¿ô¤ÎÏÀÍý¥Ç¥Ð¥¤¥¹¤Ëʬ³ä¤µ¤ì¤ë¤¿¤á¡¢ 1 ¤Ä¤ÎʪÍý¥Ç¥Ð¥¤¥¹¾å¤ËÊ£¿ô¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¹½À®¤¹¤ë¤³¤È¤â¤Ç¤¤Þ¤¹¡£ ¤¹¤Ù¤Æ¤ÎÀäÂХѥ¹Ì¾¤ò²ò·è¤Ç¤¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò ¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¸Æ¤Ó¡¢ ¾ï¤ËÍøÍѲÄǽ¤Ê¾õÂ֤ˤʤäƤ¤¤Þ¤¹¡£ ¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¥Þ¥¦¥ó¥È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¥Þ¥¦¥ó¥È¤È¤Ï¡¢¥ë¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥Ç¥£¥ì¥¯¥È¥ê¹½Â¤¤Î°ìÉô¤È¤·¤ÆÅý¹ç¤¹¤ëÁàºî¤Ç¤¹¡£ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î»²¾È¤Ï¡¢ ¤½¤Î¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î»²¾È¤Ø¤È ¥«¡¼¥Í¥ë¤Ë¤è¤Ã¤ÆÆ©²áŪ¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£
link ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢´û¸¤Î¥Õ¥¡¥¤¥ë̾¤Ë¡¢ÊÌ̾¤òÍ¿¤¨¤Þ¤¹¡£ ¥ê¥ó¥¯¤¬À®¸ù¤¹¤ë¤È¡¢ ¥Õ¥¡¥¤¥ë¤Ï¤É¤Á¤é¤Î¥Õ¥¡¥¤¥ë̾¤«¤é¤Ç¤â¥¢¥¯¥»¥¹¤Ç¤¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë̾¤Ï unlink ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤êºï½ü¤Ç¤¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤ò»²¾È¤·¤Æ¤¤¤¿ºÇ¸å¤Î̾Á°¤¬ºï½ü¤µ¤ì¤ë¤È (¤µ¤é¤Ë¥Õ¥¡¥¤¥ë¤ò³«¤¤¤Æ¤¤¤¿ºÇ¸å¤Î¥×¥í¥»¥¹¤¬¥Õ¥¡¥¤¥ë¤òÊĤ¸¤ë¤È) ¥Õ¥¡¥¤¥ë¤½¤Î¤â¤Î¤âºï½ü¤µ¤ì¤Þ¤¹¡£
¥Õ¥¡¥¤¥ë¤Ï¥Ç¥£¥ì¥¯¥È¥êÆâ¤Ç³¬Áع½Â¤¤ò»ý¤Ã¤ÆÊÝ»ý¤µ¤ì¤Þ¤¹¡£ ¥Ç¥£¥ì¥¯¥È¥ê¤½¤Î¤â¤Î¤â°ì¼ï¤Î¥Õ¥¡¥¤¥ë¤Ç¤¹¤¬¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¤Ï°ìÈ̤Υե¡¥¤¥ë¤È°Û¤Ê¤ê¡¢ ¥·¥¹¥Æ¥à¤Ë¤è¤Ã¤Æ·è¤á¤é¤ì¤¿¹½Â¤¤ò»ý¤Ã¤Æ¤¤¤Þ¤¹¡£ ¥Ç¥£¥ì¥¯¥È¥ê¤Ï°ìÈ̤Υե¡¥¤¥ë¤ÈƱ¤¸¤¯¥×¥í¥»¥¹¤«¤éÆÉ¤ß¹þ¤à¤³¤È¤¬²Äǽ¤Ç¤¹¤¬¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¤ËÊѹ¹¤ò²Ã¤¨¤é¤ì¤ë¤Î¤Ï¥«¡¼¥Í¥ë¤À¤±¤Ç¤¹¡£ ¥Ç¥£¥ì¥¯¥È¥ê¤Ï mkdir ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ÇºîÀ®¤·¡¢ rmdir ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Çºï½ü¤·¤Þ¤¹¡£ 4.2BSD °ÊÁ°¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤±¤ë mkdir ¤È rmdir ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢°ìÏ¢¤Î link¡¢unlink ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Î¼Â¹Ô¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤·¤¿¡£ ÌÀ¼¨Åª¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎºîÀ®¡¢ ºï½ü¤ò¹Ô¤¦¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¿·¤¿¤ËÄɲä·¤¿Íýͳ¤Ï¡¢3 ¤Ä¤¢¤ê¤Þ¤¹¡£
¥¢¥È¥ß¥Ã¥¯¤Êưºî¤ò²Äǽ¤Ë¤¹¤ë¤¿¤á¡£ link ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ë¼ÂÁõ¤Î¾ì¹ç¤È°Û¤Ê¤ê¡¢ ¥·¥¹¥Æ¥à¤¬¥¯¥é¥Ã¥·¥å¤·¤¿¾ì¹ç¤Ë ¥Ç¥£¥ì¥¯¥È¥ê¤Î¹½Â¤¤¬ÃæÅÓȾü¤Ê¤Þ¤Þ¤Ë¤Ê¤ë¤³¤È¤¬¤¢¤ê¤Þ¤»¤ó¡£
¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò»ÈÍѤ·¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï ¥·¥ê¥¢¥é¥¤¥º (Áàºî½ç½ø¤ÎÊݾÚ) ¤ò¹Ô¤¦¤¿¤á¡¢¥Õ¥¡¥¤¥ë¤ª¤è¤Ó¥Ç¥£¥ì¥¯¥È¥ê¤ÎºîÀ®¡¢ ºï½ü¤Ï¥¢¥È¥ß¥Ã¥¯¤Ë¹Ô¤ï¤ì¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£
UNIX °Ê³°¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (¾¤Î¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¾å¤Î MS-DOS ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ê¤É) ¤ò¥µ¥Ý¡¼¥È¤¹¤ë¾ì¹ç¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¬ link ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£ ¤¿¤È¤¨¤½¤ì¤¬¥Ç¥£¥ì¥¯¥È¥ê¤ò¥µ¥Ý¡¼¥È¤¹¤ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¢¤Ã¤Æ¤â¡¢ UNIX ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤È¤Ï°Û¤Ê¤ê¡¢¥Ç¥£¥ì¥¯¥È¥ê¤ò¥ê¥ó¥¯¤È¤·¤ÆºîÀ®¡¢ ºï½ü¤·¤Ê¤¤¤â¤Î¤â¤¢¤ê¤Þ¤¹¡£ ¤½¤Î¤¿¤á¤½¤Î¤è¤¦¤Ê¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¤ÎºîÀ®¡¢ºï½ü¤Ï¡¢ ÌÀ¼¨Åª¤ËÍ׵ᤵ¤ì¤Ê¤¤¸Â¤ê¹Ô¤ï¤ì¤Þ¤»¤ó¡£
chown ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥Õ¥¡¥¤¥ë¤Î½êͼԤȥ°¥ë¡¼¥×¤òÀßÄꤷ¤Þ¤¹¡£ chmod ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤ÎÊݸî¥â¡¼¥É¤òÊѹ¹¤·¤Þ¤¹¡£ ¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ë¤Î°À¤Ï¡¢ stat ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò¥Õ¥¡¥¤¥ë̾¤ËÂФ·¼Â¹Ô¤¹¤ë¤³¤È¤ÇÆÉ¤ß½Ð¤¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ fchown¡¢ fchmod¡¢ fstat ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢Æ±ÍÍ¤ÊÆ°ºî¤ò¥Õ¥¡¥¤¥ë̾¤Ç¤Ï¤Ê¤¯¥Õ¥¡¥¤¥ëµ½Ò»Ò¤ËÂФ·¤Æ¹Ô¤¤¤Þ¤¹¡£ rename ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¡¢¥Õ¥¡¥¤¥ë¤Ë¿·¤·¤¤Ì¾Á°¤ò¤Ä¤±¤Æ¸Å¤¤Ì¾Á°¤òºï½ü¤·¤Þ¤¹¡£ ¥Ç¥£¥ì¥¯¥È¥êºîÀ®¡¦ºï½üÁàºî¤ÈƱ¤¸¤è¤¦¤Ë¡¢ rename ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î̾Á°Êѹ¹Æ°ºî¤ò¥¢¥È¥ß¥Ã¥¯¤Ë¤¹¤ë¤¿¤á 4.2BSD ¤ÇÄɲ䵤ì¤Þ¤·¤¿¡£ ¸å¤Ë¡¢¤³¤Îưºî¤Ï¥Í¥Ã¥È¥ï¡¼¥¯¾å¤ÎÈó UNIX ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ·¤ÆÌ¾Á°Êѹ¹Áàºî¤ò¹Ô¤¦¾ì¹ç¤Ë͸ú¤Ç¤¢¤ë¤³¤È¤¬¤ï¤«¤ê¤Þ¤·¤¿¡£
truncate¤Ï¡¢ 4.2BSD ¤ÇÄɲ䵤줿¥Õ¥¡¥¤¥ë¤òǤ°Õ¤ÎŤµ¤ËÀÚ¤êµÍ¤á¤ë¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ç¤¹¡£ ¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ëÄɲäμç¤ÊÌÜŪ¤Ï ¥é¥ó¥À¥à¥¢¥¯¥»¥¹¥Õ¥¡¥¤¥ë¤ÎºÇ¸å¤ò¥×¥í¥°¥é¥à¤¬ºÇ¸å¤Ë¥¢¥¯¥»¥¹¤·¤¿¾ì½ê¤ËÀßÄꤹ¤ë¡¢ ¤È¤¤¤¦Æ°ºî¤ò»ý¤Ä Fortran ¥é¥ó¥¿¥¤¥à¥é¥¤¥Ö¥é¥ê¤Î¥µ¥Ý¡¼¥È¤Ç¤·¤¿¡£ truncate ¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»ÈÍѤ·¤Ê¤¤¾ì¹ç¡¢ ¥Õ¥¡¥¤¥ë¤ÎŤµ¤ò½Ì¤á¤ëÍ£°ì¤ÎÊýË¡¤ÏɬÍפÊÉôʬ¤ò¥³¥Ô¡¼¤·¤¿¥Õ¥¡¥¤¥ë¤òºîÀ®¤·¡¢ ¸µ¤Î¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤¿¸å¤Ë¥³¥Ô¡¼¤·¤¿¥Õ¥¡¥¤¥ë¤ò¥ê¥Í¡¼¥à¤¹¤ëÊýË¡¤Ç¤¹¡£ ¤³¤Î¥¢¥ë¥´¥ê¥º¥à¤ÏÃÙ¤¤¤À¤±¤Ç¤Ê¤¯¡¢ ¶õ¤ÍÆÎ̤ξ¯¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤Ï¼ºÇÔ¤¹¤ë²ÄǽÀ¤¬¤¢¤ê¤Þ¤¹¡£
¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥Õ¥¡¥¤¥ë¤ò½Ì¤á¤ëµ¡Ç½¤¬Äɲ䵤ì¤ë¤È¡¢ ¤½¤ì¤Ï¥«¡¼¥Í¥ë¤¬Â礤ʶõ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¾®¤µ¤¯¤¹¤ëÍÑÅӤ˻ÈÍѤ¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤·¤¿¡£ ¶õ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò½Ì¾®¤¹¤ë¤È¡¢ ¥Õ¥¡¥¤¥ë¤ÎºîÀ®¡¢ ºï½ü»þ¤Ë¥«¡¼¥Í¥ë¤¬¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤¹¤ë»þ´Ö¤òû½Ì¤Ç¤¤ë¤È¤¤¤¦ÍøÅÀ¤¬¤¢¤ê¤Þ¤¹¡£
¿·µ¬¤ËºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ë¤Ï¡¢ ºîÀ®¤·¤¿¥×¥í¥»¥¹¤Î¥æ¡¼¥¶¼±Ê̻ҤȺîÀ®¤¬¹Ô¤ï¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤Î¥°¥ë¡¼¥×¼±Ê̻ҤòÍ¿¤¨¤é¤ì¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤ÎÊݸîÍÑ¤Ë 3 ¥ì¥Ù¥ë¤Î¥¢¥¯¥»¥¹À©¸æµ¡¹½¤¬ÍѰդµ¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤Î 3 ¥ì¥Ù¥ë¤Î¥Õ¥¡¥¤¥ë¥¢¥¯¥»¥¹µö²Ä¤Ï
¥Õ¥¡¥¤¥ë¤ò½êͤ·¤Æ¤¤¤ë¥æ¡¼¥¶
¥Õ¥¡¥¤¥ë¤ò½êͤ·¤Æ¤¤¤ë¥°¥ë¡¼¥×
¾¤Î¤¹¤Ù¤Æ
¤ËÂФ·¤ÆÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤½¤ì¤¾¤ì¤Î¥¢¥¯¥»¥¹¥ì¥Ù¥ë¤Ï¡¢¤µ¤é¤Ë ÆÉ¤ß¼è¤êµö²Ä¡¢½ñ¤¹þ¤ßµö²Ä¡¢¼Â¹Ôµö²Ä¤Ëʬ¤±¤é¤ì¤Æ¤¤¤Þ¤¹¡£
¥Õ¥¡¥¤¥ë¤ÏºîÀ®»þ¤ËŤµ¤¬ 0 ¤Ç¤¢¤ê¡¢ ½ñ¤¹þ¤ß¤µ¤ì¤ë¤Ë¤Ä¤ì¤ÆÄ¹¤¯¤Ê¤Ã¤Æ¤¤¤¤Þ¤¹¡£ ¥·¥¹¥Æ¥à¤Ï¥Õ¥¡¥¤¥ë¤¬³«¤«¤ì¤ë¤È¡¢ Âбþ¤¹¤ëµ½Ò»Ò¤Î¸½ºß°ÌÃÖ¤ò»ØÄꤹ¤ë¥Ý¥¤¥ó¥¿¤òÊÝ»ý¤·¤Þ¤¹¡£ ¤³¤Î¥Ý¥¤¥ó¥¿¤Ï¥Õ¥¡¥¤¥ëÆâ¤ò¥é¥ó¥À¥à¥¢¥¯¥»¥¹¤¹¤ë¤è¤¦¤Ëư¤«¤¹¤³¤È¤¬²Äǽ¤Ç¤¹¡£ fork ¤ä dup ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤ê¥Õ¥¡¥¤¥ëµ½Ò»Ò¤ò¶¦Í¤¹¤ë¥×¥í¥»¥¹´Ö¤Ç¤Ï¡¢ ¤³¤Î¸½ºß°ÌÃ֥ݥ¤¥ó¥¿¤Ï¶¦Í¤µ¤ì¤Þ¤¹¡£ ÊÌ¡¹¤Î open ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤è¤Ã¤Æ ºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ëµ½Ò»Ò¤Ï¡¢ÆÈΩ¤·¤¿¸½ºß°ÌÃ֥ݥ¤¥ó¥¿¤ò»ý¤Á¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¤Ï·ê¤ò»ý¤Ä¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£ ·ê¤È¤Ï¥Õ¥¡¥¤¥ë¤Î°ì¼¡¸µ¹½Â¤¤ÎÃæ¤Ç¡¢ ¥Ç¡¼¥¿¤¬°ìÅÙ¤â½ñ¤¹þ¤Þ¤ì¤¿¤³¤È¤Î¤Ê¤¤¶õ¤ÎÉôʬ¤Ç¤¹¡£ ¥Õ¥¡¥¤¥ë¤ÎºÇ¸åÈø¤è¤ê¸å¤Ë¥Ý¥¤¥ó¥¿¤òư¤«¤·½ñ¤¹þ¤ß¤ò¹Ô¤¦¤³¤È¤Ç¡¢ ¥Õ¥¡¥¤¥ë¤Ë·ê¤ò¤Ä¤¯¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ÆÉ¤ß¹þ¤Þ¤ì¤¿¾ì¹ç¡¢·ê¤Ï 0 ¤ÎÃͤò¤â¤Ä¥Ð¥¤¥È¤È¤·¤Æ°·¤ï¤ì¤Þ¤¹¡£
½é´ü¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¥Õ¥¡¥¤¥ë̾¤Ë 14 ʸ»ú°ÊÆâ¤È¤¤¤¦À©¸Â¤¬¤¢¤ê¡¢ ¤è¤¯ÌäÂê¤È¤Ê¤Ã¤Æ¤¤¤Þ¤·¤¿¡£ ¤¿¤È¤¨¤Ð¡¢¥æ¡¼¥¶¤ÏÅöÁ³¤Ê¤¬¤éŤ¯ÀâÌÀŪ¤Ê¥Õ¥¡¥¤¥ë̾¤òÉÕ¤±¤¿¤¤¤È˾¤ß¤Þ¤¹¤·¡¢ basename.extension ¤È¤¤¤¦´·ÍÑŪ¤Ê¥Õ¥¡¥¤¥ë̿̾µ¬Â§¤ò¹Í¤¨¤ë¤È¡¢ extension (C ¤Î¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Î .c¡¢ Ãæ´Ö¥Ð¥¤¥Ê¥ê¥ª¥Ö¥¸¥§¥¯¥È¥Õ¥¡¥¤¥ë¤Î .o ¤È¤¤¤¦¤è¤¦¤Ë¡¢¥Õ¥¡¥¤¥ë¤Î¼ïÎà¤ò¼¨¤¹Éôʬ) ¤Ë 1 ¤«¤é 3 ʸ»úɬÍפǤ¹¤«¤é¡¢ basename ¤ËÉÕ¤±¤é¤ì¤ëʸ»ú¿ô¤Ï 10 ¤«¤é 12 ¤·¤«»Ä¤Ã¤Æ¤¤¤Þ¤»¤ó¡£ ¥½¡¼¥¹¥³¡¼¥ÉÀ©¸æ¥·¥¹¥Æ¥à¤ä¥¨¥Ç¥£¥¿¤ÏÄ̾ ÆÈ¼«¤ÎÌÜŪ¤Î¤¿¤á¤Ë¤µ¤é¤Ë 2 ʸ»ú¤ò¥Õ¥¡¥¤¥ë̾¤ÎÁ°¸å¤ËÉղä·¤Þ¤¹¤Î¤Ç¡¢ ¼ÂºÝ¤Ë»È¤¨¤ë¤Î¤Ï¡¢8 ¤«¤é 10 ʸ»ú¤Ë¤Ê¤ê¤Þ¤¹¡£ basename ¤È¤·¤Æ±Ñ¸ì¤ò°ìñ¸ì (¤¿¤È¤¨¤Ð multiplexer) »È¤¦¤À¤±¤Ç¡¢ ´Êñ¤Ë 10 ¤«¤é 12 ʸ»ú¤Ë¤Ê¤Ã¤Æ¤·¤Þ¤¦¤Ç¤·¤ç¤¦¡£
¤³¤Î¤è¤¦¤ÊÀ©¸Â¤ò¼é¤ë¤Î¤ÏÉÔ²Äǽ¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢ ´í¸±¤Ê¾ì¹ç¤â¤¢¤ê¤Þ¤¹¡£ ¾¤Î UNIX ¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ ¤è¤êŤ¤¥Õ¥¡¥¤¥ë̾¤ò¼õ¤±ÉÕ¤±¤ë¤â¤Î¤Î¼ÂºÝ¤Ë¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë»þÅÀ¤Ç¥Õ¥¡¥¤¥ë̾¤ò ÀÚ¤êµÍ¤á¤ë¤â¤Î¤¬¤¢¤ë¤«¤é¤Ç¤¹¡£ C ¤Î¥½¡¼¥¹¥³¡¼¥É¥Õ¥¡¥¤¥ë multiplexer.c (¤¹¤Ç¤Ë 13 ʸ»ú¤Ç¤¹) ¤Î¥½¡¼¥¹¥³¡¼¥ÉÀ©¸æ¥Õ¥¡¥¤¥ë¤Ï¡¢ Ƭ¤Ë s. ¤¬Éղäµ¤ì¤Æ s.multiplexer ¤È¤Ê¤ê¤Þ¤¹¡£ ¤³¤Î¥Õ¥¡¥¤¥ë¤Ï¡¢C ¥½¡¼¥¹¤Îʸ½ñ¤Î troff ¥½¡¼¥¹¥Õ¥¡¥¤¥ë multiplexer.ms ¤Î¥½¡¼¥¹¥³¡¼¥ÉÀ©¸æ¥Õ¥¡¥¤¥ë¤È¶èÊ̤¬¤Ä¤¤Þ¤»¤ó¡£ ¥½¡¼¥¹¥³¡¼¥ÉÀ©¸æ¥·¥¹¥Æ¥à¤Ï¤³¤ÎÌäÂê¤ËÂФ·¤Æ·Ù¹ð¤ò½Ð¤µ¤Ê¤¤¤¿¤á¡¢ ¤³¤ì¤é¤Î 2 ¤Ä¤Î¥Õ¥¡¥¤¥ëÆâÍÆ¤Î¼è¤ê°ã¤¨¤ÏÍÆ°×¤ËȯÀ¸¤·¤Þ¤¹¡£ Ãí°Õ¿¼¤¯¥³¡¼¥Ç¥£¥ó¥°¤¹¤ì¤Ð¤³¤Î¤è¤¦¤ÊÌäÂê¤ÏÈò¤±¤é¤ì¤Þ¤¹¤¬¡¢ 4.2BSD ¤Ç¥í¥ó¥°¥Õ¥¡¥¤¥ë¥Í¡¼¥à¤¬Æ³Æþ¤µ¤ì¤¿¤³¤È¤Ç ¤³¤ÎÌäÂê¤Ï¼Â¼ÁŪ¤Ë¤Ê¤¯¤Ê¤ê¤Þ¤·¤¿¡£
¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ËÂФ¹¤ëÁàºî¤Ë¤ÏÆó¼ïÎढ¤ê¤Þ¤¹¡£ ¤Þ¤º¡¢¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤¹¤Ù¤Æ¤Ë¶¦Ä̤·¤Æ ³¬Áز½¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Î¥Í¡¼¥ß¥ó¥°¡¢¥í¥Ã¥¯¡¢³ä¤êÅö¤Æ¡¢ °À´ÉÍý¡¢Êݸî¤È¤¤¤Ã¤¿¡¢¥Ç¡¼¥¿¤ÎµÏ¿ÊýË¡¤È¤ÏÆÈΩ¤·¤¿µ¡Ç½¤Ç¤¹¡£ 4.4BSD ¤Ï¤³¤ì¤é¤Îµ¡Ç½¤òÄ󶡤¹¤ëñ°ì¤Î¼ÂÁõ¤òÈ÷¤¨¤Æ¤¤¤Þ¤¹¡£
¤â¤¦°ì¤Ä¤ÏµÏ¿ÇÞÂξå¤Ë¤ª¤±¤ë¥Ç¡¼¥¿¹½À®¤È´ÉÍý¤Ç¤¹¡£ ¥Õ¥¡¥¤¥ëÆâÍÆ¤òµÏ¿ÇÞÂξå¤ËÇÛÃÖ¤¹¤ë¤Î¤Ï¥Õ¥¡¥¤¥ëµÏ¿µ¡¹½¤ÎÌò³ä¤Ç¤¢¤ê¡¢ 4.4BSD ¤Ï 3 ¼ïÎà¤Î°Û¤Ê¤ë¥Õ¥¡¥¤¥ëÇÛÃÖË¡¤ËÂбþ¤·¤Æ¤¤¤Þ¤¹¡£
ÅÁÅýŪ¤Ê Berkeley Fast Filesystem
Sprite ¤È¤¤¤¦ OS ¤ÎÀ߷פËͳÍ褹¤ë ¥í¥°¹½Â¤²½¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à Rosenblum & Ousterhout, 1992
¥á¥â¥ê¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à
¤³¤ì¤é¤Î¥Õ¥¡¥¤¥ëµÏ¿µ¡¹½¤Î¹½À®¤Ï¤Þ¤Ã¤¿¤¯°Û¤Ê¤ë¤â¤Î¤Ç¤¹¤¬¡¢ ¤½¤ì¤ò»ÈÍѤ¹¤ë¥×¥í¥»¥¹¤«¤é¤Ï°ã¤¤¤ò°Õ¼±¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£
Fast Filesystem ¤Ï¡¢¥Ç¡¼¥¿¤ò¥·¥ê¥ó¥À¥°¥ë¡¼¥×¤È¤¤¤¦Ã±°Ì¤Ç¹½À®¤·¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à³¬ÁؤÎÇÛÃÖ¤«¤é¹Í¤¨¤ÆÆ±»þ¤Ë¥¢¥¯¥»¥¹¤µ¤ì¤ä¤¹¤¤¤È¹Í¤¨¤é¤ì¤ë¥Õ¥¡¥¤¥ë¤Ï¡¢ Ʊ¤¸¥·¥ê¥ó¥À¥°¥ë¡¼¥×¤ËµÏ¿¤µ¤ì¡¢Æ±»þ¤Ë¥¢¥¯¥»¥¹¤µ¤ì¤ë²ÄǽÀ¤ÎÄ㤤¥Õ¥¡¥¤¥ë¤Ï °Û¤Ê¤ë¥·¥ê¥ó¥À¥°¥ë¡¼¥×¤ËµÏ¿¤µ¤ì¤Þ¤¹¡£ ¤³¤ÎµÏ¿µ¡¹½¤Ç¤Ï°Ê¾å¤Î¤è¤¦¤Ë¡¢Ê£¿ô¤Î¥Õ¥¡¥¤¥ë¤¬Æ±»þ¤Ë½ñ¤¹þ¤Þ¤ì¤¿¤È¤·¤Æ¤â¡¢ µÏ¿¤µ¤ì¤ë¾ì½ê¤Ï¥Ç¥£¥¹¥¯¤Î¤Þ¤Ã¤¿¤¯°ã¤¦¾ì½ê¤Ë¤Ê¤ë²ÄǽÀ¤¬¤¢¤ë¤Î¤Ç¤¹¡£
¥í¥°¹½Â¤²½¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢¥Ç¡¼¥¿¤ò¥í¥°¤È¤¤¤¦·Á¤Ç¹½À®¤·¤Þ¤¹¡£ ¤¢¤ë»þÅÀ¤ÇµÏ¿¤µ¤ì¤¿¥Ç¡¼¥¿¤Ï¤¹¤Ù¤Æ°ì¤Ä¤Ë½¸¤á¤é¤ì¡¢ Ʊ¤¸¥Ç¥£¥¹¥¯¤Î¾ì½ê¤Ë½ñ¤¹þ¤Þ¤ì¤Þ¤¹¡£ ¥Ç¡¼¥¿¤¬¾å½ñ¤¤µ¤ì¤ë¤³¤È¤ÏÀäÂФˤ¢¤ê¤Þ¤»¤ó¡£ ¥Õ¥¡¥¤¥ë¤Î¹¹¿·¤Ï¡¢¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤¤¹¤ëÂå¤ï¤ê¤Ë ¿·¤·¤¤¥Õ¥¡¥¤¥ë¤ò½ñ¤¹þ¤ó¤Ç¤½¤Î¥Õ¥¡¥¤¥ë¤òÃÖ¤´¹¤¨¤ë¤³¤È¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤ï¤ì¤Þ¤¹¡£ ¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¶õ¤ÍÆÎ̤¬¤Ê¤¯¤Ê¤ê¿·¤¿¤Ë¶õ¤ÍÆÎ̤¬É¬Íפˤʤ俾ì¹ç¤Ï ¥´¥ß½¸¤á (garbage-collection) ¥×¥í¥»¥¹¤¬¼Â¹Ô¤µ¤ì¡¢ ¸Å¤¤¥Õ¥¡¥¤¥ë¤¬ºÆÍøÍѤµ¤ì¤Þ¤¹¡£
¥á¥â¥ê¥Ù¡¼¥¹¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï¡¢ ¥Ç¡¼¥¿¤ò²¾ÁÛ¥á¥â¥ê¤ËµÏ¿¤¹¤ë¤è¤¦¤ËÀ߷פµ¤ì¤¿¤â¤Î¤Ç¤¹¡£ ¤³¤ì¤Ï /tmp ¤Î¤è¤¦¤Ë¹â®¥¢¥¯¥»¥¹¤¬É¬Íפǡ¢ ±Ê³Ū¤Ç¤Ê¤¤¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë»È¤ï¤ì¤Þ¤¹¡£ ¥á¥â¥ê¥Ù¡¼¥¹¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÌÜɸ¤Ï¡¢ ²¾ÁÛ¥á¥â¥ê»ñ¸»¤ÎÍøÍÑÎ̤ò²Äǽ¤Ê¸Â¤êºÇ¾®¸Â¤ËÊݤĤ³¤È¤Ë¤¢¤ê¤Þ¤¹¡£
Åö½é¡¢¥Í¥Ã¥È¥ï¡¼¥¯ÄÌ¿®¤Ï¥Ç¡¼¥¿¤ò¤¢¤ë¥Þ¥·¥ó¤«¤é ¾¤Î¥Þ¥·¥ó¤ØÅ¾Á÷¤¹¤ë¤¿¤á¤ËÍѤ¤¤é¤ì¤Æ¤¤¤Þ¤·¤¿¤¬¡¢ ¤Î¤Á¤Ë¤½¤ì¤Ï¡¢¥æ¡¼¥¶¤¬Î¥¤ì¤¿¥Þ¥·¥ó¤Ø¥í¥°¥¤¥ó²Äǽ¤Ê·Á¤ËȯŸ¤·¤Þ¤·¤¿¡£ ¼¡¤Ë´üÂÔ¤µ¤ì¤¿¤Î¤Ï¥æ¡¼¥¶¤¬¥Ç¡¼¥¿¤ò¼è¤ê¹Ô¤¯¤Î¤Ç¤Ï¤Ê¤¯¡¢ ¥æ¡¼¥¶¤Î¸µ¤Ë¥Ç¡¼¥¿¤¬¤ä¤Ã¤Æ¤¯¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¤·¤¿¡£ ¤½¤Î¤¿¤á¤ËÀ¸¤Þ¤ì¤¿¤Î¤¬¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ç¤¹¡£ ¥í¡¼¥«¥ë¤Çºî¶È¤·¤Æ¤¤¤ë¥æ¡¼¥¶¤Ï¥¡¼ÆþÎÏ»þ¤Ë¥Í¥Ã¥È¥ï¡¼¥¯¤ÎÃÙ¤ì¤ò´¶¤¸¤º¡¢ ¤è¤ê±þÅúÀ¤ÎÎɤ¤´Ä¶¤ò¼ê¤ËÆþ¤ì¤¿¤Î¤Ç¤¹¡£
¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥í¡¼¥«¥ë¥Þ¥·¥ó¤Ë»ý¤Ã¤Æ¤¯¤ë¤³¤È¤Ï ½é´ü¤Î¥µ¡¼¥Ð-¥¯¥é¥¤¥¢¥ó¥È·¿¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ÎÃæ¤Ç¼çÍפʤâ¤Î¤Î¤Ò¤È¤Ä¤Ç¤·¤¿¡£ ¥µ¡¼¥Ð ¤Ï 1 ¤Ä¤â¤·¤¯¤Ï¤½¤ì°Ê¾å¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò ¥¨¥¯¥¹¥Ý¡¼¥È¤¹¤ë¥ê¥â¡¼¥È¤Î¥Þ¥·¥ó¤Ç¤¹¡£ ¥¯¥é¥¤¥¢¥ó¥È ¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ë¥í¡¼¥«¥ë¤Î¥Þ¥·¥ó¤Ç¤¹¡£ ¥í¡¼¥«¥ë¤Î¥¯¥é¥¤¥¢¥ó¥È¤«¤é¸«¤ë¤È¡¢ ¥ê¥â¡¼¥È¤Ç¥Þ¥¦¥ó¥È¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ï ¥í¡¼¥«¥ë¤Ë¥Þ¥¦¥ó¥È¤µ¤ì¤¿Â¾¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Î¤è¤¦¤Ë ¥Õ¥¡¥¤¥ë¥Ä¥ê¡¼¤Î̾Á°¶õ´Ö¤Ë¸½¤ì¤Þ¤¹¡£ ¥í¡¼¥«¥ë¤Î¥¯¥é¥¤¥¢¥ó¥È¤Ï ¥ê¥â¡¼¥È¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤òÊѤ¨¤¿¤ê¡¢ ¥í¡¼¥«¥ë¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤Ç¤¹¤ë¤Î¤È¤Þ¤Ã¤¿¤¯Æ±¤¸¤è¤¦¤Ë ¥ê¥â¡¼¥È¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÇÆÉ¤ß½ñ¤¤ò¤·¤¿¤ê¡¢ ¥Ð¥¤¥Ê¥ê¤ò¼Â¹Ô¤·¤¿¤ê¤Ç¤¤Þ¤¹¡£
¥í¡¼¥«¥ë¤Î¥¯¥é¥¤¥¢¥ó¥È¤¬ ¥ê¥â¡¼¥È¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¾å¤ÇÁàºî¤¹¤ë¤È¡¢ ¤½¤ÎÁàºîÍ׵᤬¤Ò¤È¤Þ¤È¤á¤Ë¤µ¤ì¤Æ¥µ¡¼¥Ð¤ËÁ÷¤é¤ì¤Þ¤¹¡£ ¥µ¡¼¥Ð¤ÏÍ׵ᤵ¤ì¤¿Áàºî¤ò¹Ô¤¤¡¢ ¥¯¥é¥¤¥¢¥ó¥È¤«¤éÍ׵ᤵ¤ì¤¿¾ðÊ󡢤⤷¤¯¤Ï¡¢ ¤Ê¤¼¤½¤ÎÍ׵᤬µñÀ䤵¤ì¤¿¤«¤ò¼¨¤¹¥¨¥é¡¼¤òÊÖ¤·¤Þ¤¹¡£ ŬÀÚ¤ÊÀǽ¤òÆÀ¤ë¤Ë¤Ï¡¢ ¥¯¥é¥¤¥¢¥ó¥È¤ÏÉÑÈˤ˥¢¥¯¥»¥¹¤µ¤ì¤¿¥Ç¡¼¥¿¤ò¥¥ã¥Ã¥·¥å¤·¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¥ê¥â¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÊ£»¨¤µ¤Ï¡¢ ¥µ¡¼¥Ð¤È¿¤¯¤Î¥¯¥é¥¤¥¢¥ó¥È¤Î´Ö¤Î¥¥ã¥Ã¥·¥å¤Î°ì´ÓÀ¤ò°Ý»ý¤¹¤ë¤³¤È¤Ë¤¢¤ê¤Þ¤¹¡£
Ĺ´ü¤Ë¤ï¤¿¤Ã¤Æ¿ô¿¤¯¤Î¥ê¥â¡¼¥È¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¥×¥í¥È¥³¥ë¤¬³«È¯¤µ¤ì¤Æ¤¤Þ¤·¤¿¤¬¡¢ UNIX ¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤ÆºÇ¤âÉáµÚ¤·¤Æ¤¤¤ë¤â¤Î¤Ï¡¢ ¤½¤Î¥×¥í¥È¥³¥ë¤È¼ÂÁõ¤ÎÂçÉôʬ¤¬ Sun Microsystems ¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤ï¤ì¤¿ ¥Í¥Ã¥È¥ï¡¼¥¯¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à (NFS) ¤Ç¤¹¡£ ¼ÂÁõ¤Ï¥×¥í¥È¥³¥ëµ¬³Ê¤«¤éÆÈΩ¤·¤Æ¹Ô¤ï¤ì¤Þ¤·¤¿¤¬¡¢ 4.4BSD ¥«¡¼¥Í¥ë¤Ï NFS ¥×¥í¥È¥³¥ë¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹ Macklem, 1994¡£ NFS ¥×¥í¥È¥³¥ë¤Ë¤Ä¤¤¤Æ¤Ï 9 ¾Ï¤ÇÀâÌÀ¤·¤Æ¤¤¤Þ¤¹¡£
üËö¤Ï¡¢É¸½àŪ¤Ê¥·¥¹¥Æ¥à I/O Áàºî¤Ï¤â¤Á¤í¤ó¤Î¤³¤È¡¢ ÆþÎÏʸ»ú¤ÎÊÔ½¸¤ä½ÐÎϤΥǥ£¥ì¥¤¤ÎÀ©¸æ¤ò¤¹¤ë¤¿¤á¤ÎüËö¸ÇͤÎÁàºî¤ò¤Ò¤È¤È¤ª¤ê ¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤¹¡£ °ìÈÖÄ㤤¥ì¥Ù¥ë¤Ë¤¢¤ë¤Î¤Ï¡¢¥Ï¡¼¥É¥¦¥§¥¢Ã¼Ëö¥Ý¡¼¥È¤òÀ©¸æ¤¹¤ëüËö¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Ç¤¹¡£ üËöÆþÎϤϡ¢¤¿¤È¤¨¤Ð¥Ü¡¼¥ì¡¼¥È¤Î¤è¤¦¤Ê´ðÁÃŪ¤ÊÄÌ¿®ÆÃÀ¤ä¡¢ ¥Ñ¥ê¥Æ¥£¸¡ºº¤Î¤è¤¦¤Ê¥½¥Õ¥È¥¦¥§¥¢¤ÇÀ©¸æ²Äǽ¤Ê¥Ñ¥é¥á¡¼¥¿Îà¤Ë ½¾¤Ã¤Æ°·¤ï¤ì¤Þ¤¹¡£
üËö¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤Î¾å¤ÎÁؤˤϡ¢ ʸ»ú½èÍý¤ò¤É¤ÎÄøÅٹԤʤ¦¤«¤òÄêµÁ¤·¤Æ¤¤¤ë ¥é¥¤¥ó¥Ç¥£¥·¥×¥ê¥ó (line discipline; ²óÀþüËöÀ©¸æ) ¤È¸Æ¤Ð¤ì¤ë¤â¤Î¤¬¤¢¤ê¤Þ¤¹¡£ ÂÐÏÃŪ¤Ê¥í¥°¥¤¥ó¤ò¤¹¤ë¤¿¤á¤Ë¥Ý¡¼¥È¤¬ ÍѤ¤¤é¤ì¤ë¤È¤¤Ë¤Ï¥Ç¥Õ¥©¥ë¥È¤Î¥é¥¤¥ó¥Ç¥£¥·¥×¥ê¥ó¤¬ÁªÂò¤µ¤ì¡¢ ¤½¤Î¥é¥¤¥ó¥Ç¥£¥·¥×¥ê¥ó¤Ï¥«¥Î¥Ë¥«¥ë¥â¡¼¥É¤Çưºî¤·¤Þ¤¹¡£ ¤³¤ì¤Ï¡¢ÆþÎϤ¬É¸½àŪ¤Ê¹Ô»Ø¸þÊÔ½¸µ¡Ç½¤òÄ󶡤¹¤ë¤è¤¦¤Ë½èÍý¤µ¤ì¡¢ ÆþÎϼ«ÂΤò¹Ôñ°Ì¤Î½èÍý¤Çɽ¸½¤¹¤ë¥â¡¼¥É¤Ç¤¹¡£
¥¹¥¯¥ê¡¼¥ó¥¨¥Ç¥£¥¿¤ä¡¢Â¾¤Î¥³¥ó¥Ô¥å¡¼¥¿¤ÈÄÌ¿®¤ò¤¹¤ë¥×¥í¥°¥é¥à (ÌõÃí: telnet ¤Ê¤É) ¤Ï¡¢ÉáÄÌÈ󥫥Υ˥«¥ë¥â¡¼¥É (raw ¥â¡¼¥É¤ä¥¥ã¥é¥¯¥¿¤´¤È¤Î¥â¡¼¥É (character-at-a-time mode) ¤Ê¤É¤È¤â¸Æ¤Ð¤ì¤Þ¤¹) ¤Çưºî¤·¤Þ¤¹¡£ ¤³¤ì¤é¤Î¥â¡¼¥É¤Ç¤Ï¡¢ÆþÎϤϤ½¤Î¤Þ¤Þ¤¹¤°¤ËÆÉ¤ß¹þ¤ß¦¤Î ¥×¥í¥»¥¹¤Ø¤ÈÅϤµ¤ì¤Þ¤¹¡£ ¤¹¤Ù¤Æ¤ÎÆÃ¼ìʸ»úÆþÎϤνèÍý¤Ï̵¸ú²½¤µ¤ì¤Æ¤¤¤Æ¡¢ ºï½ü¤ä¤½¤Î¾¤Î¹ÔÊÔ½¸½èÍý¤Ï¹Ô¤Ê¤ï¤ì¤º¡¢ ¤¹¤Ù¤Æ¤Îʸ»ú¤Ï¤½¤ÎüËö¤«¤éÆÉ¤ß¹þ¤â¤¦¤È¤·¤Æ¤¤¤ë¥×¥í¥»¥¹¤Ø¤ÈÅϤµ¤ì¤Þ¤¹¡£
üËö¤Ï¡¢¤³¤ÎÆó¤Ä¤Îξ¶Ëü¤Î¥â¡¼¥É¤ÎÃæ´Ö¤Î¿¤¯¤ÎÁȤ߹ç¤ï¤»¤Ç ÀßÄꤹ¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£ ¤¿¤È¤¨¤Ð¡¢¤¢¤ë¥¹¥¯¥ê¡¼¥ó¥¨¥Ç¥£¥¿¤¬¥æ¡¼¥¶¤«¤é¤Î³ä¤ê¹þ¤ß¤òÈ󯱴üŪ¤Ë ¼õ¤±Æþ¤ì¤¿¤¤¾ì¹ç¤Ë¡¢¥·¥°¥Ê¥ë¤òÀ¸À®¤¹¤ëʸ»ú¤ä½ÐÎϤÎήÎÌÀ©¸æ¤òµö²Ä¤·¤¿¤Þ¤Þ¡¢ ¤½¤ì°Ê³°¤òÈ󥫥Υ˥«¥ë¥â¡¼¥É¤Çư¤«¤·¤Æ¡¢¤³¤ì¤é¤Îʸ»ú°Ê³°¤Îʸ»ú¤ò ¤Þ¤Ã¤¿¤¯²ò¼á¤·¤Ê¤¤¤Þ¤ÞÅϤ¹¡¢¤È¤¤¤¦¤³¤È¤¬²Äǽ¤Ç¤¹¡£
½ÐÎϤǤϡ¢Ã¼Ëö½èÍý¤Ï¼¡¤Î¤è¤¦¤Êñ½ã¤ÊÀ°·Á¥µ¡¼¥Ó¥¹¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£
¥é¥¤¥ó¥Õ¥£¡¼¥É¤ò¥¥ã¥ê¥Ã¥¸¥ê¥¿¡¼¥ó¤È¥é¥¤¥ó¥Õ¥£¡¼¥É¤ÎʤӤؤÈÊÑ´¹
ÆÃÄê¤Îɸ½àŪ¤ÊÀ©¸æÊ¸»ú¤Î¸å¤Ë¥Ç¥£¥ì¥¤¤òÁÞÆþ
¥¿¥Öʸ»ú¤ÎŸ³«
¥¨¥³¡¼¤µ¤ì¤¿Èóɽ¼¨¥¢¥¹¥¡¼Ê¸»ú¤ò ``^C'' (¤¹¤Ê¤ï¤Á¡¢¥¢¥¹¥¡¼¤Î¥¥ã¥ì¥Ã¥Èʸ»ú ¤Î¸å¤Ë¡¢¤½¤Î¥¥ã¥é¥¯¥¿¤ÎÃͤò¥¢¥¹¥¡¼¤Î ``@'' ʸ»ú¤«¤é¤Î¥ª¥Õ¥»¥Ã¥È¤È¤·¤¿ ¥¢¥¹¥¡¼Ê¸»ú) ¤È¤¤¤¦Æóʸ»ú¤ÎʤӤȤ·¤ÆÉ½¼¨
¤³¤ì¤é¤ÎÀ°·Áµ¡Ç½¤Ï¡¢¥³¥ó¥È¥í¡¼¥ë¥ê¥¯¥¨¥¹¥È¤ò»È¤Ã¤Æ¤½¤ì¤¾¤ìÆÈΩ¤Ë ̵¸ú²½¤¹¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
4.4BSD ¤Î¥×¥í¥»¥¹´ÖÄÌ¿® (IPC) ¤Ï¡¢¥³¥ß¥å¥Ë¥±¡¼¥·¥ç¥ó ¥É¥á¥¤¥óÆâ¤ÇƯ¤¯¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ ¤¤¤ë¥É¥á¥¤¥ó¤Ë¤Ï¡¢Æ±¤¸¥Þ¥·¥ó¾å¤Ç¼Â¹Ô¤·¤Æ¤¤¤ëÊ£¿ô¤Î¥×¥í¥»¥¹´Ö ¤Ç¤ÎÄÌ¿®ÍÑ¤Î¥í¡¼¥«¥ë¥É¥á¥¤¥ó¡¢ TCP/IP ¥×¥í¥È¥³¥ë¥¹¥¤¡¼¥ÈÍѤΠ(¤ª¤½¤é¤¯ the Internet Æâ) ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥É¥á¥¤¥ó¡¢ ISO/OSI ¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¤Ç¤ÎÄÌ¿®¤ò¹Ô¤Ê¤¦¤³¤È¤¬É¬Íפʥµ¥¤¥È´ÖÄÌ¿®ÍѤΠISO/OSI ¥×¥í¥È¥³¥ë¥Õ¥¡¥ß¥ê¡¢ XEROX Network Systems (XNS) ¤ò»ÈÍѤ·¤¿¥×¥í¥»¥¹´ÖÄÌ¿®ÍѤΠXNS ¥É¥á¥¤¥ó¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
¥É¥á¥¤¥óÆâ¤Ç¤Ï¡¢¥½¥±¥Ã¥È¤È¤·¤ÆÃΤé¤ì ¤Æ¤¤¤ëÄÌ¿®½ªÃ¼´Ö¤ÇÄÌ¿®¤¬¹Ô¤Ê¤ï¤ì¤Þ¤¹¡£ 2.6 Àá¤ÇÀâÌÀ¤·¤Æ¤¤¤ë¤è¤¦¤Ë¡¢ socket ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ï¥½¥±¥Ã¥È¤òÀ¸À®¤·¡¢¤½¤Îµ½Ò»Ò¤òÊÖ¤·¤Þ¤¹¡£ ¾¤Î IPC ¥·¥¹¥Æ¥à¥³¡¼¥ë¤Ë¤Ä¤¤¤Æ¤Ï 11 ¾Ï¤Ç²òÀ⤷¤Þ¤¹¡£ ³Æ¥½¥±¥Ã¥È¤Ï¡¢ÄÌ¿®¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤òÄêµÁ¤·¤¿·¿¤ò»ý¤Á¤Þ¤¹¡£ ¤³¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤Ë¤Ï¿®ÍêÀ¡¢½ç½ø¡¢¥á¥Ã¥»¡¼¥¸¤Î½ÅÊ£Ëɻߤ¬ ´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
³Æ¥½¥±¥Ã¥È¤Ï¡¢ÄÌ¿®¥×¥í¥È¥³¥ë ¤È´ØÏ¢¤·¤Æ¤¤¤Þ¤¹¡£ ¤³¤³¤Ç¤Î¥×¥í¥È¥³¥ë¤Ï¡¢ÄÌ¿®Áê¼ê¤Î¥½¥±¥Ã¥È¤Î·¿¤Ë½¾¤Ã¤Æ ¤½¤Î¥½¥±¥Ã¥È¤ÇÍ׵ᤵ¤ì¤Æ¤¤¤ë¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤òÄ󶡤·¤Þ¤¹¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¢¥½¥±¥Ã¥È¤òÀ¸À®¤¹¤ëºÝ¤ËÆÃÄê¤Î¥×¥í¥È¥³¥ë¤ò Í׵᤹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¤·¡¢¤Þ¤¿¡¢¤½¤Î¥·¥¹¥Æ¥à¤Ï¡¢¾ÍèÀ¸À®¤µ¤ì¤ë ¥½¥±¥Ã¥È¤Î·¿¤Ë¤Õ¤µ¤ï¤·¤¤¥×¥í¥È¥³¥ë¤òÁªÂò¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤â ²Äǽ¤Ç¤¹¡£
¥½¥±¥Ã¥È¤Ï¡¢¤½¤Î¥½¥±¥Ã¥È¤È´ØÏ¢¤Å¤±¤µ¤ì¤¿ (¥Ð¥¤¥ó¥É¤µ¤ì¤¿) ¥¢¥É¥ì¥¹¤ò»ý¤Ä¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Î·Á¼°¤È°ÕÌ£¤Ï¡¢¤½¤Î¥½¥±¥Ã¥È¤¬À¸À®¤µ¤ì¤¿ ¥³¥ß¥å¥Ë¥±¡¼¥·¥ç¥ó¥É¥á¥¤¥ó¤Ë°Í¸¤·¤Þ¤¹¡£ ¥í¡¼¥«¥ë¥É¥á¥¤¥ó¤Ë¤ª¤¤¤Æ¥½¥±¥Ã¥È¤Ë̾Á°¤ò¥Ð¥¤¥ó¥É¤¹¤ë¤È¡¢ ¤½¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¥Õ¥¡¥¤¥ë¤¬À¸À®¤µ¤ì¤Þ¤¹¡£
¥½¥±¥Ã¥È¤òÄ̤¸¤ÆÁ÷¼õ¿®¤µ¤ì¤ëÄ̾ï¤Î¥Ç¡¼¥¿¤Ï·¿¤Å¤±¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ ¥Ç¡¼¥¿É½¸½¤Ë¤Ä¤¤¤Æ¤Ï¡¢¥×¥í¥»¥¹´ÖÄÌ¿®µ¡Ç½¤ÎºÇ¾å°Ì¤Ë°ÌÃÖ¤¹¤ë¥é¥¤¥Ö¥é¥ê¤ËÀÕǤ¤¬¤¢¤ê¤Þ¤¹¡£ Ä̾ï¥Ç¡¼¥¿¤ÎÇÛÁ÷¤Ë²Ã¤¨¤Æ¡¢¥³¥ß¥å¥Ë¥±¡¼¥·¥ç¥ó¥É¥á¥¤¥ó¤Ï access rights ¤È¤¤¤¦ÆÃÊ̤ʷ¿¤Î¥Ç¡¼¥¿¤Î Á÷¼õ¿®¤ò¥µ¥Ý¡¼¥È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¥í¡¼¥«¥ë¥É¥á¥¤¥ó¤Ï¥×¥í¥»¥¹´Ö¤Çµ½Ò»Ò¤òÅϤ¹¤¿¤á¤Ë¡¢ ¤³¤Îµ¡Ç½¤ò»ÈÍѤ·¤Þ¤¹¡£
4.2BSD ¤è¤êÁ°¤Î UNIX ¤Ë¤ª¤±¤ë¥Í¥Ã¥È¥ï¡¼¥¯µ¡Ç½¤Î¼ÂÁõ¤Ï¡¢ ÂçÄñ¥¥ã¥é¥¯¥¿¥Ç¥Ð¥¤¥¹¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¥ª¡¼¥Ð¥í¡¼¥É¤µ¤»¤ë¤³¤È¤Ç ưºî¤·¤Æ¤¤¤Þ¤·¤¿¡£ ¥½¥±¥Ã¥È¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ÎÌÜŪ¤Î°ì¤Ä¤Ï¡¢Ã±½ã¤Ê¥×¥í¥°¥é¥à¤¬ ¥¹¥È¥ê¡¼¥à·¿¤ÎÄÌ¿®¤òÊѹ¹¤»¤º¤Ëưºî¤¹¤ë¤è¤¦¤Ë¤¹¤ë¤³¤È¤Ç¤¹¡£ ¤½¤Î¤è¤¦¤Ê¥×¥í¥°¥é¥à¤Ï¡¢read ¤È write ¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤¬Êѹ¹¤µ¤ì¤Ê¤±¤ì¤Ð ưºî¤·¤Þ¤¹¡£ ÅöÁ³¡¢¸µ¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬¤½¤Î¤Þ¤Þ»Ä¤µ¤ì¤ì¤Ð¡¢ ¥¹¥È¥ê¡¼¥à·¿¤Î¥½¥±¥Ã¥È¾å¤Çưºî¤·Â³¤±¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£ send ¤Î³Æ¸Æ¤Ó½Ð¤·¤Ç»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤ Á÷¿®À襢¥É¥ì¥¹¤ò»ý¤Ä¥Ç¡¼¥¿¥°¥é¥à¤òÁ÷¿®¤¹¤ë¤è¤¦¤Ê¡¢ ¤è¤êÊ£»¨¤Ê¥½¥±¥Ã¥ÈÍѤ˿·¤·¤¤¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬Äɲ䵤ì¤Þ¤·¤¿¡£
¤â¤¦°ì¤Ä¤ÎÍøÅÀ¤Ï¡¢¤³¤Î¿·¤·¤¤¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï°Ü¿¢À¤¬ Èó¾ï¤ËÎɤ¤¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ¥Ð¡¼¥¯¥ì¡¼¤«¤éÆþ¼ê¤Ç¤¤¿¥Æ¥¹¥È¥ê¥ê¡¼¥¹¤Î¤¹¤°¸å¤Ç¡¢ ¥½¥±¥Ã¥È¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï UNIX ¥Ù¥ó¥À¤Ë¤è¤Ã¤Æ System III ¤Ë°Ü¿¢¤µ¤ì¤Þ¤·¤¿ (¤·¤«¤·¡¢AT&T ¤Ï System V Release 4 ¤Î¥ê¥ê¡¼¥¹¤Þ¤Ç¥½¥±¥Ã¥È¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤ò¥µ¥Ý¡¼¥È¤»¤º¡¢ ¤½¤ÎÂå¤ï¤ê¤Ë Eighth Edition ¤Î¥¹¥È¥ê¡¼¥àµ¡¹½¤ò»ÈÍѤ¹¤ë ¤³¤È¤ò·è¤á¤Þ¤·¤¿)¡£ ¥½¥±¥Ã¥È¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ï¤Þ¤¿¡¢Excelan ¼Ò¤ä Interlan ¼Ò¤Î¤è¤¦¤Ê ¥Ù¥ó¥À¤Ë¤è¤Ã¤ÆÂ¿¤¯¤Î¥¤¡¼¥µ¥Í¥Ã¥È¥«¡¼¥É¤Çưºî¤¹¤ë¤è¤¦¤Ë°Ü¿¢¤µ¤ì¡¢ ¥Þ¥·¥ó¤¬¾®¤µ¤¹¤®¤Æ¥á¥¤¥ó¥×¥í¥»¥Ã¥µÃæ¤Ç¥Í¥Ã¥È¥ï¡¼¥¯ÄÌ¿®¤òưºî ¤µ¤»¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤ PC »Ô¾ì¤ËÇä¤ê½Ð¤µ¤ì¤Þ¤·¤¿¡£ ¤´¤¯ºÇ¶á¤Ç¤Ï¡¢Microsoft ¼Ò¤Î Windows ÍѤΠWinsock ¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Î´ðÈפȤ·¤Æ ¥½¥±¥Ã¥È¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤¬»È¤ï¤ì¤Æ¤¤¤Þ¤¹¡£
¥½¥±¥Ã¥È IPC µ¡¹½¤¬Âбþ¤·¤Æ¤¤¤ë ¥Í¥Ã¥È¥ï¡¼¥¯¥É¥á¥¤¥ó¤Î¤¤¤¯¤Ä¤«¤Ï¡¢ ¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë¤Ø¤Î¥¢¥¯¥»¥¹¤òÄ󶡤·¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤é¤Î¥×¥í¥È¥³¥ë¤ÏÍýÏÀ¾å¡¢ ¥«¡¼¥Í¥ë¤Î¥½¥±¥Ã¥È¥½¥Õ¥È¥¦¥§¥¢¤è¤ê¤â²¼¤ÎÁؤˤ¢¤ë Ê̤Υ½¥Õ¥È¥¦¥§¥¢¤È¤·¤Æ¼ÂÁõ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¤Ï¡¢¥Ð¥Ã¥Õ¥¡´ÉÍý¡¢¥á¥Ã¥»¡¼¥¸ÇÛÁ÷¡¢ ³Æ¥×¥í¥È¥³¥ë¤Ø¤ÎÈÆÍÑ¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤òÄ󶡤·¡¢ ¤Þ¤¿¡¢¤µ¤Þ¤¶¤Þ¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë¤ò»ÈÍѤ¹¤ë¤¿¤á¤Î ¥Í¥Ã¥È¥ï¡¼¥¯¥¤¥ó¥¿¥Õ¥§¡¼¥¹¥É¥é¥¤¥Ð¤Ø¤Î¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ê¤É¡¢ ¿¤¯¤ÎÉտ掠¡¼¥Ó¥¹¤òÄ󶡤·¤Þ¤¹¡£
4.2BSD ¤¬¼ÂÁõ¤µ¤ì¤¿»þÅÀ¤Ç¤Ï¤µ¤Þ¤¶¤Þ¤Ê¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë¤¬ »ÈÍѤµ¤ì¡¢¤Þ¤¿³«È¯Ãæ¤ÎÃʳ¬¤Ë¤¢¤ê¤Þ¤·¤¿¡£ ¤½¤ì¤é¤Ï¤½¤ì¤¾¤ì¸Çͤζ¯¤ß¤È¼å¤ß¤ò»ý¤Ã¤Æ¤ª¤ê¡¢ ÌÀ¤é¤«¤ËÍ¥¤ì¤¿¥×¥í¥È¥³¥ë¤ä¥×¥í¥È¥³¥ë¥¹¥¤¡¼¥È¤È¤¤¤¦¤â¤Î¤Ï¸ºß¤·¤Þ¤»¤ó¤Ç¤·¤¿¡£ 4.2BSD ¤ÏÊ£¿ô¤Î¥×¥í¥È¥³¥ë¤ËÂбþ¤¹¤ë¤³¤È¤Ç¡¢ ¥Ð¡¼¥¯¥ì¡¼¹»¤Î´Ä¶¤ÇÍøÍѲÄǽ¤À¤Ã¤¿¤µ¤Þ¤¶¤Þ¤Ê¥Þ¥·¥ó´Ö¤Ç¤Î »ñ¸»¤Î¶¦Í¤ä¡¢Áê¸ß±¿ÍѤÎÄ󶡤ò²Äǽ¤Ë¤·¤Æ¤¤¤Þ¤·¤¿¡£ ¤Þ¤¿¤³¤ÎÊ£¿ô¥×¥í¥È¥³¥ë¤Ø¤ÎÂбþ¤Ï¡¢ ¾ÍèŪ¤ÊÊѹ¹¤ËÈ÷¤¨¤ÆÀ߷פµ¤ì¤Æ¤¤¤Þ¤·¤¿¡£ º£ÆüÍøÍѤµ¤ì¤Æ¤¤¤ë 10-100Mbps ¤Î¥¤¡¼¥µ¥Í¥Ã¥ÈÍѤΥץí¥È¥³¥ë¤Ï¡¢ ¾Íè¤Î 1-10Gbps ¸÷¥Õ¥¡¥¤¥Ð¥Í¥Ã¥È¥ï¡¼¥¯¤ËÂФ·¤Æ¡¢ ¤ª¤½¤é¤¯½½Ê¬¤Ê¤â¤Î¤Ç¤Ï¤Ê¤¤¤Ç¤·¤ç¤¦¡£ ¤½¤Î¤¿¤á¡¢¥Í¥Ã¥È¥ï¡¼¥¯ÄÌ¿®¥ì¥¤¥ä¤ÏÊ£¿ô¤Î¥×¥í¥È¥³¥ë¤ËÂбþ¤Ç¤¤ë¤è¤¦¤Ë À߷פµ¤ì¤Æ¤¤¤Þ¤¹¡£ ¿·¤·¤¤¥×¥í¥È¥³¥ë¤¬¥«¡¼¥Í¥ë¤ËÄɲäµ¤ì¤Æ¤â¡¢ ´û¸¤Î¥×¥í¥È¥³¥ë¤¬¤½¤Î±Æ¶Á¤ò¼õ¤±¤ë¤³¤È¤Ï¤Þ¤Ã¤¿¤¯¤¢¤ê¤Þ¤»¤ó¡£ ¿·¤·¤¤¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¿·¤·¤¤¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥È¥³¥ë¤Çưºî¤·¡¢ °ìÊý¤Ç´û¸¤Î¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤â¤Þ¤¿¡¢ ¤½¤ì¤ÈƱ¤¸ÊªÍý¥Í¥Ã¥È¥ï¡¼¥¯¾å¤Çº£¤Þ¤Ç¤É¤ª¤ê¤Î¥×¥í¥È¥³¥ë¤ò ÍøÍѤ·Â³¤±¤ë¤³¤È¤¬²Äǽ¤Ç¤¹¡£
4.2BSD ¤Ç¼ÂÁõ¤µ¤ì¤¿ºÇ½é¤Î¥×¥í¥È¥³¥ë¥¹¥¤¡¼¥È¤Ï DARPA ¤Î Transmission Control Protocol/Internet Protocol (TCP/IP) ¤Ç¤·¤¿¡£ CSRG ¤Ï¡¢¥½¥±¥Ã¥È IPC ¥Õ¥ì¡¼¥à¥ï¡¼¥¯¤ËÁȤ߹þ¤àºÇ½é¤Î¥Í¥Ã¥È¥ï¡¼¥¯¤È¤·¤Æ TCP/IP ¤òÁªÂò¤·¤Þ¤·¤¿¡£¤½¤ÎÍýͳ¤Ï¡¢4.1BSD ¥Ù¡¼¥¹¤Î¼ÂÁõ¤¬ DARPA ¤¬¥¹¥Ý¥ó¥µ¡¼¤È¤Ê¤Ã¤Æ¤¤¤¿ Bolt¡¢Beranek¡¢Newman (BBN) ¤Ë¤ª¤±¤ë¥×¥í¥¸¥§¥¯¥È¤«¤é¥Ñ¥Ö¥ê¥Ã¥¯¤ËÆþ¼ê²Äǽ¤À¤Ã¤¿¤«¤é¤Ç¤¹¡£ ¤½¤ì¤ÏÂ礤ÊÁªÂò¤Ç¤·¤¿¡£ ¤³¤Î¥×¥í¥È¥³¥ë¥¹¥¤¡¼¥È¤¬Èó¾ï¤Ë¹¤¯ÍøÍѤµ¤ì¤¿¤Î¤Ï¡¢ ¼ç¤Ë 4.2BSD ¤Ç¤Î¤³¤Î¼ÂÁõ¤¬Íýͳ¤È¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ TCP/IP ¤Î¼ÂÁõ¤ËÂФ¹¤ë¤½¤Î¸å¤ÎÀǽ¤ÈǽÎϤβþÁ±¤â¹¤¯ºÎÍѤµ¤ì¤Þ¤·¤¿¡£ TCP/IP ¤Î¼ÂÁõ¤Ë¤Ä¤¤¤Æ¤Ï¡¢13 ¾Ï¤Ç¾ÜºÙ¤Ë²òÀ⤷¤Æ¤¤¤Þ¤¹¡£
4.3BSD ¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¥á¥ê¡¼¥é¥ó¥ÉÂç³Ø¤È¥³¡¼¥Í¥ëÂç³Ø¤ÇÉôʬŪ¤Ë ³«È¯¤µ¤ì¤¿ Xerox Network Systems (XNS) ¥×¥í¥È¥³¥ë¥¹¥¤¡¼¥È¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ ¤³¤Î¥×¥í¥È¥³¥ë¥¹¥¤¡¼¥È¤Ï¡¢TCP/IP ¤ò»ÈÍѤ·¤ÆÄÌ¿®¤Ç¤¤Ê¤¤¸ÉΩ¤·¤¿¥Þ¥·¥ó¤È ÄÌ¿®¤¹¤ë¤Î¤ËɬÍפǤ·¤¿¡£
4.4BSD ¤Î¥ê¥ê¡¼¥¹¤Ç¤Ï¡¢¶áº¢ÊƹñÆâ³°¤ÇÁý²Ã¤·¤Æ¤¤¤ë ISO ¥×¥í¥È¥³¥ë¥¹¥¤¡¼¥È¤¬Äɲ䵤ì¤Þ¤·¤¿¡£ ISO ¥×¥í¥È¥³¥ë·²¤Î¤¿¤á¤Ë¿¾¯°Û¤Ê¤ë¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤òÄêµÁ¤·¤¿¤Î¤Ç¡¢ ¤³¤ì¤é¤Î¥»¥Þ¥ó¥Æ¥£¥¯¥¹¤ËŬ¹ç¤µ¤»¤ë¤¿¤á ¥½¥±¥Ã¥È¥¤¥ó¥¿¥Õ¥§¡¼¥¹¤Ë¤¤¤¯¤Ä¤«¤Î¾®¤µ¤ÊÊѹ¹¤¬É¬ÍפȤʤê¤Þ¤·¤¿¡£ ¤½¤ÎÊѹ¹¤Ï¡¢ ¾¤Î´û¸¥×¥í¥È¥³¥ë¤Î¥¯¥é¥¤¥¢¥ó¥È¤Ë¤Ïʬ¤«¤é¤Ê¤¤¤è¤¦¤Ë¤Ê¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ ISO ¥×¥í¥È¥³¥ë·²ÍÑ¤Ë 4.3BSD ¥«¡¼¥Í¥ë¤ÇÄ󶡤µ¤ì¤¿ 2 ¥ì¥Ù¥ë¥ë¡¼¥Æ¥£¥ó¥°¥Æ¡¼¥Ö¥ë¤ËÂФ¹¤ëÂ絬ÌϤÊÄɲäâɬÍפǤ·¤¿¡£ 4.4BSD ¤ÇÂ礤¯³ÈÄ¥¤µ¤ì¤¿¥ë¡¼¥Æ¥£¥ó¥°µ¡Ç½¤Ï¡¢ ²ÄÊÑĹ¥¢¥É¥ì¥¹¤È ¥Í¥Ã¥È¥ï¡¼¥¯¥Þ¥¹¥¯¤ò»ý¤ÄǤ°Õ¤Î¥ì¥Ù¥ë¤Î¥ë¡¼¥Æ¥£¥ó¥°¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£
¥Ö¡¼¥È¥¹¥È¥é¥Ã¥×µ¡¹½¤Ï¥·¥¹¥Æ¥à¤òµ¯Æ°¤¹¤ë¤¿¤á¤ËÍøÍѤµ¤ì¤Þ¤¹¡£ ¤Þ¤ººÇ½é¤Ë¡¢4.4BSD ¥«¡¼¥Í¥ë¤Ï CPU ¤Î¥á¥¤¥ó¥á¥â¥ê¤ËÆÉ¤ß¹þ¤Þ¤ì¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¤¬ÆÉ¤ß¹þ¤Þ¤ì¤ë¤È¡¢ ÆÃÄê¤Î¾õÂ֤إϡ¼¥É¥¦¥§¥¢¤òÀßÄꤹ¤ë½é´ü²½¥Õ¥§¡¼¥º¤Ë°Ü¹Ô¤·¤Þ¤¹¡£ ¼¡¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¼«Æ°ÀßÄê (autoconfiguration) ¤ò¹Ô¤Ê¤¤¤Þ¤¹¡£ ¤³¤ì¤Ï CPU ¤ËÀܳ¤µ¤ì¤¿¼þÊÕµ¡´ï¤Î¸¡½Ð¤ÈÀßÄê¤ò¹Ô¤Ê¤¦²áÄø¤Ç¤¹¡£ ¥·¥¹¥Æ¥à¤ÏºÇ½é¡¢¥Ç¥£¥¹¥¯¥Á¥§¥Ã¥¯¡¢¥¢¥«¥¦¥ó¥È½èÍý¡¢ quota ¥Á¥§¥Ã¥¯¤ò¹Ô¤Ê¤¦¥¹¥¿¡¼¥È¥¢¥Ã¥×¥¹¥¯¥ê¥×¥È¤ò ¥·¥ó¥°¥ë¥æ¡¼¥¶¥â¡¼¥É¤Ç¼Â¹Ô¤·¤Þ¤¹¡£ ¥¹¥¿¡¼¥È¥¢¥Ã¥×¥¹¥¯¥ê¥×¥È¤ÏºÇ¸å¤Ë°ìÈÌŪ¤ËÍøÍѤµ¤ì¤ë¥·¥¹¥Æ¥à¥µ¡¼¥Ó¥¹·²¤òµ¯Æ°¤·¡¢ ¥·¥¹¥Æ¥à¤ò´°Á´¤Ê¥Þ¥ë¥Á¥æ¡¼¥¶¥â¡¼¥É¤Ë°Ü¹Ô¤µ¤»¤Þ¤¹¡£
¥Þ¥ë¥Á¥æ¡¼¥¶¥â¡¼¥É¤Ç¤Ï¡¢¥×¥í¥»¥¹¤¬ ¥æ¡¼¥¶¤¬¥¢¥¯¥»¥¹¤Ç¤¤ë¤è¤¦¤ËÀßÄꤵ¤ì¤¿Ã¼Ëö²óÀþ¤ä ¥Í¥Ã¥È¥ï¡¼¥¯¥Ý¡¼¥È¾å¤Ç¤Î¥í¥°¥¤¥óÍ×µá¤òÂÔ¤Á¤Þ¤¹¡£ ¥í¥°¥¤¥óÍ׵᤬¸¡½Ð¤µ¤ì¤ë¤È¥í¥°¥¤¥ó¥×¥í¥»¥¹¤¬À¸À®¤µ¤ì¡¢ ¥æ¡¼¥¶¤Î³Îǧ½èÍý¤¬¹Ô¤ï¤ì¤Þ¤¹¡£ ¤½¤·¤Æ¥æ¡¼¥¶¤Î³Îǧ½èÍý¤¬À®¸ù¤¹¤ë¤È¡¢ ¤½¤Î¥æ¡¼¥¶¤ËÂФ·¤Æ¡¢ ¾¤Î¥×¥í¥»¥¹¤ò¼Â¹Ô¤Ç¤¤ë¤è¤¦¤Ë¤¹¤ë¤¿¤á¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤¬À¸À®¤µ¤ì¤Þ¤¹¡£
[Accetta et al, 1986] "Mach: A New Kernel Foundation for UNIX Development"", M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young, 93-113, USENIX Association Conference Proceedings, USENIX Association, June 1986.
[Ewens et al, 1985] "Tunis: A Distributed Multiprocessor Operating System", P. Ewens, D. R. Blythe, M. Funkenhauser, and R. C. Holt, 247-254, USENIX Assocation Conference Proceedings, USENIX Association, June 1985.
[Gingell et al, 1987] "Virtual Memory Architecture in SunOS", R. Gingell, J. Moran, and W. Shannon, 81-94, USENIX Association Conference Proceedings, USENIX Association, June 1987.
[Kernighan & Pike, 1984] The UNIX Programming Environment, B. W. Kernighan and R. Pike, Prentice-Hall, Englewood Cliffs, 1984.
[Macklem, 1994] The 4.4BSD NFS Implementation, R. Macklem, 6:1-14, 4.4BSD System Manager's Manual, O'Reilly & Associates, Inc., Sebastopol, 1994.
[McKusick & Karels, 1988] "Design of a General Purpose Memory Allocator for the 4.3BSD UNIX Kernel", M. K. McKusick and M. J. Karels, 295-304, USENIX Assocation Conference Proceedings, USENIX Assocation, June 1998.
[McKusick et al, 1994] Berkeley Software Architecture Manual, 4.4BSD Edition, M. K. McKusick, M. J. Karels, S. J. Leffler, W. N. Joy, and R. S. Faber, 5:1-42, 4.4BSD Programmer's Supplementary Documents, O'Reilly & Associates, Inc., Sebastopol, 1994.
[Rosenblum & Ousterhout, 1992] "The Design and Implementation of a Log-Structured File System", M. Rosenblum and K. Ousterhout, 26-52, ACM Transactions on Computer Systems, 10, 1, Association for Computing Machinery, February 1992.
The Design and Implementation of 4.4BSD Operating System
Chapter 2 ¤ÎÆüËܸ첽¤Ï¡¢¸¶Ãø¤Î½ÐÈǸµ¤Ç¤¢¤ë Addison-Weslay¡¢ ËÝÌõ½ÐÈǸ¢¤òÊÝͤ¹¤ë Pearson
Education Japan ¤Î¶¨ÎϤòÆÀ¤Æ¡¢ FreeBSD ÆüËܸì¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È (FreeBSD
doc-jp) ¤Ë¤è¤Ã¤Æ¹Ô¤Ê¤ï¤ì¤Þ¤·¤¿¡£ ÆüËܸìÈǤˤĤ¤¤Æ²¿¤«¤ªµ¤ÉÕ¤¤ÎÅÀ¤¬¤¢¤ê¤Þ¤·¤¿¤é
ÆüËܸì¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È <doc-jp@jp.FreeBSD.org>
¤Þ¤Ç¤´Ï¢Íí¤¯¤À¤µ¤¤¡£
¤³¤ÎÆüËܸìÈǤÎÃøºî¸¢¤Ï¡¢¸¶Ãø¼Ô¡¢¸¶Ãø¤Î½ÐÈǸµ¤Ç¤¢¤ë Addison-Weslay ¤ª¤è¤ÓÆüËܸìÈǤÎËÝÌõ½ÐÈǸ¢¤òÊÝͤ¹¤ë Pearson Education Japan ¤Ëµ¢Â°¤·¤Þ¤¹¡£¤½¤Î¤¿¤á¡¢ ¤³¤Îʸ½ñ¤ò¤³¤ì¤é¤ÎÃøºî¸¢ÊÝͼԤÎÌÀ¼¨Åª¤Êµö²Ä¤Ê¤¯Ê£À½¡¢ ºÆÇÛÉÛ¤¹¤ë¤³¤È¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£
2001 ǯ 5 ·î 5 Æü¤Ë¥¹¥¿¡¼¥È¤·¤¿ÆüËܸ첽ºî¶È¤Ë¤Ï¡¢ ¤µ¤Þ¤¶¤Þ¤ÊÊý¡¹¤¬ËÝÌõ¤Ë»²²Ã¤µ¤ì¤Þ¤·¤¿¡£ FreeBSD doc-jp ¤Ç¤Ï¡¢FreeBSD ´ØÏ¢Ê¸½ñ¤ÎÆüËܸìÈǤòºîÀ®¤¹¤ëºî¶È¤òÀºÎÏŪ¤Ë³¤±¤Æ¤¤¤Þ¤¹¡£ ¤³¤Îºî¶È¤Ë¶¨ÎϤ·¤¿¤¤¤È»×¤ï¤ì¤ëÊý¤Ï¡¢ ¤¼¤ÒFreeBSD ÆüËܸì¥É¥¥å¥á¥ó¥Æ¡¼¥·¥ç¥ó¥×¥í¥¸¥§¥¯¥È¤Î¥Ú¡¼¥¸¤ò¤´Í÷¤Î¾å doc-jp ¤Ø¤´»²²Ã¤¯¤À¤µ¤¤¡£
¿ù¼ µ®»Î <sugimura@jp.FreeBSD.org>
(2.1, 2.2 Àá)
IKENO Naoki <nao@mc.kcom.ne.jp>
(2.3 Àá)
ÅÄȪ ´î¹¸ <ytabata@tkf.att.ne.jp>
(2.4 Àá)
Atsuto <atsuto@guitar.interq.or.jp>
(2.5
Àá)
¤Ï¤é¤À¤¤í¤¦ <kiroh@jp.FreeBSD.org>
(2.6, 2.7 Àá)
¹âÅÄ Ãμù <tomoki@leergirls.org>
(2.8 Àá)
ÁÒÉÊ ±Ñ¹Ô <rushani@bl.mmtr.or.jp>
(2.9 Àá)
±öºê ÂóÌé <tshiozak@FreeBSD.org>
(2.10 Àá)
¤³¤¬ ¤è¤¦¤¤¤Á¤í¤¦ <y-koga@jp.FreeBSD.org>
(2.11, 2.13 Àá)
¿¹ ľǷ <mori@jp.FreeBSD.org>
(2.12 Àá)
ºä°æ ½ç¹Ô <sakai@lac.co.jp>
(2.14 Àá)
ÆâÀî ´î¾Ï <yoshiaki@kt.rim.or.jp>
(ººÆÉ)
ÆüÌî ¹À»Ö <hino@ccm.cl.nec.co.jp>
(ººÆÉ)
»³¸ý ²í¿® <yamagu-m@titan.ocn.ne.jp>
(ËÝÌõÄó¶¡)
ËÜʸ½ñ¡¢¤ª¤è¤Ó¾¤Îʸ½ñ¤Ï ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ ¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤¤Þ¤¹¡£
FreeBSD ¤Ë´Ø¤¹¤ë¼ÁÌ䤬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¥É¥¥å¥á¥ó¥È ¤òÆÉ¤ó¤À¾å¤Ç <questions@FreeBSD.org> ¤Þ¤Ç (±Ñ¸ì¤Ç)
Ï¢Íí¤·¤Æ¤¯¤À¤µ¤¤¡£
ËÜʸ½ñ¤Ë´Ø¤¹¤ë¼ÁÌä¤Ë¤Ä¤¤¤Æ¤Ï¡¢<doc@FreeBSD.org> ¤Þ¤ÇÅŻҥ᡼¥ë¤ò (±Ñ¸ì¤Ç)
Á÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£