Linux® Óû§µÄ FreeBSD ¿ìËÙÈëÃÅÏòµ¼

$FreeBSD: doc/zh_CN.GB2312/articles/linux-users/article.sgml,v 1.7 2011/01/02 10:58:19 delphij Exp $

FreeBSD ÊÇ FreeBSD»ù½ð»áµÄ×¢²áÉ̱ê

Linux ÊÇ Linus Torvalds µÄ×¢²áÉ̱ꡣ

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, ºÍ Xeon ÊÇ Intel Corporation ¼°Æä·ÖÖ§»ú¹¹ÔÚÃÀ¹úºÍÆäËû¹ú¼ÒµÄÉ̱ê»ò×¢²áÉ̱ꡣ

Red Hat, RPM, ÊÇ Red Hat, Inc. ÔÚÃÀ¹úºÍÆäËû¹ú¼ÒµÄ×¢²áÉ̱ꡣ

UNIXÊÇ Open Group ÔÚÃÀ¹úºÍÆäËü¹ú¼ÒµÄ×¢²áÉ̱ꡣ

Ðí¶àÖÆÔìÉ̺;­ÏúÉÌʹÓÃһЩ³ÆÎªÉ̱êµÄͼ°¸»òÎÄ×ÖÉè¼ÆÀ´ÕÃÏÔ×Ô¼ºµÄ²úÆ·¡£ ±¾ÎĵµÖгöÏֵģ¬ Ϊ FreeBSD Project ËùÖªÏþµÄÉ̱꣬ºóÃæ½«ÒÔ '"' »ò '®' ·ûºÅÀ´±ê×¢¡£

¡¡¡¡±¾ÎĵµÖ¼ÔÚ¿ìËÙʹÄÇЩ¸ß¼¶ Linux® Óû§ÊìϤFreeBSDµÄһЩ»ù´¡ÖªÊ¶¡£


Ŀ¼
1 ¼ò½é
2 Shell³ÌÐò£ºÃ»ÓÐBashÂð£¿
3 PackagesºÍPorts£ºÔÚ FreeBSD ÖÐÌí¼ÓÈí¼þ
4 ϵͳÆô¶¯£ºÔËÐм¶±ðÔÚÄÄÀ
5 ÍøÂçÅäÖÃ
6 ·À»ðǽ
7 Éý¼¶ FreeBSD
8 procfs£ºÒÑÊǹýȥʽµ«ÈÔδ±»ÒÅÍü
9 ³£ÓÃÃüÁî
10 ×ܽá

1 ¼ò½é

¡¡¡¡±¾Îĵµ½«Í»³ö½éÉÜ FreeBSD Óë Linux µÄ²î±ð£¬ ÒÔʹµÃÄÇЩ Linux ¸ß¼¶Óû§ÄÜ×Ô¼º¿ìËÙÊìϤ FreeBSD µÄ»ù´¡ÄÚÈÝ¡£ÕâÖ»ÊǷݼ¼ÊõÉϵĿìËÙÈëÃÅ£¬ ²¢·ÇÊÇÊÔͼÃè»æÕâÁ½ÖÖ²Ù×÷ϵͳ֮¼äµÄ"ÕÜѧ"ÉϵIJîÒì¡£

¡¡¡¡´ËÎĵµ¼Ù¶¨ÈÏΪÄãÒѾ­°²×°ºÃÁË FreeBSD¡£ Èç¹ûÄ㻹ûÓа²×° FreeBSD »òÕß¶Ô FreeBSD µÄ°²×°¹ý³Ì·½ÃæÐèÒª°ïÖú£¬Çë²Î¿¼ FreeBSD ÊÖ²áµÄ °²×° FreeBSDÒ»Õ¡£


2 Shell³ÌÐò£ºÃ»ÓÐBashÂð£¿

