• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    FreeBSD 5-CURRENT 的內核配置與優化

    發布: 2007-7-13 21:17 | 作者: 佚名    | 來源: 轉載     | 查看: 37次 | 進入軟件測試論壇討論

    領測軟件測試網

    在本文針對4-STABLE的那個版本中已經討論了削減系統功能的意義。

    在某種程度上,對于FreeBSD 5-CURRENT而言,配置內核是必需的。

    FreeBSD 5.x是一個充滿新特性的系統。目前,5.0-RELEASE已經正式推出,但第五版本這個分支仍然是CURRENT分支,在它成為5-STABLE之前,我們可能還需要等待數個月的時間,這可能意味著一個到兩個RELEASE版本。

    這篇文章將主要著眼于FreeBSD 5.0-CURRENT的內核配置。據我所知,這篇文章的內容至少在2003年3月以前應該是完全適合的,而在FreeBSD 5-STABLE正式標注之后,也不應該再出現什么本質的變化。當然,保險起見,我個人建議您在進行改動,并將其應用到自己的系統上之前,首先備份內核:

    cd /boot
    cp -R kernel kernel.good

    這樣,一旦出現意外情況,您將可以通過在啟動時選擇/boot/kernel.good/kernel來正確地引導系統。

    說到這里,我不得不指出FreeBSD 5在內核文件放置方面的一個非常顯著的變化。在5.0之前,內核及模塊分別在/kernel和/modules/文件夾中;5-CURRENT為了便于管理,將內核及其模塊都放到了/boot/kernel/文件夾。這一變化使得舊版的loader(程序在默認情況下不能正確加載內核文件,當然,指定正確的文件名仍然可以保證4.x的loader(程序正確加載FreeBSD 5內核,但我依舊傾向于按照UPDATING所說的那樣,把升級boot, loader這一系列初啟程序作為系統升級的一部分。

    在正式開始介紹FreeBSD 5的內核配置之前,我還必須介紹5.0新的device.hints配置文件。device.hints配置文件位于/boot/文件夾,對于沒有ISA設備的系統,這個文件基本上是沒用的。這個文件取代了FreeBSD 4.x一直沿用的user config機制。FreeBSD開發組期待將來的某個時間重新加入user config機制,以讓loader更加人性化,但直到筆者撰寫這篇文章的時候為止,這一機制的新實現仍然沒有完成。

    device.hints由一系列符合下面句法的語句組成:

    hint...=

    如果你熟悉4.x上的loader(配置指令,那么只需要做少量的轉換就可以解決問題:

    iomem 改為 maddr iosiz 改為 msize

    當然,世界是美好的,FreeBSD提供了一個awk腳本來解決問題。這個腳本位于src/sys/i386/conf/,它的名字是gethints.awk。

    貧了這么多,一些讀者可能已經等急了。但我還得說一個FreeBSD 5和4的重大區別,那就是LINT沒了。

    拿掉LINT這事兒跟device.hints有關,為了不把話題扯得太遠,我不打算詳細描述關于這個文件的故事;先說要緊的:首先,類似4.x風格的LINT文件現在叫NOTES;其次,如果你一定要獲得LINT的話,在src/sys/i386/conf里面執行下面的指令:

    make LINT

    即可。下面我繼續“傳統上”的那個內核配置文件。這個配置文件是由GENERIC改過來的,當然,刪除了一些沒必要的注釋。紅色表示我刪除的東西,而藍色表示我添進去,或做了修改的那些設置。綠色表示我沒添進去,但在NOTES中曾出現過的有用的配置。

    #
    # DELPHIJ -- Kernel configuration file for FreeBSD/i386
    #
    machine i386
    cpu I486_CPU       # 默認已經沒有i386了,但i486...
    cpu I586_CPU       # 還有這個i586都不適應我的情況
    cpu I686_CPU
    ident DELPHIJ      # 簽上我的名
    maxusers 0

    # VMWare對于這條指令的模擬有問題。加上這個選項可以大大地
    # 提高系統速度;我沒有選中它,因為我的系統需要SMP,而且
    # 不是VMWare虛擬機 SMP和這條選項的連用結果是系統崩潰!
    options CPU_DISABLE_CMPXCHG

    #靜態連接device.hints,而不是從/boot/device.hints加載
    #hints "GENERIC.hints" #默認的文件

    makeoptions DEBUG=-g # 在內核中包括gdb(1)調試符號-
                         # 出問題之前,不管我事兒……

    # SCHED_4BSD是傳統的、經過證明的BSD調度器。它使用全局的
    # 運行隊列,它與CPU關系不密切,對SMP的性能不是最好的。
    # 它有非常好的交互性和優先級選擇機制。
    #
    # SCHED_ULE是新的試驗性的調度器,它是為SMP設計的,但在單
    # 處理器上運行一樣出色。使用這個調度器的用戶需要有對出現
    # 非預期的崩潰和進行反饋做好心理準備。
    options SCHED_4BSD #4BSD scheduler
    options SCHED_ULE  #ULE scheduler,SMP上快許多
    options INET       #IPv4協議
    options INET6      #IPv6通訊協議-外圍設備不讓我這么干:~(
    options FFS        #必須有的FFS(Unix文件系統)
    options SOFTUPDATES #SoftUpdates支持,相信我,加上沒錯的
    options UFS_ACL     #ACL(訪問控制表)支持
    options UFS_DIRHASH #訪問大目錄時,以少量內存為代價提高性能
    options MD_ROOT #MD作為根設備
    options NFSCLIENT #NFS客戶
    options NFSSERVER #NFS服務
    options NFS_ROOT #NFS作為跟文件系統; 需要NFSCLIENT
    options MSDOSFS #MSDOS文件系統
    options CD9660 #ISO 9660文件系統

    options PROCFS #進程文件系統(需要PSEUDOFS)
    options PSEUDOFS #偽文件系統框架
    options COMPAT_43 #兼容 BSD 4.3 [必須保留!]
    options COMPAT_FREEBSD4 #兼容FreeBSD4
    options SCSI_DELAY=2000 #探測SCSI前的延時
    options KTRACE  #ktrace(1)支持
    options SYSVSHM #SYSV共享內存
    options SYSVMSG #SYSV消息隊列
    options SYSVSEM #SYSV信號量
    options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B實時擴展
    options KBD_INSTALL_CDEV #/dev中安裝CDEV
    options AHC_REG_PRETTY_PRINT # 調試時顯示寄存器bit域
    # 驅動程序將因此增大約128K
    options AHD_REG_PRETTY_PRINT # 同上,將增大約215K

    # current分支調試[我不打算翻譯了,如果你到了能調試內核
    # 的層次,應該能看懂]
    options DDB #Enable the kernel debugger
    options INVARIANTS #Enable calls of extra sanity checking
    options INVARIANT_SUPPORT #Extra sanity checks of internal structures, required by INVARIANTS
    options WITNESS #Enable checks to detect deadlocks and cycles
    options WITNESS_SKIPSPIN #Don't run witness on spinlocks for speed

    # SMP支持
    options SMP # Symmetric MultiProcessor Kernel
    options APIC_IO # Symmetric (APIC) I/O

    device isa
    device eisa
    device pci

    # 軟驅支持
    device fdc

    # DEVICE_POLLING可以讓dc, fxp和sis設備更平穩地運行,不幸
    # 的是它不能和SMP連用。
    options DEVICE_POLLING

    options AUTO_EOI_1     # 8259A自動中斷結束控制方式。
                           # 可以提高系統性能
    options AUTO_EOI_2     # 沒證明過這東西能用,我的機器崩了

    # 將這個文件保存到內核,這樣將來可以用
    # strings -n 3 /boot/kernel/kernel | sed -n 's/^___//p'
    # 找回
    options INCLUDE_CONFIG_FILE

    options IPSEC          #IPSec內核級支持,與IPSec互斥

    options FAST_IPSEC     # 快速IPSEC實現(需要相關硬件)

    options IPFILTER       # ipfilter支持。

    options RANDOM_IP_ID   # 此選項有效阻止遠程探測TCP報文生成

    options TCP_DROP_SYNFIN #丟棄SYN+FIN的TCP包

    options ZERO_COPY_SOCKETS # 這是對4.4BSD設計缺陷的重大改進
                              # 可以極大地提高網絡性能

    device crypto           # 核心crypto(加密)支持
    device cryptodev        # /dev/crypto硬件訪問支持

    device hifn             # Hifn 7951, 7781, etc.

    options PANIC_REBOOT_WAIT_TIME=0 # panic時重啟等待時間

    # 請參考tuning(7)
    options NMBCLUSTERS=4096 # 對于我的服務器合適的NMBCLUSTER

    makeoptions CONF_CFLAGS=-fno-builtin #不允許使用 memcmp等

    # 應用程序最大、堆棧、默認內存大小。內存2GB
    options MAXDSIZ=(2047UL*1024*1024)
    options MAXSSIZ=(128UL*1024*1024)
    options DFLDSIZ=(2047UL*1024*1024)

    # ufs1 擴展屬性支持。ufs2不需要
    options UFS_EXTATTR
    options UFS_EXTATTR_AUTOSTART

    # GEOM支持
    options GEOM_AES
    options GEOM_APPLE
    options GEOM_BDE
    options GEOM_BSD
    options GEOM_GPT
    options GEOM_MBR
    options GEOM_PC98
    options GEOM_SUNLABEL

    options QUOTA          # 磁盤配額支持

    # 優化SMP性能,把mutex(互斥體)變為自旋鎖。我不敢用……
    options ADAPTIVE_MUTEXES

    # ATA 和 ATAPI 設備
    device ata
    device atadisk # ATA 磁盤驅動器
    device atapicd # ATAPI光驅
    device atapifd # ATAPI軟驅
    device atapist # ATAPI磁帶機(財主的玩意
    options ATA_STATIC_ID #靜態設備標號

    # SCSI 控制器
    device ahb # EISA AHA1742 family
    device ahc # AHA2940 and onboard AIC7xxx devices
    device ahd # AHA39320/29320 and onboard AIC79xx devices
    device amd # AMD 53C974 (Tekram DC-390(T))
    device isp # Qlogic family
    device mpt # LSI-Logic MPT-Fusion
    #device ncr # NCR/Symbios Logic
    device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
    device trm # Tekram DC395U/UW/F DC315U adapters

    device adv # Advansys SCSI adapters
    device adw # Advansys wide SCSI adapters
    device aha # Adaptec 154x SCSI adapters
    device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
    device bt # Buslogic/Mylex MultiMaster SCSI adapters

    device ncv # NCR 53C500
    device nsp # Workbit Ninja SCSI-3
    device stg # TMC 18C30/18C50

    # 通過SCSI接口的RAID控制器
    device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
    device ciss # Compaq Smart RAID 5*
    device dpt # DPT Smartcache III, IV - See NOTES for options!
    device iir # Intel Integrated RAID
    device mly # Mylex AcceleRAID/eXtremeRAID

    # SCSI設備
    device scbus # SCSI bus (required)
    device ch # SCSI media changers
    device da # Direct Access (disks)
    device sa # Sequential Access (tape etc)
    device cd # CD
    device pass # Passthrough device (direct SCSI access)
    device ses # SCSI Environmental Services (and SAF-TE)

    # RAID控制器
    device aac # Adaptec FSA RAID
    device aacp # SCSI passthrough for aac (requires CAM)
    device amr # AMI MegaRAID
    device ida # Compaq Smart RAID
    device mlx # Mylex DAC960 family
    device pst # Promise Supertrak SX6000
    device twe # 3ware ATA RAID

    # atkbdc0同時用于控制鍵盤和PS/2鼠標器
    device atkbdc # AT鍵盤控制器
    device atkbd # AT鍵盤
    device psm # PS/2 mouse

    device vga # VGA顯示卡

    # 啟動畫面和屏幕保護程序[我的服務器平時不接顯示器]
    device splash

    # syscons是默認的控制臺驅動
    device sc

    # 啟用VT220兼容的控制臺驅動pcvt
    #device vt
    #options XSERVER # support for X server on a vt console
    #options FAT_CURSOR # start with block cursor

    device agp # AGP支持

    # 浮點運算支持-必須保留
    device npx

    # 電源管理
    #device apm
    # i8254掛起及恢復支持
    device pmtimer

    # PCCARD (PCMCIA)支持
    device cbb # cardbus (yenta) bridge
    #device pcic # ExCA ISA and PCI bridges
    device pccard # PC Card (16-bit) bus
    device cardbus # CardBus (32-bit) bus

    # 串口(COM)支持
    device sio # 8250, 16[45]50 based serial ports

    # 并口支持
    device ppc
    device ppbus # Parallel port bus (required)
    device lpt # Printer
    device plip # TCP/IP over parallel
    device ppi # Parallel port interface device
    #device vpo # Requires scbus and da


    # 獨立 PCI 以太網卡支持,這些設備不需要miibus,
    # 非SMP情況下還支持DEVICE_POLLING,可惜我一個也沒有
    device de # DEC/Intel DC21x4x (``Tulip'')
    device em # Intel PRO/1000 adapter Gigabit Ethernet Card
    device txp # 3Com 3cR990 (``Typhoon'')
    device vx # 3Com 3c590, 3c595 (``Vortex'')

    device miibus # MII bus支持

    # 以下PCI以太網卡需要MII bus支持才能用
    device dc # DEC/Intel 21143 and various workalikes
    device fxp # Intel EtherExpress PRO/100B (82557, 82558)
    device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
    device rl # RealTek 8129/8139
    device sf # Adaptec AIC-6915 (``Starfire'')
    device sis # Silicon Integrated Systems SiS 900/SiS 7016
    device ste # Sundance ST201 (D-Link DFE-550TX)
    device tl # Texas Instruments ThunderLAN
    device tx # SMC EtherPower II (83c170 ``EPIC'')
    device vr # VIA Rhine, Rhine II
    device wb # Winbond W89C840F
    device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
    device bge # Broadcom BCM570xx 千兆以太網卡

    # ISA網卡
    device cs # Crystal Semiconductor CS89x0 NIC
    # 'device ed' 需要 'device miibus'
    device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
    device ex # Intel EtherExpress Pro/10 and Pro/10+
    device ep # Etherlink III based cards
    device fe # Fujitsu MB8696x based cards
    device lnc # NE2100, NE32-VL Lance Ethernet cards
    device sn # SMC's 9000 series of ethernet chips
    device xe # Xircom pccard ethernet

    # ISA設備,有個性的代碼……
    #device le

    # Wireless NIC cards
    device wlan # 802.11 support
    device an # Aironet 4500/4800 802.11 wireless NICs.
    device awi # BayStack 660 and others
    device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
    #device wl # Older non 802.11 Wavelan wireless NIC.

    # 偽設備
    device random # 隨機數采集發生器(/dev/random, /dev/urandom)
    device loop   # 自環網絡
    device ether  # 以太網支持
    device sl     # 內核級 SLIP
    device ppp    # 內核級 PPP
    device tun    # 包隧道(ppp(, nos-tun()
    device pty    # 偽tty (telnet等等)
    device md     # 虛擬盤
    device gif    # IPv6對IPv4隧道
    device faith  # IPv6對IPv4轉發

    # `bpf'偽設備將啟用伯克利數據包過濾器。
    # 小心由此帶來的管理問題
    pseudo-device bpf #Berkeley packet filter

    # USB support
    device uhci # UHCI PCI->USB interface
    device ohci # OHCI PCI->USB interface
    device usb # USB Bus (required)
    #device udbp # USB Double Bulk Pipe devices
    device ugen # Generic
    device uhid # "Human Interface Devices"
    device ukbd # Keyboard
    device ulpt # Printer
    device umass # Disks/Mass storage - Requires scbus and da
    device ums # Mouse
    device urio # Diamond Rio 500 MP3 player
    device uscanner # Scanners
    # USB Ethernet, requires mii
    device aue # ADMtek USB ethernet
    device cue # CATC USB ethernet
    device kue # Kawasaki LSI USB ethernet
     

    粗略地說說上面的選擇。COM, PPC這些東西不用我說,這臺機器并不需要連接打印設備,也不需要連接COM口鍵盤,所以一律去掉。使用ULE調度器的原因是為了給FreeBSD的開發做點貢獻,如果你不喜歡冒險的話,可以考慮使用4BSD的,當然,話說回來,如此在意穩定性的話,用4-STABLE可能是更好的選擇。

     

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>