第 13章¤Þ¤¸¤á¤Ê FreeBSD ¥Ï¥Ã¥«¡¼¤À¤±¤ÎÏÃÂê

Ìõ: ´äºê Ëþ ¡¢ 1997 ǯ 11 ·î 8 Æü

13.1. SNAP ¤È¤« RELEASE ¤È¤«¤Ï²¿?
13.2. ¼«Ê¬ÍѤΥ«¥¹¥¿¥à¥ê¥ê¡¼¥¹¤ò¹½ÃÛ¤¹¤ë¤Ë¤Ï?
13.3. ¥«¥¹¥¿¥à¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥¹¥¯¤òºî¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¤¹¤«?
13.4. “make world” ¤ò¹Ô¤Ê¤¦¤È´û¸¤Î¥Ð¥¤¥Ê¥ê¤ò¾å½ñ¤­¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¤¬¡£
13.5. ¥·¥¹¥Æ¥àµ¯Æ°»þ¤Ë “(bus speed defaulted)” ¤È¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Þ¤¹¡£
13.6. ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥¯¥»¥¹¤ËÀ©¸Â¤¬¤¢¤Ã¤Æ¤â current ¤òÄɤ¤¤«¤±¤é¤ì¤Þ¤¹¤«?
13.7. ¤É¤Î¤è¤¦¤Ë¤·¤ÆÇÛÉÛ¥Õ¥¡¥¤¥ë¤ò 240KB ¤Ëʬ³ä¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤«?
13.8. »ä¤Ï¥«¡¼¥Í¥ë¤Ë³ÈÄ¥¤ò¹Ô¤Ê¤¤¤Þ¤·¤¿¡£ ï¤ËÁ÷¤ì¤Ð¤¤¤¤¤Ç¤¹¤«?
13.9. PnP ISA ¥«¡¼¥É¤Î¸¡½Ð¤È½é´ü²½¤Ï¤É¤Î¤è¤¦¤Ë¹Ô¤Ê¤¦¤Î¤Ç¤¹¤«?
13.10. FreeBSD ¤Ï¡¢Â¾¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤¤ó¤Ç¤¹¤«?
13.11. ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ò³«È¯¤·¤¿¤Î¤Ç¡¢¥á¥¸¥ã¡¼Èֹ椬Íߤ·¤¤¤Î¤Ç¤¹¤¬¡£
13.12. ÂåÂؤΥǥ£¥ì¥¯¥È¥êÇÛÃ֥ݥꥷ¡¼
13.13. ¥«¡¼¥Í¥ë¥Ñ¥Ë¥Ã¥¯¤òºÇÂç¸Â¤ËÍøÍѤ¹¤ë
13.14. dlsym() ¤¬ ELF ¼Â¹Ô·Á¼°¤Ç¤ÏÆ°ºî¤·¤Ê¤¯¤Ê¤ê¤Þ¤¹!
13.15. ¥«¡¼¥Í¥ë¥¢¥É¥ì¥¹¶õ´Ö¤òÂ礭¤¯¤·¤¿¤ê¡¢ ¾®¤µ¤¯¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤¿¤éÎɤ¤¤Î¤Ç¤¹¤«?

13.1. SNAP ¤È¤« RELEASE ¤È¤«¤Ï²¿?

¸½ºß¡¢FreeBSD ¤Î CVS ¥ê¥Ý¥¸¥È¥ê ¤Ë¤Ï¡¢»°¤Ä¤Î¥¢¥¯¥Æ¥£¥Ö/½à¥¢¥¯¥Æ¥£¥Ö¤Ê¥Ö¥é¥ó¥Á¤¬¤¢¤ê¤Þ¤¹ (¥¢¥¯¥Æ¥£¥Ö¤Ê³«È¯¥Ö¥é¥ó¥Á¤Ï»°¤Ä¤·¤«Â¸ºß¤·¤Ê¤¤¤¿¤á¡¢ ¤ª¤½¤é¤¯ RELENG_2 ¥Ö¥é¥ó¥Á¤ÎÊѹ¹¤Ïǯ¤Ë 2 ²ó¤À¤±¤Ë¤Ê¤ë¤Ç¤·¤ç¤¦)¡£

  • RELENG_2_2 Ä̾Π2.2-STABLE

  • RELENG_3 Ä̾Π3.X-STABLE

  • RELENG_4 Ä̾Π4-STABLE

  • HEAD Ä̾Π-CURRENT ¤¢¤ë¤¤¤Ï 5.0-CURRENT

HEAD ¤Ï¾¤ÎÆó¤Ä¤È°ã¤Ã¤Æ¡¢ ¼ÂºÝ¤Î¥Ö¥é¥ó¥Á¥¿¥°¤Ç¤Ï¤Ê¤¯¡¢ ¡Öcurrent¡¢ ʬ´ô¤·¤Æ¤¤¤Ê¤¤³«È¯ËÜή¡×¤Î¤¿¤á¤Îñ¤Ê¤ë¥·¥ó¥Ü¥ê¥Ã¥¯¤ÊÄê¿ô¤Ç¤¹¡£ »ä¤¿¤Á¤Ï¤³¤ì¤ò -CURRENT ¤È¸Æ¤ó¤Ç¤¤¤Þ¤¹¡£

¸½ºß¡¢ “-CURRENT” ¤Ï 5.0 ¤Î³«È¯ËÜή¤Ç¤¢¤ê¡¢ 4.0-STABLE ¥Ö¥é¥ó¥Á¡¢ ¤Ä¤Þ¤ê RELENG_4 ¤Ï 2000 ǯ 3 ·î¤Ë “-CURRENT” ¤«¤éʬ´ô¤·¤Æ¤¤¤Þ¤¹¡£

2.2-STABLE ¥Ö¥é¥ó¥Á¡¢ RELENG_2_2 ¤Ï 1996 ǯ 11 ·î¤Ë “-CURRENT” ¤«¤éʬ´ô¤·¤Þ¤·¤¿¡£ ¤³¤ì¤ÏÊݼ餬´°Á´¤Ë½ªÎ»¤·¤Æ¤¤¤Þ¤¹¡£

13.2. ¼«Ê¬ÍѤΥ«¥¹¥¿¥à¥ê¥ê¡¼¥¹¤ò¹½ÃÛ¤¹¤ë¤Ë¤Ï?

¥ê¥ê¡¼¥¹¤ò¹½ÃÛ¤¹¤ë¤Ë¤Ï»°¤Ä¤Î¤³¤È¤¬É¬ÍפǤ¹¡£¤Þ¤º¡¢ vn(4) ¥É¥é¥¤¥Ð¤¬ÁȤ߹þ¤Þ¤ì¤¿¥«¡¼¥Í¥ë¤ò¼Â¹Ô¤µ¤»¤Æ¤¤¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ °Ê²¼¤ò¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ì¡¼¥·¥ç¥ó¥Õ¥¡¥¤¥ë¤ËÄɲä·¡¢ ¥«¡¼¥Í¥ë¤òºî¤êľ¤·¤Æ¤¯¤À¤µ¤¤¡£

pseudo-device vn         #Vnode driver (turns a file into a device)

¼¡¤Ë¡¢CVS ¥ê¥Ý¥¸¥È¥êÁ´ÂΤò¼ê¸µ¤Ë¤ª¤¤¤Æ¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£ ¤³¤ì¤òÆþ¼ê¤¹¤ë¤Ë¤Ï CVSUP ¤¬»ÈÍѤǤ­¤Þ¤¹¤¬¡¢supfile ¤Ç release ¤Î̾¾Î¤ò cvs ¤Ë¤·¤Æ ¾¤Î¥¿¥°¤ä date ¥Õ¥£¡¼¥ë¥É¤òºï½ü¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

*default prefix=/home/ncvs
*default base=/a
*default host=cvsup.FreeBSD.org
*default release=cvs
*default delete compress use-rel-suffix

## Main Source Tree
src-all
src-eBones
src-secure

# Other stuff
ports-all
www
doc-all

¤½¤·¤Æ cvsup -g supfile ¤ò¼Â¹Ô¤·¤Æ¼«Ê¬¤Î¥Þ¥·¥ó¤Ë CVS ¥ê¥Ý¥¸¥È¥êÁ´ÂΤò¥³¥Ô¡¼¤·¤Þ¤¹¡Ä¡£

ºÇ¸å¤Ë¡¢¥Ó¥ë¥ÉÍѤˤ«¤Ê¤ê¤Î¶õ¤­Îΰè¤òÍÑ°Õ¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò /some/big/filesystem ¤È¤·¤Æ¡¢ ¾å¤ÎÎã¤Ç CVS ¥ê¥Ý¥¸¥È¥ê¤ò /home/ncvs ¤ËÃÖ¤¤¤¿¤â¤Î¤È¤¹¤ë¤È¡¢ °Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¥ê¥ê¡¼¥¹¤ò¹½ÃÛ¤·¤Þ¤¹¡£

# setenv CVSROOT /home/ncvs
 # or export CVSROOT=/home/ncvs
# cd /usr/src
# make buildworld
# cd /usr/src/release
# make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/some/big/filesystem/release
     

注意: ¤¿¤À¤·¡¢¤¹¤Ç¤Ë /usr/obj °Ê²¼¤Ë¹½ÃÛʪ¤¬Â¸ºß¤·¤Æ¤¤¤ë¤Ê¤é¡¢buildworld ¤ÎɬÍפϤ¢¤ê¤Þ¤»¤ó¡£

