當前位置:首頁 » 編程軟體 » freebsd編譯內核

freebsd編譯內核

發布時間: 2022-11-03 08:35:07

㈠ FreeBSD 總是提示這個不知道是為什麼,大概每隔24秒重復顯示一次,那位高手能知道這是什麼意思怎麼解決

建議重新編譯內核,看不出什麼具體問題,應該是編譯內核的時候缺少模塊,不要太過精簡了

㈡ 誰有FreeBSD的使用手冊啊

24.4 撥入服務
Contributed by Guy Helmer. Additions by Sean Kelly.
為撥入服務配置FreeBSD系統與連接到終端是非常相似的,除非您正在使用 modem來撥號而不是終端。

24.4.1 外置vs.內置modem
外置modem看起來很容易撥號。 因為,外置 modem 可以通過儲存在非易失性的RAM中的參數來配置,它們通常提供指示器來顯示重要的RS-232信號的狀態。不停閃光的信號燈能給用戶留下比較深刻的印象,而且指示器也可以用來查看modem是否正常地工作。

內置modem通常缺乏非易失性的RAM, 所以對它們的配置可能會限制在通過 DIP 開關來設置。如果您的內置modem有指示燈,您也很難看得到。

24.4.1.1 Modem和線纜
如果您使用一個外置的 modem,那您將需要適當的電纜線。一個標準的串口線應當足夠長以至普通的信號能夠連接上:

表 24-4. 信號名稱

縮寫 全名
RD 收到數據 (Received Data)
TD 傳出數據 (Transmitted Data)
DTR 數據終端就緒 (Data Terminal Ready)
DSR 數據集就緒 (Data Set Ready)
DCD 數據載波檢測 (Data Carrier Detect) (RS-232 的收到線路信號檢測器)
SG 信號地 (Signal Ground)
RTS 要求發送數據 (Request to Send)
CTS 允許對方發送數據 (Clear to Send)

FreeBSD 對速度超過 2400 bps 的情形需要通過 RTS 和 CTS 信號來完成流控制, 通過 CD 信號來檢測呼叫響應和掛機,並通過 DTR 信號來在會話結束時對數據機進行復位。某些電纜在連接時沒有提供全部需要的信號, 這會給您帶來問題, 例如在掛斷時登錄會話不消失,這就有可能是電纜的問題。

與其它類 UNIX? 操作系統類似, FreeBSD 使用硬體信號來檢測呼叫響應, 以及在掛斷時掛斷並復位數據機。 FreeBSD 避免發送命令給數據機, 或監視其狀態。 如果您熟悉通過數據機來連接基於 PC 的 BBS 系統, 這可能看起來有點難用。

24.4.2 串口的考慮
FreeBSD支持基於 NS8250, NS16450, NS16550 和 NS16550A 的EIA RS-232C通訊介面。 8250和16450設備有單字元緩沖。 16550設備提供了一個 16 個字元的緩沖,可以提高更多的系統性能。 因為單字元緩沖設備比 16 個字元的緩沖需要更多的系統資源來工作,所以基於16550A的介面卡可能更好。 如果系統沒有活動的串口, 或有較大的負載, 16 字元緩沖的卡對於低錯誤率的通訊來說更好。

24.4.3 快速預覽
對於終端, init 會在每個配置串口上為每個撥入連接產生一個 getty 進程。 例如, 如果一個 modem 被附帶在 /dev/ttyd0 中,用命令ps ax可以顯示下面這些:

4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0
當用戶撥上modem, 並使用它進行連接時, CD 線就會被 modem 認出。 內核注意到載波信號已經被檢測到, 需要完成 getty 埠的打開。 getty 發送一個登錄:在指定的初始線速度上的命令行。 Getty 會檢查合法的字元是否被接收,在典型的配置中, 如果發現 「垃圾」, getty 就會設法調節線速度,直到它接收到合理的字元。

用戶在鍵入他/她的登錄名稱後, getty執行/usr/bin/login, 這會要求用戶輸入密碼來完成登錄,然後啟動用戶的shell。

24.4.4 配置文件
如果希望允許撥入您的 FreeBSD 系統, 在 /etc 目錄中有三個系統配置文件需要您關注。 其一是 /etc/gettytab,其中包含用於 /usr/libexec/getty 服務的配置信息。 其二是 /etc/ttys, 它的作用是告訴 /sbin/init 哪些 tty 設備上應該運行 getty。 最後,關於埠的初始化命令, 應放到 /etc/rc.d/serial 腳本中。

關於在 UNIX 上配置撥入數據機有兩種主要的流派。一種是將本地計算機到數據機的 RS-232 介面配置為固定速率。 這樣做的好處是,遠程用戶總能立即見到系統的登錄提示符, 而其缺點則是,系統並不知道用戶真實的數據速率是多少, 因而, 類似 Emacs 這樣的程序, 也就無法調整它們繪制屏幕的方式, 以便為慢速連接改善響應時間。

另一種流派將數據機的 RS-232 介面速率配置為隨遠程用戶的連接速率變化。 例如, 對 V.32bis (14.4 Kbps) 連接, 數據機會讓自己的 RS-232 介面以 19.2 Kbps 的速率運行, 而 2400 bps 連接, 則會使數據機的 RS-232 介面以 2400 bps 的速率運行。 由於 getty 並不能識別具體的數據機的連接速率反饋信息, 因此, getty 會以初始速度給出一個 login: 提示, 並檢查用戶的響應字元。如果用戶看到亂碼, 則他們應知道此時應按下 Enter 鍵,直到看到可以辨認的提示符為止。 如果數據速率不匹配, 則 getty 會將用戶輸入的任何信息均視為 「亂碼」, 並嘗試以下一種速率來再次給出 login: 提示符。 這一過程可能需要令人作嘔地重復下去, 不過一般而言,用戶只要敲一兩下鍵盤就能看到正確的提示符了。 顯然, 這種登錄過程看起來不如前面所介紹的 「鎖定速率」 方法那樣簡單明了, 但使用低速連接的用戶,卻可以在運行全屏幕程序時得到更好的交互響應。

這一節將盡可能公平地介紹關於配置的信息,但更著力於介紹數據機速率隨連接速率變化的配置方法。

24.4.4.1 /etc/gettytab
/etc/gettytab是一個用來配置 getty 信息的 termcap 風格的文件。 請看看 gettytab 的聯機手冊了解完整的文件格式和功能列表。

24.4.4.1.1 鎖定速度的配置
如果您把您的modem的數據通訊率鎖定在一個特殊的速度上, 您不需要對 /etc/gettytab 文件作任何變化。

24.4.4.1.2 匹配速度的配置
您將需要在 /etc/gettytab 中設置一個記錄來告訴 getty 您希望在 modem 上使用的速度。 如果您的 modem 的速率是 2400 bit/s, 則可以使用現有的 D2400 的記錄。

#
# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
#
D2400|d2400|Fast-Dial-2400:\
:nx=D1200:tc=2400-baud:
3|D1200|Fast-Dial-1200:\
:nx=D300:tc=1200-baud:
5|D300|Fast-Dial-300:\
:nx=D2400:tc=300-baud:
如果您有一個更高速度的 modem, 必須在 /etc/gettytab 中添加一個記錄。 下面是一個讓您可以以最高 19.2 Kbit/s 的用在 14.4 Kbit/s的modem上的介面記錄:

#
# Additions for a V.32bis Modem
#
um|V300|High Speed Modem at 300,8-bit:\
:nx=V19200:tc=std.300:
un|V1200|High Speed Modem at 1200,8-bit:\
:nx=V300:tc=std.1200:
uo|V2400|High Speed Modem at 2400,8-bit:\
:nx=V1200:tc=std.2400:
up|V9600|High Speed Modem at 9600,8-bit:\
:nx=V2400:tc=std.9600:
uq|V19200|High Speed Modem at 19200,8-bit:\
:nx=V9600:tc=std.19200:
這樣做的結果是 8-數據位, 沒有奇偶校驗的連接。

上面使用19.2 Kbit/s的連接速度的例子,也可以使用 9600 bit/s (for V.32), 2400 bit/s, 1200 bit/s,300 bit/s, 直到 19.2 Kbit/s。 通訊率的調節使用 nx= (「next table」) 來實現。 每條線使用一個 tc= (「table continuation」) 的記錄來加速對於一個特殊傳輸率的標准設置。

如果您有28.8 Kbit/s的modem,或您想使用它的 14.4Kbit/s 模式,就需要使用一個更高的超過 19.2 Kbit/s 的通訊速度的 modem。 這是一個啟動 57.6 Kbit/s 的 gettytab 記錄的例子:

#
# Additions for a V.32bis or V.34 Modem
# Starting at 57.6 Kbps
#
vm|VH300|Very High Speed Modem at 300,8-bit:\
:nx=VH57600:tc=std.300:
vn|VH1200|Very High Speed Modem at 1200,8-bit:\
:nx=VH300:tc=std.1200:
vo|VH2400|Very High Speed Modem at 2400,8-bit:\
:nx=VH1200:tc=std.2400:
vp|VH9600|Very High Speed Modem at 9600,8-bit:\
:nx=VH2400:tc=std.9600:
vq|VH57600|Very High Speed Modem at 57600,8-bit:\
:nx=VH9600:tc=std.57600:
如果您的 CPU 速度較低, 或系統的負荷很重, 而且沒有 16550A 的串口,您可能會在57.6 Kbit/s 上得到 「sio」 「silo」錯誤。

24.4.4.2 /etc/ttys
/etc/ttys文件的配置在 例 24-1中介紹過。 配置 modem 是相似的, 但我們必須指定一個不同的終端類型。鎖定速度和匹配速度配置的通用格式是:

ttyd0 "/usr/libexec/getty xxx" dialup on
上面的第一條是這個記錄的設備特定文件 —— ttyd0 表示 /dev/ttyd0 是這個 getty 將被監視的文件。 第二條 "/usr/libexec/getty xxx" 是將運行在設備上的進程 init。 第三條,dialup,是默認的終端類型。 第四個參數, on, 指出了線路是可操作的 init。也可能會有第五個參數, secure, 但它將只被用作擁有物理安全的終端 (如系統終端)。

默認的終端類型可能依賴於本地參考。 撥號是傳統的默認終端類型,以至用戶可以定製它們的登錄腳本來注意終端什麼時候撥號, 和自動調節它們的終端類型。 然而,作者發現它很容易在它的站點上指定 vt102 作為默認的終端類型,因為用戶剛才在它們的遠程系統上使用的是VT102模擬器。

您對/etc/ttys作修改之後,您可以發送 init 進程給一個 HUP 信號來重讀文件。您可以使用下面的命令來發送信號:

# kill -HUP 1
如果這是您的第一次設置系統, 您可能要在發信號 init 之前等一下,等到您的 modem 正確地配置並連接好。

24.4.4.2.1 鎖定速度的配置
對於一個鎖定速度的配置,您的 ttys 記錄必須有一個為 getty 提供固定速度的記錄。 對於一個速度被鎖定在 19.2kbit/s 的 modem, ttys 記錄是這樣的:

ttyd0 "/usr/libexec/getty std.19200" dialup on
如果您的 modem 被鎖定在一個不同的數據速度, 為 std.speed 使用適當的速度來代替 std.19200。 確信您使用了一個在 /etc/gettytab 中列出的正確的類型。

24.4.4.2.2 匹配速度的設置
在一個匹配速度的設置中,您的 ttys 錄需要參考在 /etc/gettytab 適當的起始 「auto-baud」 記錄。 例如, 如果您為一個以 19.2 Kbit/s 開始的可匹配速度的 modem 添加上面建議的記錄, 您的 ttys 記錄可能是這樣的:

ttyd0 "/usr/libexec/getty V19200" dialup on
24.4.4.3 /etc/rc.d/serial
高速數據機, 如使用 V.32、 V.32bis, 以及 V.34 的那些, 需要使用硬體 (RTS/CTS) 流控制。 您可以在 /etc/rc.d/serial 中增加 stty 命令來在 FreeBSD 內核中, 為數據機設置硬體流控制標志。

例如, 在 1 號串口 (COM2) 撥入和撥出設備上配置 termios 標志 crtscts, 可以通過在 /etc/rc.d/serial 增加下面的設置來實現:

# Serial port initial configuration
stty -f /dev/ttyd1.init crtscts
stty -f /dev/cuad1.init crtscts
24.4.5 Modem 設置
如果您有一個 modem, 它的參數能被存儲在非易失性的 RAM 中,您將必須使用一個終端程序來設置參數 (比如 MS-DOS? 下的 Telix 或者 FreeBSD 下的 tip)。使用同樣的通訊速度來連接 modem 作為初始速度 getty 將使用和配置 modem 的非易失性 RAM 來適應這些要求:

連接時宣告 CD

操作時宣告 DTR; DTR 消失時掛斷線路並復位數據機

CTS 傳輸數據流控制

禁用 XON/XOFF 流控制

RTS 接收數據流控制

寧靜模式 (無返回碼)

無命令回顯

請閱讀您 modem 的文檔找到您需要用什麼命令和 DIP 介面設置。

例如,要在一個 U.S. Robotics? Sportster? 14400 的外置 modem 上設置上面的參數,可以用下面這些命令:

ATZ
AT&C1&D2&H1&I0&R2&W
您也可能想要在 modem 上尋找機會調節這個設置, 例如它是否使用 V.42bis 和 MNP5 壓縮

外置 modem 也有一些用來設置的 DIP 開關, 也許您可以使用這些設置作為一個例子:

Switch 1: UP —— DTR Normal

Switch 2: N/A (Verbal Result Codes/Numeric Result Codes)

Switch 3: UP —— Suppress Result Codes

Switch 4: DOWN —— No echo, offline commands

Switch 5: UP —— Auto Answer

Switch 6: UP —— Carrier Detect Normal

Switch 7: UP —— Load NVRAM Defaults

Switch 8: N/A (Smart Mode/Dumb Mode)

在撥號 modem 上的結果代碼應該被 禁用/抑制, 以避免當 getty 在 modem 處於命令模式並回顯輸入時錯誤地給出 login: 提示時可能造成的問題。 這樣可能導致 getty 與 modem 之間產生更長的不必要交互。

24.4.5.1 鎖定速度的配置
對於鎖定速度的配置, 您需要配置 modem 來獲得一個不依賴於通訊率的穩定的 modem到計算機 的傳輸率。 在一個 U.S. Robotics Sportster 14400 外置 modem 上, 這些命令將鎖定 modem 到計算機的傳輸率:

ATZ
AT&B1&W
24.4.5.2 匹配速度的配置
對於一個變速的配置, 您需要配置 modem 調節它的串口傳輸率匹配接收的傳輸率。 在一個 U.S. Robotics Sportster 14400 的外置 modem 上, 這些命令將鎖定 modem 的錯誤修正傳輸率適合命令要求的速度,但允許串口速度適應沒有糾錯的連接:

ATZ
AT&B2&W
24.4.5.3 檢查modem的配置
大多數高速的modem提供了用來查看當前操作參數的命令。 在USR Sportster 14400外置modem上, 命令 ATI5 顯示了存儲在非易失性RAM中的設置。要看看正確的 modem 操作參數, 可以使用命令 ATZ 然後是 ATI4。

如果您有一個不同牌子的 modem, 檢查 modem 的使用手冊看看如何雙重檢查您的 modem 的配置參數。

24.4.6 問題解答
這兒是幾個檢查撥號modem的步驟。

24.4.6.1 檢查FreeBSD系統
把您的modem連接到FreeBSD系統, 啟動系統, 然後, 如果您的 modem 有一個指示燈,當登錄時看看 modem 的 DTR 指示燈是否亮: 會在系統控制台出現命令行——如果它亮, 意味著 FreeBSD 已經在適當的通訊埠啟動了一個 getty 進程, 等待 modem 接收一個呼叫。

如果DTR指示燈不亮, 通過控制台登錄到 FreeBSD系統,然後執行一個 ps ax 命令來看 FreeBSD 是否正在正確的埠運行 getty進程。您將在進程顯示中看到像這樣的一行:

114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1
如果您看到是這樣的:

114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0
modem 不接收呼叫, 這意味著 getty 已經在通訊埠打開了。這可以指出線纜有問題或 modem 錯誤配置, 因為 getty 無法打開通訊埠。

如果您沒有看到任何 getty 進程等待打開想要的 ttydN 埠, 在 /etc/ttys 中雙擊您的記錄看看那兒是否有錯誤。 另外,檢查日誌文件 /var/log/messages 看看是否有一些來自 init 或 getty 的問題日誌。 如果有任何信息, 仔細檢查配置文件 /etc/ttys 和 /etc/gettytab,還有相應的設備文件 /dev/ttydN,是否有錯誤,丟失記錄,或丟失了設備指定文件。

24.4.6.2 嘗試接入Try Dialing In
設法撥入系統。 確信使用8位, 沒有奇偶檢驗, 在遠程系統上的1阻止位。如果您不能立刻得到一個命令行, 試試每隔一秒按一下 Enter。如果您仍沒有看到一個登錄: 設法發送一個 BREAK。如果您正使用一個高速的 modem 來撥號, 請在鎖定撥號 modem 的介面速度後再試試。

如果您不能得到一個登錄:prompt,再檢查一下 /etc/gettytab,重復檢查:

在/etc/ttys 中指定的初始可用的名稱與 /etc/gettytab 的一個可用的相匹配。

每個 nx= 記錄與另一個 gettytab 可用名稱匹配。

每個 tc= 記錄與另一個 gettytab可用名稱相匹配。

如果您撥號但 FreeBSD 系統上的 modem 沒有回應, 確信 modem 能回應電話。 如果 modem 看起來配置正確了, 通過檢查 modem 的指示燈來確認 DTR 線連接正確。

如果您做了好幾次,它仍然無法工作,打斷一會,等會再試試。 如果還不能工作,也許您應該發一封電子郵件給 FreeBSD 一般問題郵件列表 尋求幫助。

㈢ 怎樣設置FreeBSD的字元界面的解析度

字元界面(非圖形界面)的解析度是無法設置的;

如果是圖形界面下的終端顯示,可以設置軟體。

㈣ FreeBSD 為什麼要廢棄 GCC 改用 Clang/LLVM

因為 GCC 是 GPL/LGPL 的,和 BSD 的協議不兼容(但是 BSD 的源代碼可以被 GPL 項目引用,但是會被污染成 GPL)。這不符合 BSD 的協議風格。
所以 FreeBSD 換了編譯器,自己寫一個編譯器還是很不容易的,正好 llvm 是 BSD 的協議。和 FreeBSD 自己的協議完全一樣,就拿來用了。

㈤ 求FreeBSD的教程