¡¡¡¡ÄÇЩ´Ó Linux ת¹ýÀ´µÄÓû§¾­³£»á¾ªÑÈÓÚ Bash ²»ÊÇ FreeBSD µÄĬÈÏ Shell¡£ ÊÂʵÉÏ£¬Bash ÉõÖÁûÓаüÀ¨ÔÚ FreeBSD µÄĬÈϰ²×°ÖС£´úÌæµÄÊÇ£¬FreeBSD ʹÓà tcsh(1) ×÷Ϊ×Ô¼ºµÄĬÈÏ Shell£¬¾¡¹ÜÈç´Ë£¬Bash ºÍÆäËûÄãϲ°®µÄ Shell ³ÌÐòÔÚ FreeBSD µÄ Packages ºÍ Ports Ì×¼þ Àï¶¼¿ÉÒÔÕÒµ½¡£

¡¡¡¡Èç¹ûÄã°²×°ÁËÆäËûµÄ Shell Äã¿ÉÒÔʹÓà chsh(1) À´ÉèÖÃÒ»¸öÓû§µÄĬÈÏ Shell¡£ ͨ³£Çé¿öÏ£¬ Ç¿ÁÒ½¨Ò鲻Ҫȥ¸ü¸Ä root Óû§µÄĬÈÏ Shell¡£Ô­ÒòÊÇÕâЩ Shell ûÓаüÀ¨ÔÚ»ù±¾ÏµÍ³ÖУ¬Õý³£Çé¿öÏÂËüÃǻᱻ°²×°µ½ /usr/local/bin ºÍ /usr/bin Ŀ¼Ï¡£ÍòһijÌì /usr/local/bin ºÍ /usr/bin µÄÎļþϵͳ²»Äܱ»¹ÒÔØ£¬ ÕâÑùÇé¿öÏ root ½«²»ÄܽøÈë×Ô¼ºÄ¬È쵀 Shell£¬´Ó¶ø root ½«²»Äܹ»µÇ¼½øÈ¥¡£ ¼øÓÚÕâ¸öÔ­Òò£¬µÚ¶þ¸öϵͳ¹ÜÀíÔ±ÕÊ»§ toor ´´½¨Ê±Ê¹ÓõÄÊÇ·ÇĬÈ쵀 Shell¡£ÔÚ°²È« FAQ ¿ÉÒÔ²éÔĵ½¹ØÓÚ toor ÕÊ»§ µÄÐÅÏ¢¡£


3 PackagesºÍPorts£ºÔÚ FreeBSD ÖÐÌí¼ÓÈí¼þ

¡¡¡¡³ýÁ˾­µäµÄ UNIX® °²×°Èí¼þµÄ·½·¨ £¨ÏÂÔØÔ´Âë°ü£¬½âѹ£¬±à¼­Ô´Â룬±àÒ룩Í⣬FreeBSD »¹ÌṩÁËÁíÍâÁ½ÖÖ·½·¨À´°²×°Ó¦ÓóÌÐò£ºpackages ºÍ ports¡£ Äã¿ÉÒÔÔÚ ÕâÀï µ½Ò»·ÝÍêÕû¿ÉÓÃµÄ ports ºÍ packages µÄÈí¼þÇåµ¥¡£


3.1 Packages

¡¡¡¡Packages ÊÇÔ¤±àÒëºÃµÄÓ¦ÓóÌÐò£¬ÔÚ FreeBSD ÖеȼÛÓÚ»ùÓÚ Debian/Ubuntu µÄϵͳÖÐµÄ .deb Èí¼þ°üÒÔ¼°»ùÓÚ Red Hat/Fedora µÄϵͳÖÐµÄ .rpm Èí¼þ°ü¡£ PackagesʹÓà pkg_add(1) À´½øÐа²×°¡£ ÀýÈ磬ÏÂÃæµÄÃüÁÓÃÀ´°²×° Apache 2.2£º

# pkg_add /tmp/apache-2.2.6_2.tbz

¡¡¡¡Ê¹Óà -r ²Ù×÷½«¸æËß pkg_add(1) À´×Ô¶¯»ñÈ¡²¢°²×°Ò»¸öÈí¼þ°ü£¬ÒÔ¼°½â¾öËùÓеÄÒÀÀµ¹ØÏµ£º