½èÍý¤¬½ªÎ»¤¹¤ë¤È¡¢ ¥ê¥ê¡¼¥¹Á´ÂΤ¬ /some/big/filesystem/release ¤Ë¹½ÃÛ¤µ¤ì¡¢´°Á´¤Ê FTP ¥¤¥ó¥¹¥È¡¼¥ëÍѤÎÇÛÉÛʪ¤¬ /some/big/filesystem/release/R/ftp ¤ËºîÀ®¤µ¤ì¤Þ¤¹¡£ -current °Ê³°¤Î³«È¯¥Ö¥é¥ó¥Á¤Î SNAP ¤ò¼«Ê¬¤Ç¹½ÃÛ¤·¤¿¤¤¾ì¹ç¤Ï¡¢ RELEASETAG=SOMETAG ¤ò¾å¤Î make release ¤Î¥³¥Þ¥ó¥É¥é¥¤¥ó¤ËÄɲä·¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð¡¢RELEASETAG=RELENG_2_2 ¤È¤¹¤ë¤ÈºÇ¿·¤Î 2.2-STABLE snapshot ¤¬¹½ÃÛ¤µ¤ì¤Þ¤¹¡£

13.3. ¥«¥¹¥¿¥à¤Î¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥¹¥¯¤òºî¤ë¤Ë¤Ï¤É¤¦¤¹¤ì¤Ð¤¤¤¤¤Î¤Ç¤¹¤«?

/usr/src/release/Makefile ¤Î¤¤¤í¤¤¤í¤Ê¥¿¡¼¥²¥Ã¥È¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¥Ç¥£¥¹¥¯¡¢ ¥½¡¼¥¹¡¢¥Ð¥¤¥Ê¥ê¥¢¡¼¥«¥¤¥Ö¤òºî¤ë´°Á´¤Ê½èÍý¤ò¼«Æ°Åª¤Ë¹Ô¤Ê¤¦¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ Makefile ¤Ë½½Ê¬¤Ê¾ðÊ󤬤¢¤ê¤Þ¤¹¡£ ¤·¤«¤·¡¢¼Â¹Ô¤Ë¤Ï “make world” ¤¬É¬Íפǡ¢ ¿¤¯¤Î»þ´Ö¤È¥Ç¥£¥¹¥¯¤ÎÍÆÎ̤¬É¬ÍפǤ¹¡£

13.4. “make world” ¤ò¹Ô¤Ê¤¦¤È´û¸¤Î¥Ð¥¤¥Ê¥ê¤ò¾å½ñ¤­¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¤¹¤¬¡£

¤¨¤¨¡¢¤½¤ì¤¬°ìÈÌŪ¤Ê¹Í¤¨Êý¤Ç¤¹¡£Ì¾Á°¤¬¼¨¤·¤Æ¤¤¤ë¤è¤¦¤Ë “make world” ¤Ï¤¹¤Ù¤Æ¤Î¥·¥¹¥Æ¥à¤Î¥Ð¥¤¥Ê¥ê¤òºÇ½é¤«¤éºî¤êľ¤·¤Þ¤¹¤Î¤Ç¡¢·ë²Ì¤È¤·¤Æ¡¢ ¥¯¥ê¡¼¥ó¤Ç°ì´ÓÀ­¤Î¤¢¤ë´Ä¶­¤òÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹ (¤³¤ì¤¬¤½¤ì¤À¤±Ä¹¤¤»þ´Ö¤¬¤«¤«¤ëÍýͳ¤Ç¤¹)¡£

´Ä¶­ÊÑ¿ô DESTDIR ¤ò “make world” ¤ä “make install” ¤ò¼Â¹Ô¤¹¤ë»þ¤ËÄêµÁ¤·¤Æ¤ª¤¯¤È¡¢¿·¤·¤¯ºî¤é¤ì¤¿¥Ð¥¤¥Ê¥ê¤Ï ${DESTDIR}¤ò root ¤È¤ß¤Ê¤·¤¿¥Ç¥£¥ì¥¯¥È¥ê¥Ä¥ê¡¼¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Þ¤¹¡£ ¤¢¤ë¤Ç¤¿¤é¤á¤Ê¶¦Í­¥é¥¤¥Ö¥é¥ê¤ÎÊѹ¹¤ä¥×¥í¥°¥é¥à¤ÎºÆ¹½Ãۤˤè¤Ã¤Æ “make world” ¤Ï¼ºÇÔ¤¹¤ë¤³¤È¤â¤¢¤ê¤Þ¤¹¡£

13.5. ¥·¥¹¥Æ¥àµ¯Æ°»þ¤Ë “(bus speed defaulted)” ¤È¥á¥Ã¥»¡¼¥¸¤¬½Ð¤Þ¤¹¡£

Adaptec ¤Î 1542 SCSI ¥Û¥¹¥È¥¢¥À¥×¥¿¤Ï¡¢ ¥æ¡¼¥¶¤¬¥½¥Õ¥È¥¦¥§¥¢Åª¤Ë¥Ð¥¹¥¢¥¯¥»¥¹Â®ÅÙ¤ÎÀßÄê¤ò¹Ô¤Ê¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ °ÊÁ°¤Î¥Ð¡¼¥¸¥ç¥ó¤Î 1542 ¥É¥é¥¤¥Ð¤Ï¡¢ »ÈÍѲÄǽ¤ÊºÇÂç¤Î®ÅÙ¤òµá¤á¤Æ¥¢¥À¥×¥¿¤ò¤½¤ÎÀßÄê¤Ë¤·¤è¤¦¤È¤·¤Þ¤·¤¿¡£ ¤³¤ì¤ÏÆÃÄê¤Î¥æ¡¼¥¶¤Î¥·¥¹¥Æ¥à¤Ç¤ÏÌäÂ꤬¤¢¤ë»ö¤¬¤ï¤«¤ê¡¢ ¸½ºß¤Ç¤Ï¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥ª¥×¥·¥ç¥ó¤Ë “TUNE_1542” ¤¬²Ã¤¨¤é¤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤ò»ÈÍѤ¹¤ë¤È¡¢¤³¤ì¤¬Æ¯¤¯¥·¥¹¥Æ¥à¤Ç¤Ï¥Ç¥£¥¹¥¯¤¬Â®¤¯¤Ê¤ê¤Þ¤¹¤¬¡¢ ¥Ç¡¼¥¿¤Î¾×Æͤ¬µ¯¤­¤Æ®¤¯¤Ï¤Ê¤é¤Ê¤¤¥·¥¹¥Æ¥à¤â¤¢¤ë¤Ç¤·¤ç¤¦

13.6. ¥¤¥ó¥¿¡¼¥Í¥Ã¥È¥¢¥¯¥»¥¹¤ËÀ©¸Â¤¬¤¢¤Ã¤Æ¤â current ¤òÄɤ¤¤«¤±¤é¤ì¤Þ¤¹¤«?

¤Ï¤¤¡¢ CTM ¥·¥¹¥Æ¥à ¤ò»È¤Ã¤Æ¡¢ ¥½¡¼¥¹¥Ä¥ê¡¼Á´ÂΤΥÀ¥¦¥ó¥í¡¼¥É¤ò¹Ô¤Ê¤ï¤º¤ËÄɤ¤¤«¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

13.7. ¤É¤Î¤è¤¦¤Ë¤·¤ÆÇÛÉÛ¥Õ¥¡¥¤¥ë¤ò 240KB ¤Ëʬ³ä¤·¤Æ¤¤¤ë¤Î¤Ç¤¹¤«?

Èæ³ÓŪ¿·¤·¤¤ BSD ¥Ù¡¼¥¹¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ split ¤ËǤ°Õ¤Î¥Ð¥¤¥È¶­³¦¤Çʬ³ä¤¹¤ë “-b” ¥ª¥×¥·¥ç¥ó¤¬¤¢¤ê¤Þ¤¹¡£

°Ê²¼¤Ï /usr/src/Makefile ¤«¤é¤ÎÎã¤Ç¤¹¡£

bin-tarball:
              (cd ${DISTDIR}; \
              tar cf - . \
              gzip --no-name -9 -c | \
              split -b 240640 - \
              ${RELEASEDIR}/tarballs/bindist/bin_tgz.)

13.8. »ä¤Ï¥«¡¼¥Í¥ë¤Ë³ÈÄ¥¤ò¹Ô¤Ê¤¤¤Þ¤·¤¿¡£ ï¤ËÁ÷¤ì¤Ð¤¤¤¤¤Ç¤¹¤«?

FreeBSD ¥Ï¥ó¥É¥Ö¥Ã¥¯¤Î¡ÖFreeBSD ¤Ø¤Î¹×¸¥¡×¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£

¤¢¤Ê¤¿¤Î¥¢¥¤¥Ç¥£¥¢¤Ë´¶¼Õ¤·¤Þ¤¹!

13.9. PnP ISA ¥«¡¼¥É¤Î¸¡½Ð¤È½é´ü²½¤Ï¤É¤Î¤è¤¦¤Ë¹Ô¤Ê¤¦¤Î¤Ç¤¹¤«?

Frank Durda IV »á ¤è¤ê:

Í×ÅÀ¤Ï¡¢¥Û¥¹¥È¤¬Ç§¼±¤µ¤ì¤Æ¤¤¤Ê¤¤¥Ü¡¼¥É¤òõ¤¹»þ¤Ë¡¢¤¹¤Ù¤Æ¤Î PnP ¥Ü¡¼¥É¤¬±þÅú¤¹¤ë¤³¤È¤Î¤Ç¤­¤ë¾¯¿ô¤Î I/O ¥Ý¡¼¥È¤¬¤¢¤ë¤È¤¤¤¦¤³¤È¤Ç¤¹¡£ ¤½¤ì¤Ë¤è¤ê¡¢PnP ¥×¥í¡¼¥Ö¥ë¡¼¥Á¥ó¤¬³«»Ï¤·¤¿¤È¤­¡¢PnP ¥Ü¡¼¥É¤¬Â¸ºß¤¹¤ë¤Ê¤é¡¢¤¹¤Ù¤Æ¤Î PnP ¥Ü¡¼¥É¤Ï¼«Ê¬¤Î¥â¥Ç¥ëÈÖ¹æ¤òÊÖ¤·¤Þ¤¹¡£ ¤½¤Î¥Ý¡¼¥È¤ò I/O read ¤¹¤ë¤È¥×¥í¡¼¥Ö¥ë¡¼¥Á¥ó¤ÏÌ䤤¤ËÂФ¹¤ë¥ï¥¤¥¢¡¼¥É-OR ¤µ¤ì¤¿ “yes” ¤òÆÀ¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï ¾¯¤Ê¤¯¤È¤â 1 ¥Ó¥Ã¥È¤¬ ON ¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤½¤·¤Æ¡¢¥×¥í¡¼¥Ö¥ë¡¼¥Á¥ó¤Ï¥â¥Ç¥ë ID (Microsoft/Intel ¤Ë¤è¤Ã¤Æ³ä¤êÅö¤Æ¤é¤ì¤Æ¤¤¤Þ¤¹)¤¬ X ¤è¤ê¾®¤µ¤¤¥Ü¡¼¥É¤ò “¥ª¥Õ¥é¥¤¥ó” ¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¤³¤ÎÁàºî¤ò¹Ô¤Ê¤¤¡¢Ì䤤¹ç¤ï¤»¤Ë±þÅú¤·¤Æ¤¤¤ë¥Ü¡¼¥É¤¬¤Þ¤À »Ä¤Ã¤Æ¤¤¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤Þ¤¹¡£ ¤â¤· “0” ¤¬Ê֤äƤ¯¤ë¤Ê¤é X ¤è¤êÂ礭¤Ê ID ¤ò»ý¤Ä¥Ü¡¼¥É¤Ï¤Ê¤¤¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ º£ÅÙ¤Ï “X” ¤è¤ê¤â¾®¤µ¤ÊÃͤò»ý¤Ä¥Ü¡¼¥É¤Ë¤Ä¤¤¤ÆÌ䤤¹ç¤ï¤»¤Þ¤¹¡£ ¤â¤·¤¢¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢ ¥×¥í¡¼¥Ö¥ë¡¼¥Á¥ó¤Ï¥â¥Ç¥ëÈֹ椬 X ¤è¤ê¾®¤µ¤¤¤³¤È¤òÃΤê¤Þ¤¹¡£ º£Å٤ϡ¢X-(limit/4) ¤è¤êÂ礭¤ÊÃͤò»ý¤Ä¥Ü¡¼¥É¤ò¥ª¥Õ¥é¥¤¥ó¤Ë¤·¤ÆÌ䤤¹ç¤ï¤»¤ò·«¤êÊÖ¤·¤Þ¤¹¡£ ¤³¤Î ID ¤ÎÈϰϤˤè¤ë½à¥Ð¥¤¥Ê¥ê¥µ¡¼¥Á¤ò½½Ê¬·«¤êÊÖ¤¹¤³¤È¤Ë¤è¤ê¡¢ ¥×¥í¡¼¥Ö¥ë¡¼¥Á¥ó¤Ï¥Þ¥·¥ó¤Ë¸ºß¤¹¤ë¤¹¤Ù¤Æ¤Î PnP ¥Ü¡¼¥É¤ÎÃͤòºÇ½ªÅª¤ËÆÀ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤½¤Î·«¤êÊÖ¤·¤Î²ó¿ô¤Ï 2^64 ¤è¤ê¤Ï¤ë¤«¤Ë¾¯¤Ê¤¤²ó¿ô¤Ç¤¹¡£

ID ¤ÏÆó¤Ä¤Î 32-bit (¤Ä¤Þ¤ê 64bit) ¥Õ¥£¡¼¥ë¥É + 8 bit ¥Á¥§¥Ã¥¯¥µ¥à¤«¤é¤Ê¤ê¤Þ¤¹¡£ºÇ½é¤Î 32 bits ¤Ï¥Ù¥ó¥À¤Î¼±Ê̻ҤǤ¹¡£ ¤³¤ì¤Ï¸øɽ¤µ¤ì¤Æ¤Ï¤¤¤Þ¤»¤ó¤¬¡¢ Ʊ°ì¤Î¥Ù¥ó¥À¤«¤é¶¡µë¤µ¤ì¤Æ¤¤¤ë°Û¤Ê¤ë¥¿¥¤¥×¤Î¥Ü¡¼¥É¤Ç¤Ï°Û¤Ê¤ë 32-bit ¥Ù¥ó¥À ID ¤ò»ý¤Ä¤³¤È¤¬¤Ç¤­¤ë¤è¤¦¤Ë¹Í¤¨¤é¤ì¤Þ¤¹¡£ À½Â¤¸µ¤òÆÃÄꤹ¤ë¤À¤±¤Î¤¿¤á¤Ë 32-bit ¤Ï¤¤¤¯¤é¤«²á¾ê¤Ç¤¹¡£

²¼°Ì¤Î 32-bit ¤Ï¥·¥ê¥¢¥ëÈֹ桢 ¥¤¡¼¥µ¥Í¥Ã¥È¥¢¥É¥ì¥¹¤Ê¤É¤Î¥Ü¡¼¥É¤òÆÃÄꤹ¤ë¤â¤Î¤Ç¤¹¡£ ¥Ù¥ó¥À¤Ï¾å°Ì 32 bits ¤¬°Û¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢ ²¼°Ì 32-bit ¤¬Æ±°ì¤Ç¤¢¤ë 2ËçÌܤΥܡ¼¥É¤òÀ½Â¤¤¹¤ë¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ¤·¤¿¤¬¤Ã¤Æ¡¢Æ±¤¸¥¿¥¤¥×¤ÎÊ£¿ô¤Î¥Ü¡¼¥É¤ò¥Þ¥·¥ó¤Ë¤¤¤ì¤ë¤³¤È¤¬¤Ç¤­¡¢ ¤³¤Î¾ì¹ç¤Ç¤â 64-bit Á´ÂΤǤϥæ¥Ë¡¼¥¯¤Ç¤¹¡£

32-bit ¤Î¥Õ¥£¡¼¥ë¥É¤Ï¤¹¤Ù¤Æ¤ò 0 ¤Ë¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£ ¤³¤ì¤Ï½é´ü²½¤Î¥Ð¥¤¥Ê¥ê¥µ¡¼¥Á¤Î´Ö¥ï¥¤¥¢¡¼¥É-OR ¤Ë¤è¤Ã¤Æ 0 ¤Ç¤Ï¤Ê¤¤ ¥Ó¥Ã¥È¤ò»²¾È¤¹¤ë¤«¤é¤Ç¤¹¡£

¥·¥¹¥Æ¥à¤¬¤¹¤Ù¤Æ¤Î¥Ü¡¼¥É¤ÎÍ¿¤¨¤é¤ì¤¿ ID ¤òǧ¼±¤¹¤ë¤È¡¢ ¤½¤ì¤¾¤ì¤Î¥Ü¡¼¥É¤ËÂбþ¤·¤¿½èÍý¤ò°ì¤Ä¤º¤Ä (Ʊ°ì¤Î I/O ¥Ý¡¼¥È¤òÄ̤·¤Æ) ¹Ô¤Ê¤¤¤Þ¤¹¡£ ¤½¤·¤Æ¡¢ÍøÍѤǤ­¤ë³ä¤ê¹þ¤ß¤ÎÁªÂò¤Ê¤É¤Î¥Ü¡¼¥É¤¬É¬ÍפȤ¹¤ë¥ê¥½¡¼¥¹¤ò¸¡½Ð¤·¤Þ¤¹¡£ ¤¹¤Ù¤Æ¤Î¥Ü¡¼¥É¤Ë¤Ä¤¤¤Æ¤³¤Î¾ðÊó¤ò½¸¤á¤Þ¤¹¡£