FreeBSD連載(94):基於NAT的負載均衡技術 (王波 2月3日 17:06)
FreeBSD連載(93):反向代理負載均衡 (王波 2月3日 02:26)
FreeBSD連載(92):基於DNS的負載均衡 (王波 2月2日 01:04)
FreeBSD連載(91):提升靜態網頁服務能力的綜合方式 (王波 2月1日 13:24)
FreeBSD連載(90):單伺服器性能調整 (王波 1月31日 13:22)
FreeBSD連載(89):CGI和SSI的安全性 (王波 1月30日 16:17)
FreeBSD連載(88):安全連接方式SSL (王波 1月29日 00:38)
FreeBSD連載(87):基於用戶的訪問控制 (王波 1月28日 17:07)
FreeBSD連載(86):對IP地址和域名的控制 (王波 1月27日 14:59)
FreeBSD連載(85):配置Apache伺服器(2) (王波 1月26日 15:03)
FreeBSD連載(84):配置Apache伺服器(1) (王波 1月25日 13:29)
FreeBSD連載(83):Apache基本安裝 (王波 1月24日 14:29)
FreeBSD連載(82):數據處理方式 (王波 1月23日 01:55)
FreeBSD連載(81):超文本傳輸協議HTTP (王波 1月22日 18:15)
FreeBSD連載(80):構建防火牆 (王波 1月21日 13:06)
FreeBSD連載(79):設置和使用ipfilter (王波 1月20日 15:30)
FreeBSD連載(78):設置和使用ipfw/natd (王波 1月19日 18:03)
FreeBSD連載(77):安全工具 (王波 1月18日 13:28)
FreeBSD連載(76):設置基本系統 (王波 1月17日 13:00)
FreeBSD連載(75):防火牆技術 (王波 1月16日 15:26)
FreeBSD連載(74):安全問題 (王波 1月15日 14:21)
FreeBSD連載(73):認證與加密 (王波 1月14日 13:25)
FreeBSD連載(72):設置和使用DHCP (王波 1月13日 15:16)
FreeBSD連載(71):DHCP的工作過程 (王波 1月12日 14:45)
FreeBSD連載(70):用SharityLight裝SMB文件系統 (王波 1月11日 17:03)
FreeBSD連載(69):使用smbclient訪問Windows資源 (王波 1月10日 14:29)
FreeBSD連載(68):根據Windows網路設置Samba (王波 1月9日 18:26)
FreeBSD連載(67):配置samba (王波 1月8日 17:02)
FreeBSD連載(66):安裝samba (王波 1月7日 13:42)
FreeBSD連載(65):SMB/CIFS協議 (王波 1月6日 13:05)
FreeBSD連載(64):NetBIOS名字解析 (王波 1月6日 11:41)
FreeBSD連載(63):集成Unix和Windows的方式 (王波 1月4日 19:35)
FreeBSD連載(62):升級系統 (王波 1月3日 13:55)
FreeBSD連載(61):其他內核設置選項 (王波 1月3日 13:39)
FreeBSD連載(60):預設內核配置選項 (王波 1月3日 11:23)
FreeBSD連載(59):編譯安裝新內核 (王波 12月31日 16:36)
FreeBSD連載(58):為編譯內核准備源代碼 (王波 12月30日 15:44)
FreeBSD連載(57):可執行程序格式 (王波 12月29日 15:01)
FreeBSD連載(56):手工編譯安裝程序 (王波 12月28日 11:11)
FreeBSD連載(55):Ports Collection (王波 12月27日 16:23)
FreeBSD連載(54):配置文件XF86Config (王波 12月26日 16:09)
FreeBSD連載(53):中文X伺服器 (王波 12月25日 12:50)
FreeBSD連載(52):外掛式中文顯示與輸入軟體 (王波 12月24日 15:52)
FreeBSD連載(51):中文X應用軟體 (王波 12月23日 13:49)
FreeBSD連載(50):定製X Window的基本方法 (王波 12月22日 13:45)
FreeBSD連載(49):進入X Window (王波 12月21日 16:20)
FreeBSD連載(48):X Window的基本概念 (王波 12月21日 15:56)
FreeBSD連載(47):使用xf86config配置X伺服器 (王波 12月19日 17:59)
FreeBSD連載(46):使用XF86Setup配置X伺服器 (王波 12月19日 17:46)
FreeBSD連載(45):安裝XFree86 (王波 12月17日 18:23)
FreeBSD連載(44):X Free86的硬體要求 (王波 12月16日 13:34)
FreeBSD連載(43):NFS伺服器 (王波 12月15日 18:57)
FreeBSD連載(42):NFS客戶支持 (王波 12月14日 14:09)
FreeBSD連載(41):在FreeBSD上查看郵件 (王波 12月14日 13:50)
FreeBSD連載(40):郵件伺服器 (王波 12月12日 18:59)
FreeBSD連載(39):定義自己的名字服務 (王波 12月11日 15:02)
FreeBSD連載(38):配置緩沖或轉發方式的named (王波 12月10日 11:40)
FreeBSD連載(37):DNS的體系結構 (王波 12月9日 14:20)
FreeBSD連載(36):PPP協議 (王波 12月8日 13:09)
FreeBSD連載(35):串口和modem (王波 12月7日 11:30)
FreeBSD連載(34):手工配置網路 (王波 12月6日 11:44)
FreeBSD連載(33):DOD參考模型 (王波 12月5日 18:11)
FreeBSD連載(32):系統備份 (王波 12月5日 17:50)
FreeBSD連載(31):系統日誌 (王波 12月3日 17:11)
FreeBSD連載(30):配置列印機 (王波 12月2日 23:09)
FreeBSD連載(29):列印機配置:系統結構 (王波 12月2日 00:52)
FreeBSD連載(28):Packages Collection (王波 11月30日 17:05)
FreeBSD連載(27):應用軟體的類別 (王波 11月29日 12:23)
FreeBSD連載(26):進程的許可權 (王波 11月28日 18:31)
FreeBSD連載(25):定時執行程序 (王波 11月28日 18:17)
FreeBSD連載(24):查看系統狀態 (王波 11月26日 16:10)
FreeBSD連載(23):配置系統時間 (王波 11月25日 12:44)
FreeBSD連載(22):調整控制台設置 (王波 11月24日 17:43)
FreeBSD連載(21):管理交換設備 (王波 11月23日 13:03)
FreeBSD連載(20):建立文件系統 (王波 11月22日 15:30)
FreeBSD連載(19):檢查硬碟調整文件系統的目錄結構 (王波 11月21日 18:29)
FreeBSD連載(18):軟盤操作 (王波 11月21日 17:24)
FreeBSD連載(17):安裝文件系統 (王波 11月19日 16:00)
FreeBSD連載(16):設備文件 (王波 11月18日 16:37)
FreeBSD連載(15):文件的屬性 (王波 11月17日 19:49)
FreeBSD連載(14):shell設置 (王波 11月16日 15:04)
FreeBSD連載(13):超級用戶root、登錄類別 (王波 11月15日 19:16)
FreeBSD連載(12):用戶管理-增加用戶 (王波 11月14日 17:20)
FreeBSD連載(11):系統登錄與退出 (王波 11月13日 04:20)
FreeBSD連載(10):系統啟動腳本 (王波 11月12日 13:20)
FreeBSD連載(09):系統啟動過程 (王波 11月11日 16:03)
FreeBSD連載(08):其他安裝問題 (王波 11月10日 20:57)
FreeBSD連載(07):基本系統配置 (王波 11月9日 18:11)
FreeBSD連載(06):安裝FreeBSD ( 11月8日 16:29)
FreeBSD連載(05):安裝之前的准備 (王波 11月7日 18:20)
FreeBSD連載(04):FreeBSD的相關資源 (王波 11月6日 02:09)
FreeBSD連載(03):其他相關系統和組織 (王波 11月5日 14:46)
FreeBSD連載(02):FreeBSD的功能特點 (王波 11月4日 18:28)
FreeBSD連載(01):FreeBSD的起源 (王波 11月3日 17:19)
FreeBSD連載:FreeBSD使用大全目錄 (王波 11月3日 03:58)
FreeBSD連載:作者自序 (王波 11月3日 03:14)

http://tech.sina.com.cn/focus/FreeBSD/index.shtml

㈥ 如何在freebsd下交叉編譯arm-linux

1. 下載源文件、補丁和建立編譯的目錄 2. 建立內核頭文件 3. 建立二進制工具(binutils) 4. 建立初始編譯器(bootstrap gcc) 5. 建立c庫(glibc) 6. 建立全套編譯器(full gcc)

㈦ 有誰知道如何安裝配置安全的freeBSD還有php.ini怎麼配置

我的FreeBSD5.3配置筆記(相同於5.4\6.0)

接觸FreeBSD時間不長,我發現配置FreeBSD對於象我這樣的新手還是很有些困難,經過幾天的研究取得了一點進展,現在我的配置方法寫出來希望新手能少走一些彎路。
1.安裝完成配置xorg,命令如下:
#Xorg -configure
這時,當前目錄下就多了一個xorg.conf.new的文件,把它cp到/etc/X11/下:
#cp xorg.conf.new /etc/X11/xorg.conf
然後,編輯xorgcfg -textmode,修改一下屏幕的解析度.

2.啟動gnome
在用戶主目錄下創建.xinitrc文件,加入以下內容:
exec gnome-session
#startx 即進入gnome

3.啟動KDE
方法1:
在用戶主目錄下創建.xinitrc文件,加入以下內容:
exec startkde

方法2:
修改一下/usr/X11R6/1ib/X11/xinit/xinitrc文件
拉到文件最後...看到..twm了嗎...從這里起..後最後前面都加#吧..
然後加上一句:
startkde

方法3:
直接輸入
# echo "/usr/local/bin/startkde" >> ~/.xinitrc 就行了

4.打開聲音
修改/boot/defaults/loader.conf
將下面兩項的NO改為YES
sound_load="NO"
snd_driver_load="NO"

5.漢化圖形界面
1.安裝kde-i18n-zh_CN:
#cd /usr/ports/chinese/kde3-i18n-zh_CN
#make install clean
2.安裝字體
在/usr/X11R6/lib/X11/fonts/下建立TrueType目錄
將windows下的SIMSUN.TTC復制到TrueType目錄
雙擊SIMSUN.TTC,字體就安裝好了
3.更改語言環境為中國,簡體中文
4.在KDE的控制中心》外觀和主題》字體 中修改字體為SIMSUN

6.安裝fcitx輸入法
1.通過ports安裝fcitx
#cd /usr/ports/chinese/fcitx
#make install
2.修改~/.xinitrc,添加:
export LANG=zh_CN.eucCN
export LC_CTYPE=zh_CN.eucCN
export XMODIFIERS='@im=fcitx'
fcitx&
exec startkde
6.#qtconfig
然後選擇-->Interface--->XIM Input Style 選Over the Spot(上面的復選框也選上)-->File--Save

7.掛載windows分區並支持中文文件名
1.建立掛載點,在/mnt/下建立文件夾C,D,E,F
2.修改/etc/fstab文件,加入windows分區,並把分區掛載到剛才建好的目錄上,設置許可權為讀寫,語言為中文並自動掛載
/dev/ad0s1 /mnt/C msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s5 /mnt/D msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s6 /mnt/E msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s7 /mnt/F msdos rw,-L=zh_CN.eucCN,auto 0 0