# pkg_add -r apache22
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/Latest/apache22.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/expat-2.0.0_1.tbz... Done.
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6.2-release/All/perl-5.8.8_1.tbz... Done.
[snip]

To run apache www server from startup, add apache22_enable="YES"
in your /etc/rc.conf. Extra options can be found in startup script.

×¢Òâ: Èç¹ûÄãÕýÔËÐÐ×Å release °æ±¾µÄ FreeBSD £¨6.2£¬6.3£¬7.0µÈ£¬ ͨ³£´Ó CD-ROM ±»°²×°µÄ£©pkg_add -r »áΪÆäÏÂÔØ×¨ÃÅΪÕâÐ©ÌØ¶¨°æ±¾¹¹½¨ºÃµÄÈí¼þ°ü¡£ ÕâЩÈí¼þ°ü ¿ÉÄÜ ²»Êǵ±Ç°×îеijÌÐò¡£ Äã¿ÉÒÔʹÓà PACKAGESITE ±äÁ¿À´¸²¸ÇĬÈϵ͝×÷¡£ ÀýÈ磬°Ñ PACHAGESITE ÉèÖÃ³É ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/Latest/ À´ÏÂÔØ 6.X ϵÁÐ×îеİü¡£

Äã¿ÉÒÔÔĶÁÕâÆªÎÄÕ ѡÔñ×îÊʺÏ×Ô¼ºµÄ FreeBSD °æ±¾ºÅ À´»ñÈ¡¸ü¶à¹ØÓÚ FreeBSD °æ±¾ºÅµÄ¶«Î÷¡£

¡¡¡¡ÏëÁ˽â¸ü¶àµÄ packages ÐÅÏ¢Çë²éÔÄ FreeBSD ÊÖ²áµÄ 4.4 С½Ú£ºÊ¹Óà Packages ϵͳ¡£


3.2 Ports

¡¡¡¡FreeBSD µÄµÚ¶þÖÖ°²×°Ó¦ÓóÌÐòµÄ·½·¨¾ÍÊÇʹÓà Ports Ì×¼þÁË¡£ Ports Ì×¼þÊÇ FreeBSD ÉϵÄÒ»¸öÀûÓà Makefile ºÍһЩ²¹¶¡ÎļþÀ´Ìض¨´ÓÔ´Âë¶¨ÖÆ°²×°¸÷ÖÖÈí¼þ³ÌÐòµÄ¿ò¼Ü¡£ µ±°²×°Ò»¸ö port ʱϵͳ»á»ñÈ¡³ÌÐòÔ´Â룬 Ó¦ÓÃÈκÎËùÐèÒªµÄ²¹¶¡£¬±àÒëÔ´Â룬 ²¢°²×°Ó¦ÓóÌÐò£¨²¢Õë¶ÔÒÀÀµ¹ØÏµÒÔͬÑùµÄ·½Ê½°²×°½â¾ö£©¡£

¡¡¡¡Ports Ì×¼þ£¬³£±»³Æ×÷ ports Ê÷£¬¿ÉÒÔÔÚ /usr/ports ÏÂÕÒµ½¡£ ¼ÙÉèPortsÌ×¼þÒѾ­ÔÚ°²×° FreeBSD ʱ°²×°¹ýÁË¡£ Èç¹û Ports Ì×¼þ»¹Ã»Óб»°²×°¿ÉÒÔͨ¹ý sysinstall(8) À´½øÐа²×°£¬»òÕßʹÓà csup(1) »ò portsnap(8) À´´Ó FreeBSD µÄ·þÎñÆ÷ÉÏÃæÀ­ÏÂÀ´¡£ÔÚÊÖ²áµÄ 4.5.1 С½Ú ¿ÉÒÔÕÒµ½°²×° Ports Ì×¼þµÄÏêϸ½éÉÜ¡£