¤³¤Î¾ðÊó¤Ï¥Ï¡¼¥É¥Ç¥£¥¹¥¯¾å¤Î ECU ¥Õ¥¡¥¤¥ë¤Ê¤É¤Î¾ðÊó¤È¤Þ¤È¤á¤é¤ì¡¢ ¥Þ¥¶¡¼¥Ü¡¼¥É¤Î BIOS ¤Ë¤â·ë¹ç¤µ¤ì¤Þ¤¹¡£ ¥Þ¥¶¡¼¥Ü¡¼¥É¾å¤Î¥Ï¡¼¥É¥¦¥§¥¢¤Ø¤Î ECU ¤È BIOS PnP ¤Î¥µ¥Ý¡¼¥È¤ÏÄ̾ï¤ÏÅý¹ç¤µ¤ì¤Æ¤¤¤Þ¤¹¤¬¡¢ ¼þÊÕµ¡´ï¤Ë¤Ä¤¤¤Æ¤Ï¿¿¤Î PnP¤Ç¤¢¤ë¤È¤Ï¤¤¤¨¤Þ¤»¤ó¡£ ¤·¤«¤·¡¢BIOS ¤Î¾ðÊó¤Ë ECU ¤Î¾ðÊó¤ò²Ã¤¨¤ÆÄ´ºº¤¹¤ë¤³¤È¤Ç¡¢ ¥×¥í¡¼¥Ö¥ë¡¼¥Á¥ó¤Ï PnP ¥Ç¥Ð¥¤¥¹¤¬ºÆÇÛÃ֤Ǥ­¤Ê¤¯¤Ê¤ë¤³¤È¤òÈò¤±¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¤½¤ì¤«¤é¡¢ºÆÅÙ PnP ¥Ç¥Ð¥¤¥¹¤Ë¥¢¥¯¥»¥¹¤·¡¢I/O¡¢DMA¡¢IRQ¡¢ ¥á¥â¥ê¥Þ¥Ã¥×¥¢¥É¥ì¥¹¤ÎÀßÄê¤ò¤·¤Þ¤¹¡£ ¥Ç¥Ð¥¤¥¹¤Ï¤³¤Î¥¢¥É¥ì¥¹¤Ë¸«¤¨¤ë¤è¤¦¤Ë¤Ê¤ê¡¢ ¼¡¤ËºÆµ¯Æ°¤¹¤ë¤Þ¤Ç¤³¤Î°ÌÃÖ¤òÀê¤á¤Þ¤¹¡£¤·¤«¤·¡¢ ¤¢¤Ê¤¿¤Î˾¤à»þ¤Ë°ÜÆ°¤µ¤»¤ë¤³¤È¤¬ÉÔ²Äǽ¤Ç¤¢¤ë¡¢ ¤È¤¤¤Ã¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£

°Ê¾å¤ÎÏäǤÏÂ礭¤¯Ã±½ã²½¤ò¤·¤Æ¤¢¤ê¤Þ¤¹¤¬¡¢ ´ðËÜŪ¤Ê¹Í¤¨Êý¤ÏÆÀ¤é¤ì¤¿¤Ç¤·¤ç¤¦¡£

¥Þ¥¤¥¯¥í¥½¥Õ¥È¤Ï¡¢¥Ü¡¼¥É¤Î¥í¥¸¥Ã¥¯¤¬ÂÐΩ¤¹¤ë I/O ¥µ¥¤¥¯¥ë¤Ç¤Ï¥Ç¥³¡¼¥É¤·¤Æ¤¤¤Ê¤¤ (ÌõÃí: ¤ª¤½¤é¤¯ read »þ¤·¤«¥Ç¥³¡¼¥É¤µ¤ì¤Æ¤¤¤º write »þ¤Ï¥Ý¡¼¥È¤¬¶õ¤¤¤Æ¤¤¤ë¤È¤¤¤¦°ÕÌ£¤Ç¤·¤ç¤¦)¡¢ ¥×¥é¥¤¥Þ¥ê¥×¥ê¥ó¥¿¤Î¥¹¥Æ¡¼¥¿¥¹¥Ý¡¼¥È¤Î¤¤¤¯¤Ä¤«¤ò PnP ¤Î¤¿¤á¤ËÀêÍ­¤·¤Þ¤·¤¿¡£ »ä¤Ï½é´ü¤Î PnP ¤ÎÄó°Æ¥ì¥Ó¥å¡¼»þ¤Ë IBM ½ãÀµ¤Î¥×¥ê¥ó¥¿¥Ü¡¼¥É¤Ç¥¹¥Æ¡¼¥¿¥¹¥Ý¡¼¥È¤Î write ¤Î¥Ç¥³¡¼¥É¤¬¤µ¤ì¤Æ¤¤¤ë¤È¤¤¤¦¤³¤È¤Ëµ¤¤¬¤Ä¤­¤Þ¤·¤¿¤¬¡¢ MS ¤Ï “tough (´è¸Ç¡¢ÉÔ±¿¡¢ÌµË¡¤Ê)” ¤È¸À¤Ã¤Æ¤¤¤Þ¤¹¡£ ¤½¤·¤Æ¥×¥ê¥ó¥¿¤Î¥¹¥Æ¡¼¥¿¥¹¥Ý¡¼¥È¤Ø¥¢¥É¥ì¥¹¤ÎÀßÄê¤Î¤¿¤á¤Ë write ¤ò¹Ô¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤Þ¤¿¡¢ ¤½¤Î¥¢¥É¥ì¥¹ + 0x800 ¤È read ¤Î¤¿¤á¤Î 3ÈÖÌܤΠI/O ¥Ý¡¼¥È¤¬ 0x200 ¤«¤é 0x3ff ¤Î´Ö¤Î¤É¤³¤«¤ËÃÖ¤«¤ì¤ë¤Ç¤·¤ç¤¦¡£

13.10. FreeBSD ¤Ï¡¢Â¾¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤ò¥µ¥Ý¡¼¥È¤·¤Ê¤¤¤ó¤Ç¤¹¤«?

¤¤¤¯¤Ä¤«¤Î¥°¥ë¡¼¥×¤Î¿Í¡¹¤¬¡¢FreeBSD ¤Î¾¤Î¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ø¤Î°Ü¿¢¤Ë´Ø¿´¤ò¼¨¤·¤Æ¤ª¤ê¡¢ FreeBSD/AXP (ALPHA) ¤Ï¤³¤ì¤é¤ÎÀ®²Ì¤È¤·¤Æ¤Ï¤È¤Æ¤âÀ®¸ù¤·¤¿¤â¤Î¤Î°ì¤Ä¤Ç¤¹¡£ FreeBSD/AXP ¤Ï¸½ºß ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha ¤«¤éÆþ¼ê¤Ç¤­¤Þ¤¹¡£ ALPHA ¤Ø¤Î°Ü¿¢ÈǤ¬¸½ºßÆ°¤¯µ¡¼ï¤ÏÁý¤¨¤Ä¤Ä¤¢¤ê¡¢ ¤½¤ÎÃæ¤Ë¤Ï AlphaStation¡¢AXPpci¡¢PC164¡¢Miata ¤½¤·¤Æ Multia ¤È¤¤¤Ã¤¿¥â¥Ç¥ë¤¬´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£ ¸½¾õ¤Ë¤Ä¤¤¤Æ¤Î¾ðÊó¤òÆÀ¤ë¤Ë¤Ï ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë»²²Ã¤·¤Æ¤¯¤À¤µ¤¤¡£

¤½¤Î¾¤Ë FreeBSD ¤Î SPARC ¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ø¤Î°Ü¿¢¤¬¤¢¤ê¤Þ¤¹¡£ ¥×¥í¥¸¥§¥¯¥È¤Ø¤Î»²²Ã¤Ë¶½Ì£¤¬¤¢¤ëÊý¤Ï ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È ¤Ë»²²Ã¤·¤Æ¤¯¤À¤µ¤¤¡£ ¿Ê¹ÔÃæ¤Î¥×¥é¥Ã¥È¥Û¡¼¥à¤Î¥ê¥¹¥È¤Ë¤â¤Ã¤È¤âºÇ¶áÄɲ䵤줿¤Î¤¬ IA-64 ¤È PowerPC¤Ç¤¹¡£¾ÜºÙ¤Ï ¤ª¤è¤Ó/¤¢¤ë¤¤¤Ï ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë»²²Ã¤·¤Æ¤¯¤À¤µ¤¤¡£ ¿·¤·¤¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë´Ø¤¹¤ë°ìÈÌŪ¤ÊµÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï ¿·¤·¤¤¥¢¡¼¥­¥Æ¥¯¥Á¥ã¤Ë´Ø¤¹¤ë°ìÈÌŪ¤ÊµÄÏÀ¤Ë¤Ä¤¤¤Æ¤Ï ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È ¤Ø»²²Ã¤·¤Æ¤¯¤À¤µ¤¤¡£

13.11. ¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¤ò³«È¯¤·¤¿¤Î¤Ç¡¢¥á¥¸¥ã¡¼Èֹ椬Íߤ·¤¤¤Î¤Ç¤¹¤¬¡£

¤³¤ì¤Ï¡¢³«È¯¤·¤¿¥É¥é¥¤¥Ð¤ò¸ø³«¤¹¤ë¤«¤É¤¦¤«¤Ë°Í¸¤·¤Þ¤¹¡£ ¸ø³«¤¹¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢¥É¥é¥¤¥Ð¤Î¥½¡¼¥¹¥³¡¼¥É¡¢ files.i386 ¤ÎÊѹ¹¡¢ ¥³¥ó¥Õ¥£¥°¥Õ¥¡¥¤¥ë¤Î¥µ¥ó¥×¥ë¡¢ ¥Ç¥Ð¥¤¥¹¤¬»È¤¦¥¹¥Ú¥·¥ã¥ë¥Õ¥¡¥¤¥ë¤òºîÀ®¤¹¤ë MAKEDEV(8) ¤Î¥³¡¼¥É¤ò»ä¤¿¤Á¤ËÁ÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£ ¸ø³«¤¹¤ë¤Ä¤â¤ê¤¬¤Ê¤¤¾ì¹ç¡¢¥é¥¤¥»¥ó¥¹¤ÎÌäÂê¤Ë¤è¤ê¸ø³«¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¡¢ ¥­¥ã¥é¥¯¥¿¥á¥¸¥ã¡¼ÈÖ¹æ 32 ¤ª¤è¤Ó¡¢ ¥Ö¥í¥Ã¥¯¥á¥¸¥ã¡¼ÈÖ¹æ 8 ¤¬¤³¤Î¤è¤¦¤ÊÌÜŪ¤Î¤¿¤á¤ËͽÌ󤵤ì¤Æ¤¤¤Þ¤¹¡£ ¤³¤ì¤é¤ÎÈÖ¹æ¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤¡£ ¤É¤Á¤é¤Î¾ì¹ç¤Ç¤¢¤ì¡¢¥É¥é¥¤¥Ð¤Ë´Ø¤¹¤ë¾ðÊó¤ò FreeBSD technical discussions ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È ¤Ëή¤·¤Æ失¤ë¤È½õ¤«¤ê¤Þ¤¹¡£

