顯示具有 FreeBSD 標籤的文章。 顯示所有文章
顯示具有 FreeBSD 標籤的文章。 顯示所有文章

星期日, 7月 22, 2007

Xen Merged into Linux 2.6.23

http://kerneltrap.org/node/13917, 來自kernel trap的最新消息.

Xen是一個開放原始碼虛擬機監視器,
簡單的說, Xen可以讓一台機器同時跑好幾個作業系統,
而且模擬的速度接近原本cpu速度.
(目前就我所知執行速度是比User mode linux/KVM/kqemu都快的多,
跟qemu/virtualbox/vmware當然更不是同一個檔次的)

前陣子才剛在一台debian etch(dom0)上安裝netbsd跟freebsd的domU,
(DomU 其實就是Xen對guest OS的術語. 而Dom0就是host os.
netbsd是*bsd裡對xen支援最完善的,
目前3.1 release版本就直接支援, 既可以當host OS也可以當guest OS.
如果有人想安裝FreeBSD作guest OS的話, 我建議可以直接參考FreeBSD handbook,21.2.2.1 Setup Xen 3 on Linux dom0,有個不怎麼新的7-current(N個月前的)可以玩,有VT支援的cpu的話應該就比較簡單一點,
也因為我身邊沒半台可以支援VT的cpu(啥怪cpu都有就是沒intel core2duo XD),不然應該可以裝個windows當guest os)
但是說真的, 目前安裝xen還是有點麻煩,
不過我想xen merge進i386的linux之後,
xen應該會越來越得到關愛的眼神才對.
以後搞不好哪天apt-get install xen-netbsd-domU-image就裝好了. (希望啦 XD)

(ps: 差點忘了提最大的重點/亮點:
除去kernel部份 xen大部分的程式碼都是用python寫的!! XDXDXD)

星期五, 4月 13, 2007

[tip] Share gentoo distfiles directory with FreeBSD NFS server.

由於我的gentoo機器不止一台, 所以一直以來都是先mirror一份portage進LAN之後, 再rsync自己.
不過由於我的機器IO太慢了, 最近總算忍不住向lloyd借了一台freebsd機器來架了一個portage rsync server, 想說順便將portage裡的distfiles share出去, 這樣就不用將distfiles一抓再抓. 沒想到只要一mount,emerge就出現問題.會一直掛在那邊不抓檔案. 實在非常詭異.

不過稍微研究了一下就被我找到問題點了, 原來是fbsd上的rpc.lockd沒開.

解決方法有二.
1. edit freebsd's /etc/rc.conf 將rpc_lockd_enable 改成"YES", 然後再將rpcbind restart.

2. mount option + "nolock" for gentoo.
將mount option改成
rw,soft,timeo=1,noatime,rsize=1024,wsize=1024,nolock

我是採用了第2個方法.
果然加上了nolock之後emerge就很順暢了.

星期六, 2月 10, 2007

安裝Emacs23 於 FreeBSD 4

Emacs23在FreeBSD上沒有gentoo的cvs ports, (emacs-devel是22)
所以得自己來了.
不幸的是這台遠端的機器是4-STABLE的,
而emacs裡的etags需要getopt_long, FreeBSD 4沒有,
所以得多裝個freelibiberty.
(FreeBSD 5+可免掉此步驟) 安裝步驟如下:

#cd /usr/ports/devel/freelibiberty/; make install clean; cd /tmp

想用emacs23-cvs version.
#cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co -r emacs-unicode-2 emacs emacs

遠端不需要X
#cd emacs;./configure --without-x

改Makefile, emacs/lib-src裡Makefile的LOADLIBES加入 -liberty (一樣是FreeBSD4才要)
#LOADLIBES= -liberty -lutil -lc

gnu make instead of bsd pmake.
#gmake bootstrap;gmake info;gmake install

ps:
過程中曾因某些不明而且我已懶得瞭解的原因,
需要pkg_* 放在/usr/local/sbin

for x in `ls /usr/sbin/pkg_* | awk -F/ '{print $4}'`
do
ln -s /usr/sbin/$x /usr/local/sbin/$x
done