¡¡¡¡°²×°Ò»¸ö port ¾ÍÏñ½øÈë port µÄĿ¼²¢¿ªÊ¼¹¹½¨¹ý³ÌÒ»Ñù¼òµ¥£¨Í¨³£Çé¿öÏ£©£¬ ÏÂÃæÊÇ´Ó Ports Ì×¼þ°²×° Apache 2.2 µÄÀý×Ó£º

# cd /usr/ports/www/apache22
# make install clean

¡¡¡¡Ê¹Óà ports °²×°Èí¼þµÄ×î´óºÃ´¦¾ÍÊÇÄܹ»×Ô¶¨Òå°²×°Ñ¡Ïî¡£ ÀýÈ磬´Ó ports °²×° Apache 2.2 ʱÄã¿ÉÒÔͨ¹ýÉèÖà WITH_LDAP make(1) ±äÁ¿À´ÆôÓà mod_ldap£º

# cd /usr/ports/www/apache22
# make WITH_LDAP="YES" install clean

¡¡¡¡Çë²é¿´ FreeBSD ÊÖ²áµÄ 4.5 С½Ú£¬ ʹÓà Ports Collection£¬ ÒÔ»ñÈ¡¸ü¶à¹ØÓÚPorts Collection µÄÐÅÏ¢¡£


3.3 Ports»¹ÊÇpackages£¬ÎÒÓ¦¸ÃʹÓÃÄĸö£¿

¡¡¡¡Packages ¾ÍÊÇÔ¤±àÒëºÃµÄ ports£¬ ËùÒÔ´ÓÔ´Â루ports£©°²×°Óë´Ó¶þ½øÖÆ packages °²×°ÕâÁ½Õß¼äȷʵÓкܴó¹ØÁª¡£Ã¿ÖÖ·½·¨¸÷ÓÐ×Ô¼ºµÄÓŵ㣺

Packages£¨¶þ½øÖÆ£©

  • ¸ü¿ìËٵݲװ £¨±È½Ï´óµÄÓ¦ÓóÌÐò±àÒëÆðÀ´»á»¨ºÜ³¤Ê±¼ä£©¡£

  • Äã²»ÐèÒªÖªµÀÈçºÎ±àÒëÈí¼þ¡£

  • ²»ÐèÒªÔÚ²Ù×÷ϵͳÉϰ²×°±àÒëÆ÷¡£

Ports£¨Ô´Â룩

  • Äܹ»¶¨Öư²×°Ñ¡Ïî¡£ £¨Packagesͨ³£¶¼ÊÇʹÓñê׼ѡÏî¹¹½¨µÄ¡£Ê¹Óà ports ÄãÄܹ»¶¨Òå¸÷ÖÖ¸÷ÑùµÄÑ¡Ï ±ÈÈçÀàËÆ¹¹½¨¸½¼ÓµÄÄ£¿é»òÊǸü¸Ä°²×°Â·¾¶Ö®ÀàµÄ¡££©

  • Èç¹ûÄãϲ»¶µÄ»°»¹¿ÉÒÔʹÓÃ×Ô¼ºµÄ²¹¶¡¡£

¡¡¡¡Èç¹ûÄãûÓÐÒ»Ð©ÌØ±ðµÄÐèÇó£¬ packages ¿ÉÄܸպÃ×îÊʺÏÄãµÄÇé¿ö¡£Èç¹ûÄãÐèÒª½øÒ»²½¶¨ÖÆ£¬ ports ÊÇ×îÊʺϵķ½·¨ÁË¡££¨Çë¼ÇµÃ£¬ Èç¹ûÄãÐèÒª¶¨Öƶø×Ô¼ºÓÖ¸üÇãÏòÓÚʹÓà packages£¬ Äã¿ÉÒÔʹÓà make package ´Ó ports ¹¹½¨Ò»¸ö¶¨ÖÆµÄ package£¬È»ºó¸´ÖƵ½ÆäËûµÄ·þÎñÆ÷¡££©