13.12. ÂåÂؤΥǥ£¥ì¥¯¥È¥êÇÛÃ֥ݥꥷ¡¼

¸½ºß»È¤ï¤ì¤Æ¤¤¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎÇÛÃ֥ݥꥷ¡¼¤Ï¡¢ »ä¤¬ 1983 ǯ¤Ë½ñ¤¤¤¿¤â¤Î¤«¤éÁ´¤¯Êѹ¹¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£ »ä¤ÏÅö½é¤ÎÇÛÃ֥ݥꥷ¡¼¤ò¡¢¥ª¥ê¥¸¥Ê¥ë¤Î fast filesystem ¤Î¤¿¤á¤Ë½ñ¤­¡¢ ¤Þ¤Ã¤¿¤¯²þÄꤷ¤Æ¤¤¤Þ¤»¤ó¡£ ¤³¤Î¥Ý¥ê¥·¡¼¤Ï¥·¥ê¥ó¥À¥°¥ë¡¼¥×¤ò»È¤¤¿Ô¤¯¤¹¤Î¤òËɤ°¤Ë¤Ï¤¦¤Þ¤¯¤¤¤­¤Þ¤·¤¿¤¬¡¢ ¤ªµ¤¤Å¤­¤ÎÊý¤â¤¤¤ëÄ̤ê find ¤ÎÆ°ºî¤Ë¤ÏÉÔŬÀڤǤ¹¡£ ¤Û¤È¤ó¤É¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ÎÆâÍƤϡ¢ ¿¼¤µÍ¥À踡º÷ (ftw ¤È¤â¸Æ¤Ð¤ì¤Þ¤¹) ¤Ë¤è¤Ã¤Æºî¤é¤ì¤¿¥¢¡¼¥«¥¤¥Ö¤«¤é¡¢ Ãê½Ð (restore) ¤·¤ÆºîÀ®¤µ¤ì¤Þ¤¹¡£¤³¤ÎºÝ¡¢ ¥Ç¥£¥ì¥¯¥È¥ê¤Ï¡¢¥·¥ê¥ó¥À¥°¥ë¡¼¥×¤Ë¤Þ¤¿¤¬¤Ã¤ÆÇÛÃÖ¤µ¤ì¡¢ °Ê¹ß¤Î¿¼¤µÍ¥À踡º÷¤ò¹Ô¤¦¤Ë¤Ï¡¢ ¹Í¤¨ÆÀ¤ë¸Â¤êºÇ°­¤Î¾õÂ֤ˤʤê¤Þ¤¹¡£ ¤â¤·ºîÀ®¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤ÎÁí¿ô¤¬¤ï¤«¤Ã¤Æ¤¤¤ì¤Ð¡¢ ²ò·èÊýË¡¤Ï¤¢¤ê¤Þ¤¹¡£(Áí¿ô/¥·¥ê¥ó¥À¥°¥ë¡¼¥×¿ô) ¸Ä¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò¡¢ ¥·¥ê¥ó¥À¥°¥ë¡¼¥×¤´¤È¤Ë¤Þ¤È¤á¤ÆºîÀ®¤¹¤ì¤ÐÎɤ¤¤Î¤Ç¤¹¡£ ¤â¤Á¤í¤óºÇŬ¤Ê¥Ç¥£¥ì¥¯¥È¥êÇÛÃ֤ˤʤë¤è¤¦¤Ë¡¢ Áí¿ô¤òͽ¬¤¹¤ëÊýË¡¤ò¹Í¤¨¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤·¤«¤·²¾¤Ë¥·¥ê¥ó¥À¥°¥ë¡¼¥×¤¢¤¿¤ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¿ô¤ò 10 ¤¯¤é¤¤¤Î¾®¤µ¤Ê¿ô¤Ë¸ÇÄꤷ¤Æ¤·¤Þ¤Ã¤¿¤È¤·¤Æ¤â¡¢ ÂçÉý¤Ê²þÁ±¤¬Ë¾¤á¤ë¤Ç¤·¤ç¤¦¡£ ¤³¤Î¥Ý¥ê¥·¡¼¤òÍѤ¤¤ë¤Ù¤­¥ê¥¹¥È¥¢ºî¶È¤ò¡¢Ä̾ï¤Îºî¶È (¤ª¤½¤é¤¯´û¸¤Î¥Ý¥ê¥·¡¼¤ò»ÈÍѤ·¤¿¤Û¤¦¤¬Îɤ¤¤Ç¤·¤ç¤¦) ¤ò¶èÊ̤¹¤ë¤Ë¤Ï¡¢ 10 Éô֤δ֤˺îÀ®¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤òºÇÂç 10 ¸Ä¤Þ¤Ç¤Þ¤È¤á¤Æñ°ì¤Î¥·¥ê¥ó¥À¥°¥ë¡¼¥×¤Ë½ñ¤­¹þ¤à¤È¤¤¤¦¼ê½ç¤¬»È¤¨¤ë¤Ç¤·¤ç¤¦¡£ ¤È¤Ë¤«¤¯»ä¤Î·ëÏÀ¤Ï¡¢¤½¤í¤½¤í¼Â¸³¤ò»Ï¤á¤Æ¸«¤ë»þ´ü¤À¤í¤¦¤È¤¤¤¦¤³¤È¤Ç¤¹¡£

13.13. ¥«¡¼¥Í¥ë¥Ñ¥Ë¥Ã¥¯¤òºÇÂç¸Â¤ËÍøÍѤ¹¤ë

注意: ¤³¤ÎÀá¤Ï¡¢freebsd-current ¥á¡¼¥ê¥ó¥°¥ê¥¹¥È¤Ë Bill Paul »á¤¬Åê¹Æ¤·¤¿¥á¡¼¥ë¤ò¡¢ Dag-Erling C. Smørgrav »á¤¬¹»Àµ¤·¡¢[] Æâ¤Î¥³¥á¥ó¥È¤òÄɲ䷤ưúÍѤ·¤¿¤â¤Î¤Ç¤¹¡£



From: Bill Paul <wpaul@skynet.ctr.columbia.edu>
Subject: Re: the fs fun never stops
To: ben@rosengart.com
Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)
Cc: current@FreeBSD.ORG

[<ben@rosengart.com> ¤¬°Ê²¼¤Î¥Ñ¥Ë¥Ã¥¯¥á¥Ã¥»¡¼¥¸¤òÅê¹Æ¤·¤Þ¤·¤¿¡£]

> Fatal trap 12: page fault while in kernel mode
> fault virtual address   = 0x40
> fault code              = supervisor read, page not present
> instruction pointer     = 0x8:0xf014a7e5
                                ^^^^^^^^^^
> stack pointer           = 0x10:0xf4ed6f24
> frame pointer           = 0x10:0xf4ed6f28
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = interrupt enabled, resume, IOPL = 0
> current process         = 80 (mount)
> interrupt mask          =
> trap number             = 12
> panic: page fault

¤³¤Î¤è¤¦¤Ê¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤¿¾ì¹ç¡¢ÌäÂ꤬µ¯¤­¤ë¾õ¶·¤ò³Îǧ¤·¤Æ¡¢ ¾ðÊó¤òÁ÷¤ë¤À¤±¤Ç¤Ï½½Ê¬¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£ ²¼Àþ¤ò¤Ä¤±¤¿Ì¿Îá¥Ý¥¤¥ó¥¿ÃͤϽÅÍפÊÃͤǤ¹¤¬¡¢ »ÄÇ°¤Ê¤¬¤é¤³¤ÎÃͤϹ½À®¤Ë°Í¸¤·¤Þ¤¹¡£¤Ä¤Þ¤ê¡¢ ¤³¤ÎÃͤϻȤäƤ¤¤ë¥«¡¼¥Í¥ë¤Î¥¤¥á¡¼¥¸¤Ë°Í¸¤¹¤ë¤Î¤Ç¤¹¡£ ¤â¤·¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È¤Ê¤É¤Î GENERIC ¥«¡¼¥Í¥ë¤ò»È¤Ã¤Æ¤¤¤ë¤Î¤Ç¤¢¤ì¤Ð¡¢ ¾¤Î¿Í´Ö¤¬ÌäÂê¤Î¤¢¤ë´Ø¿ô¤Ë¤Ä¤¤¤ÆÄÉ»î¤ò¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¤¬¡¢ ¥«¥¹¥¿¥Þ¥¤¥º¤µ¤ì¤¿¥«¡¼¥Í¥ë¤Î¾ì¹ç¤Ï¡¢ »È¤Ã¤Æ¤¤¤ëËܿͤˤ·¤«ÌäÂê¤Îµ¯¤³¤Ã¤¿¾ì½ê¤ÏÆÃÄê¤Ç¤­¤Ê¤¤¤Î¤Ç¤¹¡£

