国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > FreeBSD > 正文

FreeBSD 5-CURRENT 的內(nèi)核配置與優(yōu)化

2024-07-26 00:28:59
字體:
供稿:網(wǎng)友

在本文針對(duì)4-STABLE的那個(gè)版本中已經(jīng)討論了削減系統(tǒng)功能的意義。

在某種程度上,對(duì)于FreeBSD 5-CURRENT而言,配置內(nèi)核是必需的。

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

這篇文章將主要著眼于FreeBSD 5.0-CURRENT的內(nèi)核配置。據(jù)我所知,這篇文章的內(nèi)容至少在2003年3月以前應(yīng)該是完全適合的,而在FreeBSD 5-STABLE正式標(biāo)注之后,也不應(yīng)該再出現(xiàn)什么本質(zhì)的變化。當(dāng)然,保險(xiǎn)起見,我個(gè)人建議您在進(jìn)行改動(dòng),并將其應(yīng)用到自己的系統(tǒng)上之前,首先備份內(nèi)核:

cd /boot
cp -R kernel kernel.good

這樣,一旦出現(xiàn)意外情況,您將可以通過在啟動(dòng)時(shí)選擇/boot/kernel.good/kernel來正確地引導(dǎo)系統(tǒng)。

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

在正式開始介紹FreeBSD 5的內(nèi)核配置之前,我還必須介紹5.0新的device.hints配置文件。Device.hints配置文件位于/boot/文件夾,對(duì)于沒有ISA設(shè)備的系統(tǒng),這個(gè)文件基本上是沒用的。這個(gè)文件取代了FreeBSD 4.x一直沿用的user config機(jī)制。FreeBSD開發(fā)組期待將來的某個(gè)時(shí)間重新加入user config機(jī)制,以讓loader更加人性化,但直到筆者撰寫這篇文章的時(shí)候?yàn)橹梗@一機(jī)制的新實(shí)現(xiàn)仍然沒有完成。

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

hint...=

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

iomem 改為 maddr iosiz 改為 msize

當(dāng)然,世界是美好的,F(xiàn)reeBSD提供了一個(gè)awk腳本來解決問題。這個(gè)腳本位于src/sys/i386/conf/,它的名字是gethints.awk。

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

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

make LINT

即可。下面我繼續(xù)“傳統(tǒng)上”的那個(gè)內(nèi)核配置文件。這個(gè)配置文件是由GENERIC改過來的,當(dāng)然,刪除了一些沒必要的注釋。紅色表示我刪除的東西,而藍(lán)色表示我添進(jìn)去,或做了修改的那些設(shè)置。綠色表示我沒添進(jìn)去,但在NOTES中曾出現(xiàn)過的有用的配置。

#
# DELPHIJ -- Kernel configuration file for FreeBSD/i386
#

machine i386
cpu I486_CPU       # 默認(rèn)已經(jīng)沒有i386了,但i486…
cpu I586_CPU       # 還有這個(gè)i586都不適應(yīng)我的情況
cpu I686_CPU
ident DELPHIJ      # 簽上我的名Smile
maxusers 0

# VMWare對(duì)于這條指令的模擬有問題。加上這個(gè)選項(xiàng)可以大大地
# 提高系統(tǒng)速度;我沒有選中它,因?yàn)槲业南到y(tǒng)需要SMP,而且
# 不是VMWare虛擬機(jī)Smile SMP和這條選項(xiàng)的連用結(jié)果是系統(tǒng)崩潰!
options CPU_DISABLE_CMPXCHG

#靜態(tài)連接device.hints,而不是從/boot/device.hints加載
#hints "GENERIC.hints" #默認(rèn)的文件

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

