ǰÑÔ
´ó¼Ò¿ÉÄܼûµ½¹ýºÜ¶àÔÚÈíÅÌÉÏÔËÐеÄLinuxϵͳ£¬¿ÉÔÚÈíÅÌÉÏÔËÐеÄFreeBSD·´¶ø±È½ÏÉÙ£¬ËäÈ»ÓÐPICOBSD£¬È»¶øºÜ¶àʱºòPICOBSD²¢²»ÄÜÂú×ãÎÒÃǵÄÐèÒª£¬ÄÇô¿É²»¿ÉÒÔ×Ô¼ºÖÆ×÷Ò»¸öÔÚÈíÅÌÉÏÔËÐеÄFreeBSDÏµÍ³ÄØ£¿´ð°¸Êǿ϶¨µÄ¡£ÎÒÔÚά»¤×ÅÒ»¸öFloppy FirewallµÄProject£¬ËüÊÇÒ»¸ö»ùÓÚFreeBSDºÍIPFilterµÄÔËÐÐÔÚÈíÅÌÉϵķÀ»ðǽϵͳ£¬ºÜ¶àÍøÓÑÔÚʹÓÃÁËFloppy FirewallÖ®ºó·¢ÓʼþÀ´Ñ¯ÎÊÈçºÎʹFreeBSDÔËÐÐÔÚÒ»ÕÅССµÄÈíÅÌÉÏ¡£µ«ÓÉÓÚǰ¶Îʱ¼äÊÂÇéÌ«¶àһֱûÓÐʱ¼ä£¬½ñÌìÖÕÓÚÕÒµ½Ê±¼ä£¬ËùÒÔ°ÑÖÆ×÷ÔÚÈíÅÌÉÏÔËÐеÄFreeBSDµÄ¹ý³Ìд³öÀ´Óë´ó¼Ò·ÖÏí£¬ÓÉÓÚʱ¼ä²Ö´Ù£¬ÎÄÖÐÄÑÃâÓдíÎóÖ®´¦£¬»¹Çë´ó¼ÒÖ¸½Ì¡£Í¬Ê±·Ç³£»¶Ó´ó¼Ò·ÃÎÊCNFUG(China FreeBSD User Group, http://www.cnfug.org/)£¬ËüÊÇÒ»¸öÓÉһЩFreeBSD°®ºÃÕß×éÖ¯ÆðÀ´µÄ×ÔÓÉ×éÖ¯£¬Ä¿µÄÊÇΪ´ó¼ÒÌṩÖÐÎĵÄFreeBSD·½ÃæµÄ×ÊÔ´£¬Ä¿Ç°CNFUG¶¨ÆÚµÄÏò´ó¼Ò·¢ÐÐÃâ·ÑµÄFreeBSDÖÐÎļ¼ÊõÆÚ¿¯(http://www.cnfug.org/journal/)ºÍά»¤Ò»Ð©Project(http://www.cnfug.org/project/)¡£
1¡¢FreeBSDµÄÆô¶¯¹ý³Ì¼ò½é
µ±BIOS¶ÁÈëMBRÖ®ºó£¬MBRÖеijÌÐò¶ÁÈëÓ²ÅÌFreeBSD Slice£¨FreeBSD·ÖÇø£©ÖеÄÒýµ¼³ÌÐò£¬Òýµ¼³ÌÐòĬÈÏÇé¿öÏ»á¼ÓÔØ/boot/loader£¬È»ºóloader½«¼ÓÔØ/kernel£¬´Ëʱkernel¿ªÊ¼¼ì²âһЩӲ¼þºÍ×öһЩ³õʼ»¯¡£³õʼ»¯Íê³Éºókernel½«mount root device£¬È»ºóÆô¶¯ÏµÍ³³õʼ»¯½ø³Ì/sbin/init£¬init½«¸ù¾Ý/etc/rcÖеÄÉèÖÃÀ´½øÐгõʼ»¯µÈ¡£
¿ÉÒÔ¿´³öÎÒÃÇÐèÒª½â¾öµÄ²¿·Ö¾ÍÊÇ£ºÒýµ¼³ÌÐò -> /boot/loader -> /kernel -> /sbin/init -> /etc/rc
ÔÚÁ˽âÁËÆô¶¯¹ý³ÌÖ®ºóºÍÎÊÌâËùÔÚÖ®ºó£¬ÎÒÃDZã¿ÉÒÔ¿ªÊ¼ÖÆ×÷ÈíÅÌÉϵÄFreeBSDÁË¡£
2¡¢³õʼ»¯ÈíÅÌ
Ê×ÏÈÒª×öµÄ¾ÍÊÇÒª½«ÈíÅ̳õʼ»¯£¬°üÀ¨ÉèÖÃdisklabelºÍ´´½¨Îļþϵͳ£¨¸ñʽ»¯³Éufs¸ñʽ£©¡£
3¡¢¶¨ÖÆÄÚºË
ÈíÅ̵ĿռäÓÐÏÞ£¬ËùÒÔÎÒÃÇÐèÒª¶¨ÖÆÒ»¸öСÄںˣ¬¶ø²»ÄÜÖ±½ÓʹÓÃϵͳÔÀ´µÄÄںˡ£
ÓÉÓÚÎÒÃÇֻʹÓÃÈíÅÌ£¬ËùÒÔÄÚºËÖеĹØÓÚscsi¡¢ata¡¢atapiºÍraidµÈÕâЩ¶«Î÷¶¼Ó¦¸Ãɾ³ý£¬ÒòΪÎÒÃDz»ÐèÒªIPv6ËùÒÔINET6Ò²Ó¦¸Ãɾ³ý£¬¾ßÌåÁôÏÂЩʲôҪ¿´×Ô¼ºµÄÓÃ;ÁË£¬ÕâûÓÐʲô±ê×¼¡£²»¹ýÓм¸ÑùÊDZØÐëµÄ£º
options MFS # ÄÚ´æÎļþϵͳ֧³Ö
options MD_ROOT # ʹÓÃMD(ÄÚ´æ´ÅÅÌ)É豸×öroot
options UFS # UFSÎļþϵͳ֧³Ö
options UFS_ROOT # UFS ROOT
pseudo-device md # MDÉ豸֧³Ö
ÏÂÃæÊÇÎÒʹÓõÄÒ»¸öÄÚºËÅäÖÆÎļþ£º
options INET #InterNETworking
options FFS #Berkeley Fast Filesystem
options FFS_ROOT #FFS usable as root device [keep this!]
options MFS #Memory Filesystem
options MD_ROOT #MD is a potential root device
options COMPAT_43 #Compatible with BSD 4.3 [KEEP THIS!]
options NO_SWAPPING #Disable swap
device isa
device pci
# Floppy drives
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1 flags 0x1
device vga0 at isa?
# syscons is the default console driver, resembling an SCO console
device sc0 at isa? flags 0x100
# Floating point support - do not disable.
device npx0 at nexus? port IO_NPX irq 13
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device rl # RealTek 8129/8139
device xl # 3Com 3c90x
device lnc0 at isa? port 0x280 irq 10 drq 0 # VMware Nic
# Pseudo devices - the number indicates how many units to allocate.
pseudo-device loop # Network loopback
pseudo-device ether # Ethernet support
pseudo-device md # Memory "disks"
ÉÏÃæµÄÄں˻ù±¾ÉÏÊÇÒ»¸öϵͳҪÔËÐеÄ×îСÅäÖÆÁË£¬µ±È»Èç¹ûÄãµÄ»úÆ÷²»Í¬¾ßÌåÒ²²»Í¬£¬´ó¼Ò°´×Ô¼ºµÄÇé¿öÀ´¶¨£¬ÎҵĻúÆ÷ÅäÖÆÊÇ£º
CPU: Pentium III 733Mhz
MotherBoard: Via 693A Chipset
NIC: Realtek 8139c
µ±ÅäÖÆºÃÖ®ºó¾ÍÊDZàÒëÄÚºËÁË£¬½¨Òé´ó¼ÒʹÓÃconfigµÄ·½Ê½À´±àÒ룬עÒ⣬×îºó²»ÒªÊ¹ÓÃmake install£¬·ñÔòÄãÔÀ´µÄÄÚºË»á±»Ìæ»»¡£
4¡¢±àÒëϵͳ³ÌÐò
ÏÖÔÚ¾ÍҪ׼±¸ÏµÍ³ËùÐèÒªµÄ»ù±¾³ÌÐòÁË£¬Ê×ÏÈ×î»ù±¾µÄÊÇinitºÍsh£¬initÊÇËùÓнø³ÌµÄ¸¸½ø³Ì£¬Ëü¸ºÔð½øÐÐһЩ³õʼ»¯¹¤×÷£¬Ëü½«ÊÇkernelÒýµ¼Íê³ÉºóÒªÔËÐеĵÚÒ»¸öÓû§½ø³Ì£¬¶øshÓÃÓÚ½âÊÍ/etc/rcÖеÄÃüÁî¡£
ÔÚUNIXÖд󲿳ÌÐò¶¼Ê¹ÓÃÁ˹²Ïí¿â£¬ÕâÓÐÀû¼õÉÙ´ÅÅ̿ռäµÄÕ¼Óã¬Õâ¶ÔÓÚʹÓÃÓ²ÅÌÊǷdz£ÓÐÓõģ¬È»¶ø¶ÔÓÚÈíÅ̾Ͳ»Ì«ÊÊÓÃÁË£¬ÒòΪµ¥Ò»¸ö´ó²¿·Ö³ÌÐò¶¼ÒªÊ¹ÓõĿâlibc.so¾ÍÓÐ500¶àK£¬¼ÓÉÏÆäËüµÄ¿âÈíÅ̸ù±¾¾Í×°²»Ï¡£
ÎÒÃÇ¿ÉÒÔ·¢ÏÖ£¬´ó²¿·ÖʱºòÒ»¸ö³ÌÐòÖ»ÊÇÓõ½ÁË¿âÖеÄij¸öº¯Êý£¬µ«Í¬ÑùÒ²Òª¼ÓÔØÕû¸ö¿â£¬ËùÒÔÎÒÃÇ¿ÉÒÔʹÓþ²Ì¬±àÒëÀ´Ê¹³ÌÐòÖ»°üº¬ËüʹÓõÄÄDz¿·Öº¯Êý£¬ÕâÑù¿ÉÒÔ¼õÉÙ³ÌÐòµÄ´óС¡£
²»¹ýÕâÑùÎÊÌâͬÑù´æÔÚ£¬Èç¹ûÖ»ÓÐÉÙÊý³ÌÐòÕ⵽ûÓÐʲô£¬Ò»µ©³ÌÐòºÜ¶àʱ£¬ÄÇô¿Õ¼äÎÊÌâͬÑù´æÔÚ¡£Èç¹û»áCÓïÑÔµÄÅóÓѶ¼ÖªµÀ£¬Æäʵÿһ¸ö³ÌÐòÖÐÓкܴóÒ»²¿·Öº¯ÊýÊÇÏàͬµÄ£¬±ÈÈçprintf£¬Õâ¸öº¯ÊýÔڴ󲿷ֳÌÐòÖж¼»áÓõ½£¬Èç¹ûÿ¸ö³ÌÐò¶¼°üº¬Ò»¶ÎprintfµÄ´úÂ룬ÄÇôÈç¹ûÓÐ100¸ö³ÌÐòµÄ»°£¬¾Í»á°üº¬100¸öÕâÑùµÄ´úÂ룬Ȼ¶øÕâЩ´úÂë¶¼ÊÇÏàͬµÄ£¬Êµ¼ÊÉÏÓÐ99¸ö¶¼ÊÇÀË·ÑÁ˿ռ䣬ÄÇô¿É²»¿ÉÒÔÈÃһЩ³ÌÐòÔÚ¾²Ì¬±àÒëµÄÇé¿öÏÂÒ²Äܹ»¹²ÏíһЩº¯ÊýÄØ£¿ÒªÖªµÀ´ð°¸£¬ÍùϽÓ×Å¿´¡£
ÐҺã¬PICOBSDΪÎÒÃÇÌṩÁËÕâÑùµÄÒ»¸ö»úÖÆ£¬Ê¹µÃ³ÌÐò¼´²»ÓüÓÔØ±ê×¼¿âÒ²¿ÉÒÔÀûÓÃÆäËü³ÌÐòÖеÄÏàͬº¯Êý£¬Õâ¾ÍÊÇcrunch£¨crunchºÃÏñÊÇÊÀ½ç¶¥¼¶ºÚ¿Í¸ßÊÖJohn DraperµÄÍøÃû£¬²»ÖªµÀÕâÓëËûÓÐûÓйØÏµ¡£^_^£©¡£
crunchÊǽ«ËùÓÐÐèÒªµÄÈí¼þ±àÒëÔÚÒ»¸öÎļþÖм´crunch£¬È»ºóµ±ÖеijÌÐòͨ¹ýsymbol linkµÄ·½Ê½linkµ½ËüÉÏÃæ£¬ÕâÑù±ã¿ÉÒÔʹÓÃÏàÓ¦µÄ³ÌÐò£¨ÀàËÆÓÚlinuxÖеÄbusybox£©£¬Í¬Ê±ÓÖ½ÚÔ¼Á˿ռ䡣PICOBSDΪÎÒÃÇÌṩÁËÒ»¸ö×Ô¼º¶¨ÖÆcrunchµÄ»ú»á£¬ÔÚFreeBSD4.5 Release£¨×¢£º4.8 ReleaseÖеÄcrunchÎÞ·¨¶¨ÖÆ£¬ÖÁÉÙÎÒûÓÐÕÒµ½£¬ËùÒÔ½¨Òé´ó¼ÒʹÓÃ4.5£©ÖУ¬crunchµÄÅäÖÆÎļþÊÇ/usr/src/release/picobsd/custom/crunch1/crunch.conf£¬±à¼ËüÒÔÑ¡ÔñÄãÐèÒªÄÄЩÈí¼þ£¬ÏÂÃæÒÔÒ»¸öÀý×ÓÀ´ËµÃ÷ËüµÄÓ÷¨¡£
# Default build options
buildopts -DNOPAM -DRELEASE_CRUNCH -DNOSECURE -DNOCRYPT -DNONETGRAPH -DNOIPSEC
# other sources
srcdirs /usr/src/bin
srcdirs /usr/src/sbin/i386
srcdirs /usr/src/sbin
srcdirs /usr/src/usr.bin
srcdirs /usr/src/usr.sbin
srcdirs /usr/src/gnu/usr.bin
srcdirs /usr/src/gnu/usr.sbin
srcdirs /usr/src/libexec
# sources for ns & vm
srcdirs /usr/src/release/picobsd/tinyware
# ÒÔÏÂΪÄãËùÐèÒªÔÚcrunch°üº¬µÄ³ÌÐòÁÐ±í£¬ÒÔ¿Õ¸ñ·Ö¸ô¡£
progs dmesg ping ifconfig route hostname
progs cp rm ls cat test mkdir less
progs uname sysctl
progs init sh reboot
# lnÊDZíʾ½¨Á¢Ò»¸ö±ðÃû£¬Èçln less more£¬±íʾµ±Ö´ÐÐmoreµÄʱºòʵ¼ÊÉÏÊÇÖ´ÐÐless
ln less more
# ÒÔÏÂÊÇÖ¸¶¨±àÒëʱÐèÒªµÄ¿â
libs -lncurses -lmytinfo -lipx
libs -lz -lpcap -lalias
libs -ledit -lutil -lmd -lcrypt -lmp -lgmp -lm -lkvm
libs -lgnuregex -ltelnet
Õâʱ»áÉú³ÉÒ»¸öÃûΪcrunch1µÄ³ÌÐò£¬ÎÒÃÇÒªµÄ¾ÍÊÇËüÁË¡£
5¡¢½¨Á¢ÄÚ´æ´ÅÅÌPATH=/sbin:/bin
HOME=/
export PATH HOME
echo
echo "Hello, it's my Floppy BSD"
echo
# ÒòΪûÓÐʹÓõǼÑéÖ¤£¬ËùÒÔÕâÀïÖ»ÊǼòµ¥µÄÒ»Ö±ÔËÐÐshell
while : ; do
/bin/sh
done
7¡¢½¨Á¢É豸Îļþ
ÏÖÔÚÐèÒª½¨Á¢Ò»Ð©»ù±¾µÄÉ豸Îļþ£¬ÎÒÃÇʹÓÃ/dev/MAKEDEVÀ´Íê³ÉÕâЩ²Ù×÷£º
8¡¢×îºó¹¤×÷
µ½Ä¿Ç°ÎªÖ¹£¬ÎÒÃÇµÄÆô¶¯²¿·Ö£¬KernelºÍÄÚ´æ´ÅÅ̶¼ÒѾ׼±¸ºÃÁË£¬ÏÂÃæ¾Í¿ªÊ¼ÕûºÏËüÃÇÁË¡£
ÒòΪinitÆô¶¯µÄʱºò»á²éÕÒlogin classÖеÄdaemonÕâ¸öÀà±ð£¬Èç¹ûûÓÐÔò»á³öÏÖ´íÎóÌáʾ£¬ÎªÁËʹinit²»±¨´í£¬ÎÒÃÇ»¹ÐèÒª¸´ÖÆ/etc/login.confµ½/mnt/etcÖУº
ÏÖÔÚÓÃÄãµÄÕâÕÅÈíÅ̾ͿÉÒÔÆô¶¯ÄãµÄ»úÆ÷£¬Èç¹ûÒ»ÇÐÕý³£µÄ»°£¬Ä㽫¿´µ½"Hello, it's my Floppy BSD"µÄÌáʾ£¬²¢ÇÒ¿´µ½¿É°®µÄshell·û"#"ÁË£¬ÊDz»ÊǺÜÓÐÂú×ã¸ÐÄØ£¿:)
µ½´ËΪֹһ¸ö»ù±¾µÄBSDϵͳÒѾÍê³ÉÁË£¬Èç¹ûÄãÏë¼ÌÐøÀ©Õ¹Floppy BSDµÄ¹¦ÄÜ£¬ÄǾͰ´ÕÕÉÏÃæµÄ·½·¨×Ô¼º×ö°É£¡
ͬʱÎÒÔÚCNFUG(China FreeBSD User Group, http://www.cnfug.org)ά»¤×ÅÒ»¸öFloppy Firewall(http://www.cnfug.org/project/ffw/)µÄProject£¬¾ÍÊÇÀûÓÃÕâÖÖ·½·¨ÖÆ×÷µÄÒ»¸öÔÚÈíÅÌÉÏÔËÐеķÀ»ðǽϵͳ£¬Äã¿ÉÒÔÓÃÀ´×ö²Î¿¼¡£
°´ÕÕ±¾ÎĵIJ½Ö裬ÎÒÖÆ×÷ÁËÒ»¸öÀý×Ó£¬´ó¼Ò¿ÉÒÔµ½ÕâÀïÏÂÔØ£ºhttp://www.cnfug.org/tmp/flp-bsd.bin ʹÓ÷½·¨Çë²ÎÕÕFloppy FirewallµÄʹÓ÷½·¨¡£
Õ⼸ÌìÌ«ÀÛÁË£¬ÎÒÏÖÔÚµÃȥ˯¾õÁË¡£
²Î¿¼×ÊÁÏ£º
PICOBSD Project
| ×ÔÓÉ¹ã¸æÇø |
| ¡¡ |