²¿¤ò¤¹¤ì¤ÐÎɤ¤¤Î¤Ç¤·¤ç¤¦?

  1. Ì¿Îá¥Ý¥¤¥ó¥¿Ãͤò¥á¥â¤·¤Þ¤¹¡£ 0x8: ¤È¤¤¤¦Éôʬ¤Ïº£²óɬÍפ¢¤ê¤Þ¤»¤ó¡£ ɬÍ×¤Ê¤Î¤Ï 0xf0xxxxxx ¤È¤¤¤¦Éôʬ¤Ç¤¹¡£

  2. ¥·¥¹¥Æ¥à¤¬ºÆµ¯Æ°¤·¤¿¤é¡¢°Ê²¼¤ÎÁàºî¤ò¹Ô¤¤¤Þ¤¹¡£

    % nm -n /kernel.that.caused.the.panic | grep f0xxxxxx
    
    ¤³¤³¤Ç¡¢f0xxxxxx ¤ÏÌ¿Îá¥Ý¥¤¥ó¥¿ÃͤǤ¹¡£ ¥«¡¼¥Í¥ë¥·¥ó¥Ü¥ë¤Î¥Æ¡¼¥Ö¥ë¤Ï´Ø¿ô¤Î¥¨¥ó¥È¥ê¥Ý¥¤¥ó¥È¤ò´Þ¤ß¡¢ Ì¿Îá¥Ý¥¤¥ó¥¿Ãͤϡ¢´Ø¿ôÆâÉô¤Î¤¢¤ëÅÀ¤Ç¤¢¤êºÇ½é¤ÎÅÀ¤Ç¤Ï¤Ê¤¤¤¿¤á¡¢ ¤³¤ÎÁàºî¤ò¹Ô¤Ã¤Æ¤â´°Á´¤Ë°ìÃפ¹¤ë¤â¤Î¤¬É½¼¨¤µ¤ì¤Ê¤¤¾ì¹ç¤â¤¢¤ê¤Þ¤¹¡£ ¤³¤Î¾ì¹ç¤Ï¡¢ ºÇ¸å¤Î·å¤ò¾Ê¤¤¤Æ¤â¤¦¤¤¤Á¤É¤ä¤Ã¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£ ¤³¤Î¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£
    % nm -n /kernel.that.caused.the.panic | grep f0xxxxx
    
    ¤³¤ì¤Ç¤â°ìÃפ·¤Ê¤¤¾ì¹ç¤Ï¡¢ ·å¤ò¸º¤é¤·¤Ê¤¬¤é²¿¤é¤«¤Î½ÐÎϤ¬¤¢¤ë¤Þ¤Ç·«¤êÊÖ¤·¤Æ¤¯¤À¤µ¤¤¡£ ²¿¤«½ÐÎϤµ¤ì¤¿¤é¡¢ ¤½¤ì¤¬¥«¡¼¥Í¥ë¥Ñ¥Ë¥Ã¥¯¤ò°ú¤­µ¯¤³¤·¤¿²ÄǽÀ­¤Î¤¢¤ë´Ø¿ô¤Î¥ê¥¹¥È¤Ç¤¹¡£ ¤³¤ì¤Ï¡¢ÌäÂêÅÀ¤ò¸«ÉÕ¤±¤ëÀµ³Î¤ÊÊýË¡¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¤¬¡¢²¿¤â¤Ê¤¤¤è¤ê¤Þ¤·¤Ç¤¹¡£

¤³¤Î¤è¤¦¤Ê¥Ñ¥Ë¥Ã¥¯¥á¥Ã¥»¡¼¥¸¤òÅê¹Æ¤·¤Æ¤¤¤ë¿Í¤Ï¤è¤¯¸«³Ý¤±¤Þ¤¹¤¬¡¢ ¤³¤Î¤è¤¦¤Ë¡¢Ì¿Îá¥Ý¥¤¥ó¥¿Ãͤò¡¢ ¥«¡¼¥Í¥ë¥·¥ó¥Ü¥ë¥Æ¡¼¥Ö¥ë¤ÎÃæ¤Î´Ø¿ô¤È¤Ä¤­¹ç¤ï¤»¤ÆÄ´¤Ù¤Æ¤¤¤ë¿Í¤Ï¤Þ¤ì¤Ç¤¹¡£

¥Ñ¥Ë¥Ã¥¯¤Î¸¶°ø¤òÆͤ­»ß¤á¤ëºÇÎɤÎÊýË¡¤Ï¡¢¥¯¥é¥Ã¥·¥å¥À¥ó¥×¤ò¤È¤ê¡¢ gdb(1) ¤Ç¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤ò¹Ô¤¦¤³¤È¤Ç¤¹¡£

¤É¤Ã¤Á¤Ë¤·¤í¡¢»ä¤ÏÉáÄ̰ʲ¼¤Î¤è¤¦¤Ë¤·¤Þ¤¹¡£

  1. ¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥Õ¥¡¥¤¥ë¤òºî¤ê¤Þ¤¹¡£ ¥«¡¼¥Í¥ë¥Ç¥Ð¥Ã¥¬¤¬É¬Íפ½¤¦¤Ç¤¢¤ì¤Ð options 'DDB' ¤ò²Ã¤¨¤Æ¤âÎɤ¤¤Ç¤¹ (»ä¤Ï±Êµ×¥ë¡¼¥×¤¬µ¯¤³¤Ã¤Æ¤¤¤½¤¦¤Ê¾ì¹ç¤Ë¡¢ ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤òÀßÄꤹ¤ë¤Î¤Ë»È¤Ã¤Æ¤¤¤Þ¤¹)¡£

  2. config -g KERNELCONFIG ¤È¤·¤Æ¥Ó¥ë¥É¥Ç¥£¥ì¥¯¥È¥ê¤òÀßÄꤷ¤Þ¤¹¡£

  3. cd /sys/compile/KERNELCONFIG; make ¤ò¼Â¹Ô¤·¤Þ¤¹¡£

  4. ¥«¡¼¥Í¥ë¤Î¥³¥ó¥Ñ¥¤¥ë¤¬½ªÎ»¤¹¤ë¤Î¤òÂÔ¤Á¤Þ¤¹¡£

  5. make install ¤ò¼Â¹Ô¤·¤Þ¤¹¡£

  6. ºÆµ¯Æ°¤·¤Þ¤¹¡£

make(1) ¥×¥í¥»¥¹¤Ï£²¤Ä¤Î¥«¡¼¥Í¥ë¡¢ kernel ¤È kernel.debug ¤ò¥Ó¥ë¥É¤·¤Þ¤¹¡£ kernel ¤Ï /kernel ¤È¤·¤Æ¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¡¢ kernel.debug ¤Ï gdb(1) ¤Î¥Ç¥Ð¥Ã¥°ÍÑ¥·¥ó¥Ü¥ë¾ðÊó¤ò¼è¤ê½Ð¤¹¤¿¤á¤ËÍøÍѤµ¤ì¤Þ¤¹¡£

³Î¼Â¤Ë¥¯¥é¥Ã¥·¥å¥À¥ó¥×¤ò¤È¤ë¤Ë¤Ï¡¢/etc/rc.conf ¤òÊÔ½¸¤·¤Æ dumpdev ¤ò»ÈÍѤ·¤Æ¤¤¤ë¥¹¥ï¥Ã¥×¥Ñ¡¼¥Æ¥£¥·¥ç¥ó¤Ë»ØÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¤³¤¦¤¹¤ë¤È rc(8) ¥¹¥¯¥ê¥×¥È¤«¤é dumpon(8) ¥³¥Þ¥ó¥É¤¬¼Â¹Ô¤µ¤ì¡¢ ¥¯¥é¥Ã¥·¥å¥À¥ó¥×µ¡Ç½¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£ ¼êÆ°¤Ç dumpon(8) ¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Æ¤â¤«¤Þ¤¤¤Þ¤»¤ó¡£ ¥Ñ¥Ë¥Ã¥¯¤Î¸å¡¢¥¯¥é¥Ã¥·¥å¥À¥ó¥×¤Ï savecore(8) ¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤Æ¼è¤ê½Ð¤¹¤³¤È ¤¬¤Ç¤­¤Þ¤¹¡£ dumpdev ¤¬ /etc/rc.conf ¤ÇÀßÄꤵ¤ì¤Æ¤¤¤ì¤Ð¡¢ rc(8) ¥¹¥¯¥ê¥×¥È¤«¤é savecore(8) ¤¬¼«Æ°Åª¤Ë¼Â¹Ô¤µ¤ì¡¢¥¯¥é¥Ã¥·¥å¥À¥ó¥×¤ò /var/crash ¤ËÊݸ¤·¤Þ¤¹¡£