# SCHED_4BSD是傳統(tǒng)的、經(jīng)過證明的BSD調(diào)度器。它使用全局的
# 運(yùn)行隊(duì)列,它與CPU關(guān)系不密切,對(duì)SMP的性能不是最好的。
# 它有非常好的交互性和優(yōu)先級(jí)選擇機(jī)制。
#
# SCHED_ULE是新的試驗(yàn)性的調(diào)度器,它是為SMP設(shè)計(jì)的,但在單
# 處理器上運(yùn)行一樣出色。使用這個(gè)調(diào)度器的用戶需要有對(duì)出現(xiàn)
# 非預(yù)期的崩潰和進(jìn)行反饋?zhàn)龊眯睦頊?zhǔn)備。
options SCHED_4BSD #4BSD scheduler
options SCHED_ULE  #ULE scheduler,SMP上快許多
options INET       #ipv4協(xié)議
options INET6      #IPv6通訊協(xié)議-外圍設(shè)備不讓我這么干:~(
options FFS        #必須有的FFS(Unix文件系統(tǒng))
options SOFTUPDATES #SoftUpdates支持,相信我,加上沒錯(cuò)的
options UFS_ACL     #ACL(訪問控制表)支持
options UFS_DIRHASH #訪問大目錄時(shí),以少量?jī)?nèi)存為代價(jià)提高性能
options MD_ROOT #MD作為根設(shè)備
options NFSCLIENT #NFS客戶
options NFSSERVER #NFS服務(wù)
options NFS_ROOT #NFS作為跟文件系統(tǒng); 需要NFSCLIENT
options MSDOSFS #MSDOS文件系統(tǒng)
options CD9660 #ISO 9660文件系統(tǒng)

options PROCFS #進(jìn)程文件系統(tǒng)(需要PSEUDOFS)
options PSEUDOFS #偽文件系統(tǒng)框架
options COMPAT_43 #兼容 BSD 4.3 [必須保留!]
options COMPAT_FREEBSD4 #兼容FreeBSD4
options SCSI_DELAY=2000 #探測(cè)SCSI前的延時(shí)
options KTRACE  #ktrace(1)支持
options SYSVSHM #SYSV共享內(nèi)存
options SYSVMSG #SYSV消息隊(duì)列
options SYSVSEM #SYSV信號(hào)量
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B實(shí)時(shí)擴(kuò)展
options KBD_INSTALL_CDEV #/dev中安裝CDEV
options AHC_REG_PRETTY_PRINT # 調(diào)試時(shí)顯示寄存器bit域
# 驅(qū)動(dòng)程序?qū)⒁虼嗽龃蠹s128K
options AHD_REG_PRETTY_PRINT # 同上,將增大約215K

# current分支調(diào)試[我不打算翻譯了,如果你到了能調(diào)試內(nèi)核
# 的層次,應(yīng)該能看懂Smile]
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

# 軟驅(qū)支持
device fdc

# DEVICE_POLLING可以讓dc, fxp和sis設(shè)備更平穩(wěn)地運(yùn)行,不幸
# 的是它不能和SMP連用。
options DEVICE_POLLING

options AUTO_EOI_1     # 8259A自動(dòng)中斷結(jié)束控制方式。
                       # 可以提高系統(tǒng)性能
options AUTO_EOI_2     # 沒證明過這東西能用,我的機(jī)器崩了Sad

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

options IPSEC          #IPSec內(nèi)核級(jí)支持,與IPSec互斥

options FAST_IPSEC     # 快速IPSEC實(shí)現(xiàn)(需要相關(guān)硬件)

options IPFILTER       # ipfilter支持。

options RANDOM_IP_ID   # 此選項(xiàng)有效阻止遠(yuǎn)程探測(cè)TCP報(bào)文生成

options TCP_DROP_SYNFIN #丟棄SYN+FIN的TCP包

options ZERO_COPY_SOCKETS # 這是對(duì)4.4BSD設(shè)計(jì)缺陷的重大改進(jìn)
                          # 可以極大地提高網(wǎng)絡(luò)性能

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

device hifn             # Hifn 7951, 7781, etc.

options PANIC_REBOOT_WAIT_TIME=0 # panic時(shí)重啟等待時(shí)間

# 請(qǐng)參考tuning(7)
options NMBCLUSTERS=4096 # 對(duì)于我的服務(wù)器合適的NMBCLUSTER

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

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