8.激活滑鼠滾輪
修改/etc/xorg.conf
在"Mouse"中加入
Option "ZAxisMapping" "4 5"
保存推出,重啟X。

9.調整屏幕偏移
開個終端窗口運行xvidtune,調整好之後現不要退出,點一下那個「Show」按鈕,終端窗口中會顯示幾行類似於這樣的信息:

hsync range 0: 31.50 - 48.50
vsync range 0: 40.00 - 70.00
"1024x768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync

打開/etc/X11/XF86Config或者xorg.conf文件,找到Section "Monitor"段,在EndSection前面加入一行:
# 這里填入上面顯示的第3行信息,前面加上ModeLine
ModeLine "1024x768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync

保存退出,重啟X。

FreeBSD配置:

更新FreeBSD

完成了安裝、配置,FreeBSD基本上就算裝完了。不過,目前為止沒有哪個通用操作系統能夠保證「bug-free」,FreeBSD也一樣。在重新啟動之後,我們需要做一些調整;並且,通過重新配置內核,我們可以得到一個更小、更快的操作系統。

第一步要做的是同步源代碼。FreeBSD是一套開放源代碼的操作系統,它的全部源代碼都可以通過cvsup與中央cvsup伺服器,或它的某個鏡像同步。

cvsup是一個可選的package,同樣的,它也可以從ports裡面安裝(/usr/ports/devel/cvsup和 /usr/ports/devel/cvsup-nogui)。考慮到許多應用程序都依賴X的庫文件,在前面安裝的部分我安裝了它,並且直接安裝了 cvsup的package。不過,如果你有足夠的耐心去一個一個地make需要的ports,那麼先安裝ports collection,然後make cvsup-nogui也是一個不錯的主意,盡管這需要比較長的時間。

創建一個用於cvsup(1)的supfile,命名為stable-supfile:

(default host中選定的cvsup伺服器——ftp.bjpu.e.cn對訪問的IP進行了限制,筆者只在北京工業大學校內使用過,因此如果您無法連接這個伺服器,請嘗試www.cn.freebsd.org,或cvsup.freebsd.org)

*default host=ftp.bjpu.e.cn
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
src-all
ports-all tag=.

隨後執行

cvsup -g -L 2 stable-supfile

這里需要稍微解釋一下FreeBSD的幾種版本。

FreeBSD包括3類分支:-RELEASE,-STABLE和-CURRENT。FreeBSD 3.x、4.x和5.0是目前受到維護的版本,如果你期待穩定運行,那麼,可以選擇的最新版本將是FreeBSD 4.6-STABLE(如果你是在4.6.2-RELEASE發行之後更新的,那麼它實際上比4.6.2-RELEASE新,並且,它正式的CVS tag是RELENG_4,即FreeBSD 4-STABLE)。

那麼,三類分支有什麼區別呢?

FreeBSD的開發是非常活躍的。系統中可能會隨時引入一些新的特性。最新的代碼是在-CURRENT分支中引入的。-CURRENT的修改非常頻繁,每天都可能有數百處修改。使用-CURRENT分支的FreeBSD需要耐心和勇氣,因為你的系統隨時可能崩潰(隨著FreeBSD 5.0開發尾聲的接近,這種現象已經越來越少),make world也可能空手而歸(沒有人保證-CURRENT分支能夠正常編譯),此外,這個分支的性能也不好(因為調試的原因,這個分支引入了大量的調試選項,這意味著運行速度不會太快)。當然,正像它的名字那樣,-CURRENT分支的版本也是最新的5.0,而且,一切FreeBSD的錯誤和漏洞的修正都是首先在-CURRENT分支引入的。目前,-CURRENT分支碩果僅存的只有FreeBSD 5-CURRENT(指定cvs tag時寫「.」),這個分支包括了FreeBSD 5.0開發的最新進展。

FreeBSD 5中將引入大量的新特性,包括核心級線程(目前FreeBSD中的線程支持僅限於用戶級線程,這在多處理器的環境下性能不夠好,當然,目前使用fork ()來支持的多進程線程模擬能夠提供類似核心級線程的功能,但並不是所有的程序員都知道如何使用fork)、完整的Soft Updates(這一變化將提供更好的文件系統性能,同時提供更好的穩定性),等等。如果你有快速的Internet連接,一台或一些空餘的機器(當然,不是生產用的伺服器),並且希望為FreeBSD的開發作貢獻,或者你關心操作系統的最新發展,那麼,-CURRENT分支是最好的選擇。此外,

由於-CURRENT分支性能不好、穩定性不夠等這些缺點,對於生產的伺服器來說,通常運行的應該是FreeBSD-STABLE。如同它的名字那樣, FreeBSD-STABLE的目的是「穩定地運行」。-CURRENT分支中的代碼,在經過一段時間(通常是7到90天,但安全更新屬於特例,通常會在幾個小時)的驗證之後,符合版本條件(有些新特性只能用於FreeBSD 5.0)的代碼會被FreeBSD-STABLE吸收,這個操作稱作MFC(Merge From -CURRENT,不是Microsoft Foundation Classes:P)。

由於FreeBSD 5.0的第一個RELEASE至今仍然沒有發布,因此,目前還沒有5.0-STABLE。目前,FreeBSD-STABLE有兩個版本,FreeBSD 3-STABLE和FreeBSD 4-STABLE,分別對應3.x和4.x的最新穩定版代碼(對應的cvs tag分別是RELENG_3和RELENG_4)。由於版本的更新換代,其中3.x的-STABLE正在逐漸消亡。FreeBSD-STABLE每天平均會修改10個左右的文件。

每隔一段時間,FreeBSD的發行工程組(Release Engineering Team)會對FreeBSD-STABLE的源代碼樹進行鎖定。這段時間(目前的規定是30天,之前還有30天准備)內,所有的MFC操作都需要發行工程組的批准,因此,FreeBSD-STABLE在這個階段基本不會引入任何新的特性。經過這段時間之後,發行工程組會在最後鎖定ports樹,並 build一份所有的package,之後,這份鎖定的-STABLE,可能經過若干RC(Release Candidate),被命名為RELEASE,並製作光碟發行。

顧名思義,-RELEASE的設計目標是「發行」。一個版本一旦RELEASE,那麼他的功能就不會再增加了。此後的所有維護的目標都只有一個,那就是絕對穩定。如果你和-RELEASE分支同步,那麼絕不會出現make無法通過的情況,而且,通常這也可以保證你的系統「絕對」穩定,因為它不會引入任何新功能(例如,4.6就是4.6,如果你想要4.6.2的功能,必須明確地指定4.6.2)。

目前,FreeBSD有很多RELEASE版本,它們的cvs tag如下。我個人建議使用最新的4.6.2-RELEASE。

對於多數人來說,-RELEASE是一個比較極端的選擇。無論何時出現版本升級,如果你想跟進,那都必須修改supfile,如果你選擇不跟進,那麼就可能造成ports工作異常。如果經常更新,-RELEASE可以保證操作系統本身的安全性,但同其他分支一樣,如果ports出了問題,那麼也得一塊 make,而既然這樣,還不如使用-STABLE。

如果你符合下面的條件,那麼RELEASE分支可能比-STABLE分支更適合你

* 你使用的軟體對於操作系統的變化非常敏感,比如,它只能FreeBSD 4.5,而無法在4.6上運行;同時,你不打算採用它的更新版本,或者它的作者拒絕更新
* 操作系統的更新對於你來說沒有任何意義,比如,你打算把FreeBSD當作一個相對固定的嵌入式操作系統來使用,例如,作為防火牆的一部分
* 更新會對你造成困擾,操作系統的絕大多數新特性對於你來說除了增加煩惱之外,不能帶來任何其他東西。