注意: FreeBSD ¤Î¥¯¥é¥Ã¥·¥å¥À¥ó¥×¤Î¥µ¥¤¥º¤Ï¡¢ ¤Õ¤Ä¤¦ÊªÍý¥á¥â¥ê¥µ¥¤¥º¤ÈƱ¤¸¤Ç¤¹¡£ ¤Ä¤Þ¤ê 64MB ¤Î¥á¥â¥ê¤òÀѤó¤Ç¤¤¤ì¤Ð¡¢ 64MB ¤Î¥¯¥é¥Ã¥·¥å¥À¥ó¥×¤¬À¸À®¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£ /var/crash ¤Ë½½Ê¬¤Ê¶õ¤­ÍÆÎ̤¬¤¢¤ë¤³¤È¤ò³Îǧ¤·¤Æ¤¯¤À¤µ¤¤¡£¼êÆ°¤Ç savecore(8) ¤ò¼Â¹Ô¤¹¤ì¤Ð¡¢ ¤â¤Ã¤È¶õ¤­ÍÆÎ̤Τ¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë¥¯¥é¥Ã¥·¥å¥À¥ó¥×¤òÊݸ¤Ç¤­¤Þ¤¹¡£ options MAXMEM=(foo) ¤È¤¤¤¦¹Ô¤ò¥«¡¼¥Í¥ë¥³¥ó¥Õ¥£¥°¥Õ¥¡¥¤¥ë¤ËÄɲ乤뤳¤È¤Ç¡¢ ¥«¡¼¥Í¥ë¤Î¥á¥â¥ê»ÈÍÑÎ̤òÀ©¸Â¤Ç¤­¤Þ¤¹¡£ ¤¿¤È¤¨¤Ð 128MB ¤Î¥á¥â¥ê¤¬¤¢¤ë¾ì¹ç¤â¡¢ ¥«¡¼¥Í¥ë¤Î¥á¥â¥ê»ÈÍÑÎ̤ò 16MB ¤ËÀ©¸Â¤·¡¢¥¯¥é¥Ã¥·¥å¥À¥ó¥×¤Î¥µ¥¤¥º¤â 128MB ¤Ç¤Ï¤Ê¤¯ 16MB ¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

¥¯¥é¥Ã¥·¥å¥À¥ó¥×¤ò¼è¤ê½Ð¤»¤¿¤é¡¢ °Ê²¼¤Î¤è¤¦¤Ë gdb(1) ¤ò»È¤Ã¤Æ¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤ò¤È¤ê¤Þ¤¹¡£

% gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0
(gdb) where

ɬÍפʾðÊó¤¬ 1 ²èÌ̤˼ý¤Þ¤é¤Ê¤¤¤³¤È¤â¿¤¤¤Î¤Ç¡¢¤Ç¤­¤ì¤Ð script(1) ¤ò»È¤Ã¤Æ½ÐÎϤòµ­Ï¿¤·¤Þ¤¹¡£ strip ¤·¤Æ¤¤¤Ê¤¤¥«¡¼¥Í¥ë¥¤¥á¡¼¥¸¤ò»È¤¦¤³¤È¤Ç¡¢ ¤¹¤Ù¤Æ¤Î¥Ç¥Ð¥Ã¥°¥·¥ó¥Ü¥ë¤¬»²¾È¤Ç¤­¡¢ ¥Ñ¥Ë¥Ã¥¯¤ÎȯÀ¸¤·¤¿¥«¡¼¥Í¥ë¤Î¥½¡¼¥¹¥³¡¼¥É¤Î¹Ô¤¬É½¼¨¤µ¤ì¤Æ¤¤¤ë¤Ï¤º¤Ç¤¹¡£ Ä̾Àµ³Î¤Ê¥¯¥é¥Ã¥·¥å¤Ø¤Î²áÄø¤òÄÉÀפ¹¤ë¤Ë¤Ï¡¢ ½ÐÎϤòºÇ¸å¤Î¹Ô¤«¤éµÕÊý¸þ¤ËÆɤޤʤ±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£ ¤Þ¤¿ gdb(1) ¤ò»È¤Ã¤Æ¡¢ ÊÑ¿ô¤ä¹½Â¤ÂΤÎÆâÍƤòɽ¼¨¤µ¤»¡¢ ¥¯¥é¥Ã¥·¥å¤·¤¿»þ¤Î¥·¥¹¥Æ¥à¤Î¾õÂÖ¤òÄ´¤Ù¤é¤ì¤Þ¤¹¡£

¤â¤·¤¢¤Ê¤¿¤¬¥Ç¥Ð¥Ã¥°¶¸¤Ç¡¢Æ±»þ¤ËÊ̤Υ³¥ó¥Ô¥å¡¼¥¿¤òÍøÍѤǤ­¤ë´Ä¶­¤Ë¤¢¤ì¤Ð¡¢ gdb(1) ¤ò¥ê¥â¡¼¥È¥Ç¥Ð¥Ã¥°¤Ë»È¤¦¤³¤È¤â¤Ç¤­¤Þ¤¹¡£ ¥ê¥â¡¼¥È¥Ç¥Ð¥Ã¥°¤ò»È¤¦¤È¡¢¤¢¤ë¥³¥ó¥Ô¥å¡¼¥¿¾å¤Î gdb(1) ¤ò»È¤Ã¤Æ¡¢ Ê̤Υ³¥ó¥Ô¥å¡¼¥¿¤Î¥«¡¼¥Í¥ë¤ò¥Ç¥Ð¥Ã¥°¤Ç¤­¤Þ¤¹¡£ ¥Ö¥ì¡¼¥¯¥Ý¥¤¥ó¥È¤ÎÀßÄê¡¢¥«¡¼¥Í¥ë¥³¡¼¥É¤Î¥¹¥Æ¥Ã¥×¼Â¹Ô¤Ê¤É¡¢ ¤Õ¤Ä¤¦¤Î¥×¥í¥°¥é¥à¤Î¥Ç¥Ð¥Ã¥°¤ÈÊѤï¤ê¤Þ¤»¤ó¡£ ¥³¥ó¥Ô¥å¡¼¥¿¤ò 2 Âæʤ٤ƥǥХå°¤¹¤ë¥Á¥ã¥ó¥¹¤Ë¤Ï¤Ê¤«¤Ê¤«·Ã¤Þ¤ì¤Ê¤¤¤Î¤Ç¡¢ »ä¤Ï¤Þ¤À¥ê¥â¡¼¥È¥Ç¥Ð¥Ã¥°¤ò»î¤·¤¿¤³¤È¤Ï¤¢¤ê¤Þ¤»¤ó¡£

Bill ¤Ë¤è¤ëÄɵ­: DDB ¤òÍ­¸ú¤Ë¤·¤Æ¤¤¤Æ¥«¡¼¥Í¥ë¤¬¥Ç¥Ð¥Ã¥¬¤Ë Íî¤Á¤¿¤é¡¢ddb ¤Î¥×¥í¥ó¥×¥È¤Ç "panic" ¤ÈÆþÎϤ¹¤ì¤Ð¡¢¶¯À©Åª¤Ë¥Ñ¥Ë¥Ã¥¯¤òµ¯¤³¤·¥¯¥é¥Ã¥·¥å¥À¥ó¥×¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ ¥Ñ¥Ë¥Ã¥¯¤ÎÅÓÃæ¤Ç¡¢ºÆ¤Ó¥Ç¥Ð¥Ã¥¬¤ËÍî¤Á¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¡¢ "continue" ¤ÈÆþÎϤ¹¤ì¤Ð¡¢ ¥¯¥é¥Ã¥·¥å¥À¥ó¥×¤òºÇ¸å¤Þ¤Ç¼Â¹Ô¤µ¤»¤é¤ì¤Þ¤¹¡£

13.14. dlsym() ¤¬ ELF ¼Â¹Ô·Á¼°¤Ç¤ÏÆ°ºî¤·¤Ê¤¯¤Ê¤ê¤Þ¤¹!

ELF ¤Î¥Ä¡¼¥ëÎà¤Ï¡¢ ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¼Â¹Ô·Á¼°¤ÎÃæ¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë¥·¥ó¥Ü¥ë¤ò¡¢ ¥À¥¤¥Ê¥ß¥Ã¥¯¥ê¥ó¥«¤«¤é¸«¤¨¤ë¤è¤¦¤Ë¤Ï¤·¤Þ¤»¤ó¡£ ¤³¤Î¤¿¤á¡¢dlopen(NULL, flags) ¤ò¸Æ¤Ó½Ð¤·¤ÆÆÀ¤é¤ì¤¿¥Ï¥ó¥É¥ë¤ËÂФ·¤Æ¡¢ dlsym() ¤Çõº÷¤ò¹Ô¤Ã¤Æ¤â¡¢ ¤³¤¦¤¤¤Ã¤¿¥·¥ó¥Ü¥ë¤ò¸«¤Ä¤±¤é¤ì¤Þ¤»¤ó¡£

¤â¤·¡¢¤¢¤Ê¤¿¤¬¥×¥í¥»¥¹¤ÎÃæ¿´¤Ë¤¢¤¿¤ë¼Â¹Ô·Á¼°¤ÎÃæ¤Ë¤¢¤ë¥·¥ó¥Ü¥ë¤òõº÷¤·¤¿¤±¤ì¤Ð¡¢ ELF ¥ê¥ó¥« (ld(1)) ¤Ë -export-dynamic ¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤Æ¼Â¹Ô·Á¼°¤ò¥ê¥ó¥¯¤¹¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

13.15. ¥«¡¼¥Í¥ë¥¢¥É¥ì¥¹¶õ´Ö¤òÂ礭¤¯¤·¤¿¤ê¡¢ ¾®¤µ¤¯¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤¿¤éÎɤ¤¤Î¤Ç¤¹¤«?