4 ϵͳÆô¶¯£ºÔËÐм¶±ðÔÚÄÄÀ

¡¡¡¡Linux ʹÓà Sysv init ³õʼ»¯ÏµÍ³£¬¶ø FreeBSD ʹÓõÄÊÇ´«Í³µÄ BSD ·ç¸ñµÄ init(8)¡£ÔÚ BSD ·ç¸ñµÄ init(8) ÖÐûÓÐÔËÐм¶±ðºÍ /etc/inittab£¬ ´úÌæ¿ØÖÆÆô¶¯µÄÊÇ rc(8) ʵÓóÌÐò¡£ /etc/rc ½Å±¾¶ÁÈ¡ /etc/defaults/rc.conf ºÍ /etc/rc.conf ÎļþÀ´¾ö¶¨Äĸö·þÎñ½«±»Æô¶¯¡£ ÌØÊâ·þÎñÔڴ˺óÓÉ´¦ÓÚ /etc/rc.d/ ºÍ /usr/local/etc/rc.d/ ϵÄÏàÓ¦·þÎñ³õʼ»¯½Å±¾ÎļþËùÆô¶¯¡£ ÕâЩ½Å±¾ÀàËÆÓÚλÓÚ Linux ϵͳÖÐµÄ /etc/init.d/ Ŀ¼ÏµĽű¾¡£

¡¡¡¡Äú¿ÉÒÔͨ¹ýÔÚ /etc/rc.conf£¨rc.conf(5)£© ÎļþÖÐÔö¼ÓÓëÖ®¶ÔÓ¦µÄ ServiceName_enable="YES" ÅäÖÃÀ´ÆôÓ÷þÎñ¡£ ¿´Ò»ÏÂϵͳĬÈ쵀 /etc/defaults/rc.conf Îļþ£¬ ÕâЩĬÈÏÅäÖÿÉÒÔʹÓà /etc/rc.conf ÎļþÀ´¸Ä±ä¡£ Òò´Ë£¬ µ±°²×°¸½¼ÓÓ¦ÓóÌÐòʱ×îºÃ»Ø¹ËÏÂÎĵµÀ´¾ö¶¨µ½µ×¸ÃÈçºÎÆôÓÃÈκÎÏà¹ØµÄ·þÎñ¡£

¡¡¡¡ÏÂÃæµÄһС¶ÎÄÚÈÝÓÃÀ´ÔÚ /etc/rc.conf ÖÐÆôÓà sshd(8) ºÍ Apache 2.2¡£ »¹Ö¸¶¨ÁË Apache Ó¦¸Ãͨ¹ý SSL ·½Ê½Æô¶¯¡£

# enable SSHD
sshd_enable="YES"
# enable Apache with SSL
apache22_enable="YES"
apache22_flags="-DSSL"

¡¡¡¡Ò»µ©·þÎñÒѾ­ÔÚ /etc/rc.conf ÖÐÆôÓ㬷þÎñ½«Äܹ»´ÓÃüÁîÐÐÆô¶¯£¨²»ÐèÒªÖØÐÂÆô¶¯ÏµÍ³£©£º

# /etc/rc.d/sshd start

¡¡¡¡Èç¹û·þÎñ»¹Ã»Óб»ÆôÓ㬿ÉÒÔʹÓà forcestart À´´ÓÃüÁîÐÐÆô¶¯£º

# /etc/rc.d/sshd forcestart

5 ÍøÂçÅäÖÃ

5.1 ÍøÂç½Ó¿Ú

¡¡¡¡´úÌæ Linux ÖÐËùʹÓõıêÊ¶ÍøÂç½Ó¿ÚËù³£ÓÃµÄ ethX ¸ñʽµÄÊÇ£¬FreeBSD ʹÓÃÇý¶¯Ãû×Öºó¸úÒ»¸öÊý×ÖÀ´±êʶ¡£ÏÂÃæ ifconfig(8) µÄÊä³öÏÔʾÁËÁ½¸ö Intel® Pro 1000 µÄÍøÂç½Ó¿Ú£¨em0 ºÍ em1£©£º

% ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=b<RXCSUM,TXCSUM,VLAN_MTU>
        inet 10.10.10.100 netmask 0xffffff00 broadcast 10.10.10.255
        ether 00:50:56:a7:70:b2
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        options=b<RXCSUM,TXCSUM,VLAN_MTU>
        inet 192.168.10.222 netmask 0xffffff00 broadcast 192.168.10.255
        ether 00:50:56:a7:03:2b
        media: Ethernet autoselect (1000baseTX <full-duplex>)
        status: active

5.2 IPÅäÖÃ

¡¡¡¡Ò»¸ö IP µØÖ·¿ÉÒÔʹÓà ifconfig(8) À´Ö¸¶¨µ½Ò»¸öÍøÂç½Ó¿Ú¡£Í¨³££¬Òª±£³ÖÖØÆôºóÒÀÈ»Äܹ»Ê¹ÓÃµÄ IP ÅäÖÃÐÅÏ¢ÐèÒª°üº¬ÔÚ /etc/rc.conf ÖС£ÏÂÁÐÀý×ÓÖ¸¶¨ÁËÖ÷»úÃû£¬IP µØÖ·£¬ÒÔ¼°Ä¬ÈÏÍø¹Ø£º

hostname="server1.example.com"
ifconfig_em0="inet 10.10.10.100  netmask 255.255.255.0"
defaultrouter="10.10.10.1"

¡¡¡¡Ê¹ÓÃÏÂÃæÄÚÈÝÀ´ÎªÍøÂç½Ó¿ÚÅäÖÃDHCP£º

hostname="server1.example.com"
ifconfig_em0="DHCP"

6 ·À»ðǽ

¡¡¡¡Ïñ Linux ÖÐµÄ IPTABLES Ò»Ñù£¬ FreeBSD Ò²ÌṩÁËÒ»¸öÄں˼¶µÄ·À»ðǽ£» ʵ¼ÊÉÏ FreeBSD ÌṩÁËÈý¸ö·À»ðǽ£º

¡¡¡¡IPFIREWALL »òÊÇ IPFW£¨¹ÜÀí IPFW ¹æÔòµÄ ipfw(8) ÃüÁ ÊÇ FreeBSD ¿ª·¢Õß¿ª·¢²¢Î¬³ÖµÄ¡£ IPFW Äܹ»Óë dummynet(4) ÅäºÏʹÓÃÀ´ÌṩÁ÷Á¿Í¼Ðι¦ÄÜÒÔ¼°Ä£Äâ²»Í¬ÍøÂçÁ¬½ÓÀàÐ͵ŦÄÜ¡£

¡¡¡¡ÔÊÐí SSH ½øÈëµÄ IPFW ¹æÔòÑùÀýÈçÏ£º

ipfw add allow tcp from any to me 22 in via $ext_if

¡¡¡¡IPFILTER ÊÇ Darren Reed Ëù¿ª·¢µÄ·À»ðǽ³ÌÐò¡£²»ÊÇרÃÅÕë¶Ô FreeBSD µÄ£¬ËüÒѾ­±»ÒÆÖ²µ½ NetBSD£¬OpenBSD£¬SunOS£¬HP/UX£¬ »¹ÓÐSolarisµÈһЩ²Ù×÷ϵͳ֮ÉÏ¡£

¡¡¡¡ÔÊÐí SSH ½øÈëµÄ IPFILTER ÃüÁîÑùÀýÈçÏ£º

pass in on $ext_if proto tcp from any to any port = 22

¡¡¡¡×îºóÒ»ÖÖ·À»ðǽ³ÌÐò£¬PF£¬ ÊÇ OpenBSD ÏîÄ¿Ëù¿ª·¢µÄ¡£PF ÊDZ»×÷Ϊ IPFILTER µÄÒ»¸öÌæ´úÆ·¶ø±»´´½¨³öµÄ¡£¾ÍÕâµã¶øÑÔ£¬ PF µÄÓï·¨Óë IPFILTER µÄ·Ç³£ÏàËÆ¡£ PF ¿ÉÒÔÓë altq(4) ÅäºÏÀ´Ìṩ QoS µÄÌØÐÔ¡£