-並且,符合以下的全部條件-

* 你每天察看FreeBSD,以及使用的全部軟體的安全公告
* 你的Internet連接比較通暢

目前我本人維護的所有主機,除了作為防火牆的那台之外,使用的都是FreeBSD-STABLE。

一旦同步完源代碼,就應該對整個系統進行更新。如果你沒有每天察看安全公告的習慣,那就應該關心一下cvsup到底更新了哪些代碼。nectar是目前 FreeBSD的Security Officer。如果你發現他一下子更新了許多代碼,那麼對你來說立即make world和kernel很可能是必需的。

為了更新整個系統,在/usr/src中執行

make world

以及

make kernel KERNCONF=內核配置文件名

當然,也可以連起來執行:

make world kernel KERNCONF=內核配置文件名

如果你的計算機運行速度較慢,那麼,對於基本系統的更新(相當於不包括庫的一次world),可以用

make most

替代make world,但make world是一個不錯的主意,因為它能夠保證對C運行環境的改變應用到所有的程序中,如果修正的不是動態連接的C函數庫,那麼make world可以保證代碼的一致性。

make kernel是一個需要重新啟動的操作。如果你的make world修改了系統的關鍵服務,那麼最好也重新啟動一下。我很少有耐心看完make world和kernel的執行,根據系統的運行速度不同,這需要一個小時到一天的時間,而且,不是所有的SSH客戶端都能夠長時間正確的執行,例如, SecureCRT的多個版本都有內存泄漏問題。

為了解決這個問題,我用下面的命令來完成更新:

make world kernel KERNCONF=內核配置文件名 clean > /var/log/world,out && reboot &

這個命令能夠記錄更新的全過程,如果在什麼地方編譯失敗,你可以很快地找到原因。對於多數人來說,由於後面的&&,只需要察看uptime就能知道便以是否成功。

需要說明的是,FreeBSD的make world並不總能成功。有時需要修改一些環境變數才能成功完成make。為了保證make成功,在/usr/src中執行任何make操作之前,建議你看一眼UPDATING中是否有特殊的要求(這種要求並不是在FreeBSD Release的時候才會出現,很多時候他會在某個CURRENT中引入,然後隨著MFC進入-STABLE分支),並且,在進行大的版本升級之前(跨 RELEASE,甚至主版本號),首先執行下面的命令

mergemaster -p

並在make world之後執行

mergemaster -i

運行mergemaster腳本需要一定的Unix配置知識,不過,由於配置文件中包含很多幫助信息,因此,只要master.passwd、group 這樣的文件不出大問題(如果cvsup更新了master.passwd,那麼就需要留神,因為master.passwd標准配置是root口令為空,這時需要用m來合並,而不是使用i安裝),mergemaster並不會引入什麼新的問題。

前一條命令是更新make的配置(/etc/defaults/make.conf和/etc/make.conf)。對於多數人來說,除非進行跨版本升級,否則一般情況下是不需要這樣做的。後一條命令是同步全部配置,並安裝以前不存在的配置文件,而不進行提示。

筆者曾經遇到過FreeBSD因為系統日期不正確而無法make的情況,因此,再次特別提醒大家,如果你的系統日期不正確,最好是用date命令修改一下,或者乾脆用ntpdate或ntpd來同步時間。關於如何使用ntp,將在以後說明。

以後我們將講解FreeBSD內核的配置,以及如何配置make.conf來優化FreeBSD的編譯結果。

「簡單的東西不容易出問題。」

至理名言!事實上,削減操作系統中那些對你沒用的功能是一件非常重要的事情。這不僅僅意味著一個更小的操作系統,佔用更少的磁碟空間(現在的硬碟少說也有幾十GB,幾兆的空間根本就是九牛一毛),而且意味著你被攻擊的可能性也更低——簡而言之,你不需要擔心操作系統中沒有安裝的模塊存在問題會對你造成影響。

這篇文章中,我們將一起對FreeBSD-i386的內核進行優化配置。這篇文章是針對FreeBSD4.7-STABLE寫的,並且,FreeBSD 4.x的配置不會和這篇文章有太大出入。如果你要優化FreeBSD 5或FreeBSD 2/3的內核的話,則需要仔細參考它們的LINT文件了(後面將會提到)。

[注意:FreeBSD 5.0預定將於2002年11月20日發布。FreeBSD的開發組非常重視發行版本的質量,並認為這比發行版本的計劃還重要,但由於同樣的原因,我們往往會發現FreeBSD實際發行的版本比預定計劃晚一些,通常在半個月之內。FreeBSD 5.0作為FreeBSD近期最為重要的發行版本,很可能也會延後發表,但筆者個人認為無論如何我們在今年年底之前肯定是可以看到最終的發行版本的。 FreeBSD 5.0對系統進行了大量的修改,這一系列的文章將在FreeBSD 5.0發布當天發表針對5.0的修訂版本,而現有版本將保留,但進入維護階段,不再引入新的內容。]

FreeBSD的源代碼可以直接從中央cvsup伺服器同步,也可以作為系統的一部分在安裝的時候一兵裝上。前面已經說過如何同步源代碼,在此不再贅述。 FreeBSD的源代碼(通常在/usr/src)包含建造基本系統的全部代碼,而在/usr/src/sys中則有若干個目錄,對應不同的計算機體系結構(4.x只支持i386和alpha)。i386是一個泛指的名字,包含了與Intel 80386兼容的所有機器,並不是特指80386。

簡單介紹一下FreeBSD的內核文件。在4.x系統中,/kernel這個文件是默認的內核,通常正常啟動使用的就是它。 /kernel.GENERIC這個文件是兼容性較強的內核,如果/kernel無法引導系統,就得靠這個文件來引導。/kernel.old是本次make kernel之前的內核,通常如果你的kernel壞掉,也可以考慮使用/kernel.old來引導系統。

/moles/是內核的模塊,而/moles.old/是對應/kernel.old的模塊。這些文件在每次替換kernel的時候都會同時替換。

在5.0中,內核以及內核的模塊都被保存在/boot/kernel中。

在/usr/src/sys/i386/conf中有兩個配置文件,GENERIC和LINT。其中GENERIC是make kernel的默認配置文件,直接make kernel生成的是GENERIC內核,但安裝時命名為/kernel。系統在安裝時會安裝一個kernel.GENERIC,以後,這個文件不會跟隨系統的make kernel更新,因此,如果你認為這個文件有必要更新的話,需要手工make kernel,並把/kernel改名為kernel.GENERIC。當然,通常並不需要這樣做。

LINT是包括幾乎所有內核編譯配置詳細信息的文件。這個配置並不是用來真正建立kernel的,他的主要用途是向用戶展示可用的內核編譯配置。在修改內核編譯配置時,最好先參考這個文件。

為了配置自己的內核,應將GENERIC復制為一個另外的文件。習慣上這個文件和主機名相同。例如,我把自己的這台Web機器命名為apache.intranet.frontfree.net,就把配置文件命名為APACHE:

cd /usr/src/sys/i386/conf
cp GENERIC APACHE

隨後,用ee APACHE編輯它。我們拿一個實際的GENERIC文件來說明。

為了節省篇幅,這個文件頭上的注釋被刪掉了一部分。
machine i386 # 體系模型為i386
cpu I386_CPU # 支持80386
cpu I486_CPU # 支持80486
cpu I586_CPU # 支持Pentium
cpu I686_CPU # 支持Pentium Pro以及更高
ident GENERIC # 內核文件的名字
maxusers 0 # 自動檢測同時允許的最大用戶數

