[base] View of /release/8.1.0/share/mk/bsd.cpu.mk
因此,如果你的 Atom 是 i386,那麼 march=nocona 會等於 march=prescott。
之前記過 FreeBSD nfsd 的服務流程,這邊記得是 FreeBSD mount_nfs 的流程:
mount_nfs 自己會先以 RPC 的 NFS_NULL_PROC 探看 server 的 nfsd。mount_nfs 接著以 RPC 的 RPC_MOUNT 對 server 的 mountd 取得 exported root handle。mount_nfs 將取得的資訊以 iovec 的結構存起來。mount_nfs 最後將這個 iovec 的參數丟進 nmount() system call 進入 kernel mode。 nmount() 訂義在 /usr/src/sys/kern/vfs_mount.c。nmount() 透過 vfs_domount() 呼叫到真正的 VFS_MOUNT()。/usr/src/sys/fs/nfsclient/nfs_clvfsops.c 的 nfs_mount() 做真正的後續。nfs_mount() 做完,就會跟著 nfs_statfs()。nfs_statfs() 裡面,會依序呼叫 FSINFO 與 FSSTAT 這兩個 RPC procedure。所以,這就是為什麼每當 client 做了 mount_nfs 以後,server 那邊收到的記錄是:NULL、FSINFO、FSSTAT。
如果你編某個 ports 已經編到一半了,回來看才發現它開始編 X 了,忘了加 WITHOUT_X11 或是 make config:
make all-depends-list | awk -F '/' '{print $5}' | xargs pkg_deinstall 好早以前發現的,每次都忘記…
nfsrv_read() 這個函式負責負作 NFS 收到的 read procedure。
首先它會從 request decode 取得 file handle,offset 與 count,根據 offset 與 count 總合的大小建立一「串」mbuf。然後將這串 mbuf 分別指派給 struct uio 的 io vector(struct iovec :[vec_base, vec_len])。
最後執行 VOP_READ() 這個神祕的函式將 file handle 在 offset 到 count 的資料,讀到 io vector 中,也就是讀到 mbuf 中。
再由 kernel 將 mbuf 們傳到網路上。
這裡先筆記一下 FreeBSD nfsserver kernel module 的實作 overview。
The Design and Implementation of the FreeBSD Operating System - aNobii
從來都沒想過在 2004 年買的書,現在非常有用。
從來也沒想過我會投入改 FreeBSD NFS 下層。
因為老師的 CloudBase 計畫讓外界可以透過 NFS 取得 Cloud 中的資料。
這本書就算過了 6 年,還是非常實用!
20100409: AFFECTS: users of lang/php5 AUTHOR: ale@FreeBSD.org
As of php 5.3, a few extensions were removed from or included into the core
php5 package. Follow the steps below to update your installation.
1) Delete the following packages (if installed):
- php5-dbase
- php5-ncurses
- php5-pcre
- php5-spl
- php5-ming
- php5-mhash
2) Rebuild php5 and all ports depending on it.
雖然一出來的時候就讓 Lab 的 Server 用 ZFS 了,但直到今天我才真正去「管理」ZFS。
對於可以直接升級 pool,這想法還蠻酷的,一個活著的檔案系統。
雖然只用了這兩個小功能,就開始能夠感覺到 ZFS 對於管理的方便性。