¡¡¡¡ÔÊÐí SSH ½øÈëµÄ PF ÃüÁîÑùÀýÈçÏ£º

pass in on $ext_if inet proto tcp from any to ($ext_if) port 22

7 Éý¼¶ FreeBSD

¡¡¡¡¹²ÓÐÈýÖÖ·½·¨À´Éý¼¶ FreeBSD ϵͳ£º Ô´Â룬¶þ½øÖƸüУ¬»¹Óа²×°¹âÅÌ¡£

¡¡¡¡´ÓÔ´ÂëÉý¼¶ÊÇ×ÔÓµÄÉý¼¶·½·¨£¬µ«ÊÇÌṩÁË×î°ôµÄ×ÜÌåÁé»îÐÔ¡£ Õâ¸ö¹ý³Ì°üº¬ÁËʹÓà FreeBSD CVS £¨²¢Ðа汾ϵͳ£©À´Í¬²½Ò»¸ö±¾µØµÄ FreeBSD Ô´´úÂë¡£ Ò»µ©±¾µØÔ´ÂëÒѾ­¸üе½µ±Ç°×îÐÂÄã±ã¿ÉÒÔ¹¹½¨Ð°汾µÄÄÚºËÒÔ¼°Ó¦ÓóÌÐò¡£ ¹ØÓÚÔ´Âë¸üеĸü¶àÐÅÏ¢¿É¼ûÓÚ FreeBSD ÊÖ²á ¹ØÓÚÈçºÎ¸üвÙ×÷ϵͳµÄÕ½ڡ£

¡¡¡¡¶þ½øÖƸüÐÂÀàËÆÓÚʹÓà yum »ò apt-get ¸üРLinux ϵͳ¡£ freebsd-update(8) ÃüÁî»á»ñȡеĸüв¢°²×°ËüÃÇ¡£ ÕâЩ¸üпÉÒÔͨ¹ý cron(8) ʹÓóÌÐòÀ´µ÷¶È¡£

×¢Òâ: Èç¹ûÄãʹÓà cron(8) À´Ô¤¶¨¸üУ¬ ÇëÈ·ÐÅÔÚÄãµÄ crontab(1) ÖÐʹÓÃÁË freebsd-update cron À´¿ØÖÆ´óÊýÄ¿µÄ»úÆ÷ͬʱ»ñÈ¡¸üС£

0 3 * * * root /usr/sbin/freebsd-update cron

¡¡¡¡×îºóÒ»ÖÖ¸üÐµķ½·¨£¬´Ó°²×°¹âÅÌÀ´Éý¼¶£¬ÊǸöÖ±½ÓµÄ¹ý³Ì¡£ ´Ó°²×°¹âÅÌÆô¶¯²¢Ñ¡Ôñ¸ÃÑ¡ÏîÀ´¸üС£


8 procfs£ºÒÑÊǹýȥʽµ«ÈÔδ±»ÒÅÍü

¡¡¡¡Linux ÖУ¬Äã¿ÉÄÜ»áͨ¹ý¿´Ò»¿´ /proc/sys/net/ipv4/ip_forward À´È·¶¨ IP ת·¢ÊÇ·ñ±»ÆôÓá£ÔÚ FreeBSD ÖÐÄãÓ¦¸ÃʹÓà sysctl(8) À´²é¿´ÕâºÍÆäËû·½ÃæµÄϵͳÉèÖã¬ÔÚµ±Ç°µÄ FreeBSD °æ±¾ÖÐ procfs(5) ÒѾ­²»ÔÞ³ÉʹÓÃÁË¡££¨ËäÈ» sysctlÔÚ FreeBSD ҲͬÑù¿ÉÓᣣ©