#makeoptions DEBUG=-g # 包含調試符號。通常只有current版本打開
options MATH_EMULATE #支持協處理器模擬
options INET #支持互聯網
options INET6 #IPv6通訊協議
options FFS #伯克利快速文件系統
options FFS_ROOT #FFS作為根設備[必須保留]
options SOFTUPDATES #打開FFS soft updates支持
options UFS_DIRHASH #提高大型目錄的支持
options MFS #內存文件系統
options MD_ROOT #MD作為根設備
options NFS #Network Filesystem
options NFS_ROOT #NFS作為根設備(需要NFS)
options MSDOSFS #MSDOS文件系統
options CD9660 #ISO 9660文件系統(光碟)
options CD9660_ROOT #CD-ROM作為根設備(需要CD9660)
options PROCFS #進程文件系統
options COMPAT_43 #兼容4.3BSD[必須保留]
options SCSI_DELAY=15000 #檢測SCSI設備前的延時(ms)
options UCONSOLE #用戶可以奪取控制台
options USERCONFIG #boot -c編輯器 editor
options VISUAL_USERCONFIG #菜單式boot -c編輯器
options KTRACE #ktrace(1)支持
options SYSVSHM #SYSV-風格的共享內存
options SYSVMSG #SYSV-風格的消息隊列
options SYSVSEM #SYSV-風格的信號量(semaphores)
options P1003_1B #Posix P1003_1B實時擴展
options _KPOSIX_PRIORITY_SCHEDULING
options ICMP_BANDLIM #對惡意ICMP請求進行限制
options KBD_INSTALL_CDEV # 在/dev安裝一個CDEV設備

# 下面兩項在製作對稱多處理器(SMP)內核時需要
#options SMP #對稱多處理器內核
#options APIC_IO #對稱(APIC) I/O

device isa
device eisa
device pci

# 軟碟機
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device fd1 at fdc0 drive 1
#
# 如果使用東芝Libretto以及他的Y-E Y-E Data PCMCIA軟碟機
# 不要使用上面的fdc0,而應使用
#device fdc0

# ATA以及ATAPI設備
device ata0 at isa? port IO_WD1 irq 14
device ata1 at isa? port IO_WD2 irq 15
device ata
device atadisk # ATA 磁碟驅動器(IDE硬碟)
device atapicd # ATAPI 光碟機
device atapifd # ATAPI 軟碟機
device atapist # ATAPI 磁帶機
options ATA_STATIC_ID #靜態設備編號

# SCSI控制器
device ahb # EISA AHA1742 family
device ahc # AHA2940 板載AIC7xxx設備
device amd # AMD 53C974 (Tekram DC-390(T))
device isp # Qlogic family
device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (較新的晶元組)
options SYM_SETUP_LP_PROBE_MAP=0x40
# 使用ncr可以在配置了sym和ncr的情況下掛接舊的NCR設備

device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?

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

# SCSI 外設
device scbus # SCSI 匯流排(如果使用SCSI設備,必須有)
device da # Direct Access (硬碟)
device sa # Sequential Access (磁帶,等等)
device cd # CD
device pass # Passthrough device (直接 SCSI 訪問)

# 通過SCSI子系統介面的RAID控制器
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device dpt # DPT Smartcache - See LINT for options!
device iir # Intel Integrated RAID
device mly # Mylex AcceleRAID/eXtremeRAID
device ciss # Compaq SmartRAID 5* series

# RAID控制器
device aac # Adaptec FSA RAID, Dell PERC2/PERC3
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device amr # AMI MegaRAID
device mlx # Mylex DAC960 family
device twe # 3ware Escalade

# atkbdc0 控制鍵盤和PS/2滑鼠
device atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1 flags 0x1
device psm0 at atkbdc? irq 12

device vga0 at isa?

# 啟動畫面和屏幕保護程序
pseudo-device splash

# syscons 是默認的控制台驅動,類似SCO控制台
device sc0 at isa? flags 0x100

# 對於pcvt vt220控制台,啟用這個和PCVT_FREEBSD
#device vt0 at isa?
#options XSERVER # 在vt控制台支持X伺服器
#options FAT_CURSOR # 使用大游標
# 如果你是用ThinkPad,將下面的一行和其他PCVT相關設備的注釋去掉
#options PCVT_SCANSET=2 # IBM使用非標准鍵盤

# 浮點運算支持 - 請勿禁用
device npx0 at nexus? port IO_NPX irq 13

# 電源管理支持
device apm0 at nexus? disable flags 0x20 # Advanced Power Management

# PCCARD (PCMCIA) 支持
device card
device pcic0 at isa? irq 0 port 0x3e0 iomem 0xd0000
device pcic1 at isa? irq 0 port 0x3e2 iomem 0xd4000 disable

# 串口(COM)
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? disable port IO_COM3 irq 5
device sio3 at isa? disable port IO_COM4 irq 9

# 並口
device ppc0 at isa? irq 7
device ppbus # 並口匯流排 (所有並口設備都需要)
device lpt # 列印機
device plip # 並口TCP/IP
device ppi # 並口介面設備
#device vpo # 需要scbus和da

# PCI 乙太網適配器
device de # DEC/Intel DC21x4x (``Tulip'')
device em # Intel PRO/1000 adapter Gigabit Ethernet Card (``Wiseman'')
device txp # 3Com 3cR990 (``Typhoon'')
device vx # 3Com 3c590, 3c595 (``Vortex'')

# 使用公共的MII匯流排控制器代碼的PCI乙太網適配器
# 注意:一定要保留'device miibus'以確保可用
device miibus # MII匯流排支持
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device pcn # AMD Am79C97x PCI 10/100 NICs
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 BCM570x (``Tigon III'')

# ISA乙太網適配器
# 'device ed' 需要 'device miibus'
device ed0 at isa? port 0x280 irq 10 iomem 0xd8000
device ex
device ep
device fe0 at isa? port 0x300
# Xircom Ethernet
device xe
# PRISM I IEEE 802.11b wireless NIC.
device awi
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
device wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those parameters here.
device an
# The probe order of these is presently determined by i386/isa/isa_compat.c.
device ie0 at isa? port 0x300 irq 10 iomem 0xd0000
#device le0 at isa? port 0x300 irq 5 iomem 0xd0000
device lnc0 at isa? port 0x280 irq 10 drq 0
device cs0 at isa? port 0x300
device sn0 at isa? port 0x300 irq 10

# 偽設備 - 數字表示分配多少個
pseudo-device loop # 環回網路
pseudo-de

㈧ FreeBSD 到底是 微內核 還是單片式內核

所有的硬體驅動都必須是直接進入內核或編譯成內核模塊,否則kernel不知道how to communicate with your fucking device,你看看APUE就能大致了解,

Windows安裝硬體驅動的時候需要reboot的原因是需要載入驅動,而這個驅動不能直接載入,

你在FreeBSD或者Linux上面安裝一個驅動的時候就是一個內核模塊(基本上你用不著干這個,內核支持你的設備,編譯時告訴系統你需要這個設備就行了。這里沒有安裝驅動這么一個概念,但是某些硬體廠商確實是提供驅動程序),你可以直接編譯進入內核,你也可以編譯成模塊,然後隨意的載入入或者是卸載這個模塊,而且根本不用reboot。

㈨ FreeBSD和Linux到底有什麼不同