¥«¡¼¥Í¥ë¥¢¥É¥ì¥¹¶õ´Ö¤Ï¡¢FreeBSD 3.X ¾å¤Ç 256MB¡¢FreeBSD 4.X ¾å¤Ç 1GB ¤¬¥Ç¥Õ¥©¥ë¥È¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£ Éé²Ù¤Î¹â¤¤¥Í¥Ã¥È¥ï¡¼¥¯¥µ¡¼¥Ð (¤¿¤È¤¨¤ÐÂ礭¤Ê FTP¡¢HTTP ¥µ¡¼¥Ð) ¤ò±¿ÍѤ¹¤ë¾ì¹ç¤Ï¡¢256MB ¤Ç¤Ï­¤ê¤Ê¤¤¤³¤È¤Ëµ¤ÉÕ¤¯¤«¤âÃΤì¤Þ¤»¤ó¡£

¤Ç¤Ï¡¢¥¢¥É¥ì¥¹¶õ´Ö¤òÂ礭¤¯¤¹¤ë¤Ë¤Ï¤É¤¦¤·¤¿¤éÎɤ¤¤Î¤Ç¤·¤ç¤¦¤«? ¤½¤ì¤Ë¤Ï¡¢Æó¤Ä¤ÎÃʳ¬¤òƧ¤ß¤Þ¤¹¡£¤Þ¤º¡¢ ¤è¤êÂ礭¤¤¥¢¥É¥ì¥¹¶õ´Ö¤ò³ä¤êÅö¤Æ¤ë¤³¤È¤ò¥«¡¼¥Í¥ë¤ËÃΤ餻¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ ¼¡¤Ë¡¢¥«¡¼¥Í¥ë¤Ï¥¢¥É¥ì¥¹¶õ´Ö¤ÎÀèƬ¤Ë¥í¡¼¥É¤µ¤ì¤ë¤¿¤á¡¢ ¥¢¥É¥ì¥¹¤ÎÀèƬ¤¬Å·°æ (ÌõÃí:¥«¡¼¥Í¥ë¥¢¥É¥ì¥¹¶õ´Ö¤ÎºÇ²¼Ã¼¥¢¥É¥ì¥¹¤Î¤³¤È) ¤È ¤Ö¤Ä¤«¤ë¤³¤È¤Î¤Ê¤¤¤è¤¦¤Ë¡¢¥í¡¼¥É¥¢¥É¥ì¥¹¤òº£¤Þ¤Ç¤è¤êÄã°Ì¤ËÀßÄꤹ¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

ºÇ½é¤ÎÃʳ¬¤Ï¡¢src/sys/i386/include/pmap.h ¤Ë¤¢¤ë NKPDE ¤ÎÃͤòÁý²Ã¤µ¤»¤ë¤³¤È¤Ç¹Ô¤Ê¤¤¤Þ¤¹¡£ ¤³¤³¤Ë 1GB ¤Î¥¢¥É¥ì¥¹¶õ´Ö¤Ë¤¹¤ë¤¿¤á¤Ë¡¢¤É¤Î¤è¤¦¤Ë¤¹¤ì¤ÐÎɤ¤¤«¤ò¼¨¤·¤Þ¤¹¡£

#ifndef NKPDE
#ifdef SMP
#define NKPDE                   254     /* addressable number of page tables/pde's */
#else
#define NKPDE                   255     /* addressable number of page tables/pde's */
#endif  /* SMP */
#endif

Àµ³Î¤Ê NKPDE ¤ÎÃͤò·×»»¤¹¤ë¤Ë¤Ï¡¢ ˾¤ß¤Î¥¢¥É¥ì¥¹¶õ´Ö¤ÎÂ礭¤µ (¥á¥¬¥Ð¥¤¥Èñ°Ì) ¤ò 4 ¤Ç³ä¤Ã¤Æ¡¢ ¤½¤ì¤«¤éñ°ì¥×¥í¥»¥Ã¥µ (UP) ¤Ê¤é 1¡¢SMP ¤Ê¤é 2 ¤ò°ú¤­»»¤·¤Æ¤¯¤À¤µ¤¤¡£

¼¡¤ÎÃʳ¬¤ò¹Ô¤Ê¤¦¤Ë¤Ï¡¢¥í¡¼¥É¥¢¥É¥ì¥¹¤òÀµ³Î¤Ë·×»»¤¹¤ë¤³¤È¤¬É¬ÍפǤ¹¡£ ñ½ã¤Ë¡¢¥¢¥É¥ì¥¹¶õ´Ö¤ÎÂ礭¤µ (¥Ð¥¤¥Èñ°Ì) ¤ò 0x100100000 ¤«¤é°ú¤­»»¤·¤Æ¤¯¤À¤µ¤¤¡£ 1GB ¥¢¥É¥ì¥¹¶õ´Ö¤Î¾ì¹ç¡¢¤½¤Î·ë²Ì¤Ï 0xc0100000 ¤Ë¤Ê¤ê¤Þ¤¹¡£ ¤½¤·¤Æ¡¢src/sys/i386/conf/Makefile.i386 ¤Ë¤¢¤ë LOAD_ADDRESS ¤Ë¡¢º£·×»»¤·¤¿ÃͤòÆþ¤ì¤Þ¤¹¡£¤Þ¤¿¡¢¼¡¤Î¤è¤¦¤Ë src/sys/i386/conf/kernel.script ¤Î¥»¥¯¥·¥ç¥ó¤Î»Ï¤á¤ÎÊý¤Ë¤¢¤ë¥í¥±¡¼¥·¥ç¥ó¥«¥¦¥ó¥¿¤Ë¤âƱ¤¸ÃͤòÆþ¤ì¤Æ¤¯¤À¤µ¤¤¡£

OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(btext)
SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-freebsdelf/lib);
SECTIONS
{
  /* Read-only sections, merged into text segment: */
  . = 0xc0100000 + SIZEOF_HEADERS;
  .interp     : { *(.interp)    }

¤½¤ì¤¬´°Î»¤·¤¿¤é¡¢config ¤·Ä¾¤·¤Æ¥«¡¼¥Í¥ë¤òºÆ¹½ÃÛ¤·¤Æ¤¯¤À¤µ¤¤¡£ ¤ª¤½¤é¤¯¡¢ps(1)¡¢top(1) ¤Ê¤É¤ËÉÔ¶ñ¹ç¤¬½Ð¤ë¤Ç¤·¤ç¤¦¡£ ¤½¤ì¤é¤òÀµ¾ï¤Ë¤¹¤ë¤¿¤á¤Ë¡¢make world (¤â¤·¤¯¤Ï¡¢Êѹ¹¤·¤¿ pmap.h ¤ò /usr/include/vm/ ¤Ë¥³¥Ô¡¼¤·¤¿¸å¤Ë¡¢ libkvm¡¢ ps ¤ª¤è¤Ó top ¤ò¼êÆ°¤ÇºÆ¹½ÃÛ¤¹¤ë¤³¤È) ¤ò¹Ô¤Ê¤¦¤Ù¤­¤Ç¤¹¡£

注意: ¥«¡¼¥Í¥ë¥¢¥É¥ì¥¹¶õ´Ö¤ÎÂ礭¤µ¤Ï¡¢4MB ¤ÎÇÜ¿ô¤Ç¤¢¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£

David Greenman »á¤Ë¤è¤ëÊä­: ¥«¡¼¥Í¥ë¥¢¥É¥ì¥¹¶õ´Ö¤Ï 2 ¤Î¾è¿ô¤Ç¤¢¤ëɬÍפ¬¤¢¤ë¤È»×¤¤¤Þ¤¹¤¬¡¢ ¤½¤ì¤¬³Î¤«¤Ê¤³¤È¤«¤É¤¦¤«¤Ï¤Ï¤Ã¤­¤ê¤·¤Æ¤¤¤Þ¤»¤ó¡£ ÀΤε¯Æ°¥³¡¼¥É¤Ë¤Ï¡¢Îɤ¯¹â°Ì¥¢¥É¥ì¥¹¥Ó¥Ã¥È¤Î¥È¥ê¥Ã¥¯¤¬»È¤ï¤ì¤Æ¤¤¤¿¤¿¤á¡¢ ¾¯¤Ê¤¯¤È¤â 256MB ¤ÎγÅ٤Ǥ¢¤ë¤³¤È¤¬ÁÛÄꤵ¤ì¤Æ¤¤¤¿¤È»×¤¤¤Þ¤¹¡£

ËÜʸ½ñ¡¢¤ª¤è¤Ó¾¤Îʸ½ñ¤Ï ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ ¤«¤é¥À¥¦¥ó¥í¡¼¥É¤Ç¤­¤Þ¤¹¡£

FreeBSD ¤Ë´Ø¤¹¤ë¼ÁÌ䤬¤¢¤ë¾ì¹ç¤Ë¤Ï¡¢¥É¥­¥å¥á¥ó¥È ¤òÆɤó¤À¾å¤Ç <questions@FreeBSD.org> ¤Þ¤Ç (±Ñ¸ì¤Ç) Ï¢Íí¤·¤Æ¤¯¤À¤µ¤¤¡£
ËÜʸ½ñ¤Ë´Ø¤¹¤ë¼ÁÌä¤Ë¤Ä¤¤¤Æ¤Ï¡¢<doc@FreeBSD.org> ¤Þ¤ÇÅŻҥ᡼¥ë¤ò (±Ñ¸ì¤Ç) Á÷¤Ã¤Æ¤¯¤À¤µ¤¤¡£