¡¡¡¡ÔÚ IP ת·¢ÑùÀýÖУ¬ÄãÓ¦¸ÃʹÓÃÏÂÁÐÄÚÈÝÀ´È·¶¨ FreeBSD ϵͳÖÐÊÇ·ñÒѾ­¿ªÆôÁË IP ת·¢£º

% sysctl net.inet.ip.forwarding
net.inet.ip.forwarding: 0

¡¡¡¡-a ±êÖ¾ÓÃÀ´ÁгöËùÓеÄϵͳÉèÖãº

% sysctl -a
kern.ostype: FreeBSD
kern.osrelease: 6.2-RELEASE-p9
kern.osrevision: 199506
kern.version: FreeBSD 6.2-RELEASE-p9 #0: Thu Nov 29 04:07:33 UTC 2007
    root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC

kern.maxvnodes: 17517
kern.maxproc: 1988
kern.maxfiles: 3976
kern.argmax: 262144
kern.securelevel: -1
kern.hostname: server1
kern.hostid: 0
kern.clockrate: { hz = 1000, tick = 1000, profhz = 666, stathz = 133 }
kern.posix1version: 200112
...

×¢Òâ: ijЩ sysctl µÄ²ÎÊýÊÇÖ»¶ÁµÄ¡£

¡¡¡¡ÐèÒª procfs µÄÇé¿öÊÇ£¬ÔËÐÐһЩ½ÏÀϵÄÈí¼þ£¬Ê¹Óà truss(1) À´¸ú×ÙϵͳÐźţ¬ÒÔ¼° Linux ¶þ½øÖƼæÈÝ. £¨¾¡¹Ü£¬Linux ¶þ½øÖƼæÈÝÐÔʹÓÃÆä±¾ÉíµÄ procfs£¬linprocfs(5)¡££© Èç¹ûÄãÐèÒª¹ÒÔØ procfs Äã¿ÉÒÔÔÚ /etc/fstab ÖмÓÈëÈçÏÂÄÚÈÝ£º

proc                /proc           procfs  rw,noauto       0       0

×¢Òâ: noauto »á·ÀÖ¹ /proc ÔÚÆô¶¯Ê±±»×Ô¶¯¹ÒÔØ¡£

¡¡¡¡È»ºóʹÓÃÈçÏÂÃüÁî¹ÒÔØ procfs£º

# mount /proc

9 ³£ÓÃÃüÁî

9.1 Èí¼þ°ü¹ÜÀí

¡¡¡¡

Linux ÃüÁî (Red Hat/Debian) FreeBSD µÈ¼ÛÃüÁî Ä¿µÄ
yum install package / apt-get install package pkg_add -r package ´ÓÔ¶³Ì²Ö¿â°²×° package
rpm -ivh package / dpkg -i package pkg_add -v package °²×° package
rpm -qa / dpkg -l pkg_info ÁгöÒѰ²×°µÄÈí¼þ°ü

9.2 ϵͳ¹ÜÀí

¡¡¡¡

Linux ÃüÁî FreeBSD µÈ¼ÛÃüÁî Ä¿µÄ
lspci pciconf Áгö PCI É豸
lsmod kldstat ÁгöÒÑÔØÈëµÄÄÚºËÄ£¿é
modprobe kldload / kldunload ÔØÈë/Ð¶ÔØÄÚºËÄ£¿é
strace truss ¸ú×Ùϵͳµ÷ÓÃ

10 ×ܽá

¡¡¡¡·Ç³£Ï£ÍûÕâÆªÎĵµÄܹ»¸øÓèÄã×ã¹»µÄ°ïÖúÀ´¿ªÊ¼ÄãµÄ FreeBSD ֮·¡£Îñ±ØÒªÔÙÈ¥¿´Ò»Ï FreeBSD ÊÖ²á ËùÌáµ½µÄµ«²¢Ã»Óб»°üº¬ÔÚ±¾ÎĵµÖеÄÄÇЩ¸üÉîÈë¹ã·ºµÄÖ÷Ìâ¡£


±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.