1、許可證
正如我們所知道的,Linux操作系統是基於 GPL 許可證授權下的。該許可證可防止開源軟體被轉換為封閉源代碼軟體及確保源代碼的可用性。 GPL 許可證的目的就是防止二進制包成為唯一的軟體發行源。
而 BSD 許可證的限制則要少得多,它甚至允許二進制包成為唯一的發行源。這就是核心差異,可以這樣理解:GPL 許可證讓您有權擁有任何你想要使用該軟體的方法,但你必須確保提供源代碼給下一個使用它的人(包括你對它的改變部分)。而 BSD 許可證並不是要求你必須那麼做。( 譯者註:這里分別是維基網路上對 BSD 及 GPL 許可證的解釋)
2、代碼控制
BSD 的代碼不是被控制在任何一個人手裡,而 Linux的內核基本上被 Linus Torvalds ( Linux創始人)所控制,BSD 並沒有單一的人來說什麼可以或什麼不可以進入代碼。相反,BSD 通過一個核心小組」 Core Team」來管理該項目,這個核心小組比非核心小組有更多的發言權來指導 BSD 社區的發展方向,(譯者註:而據我所知,FreeBSDD 核心小組的成員會每兩年選舉一次。)
3、內核vs 操作系統
BSD 項目維護的是整個操作系統,而 Linux則只是主要集中在單一的內核上面。這點確實是需要注意的,雖然這兩個系統上都運行著許多相同的軟體。
4、UNIX-Like
這里有一個關於 BSD vs Linux的古老說法:」 BSD is what you get when a bunch of UNIX hackers sit down to try to port a UNIX system to the PC. Linux is what you get when a bunch of PC hackers sit down and try to write a UNIX system for the PC 「,這里表達了很多。你會發現 BSD 系統更為類似於 UNIX ,而事實上它就是傳統 UNIX 的直接衍生品。而 Linux,則是一個鬆散的基於 UNIX 衍生品( Minix)而新創建的一個 OS 。
5、基本系統
這是一個關於 BSD 與 Linux 之間差異的至關重要的理念。 Linux的」基本系統」是並不真正存在的,許多人會說,Linux的基本系統就是內核,但問題是如果沒有任何可用的應用程序的話,那麼這個內核是完全沒有價值的。而另一方面,BSD 則有一個包括眾多工具的基本系統,甚至 libc 也是基本系統的一部分。因為這些組件都被作為一個基本系統,所以它們都是被一起開發和打包的,許多事實表明這樣更能創建出一個更具凝聚力的整體。
6、更多來自於源代碼
由於 BSD 的開發方式(使用 Ports 系統)的關系,所以用戶們更多的是從源代碼來安裝程序,而不是預先編譯好的二進制包。這是一個優勢還是劣勢?這取決於不同的用戶。如果你更多的想從友好或易用性方面考慮的話,看到這一點後你也許會有放棄的念頭,對於新用戶更是如此。但一些新的用戶也有想要從源代碼編譯安裝,這可能比較累人。但是,從源碼安裝也有一定的優勢,比如庫版本控制,通過特殊的包來構建系統等等。
7、升級
由於 BSD 的開發方式的原因(見第5項),你可以利用一條指令就可以升級你的基本系統到最新版本( Freebsd 下是用 freebsd-update fetch update 命令)。或者你也可以下載整個源代碼樹,然後通過編譯來升級。而在Linux中,你也可以通過內置的包管理系統來升級系統。前者(BSD)僅更新基本系統,而後者( Linux)則會升級整個系統。不過請記住,BSD 中升級到最新的基本系統並不意味著所有的附加軟體包也將會被更新,而Linux升級的時候,所有的軟體包都會被升級。這是否意味著 Linux處理得更好嗎?在我看未必。我經常會看到Linux在升級時出現嚴重錯誤,從而需要重新安裝整個系統,但這個現象基本不太可能發生在 BSD 的升級過程中。
8、前沿技術
基本上你不太可能會看到 BSD 系統運行著任何非常前沿版本的軟體。而在 Linux 這一方面,大量的發行版會分發前沿版本的軟體包。如果你是一個」If it isn』t broken, don』t fix it」這樣觀點的持有者的話,你將會是 BSD 的超級粉絲。但是,如果你很新潮,想要體驗一切最新的東西,那麼你最好盡快遷移到Linux。
9、硬體支持
你會發現,通常情況下 Linux 的硬體支持要比 BSD 更早一些。但這並不是說 BSD 沒有像 Linux那樣支持足夠多的硬體,它只是意味著在某些情況下 Linux 會在 BSD 之前先支持某些硬體。因此,如果你想要最新的、最好的顯卡的話,基本上不用考慮 BSD 了。如果你有一個包含了最新無線晶元的新型筆記本的話,建議你選擇 Linux,運氣好的話也許它會支持。
10、用戶群
在這里我冒險概括一下計算機用戶們,但我想先聲明一下每一個事物都有例外。下面我要向你展示我對用戶分布方面的概括。
Mac –> Windows –> Linux–> BSD –> UNIX

㈩ FreeBSD做伺服器的好處是什麼比較WIN和LINUX的區別.

穩定、安全、性能的綜合選擇,如果你認為伺服器的最重要指標不只是速度快,那麼FreeBSD一定會讓你充滿驚喜,FBI的伺服器就用FreeBSD。下面是的壓力測試(下載大圖查看)

測試環境:均在虛擬機環境下,不和真機對比測試。其它沒說明的信息均代表一致,軟體的安裝均使用包管理方式,沒使用源代碼安裝,系統沒做任何調優。3個虛擬伺服器同時打開,每測試一個伺服器均測試兩次,以最好的結果為准。(測試結果順序:FreeBSD、Ubuntu、Win2019)。注意:nginx伺服器版本沒統一,會稍微影響結果的公平性,但在合理范圍之內。

ab重要指標:Requests per second(越大越好)、Time per request(越小越好)、Transfer rate(越大越好,大流量下的吞吐量)

結論:FreeBSD在大壓力情況下的性能要比ubuntu略好,穩定性、安全性、健壯性也要比Linux好。當然如果要是用於深度學習而不是web,我可能會選Linux。

另外,安全都是相對的,雖然默認情況下*BSD比Linux安全,但並不代表你維護起來就安全,賬號密碼、ssh安全,許可權,web程序的安全,都會影響系統安全性(web站點還是推薦使用wordpress最新版,安全插件使用:WP Cerber Security,比All In One WP Security略好,但即使剛入門,也比windows經常打補丁放心的多。只是FreeBSD調試wordpress還需要提高更多的技術,不是簡單的pkginstall就完了,需要對nginx、php、mysql有足夠的掌握,這些看起來復雜,但會了又覺得其樂無窮,而且絕對會培養起傳統黑客的精神和體會到簡潔的強大。

熱點內容
用什麼dns伺服器地址快 發布:2025-05-15 04:52:59 瀏覽:26
手機端so反編譯 發布:2025-05-15 04:50:55 瀏覽:610
linuxlamp安裝 發布:2025-05-15 04:50:45 瀏覽:578
sqlplus緩存區怎麼設置 發布:2025-05-15 04:50:44 瀏覽:858
shell腳本環境變數 發布:2025-05-15 04:45:18 瀏覽:693
安卓nba2k18什麼時候出 發布:2025-05-15 04:38:42 瀏覽:393
王者安卓轉蘋果為什麼顯示失敗 發布:2025-05-15 04:35:49 瀏覽:18
手機優酷緩存視頻格式 發布:2025-05-15 04:13:45 瀏覽:210
公益電影分鏡頭腳本插畫 發布:2025-05-15 04:08:37 瀏覽:961
數據壓縮編碼 發布:2025-05-15 03:58:44 瀏覽:726