# ufs1 擴(kuò)展屬性支持。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          # 磁盤配額支持

# 優(yōu)化SMP性能,把mutex(互斥體)變?yōu)樽孕i。我不敢用……
options ADAPTIVE_MUTEXES

# ATA 和 ATAPI 設(shè)備
device ata
device atadisk # ATA 磁盤驅(qū)動(dòng)器
device atapicd # ATAPI光驅(qū)
device atapifd # ATAPI軟驅(qū)
device atapist # ATAPI磁帶機(jī)(財(cái)主的玩意Smile
options ATA_STATIC_ID #靜態(tài)設(shè)備標(biāo)號(hào)

# 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設(shè)備
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同時(shí)用于控制鍵盤和PS/2鼠標(biāo)器
device atkbdc # AT鍵盤控制器
device atkbd # AT鍵盤
device psm # PS/2 mouse

device vga # VGA顯示卡

# 啟動(dòng)畫面和屏幕保護(hù)程序[我的服務(wù)器平時(shí)不接顯示器]
device splash

# syscons是默認(rèn)的控制臺(tái)驅(qū)動(dòng)
device sc

# 啟用VT220兼容的控制臺(tái)驅(qū)動(dòng)pcvt
#device vt
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor

device agp # AGP支持

# 浮點(diǎn)運(yùn)算支持-必須保留
device npx

# 電源管理
#device apm
# i8254掛起及恢復(fù)支持
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


# 獨(dú)立 PCI 以太網(wǎng)卡支持,這些設(shè)備不需要miibus,
# 非SMP情況下還支持DEVICE_POLLING,可惜我一個(gè)也沒有Sad
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以太網(wǎng)卡需要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 千兆以太網(wǎng)卡

# ISA網(wǎng)卡
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設(shè)備,有個(gè)性的代碼……
#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.

# 偽設(shè)備
device random # 隨機(jī)數(shù)采集發(fā)生器(/dev/random, /dev/urandom)
device loop   # 自環(huán)網(wǎng)絡(luò)
device ether  # 以太網(wǎng)支持
device sl     # 內(nèi)核級(jí) SLIP
device ppp    # 內(nèi)核級(jí) PPP
device tun    # 包隧道(ppp(Cool, nos-tun(Cool)
device pty    # 偽tty (telnet等等)
device md     # 虛擬盤
device gif    # IPv6對(duì)IPv4隧道
device faith  # IPv6對(duì)IPv4轉(zhuǎn)發(fā)

# `bpf'偽設(shè)備將啟用伯克利數(shù)據(jù)包過濾器。
# 小心由此帶來的管理問題
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這些東西不用我說,這臺(tái)機(jī)器并不需要連接打印設(shè)備,也不需要連接COM口鍵盤,所以一律去掉。使用ULE調(diào)度器的原因是為了給FreeBSD的開發(fā)做點(diǎn)貢獻(xiàn),如果你不喜歡冒險(xiǎn)的話,可以考慮使用4BSD的,當(dāng)然,話說回來,如此在意穩(wěn)定性的話,用4-STABLE可能是更好的選擇。

上述內(nèi)核配置文件需要最新的CURRENT代碼。如果你沒有和FreeBSD中央CVS服務(wù)器同步的話,那么你可能需要首先同步代碼;如果還有問題,希望能收到你的來信


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 井陉县| 宝山区| 象山县| 三都| 佛学| 邯郸市| 金秀| 武宁县| 子洲县| 涪陵区| 芜湖市| 富顺县| 遵义县| 麻阳| 二手房| 凤城市| 桦甸市| 都安| 武城县| 沈丘县| 石家庄市| 桃园县| 潼关县| 平原县| 罗甸县| 聂拉木县| 霍邱县| 海南省| 伊川县| 卓尼县| 龙游县| 寿宁县| 新野县| 永康市| 昌吉市| 揭东县| 山东| 疏附县| 澎湖县| 磐安县| 梨树县|