在 FreeBSD 下使用 Linux 類比層運行 linux 軟體
From: http://www.linuxdiyf.com/viewarticle.php?id=83929
我是比較認同BSD的協議以及FreeBSD負責任的Team Dev模式,從而喜歡上FB的。當然,OpenBSD也很好,不過,出於效能和中文支援方面的考慮,FB更適合做案頭。
但一個不爭的事實是,由於有眾多商業公司的支援,Linux下的應 用軟體現狀要比FreeBSD下樂觀的多。維護一個小眾作業系統上的軟體,是從商業上不值得的事情,因此,比如Realplay,Acroread之類 的,就沒有FB的直接支援,當然,開源軟體的話,有了萬能的ports系統和勤奮的程式員,linux使用者和FB使用者並無多大區別。
為了能讓FreeBSD的使用者更好的使用系統,FB在核心裡加入了一個Linux的類比層。注意,這個不是傳統意義上的模擬器,只是提供了一個Linux 的程式介面,使得在FB裡通過設定,可以使用一些和核心關係不是非常密切的Linux程式(太密切的如虛擬機器之類的,就不行了)
好了,要啟動FB對linux的支援,使用命令
#kldload linux.ko
來載入linux的模組,注意,這需要root許可權。如果你需要開機就載入這個模組的話,修改/etc/rc.conf,添加
linux_enable=”YES”
一行(推薦),或者修改/boot/loader.conf檔案,添加這行:
linux_load=”YES”
不過,要真正執行Linux程式的話,需要給這些程式配置相應的庫。在預設情況下,FB使用的是Fedora Core 4的類比支援,為此,我們使用ports系統安裝這個環境:
#cd /usr/ports/emulators/linux_base-fc4 && make install clean
當然,如果直接安裝ports裡面的軟體,比如,因為我喜歡的opera目前還不支援FB的amd64版本,所以我只好選擇使用linux的,那麼我就
#cd /usr/ports/www/linux-opera && make install clean
這樣會根據依賴關係,自動安裝上linux_base-fc4的。
好吧,Linux發展很快,Linux上面的應用軟體發展也很快。比如,現在很多的軟體至少需要Linux 2.6以上版本的核心支援。而預設FB類比層是2.4.2版本的,為此我們需要對這個類比層進行一些配置要讓FB支援對Linux 2.6以上版本核心的類比,首先要確認你的FB版本必須在7.0以上,6系列是不支援的。
#sysctl compat.linux.osrelease=2.6.16 #(類比Linux的核心為2.6.16)
修改/etc/make.conf檔案,加入:
OVERRIDE_LINUX_BASE_PORT=fc6
修改/etc/sysctl.conf檔案,加入:
compat.linux.osrelease=2.6.16
使得下次開機的時候能自動化佈建類比的Linux的核心版本
當然,這個也是必要的,和Linux 2.6核心配套的環境:
#cd /usr/ports/emulators/linux_base-fc6 && make install clean
好了,無論是哪個核心版本,Linux環境都搭建好了,為了能正確使用Linux程式,需要類比一個Linux的進程檔案,修改/etc/fstab檔案,加入:
linproc /compat/linux/proc linprocfs rw 0 0
使/etc/fstab生效:
#mount -a
現在,你就可以試試Linux的程式啦,什麼Realplay啦,Thunderbird,Firefox(因為一些擴充和外掛程式只支援Linux版本,如chm閱讀)
FB也支援rpm直接安裝,不過,依賴關係可要自己好好把握了。能依賴ports系統的,還是盡量用ports吧。