兩天前,Jeff Roberson 把他之前寫的 SoftUpdate Journaling (SUJ) 丟去 HEAD 了:http://svn.freebsd.org/viewvc/base?view=revision&revision=207141。過了這麼多年,好多次都有人說要做各種不同的 journaling(UFS3 還有 Bluffs),終於有人寫出來… 而且 Kirk 老人家也有參與。有興趣的可以看他們兩個寫的 paper:Journaled Soft-Update,這篇會發表在今年五月的 BSDCan。另外可以聽一下 BSDTalk #186,裡面有 Jeff 的訪問,還有提到說今年 BSDCan 會討論 UFS3 的事情。
最近剛好有機會把一台有在用 ZFS 的機器換跑 CURRENT,然後就被古老的 sysinstall 整到… 害我差點不能增加新的分割區(這是另外一個故事了… !@#$)。總之,我要說的是,大概一個月前,預設的 GEOM 管理分割區的已經變成 gpart(8) 了,所以說你要切硬碟什麼的,要用 gpart 而不是以前常用的 sysinstall/sade/bsdlabel/fdisk 了。
gpart 我只用過幾次,其實他就是以前的 gpt 改過來的,比以前的 gpt 稍微好用些。不過何年何月才會把 finstall 變成預設的安裝程式呢
這次改比較大的都在 kernel 的部份,所以整個 release notes 看起來相對也少很多。底下列的是我覺得比較重要/我有興趣的部份,就參考看看吧。
- cpuset(2)
- DTrace
- DDB scripting/textdump
- 重寫成 kernel mode 的 rpc.lockd (client 部份,我有點忘了 server 部份是不是已經在了…)
- ULE 變成預設的 scheduler
- btx loader 終於改成用 real mode 去叫 BIOS 了,終於可以用 USB 光碟開機了
- 現在也可以開用 gpt 切的硬碟
- arp(8) 多了兩個參數:reject 跟 blackhole…
- resolver(3) 可以吃有 _ 的名字… (唉…)
- hw.ata.ata_dma_check_80pin
- gpart(8) 可以吃 BSD label
- gpt(8) 支援 ZFS
- mountd(8) 可以指定要 bind 哪個 ip (-h)
- top(1) 跟 vmstat(8) 可以指定 -P 看每顆 CPU 的狀態
- ypserv(8) 可以指定要 bind 哪個 port (-P)
- BIND 更新到 9.4.2-P2, OpenSSH 更新到 5.1p1
前幾天大神寫了篇用 apache 2.x 跑 worker 還有 PHP 的設定,然後晚上學弟把系上的 server 換好後,就害我手癢也換了幾台沒什麼流量的機器。設定上還滿容易的,那也因為本來我 PHP 就都跑了 FastCGI,這次更動主要只在 apache 的部份,換起來輕鬆愉快
現在 FreeBSD 6.x/7.x multi-threading support 比以前好很多了,也是時候該用力用一用 worker 跑 apache 了 :p
細節就不多說,參考大神 blog。
最近 portconf 升級到 1.4 之後,在 ports.conf 裡面可以指定把變數 .undef 掉。比方說,我希望編 sysutils/fusefs-kmod 的時候不要指定 KERNCONF,那只需要寫
sysutils/fusefs-kmod: !KERNCONF
就可以了。
一陣子之前,dfr@ 改寫了 NFS locking server 端的部份,從原本的 userland 搬進 kernel 處理了,kernel conf 裡面要加上 NFSLOCKD,預設 GENERIC 是打開的。數小時前,這部份整個也已經進了 7-STABLE,而 6-STABLE 可能過陣子才會進去。總之,這真是個好消息
剛看到 kris@ 做的 mysql 跟其他的 subsystem 的比較:
http://leaf.dragonflybsd.org/mailarchive/users/2008-03/msg00025.html
不過後面有篇回應說得也很對,就是當初分家是因為不同的路,計畫要改的東西也不是兩三年就可以改完的(不過已經四年多了…),再說 DragonFlyBSD 似乎人還是沒有很多,重要的東西還是 Matt 一個人在搞。反過來看 FreeBSD 5.x 那一段時間,真是相當的苦命啊…
今天清晨的時候,6.3-RELEASE 正式推出了,跟上一版差了足足一年,主要原因是中間要準備 7.0-RELEASE 的緣故(大概二月初就會出現了)。剛翻了一下 FreeBSD 6.3 Release Notes,底下列了幾個比較值得一提的東西。
Kernel 部份:
- acpi 支援 HPET
- MSI support
- coretemp(4) 可以看 Intel Core cpu 溫度
- acpi_dock(4)
- 音效卡: hda, envy24/envy24ht, spicds
- 網路卡: cxgb (10G, Chelsio T3/T3B), edsc (discard), em upgrade msk (Mar
vell/SysKonnect Yukon II), mxge (10G, Myricom Myri10GE)
- 802.11: support 900Mhz, quarter- 跟 half-channel for 802.11a
- lagg(4): link aggregation, failover, fault tolerence
- mpt(4) 支援更多 RAID features: RAID volume, member state/settings report, volume re-synchronization status reporting, sysctl vars for re-sync rate, volume member write cache status, volume transcation queue depth 然後也支援了 SAS HBA (部份), 64-bit PCI, large data transfer
- 支援 scsi_sg 模擬 Linux SCSI SG passthrough device API, 可以多跑些 Linux 裡面的程式
- 新的 unionfs implementation
Userland 部份:
- ftpd 支援 RFC 2389 (FEAT) 跟 RFC 2640 (UTF8), UTF8 的部份要加上 -8 打開
- rpc.lockd 跟 rpc.statd 可以指定 port (-p)
- pw 可以指定新開 user home 目錄的權限
- top 可以用 -j 看 jail ID (感謝爽大
)
- touch 可以用 -A 指定時間調整 atime/mtime
- 新增 wpa_passphrase
- /etc/rc.d/nfslocking 被移掉, 換成 lockd 跟 statd
Contributed Software 部份:
- awk 更新到 2007.05.01
- bind 更新到 9.3.4-p1
- bzip2 更新到 1.0.4
- diffutils 更新到 2.8.7
- gzip 換成 BSD-licensed gzip (from NetBSD)
- ipfilter 更新到 4.1.28
- less 更新到 416
- ncurses 更新到 5.6-20061217, 多了 wide character 支援
- netcat 更新到 OpenBSD 4.1 用的了
- readline 更新到 5.0 patch 2
- sendmail 更新到 8.14.2
- timezone 更新到 2007k
- OpenBSM 更新到 1.0
早上去 COSCUP 2007 講 ports,結果遭到 DK 大指控說我都沒把東西放出來,剛趁吃飽的時候,把東西稍微整理一下,丟到 OpenSVN 上去了。有興趣的人可以去 這裡觀賞使用。
上星期,kris@ 不知道在哪裡講 Introducing FreeBSD 7.0,裡面提到了很多 7.0 會有的新東西(主要是 kernel 部份)以及在 performance 上的改善。去年六月的時候,kris@ 宣佈了持續六年多的 SMPng 計畫算是劃下一個句點,而一年後的現在,我們看到的是 7.0 在 performance 上的改善。改善。
最令人興奮的應該算是重寫過的 ULE(以前那個版本 bug 很多而且不太穩定),以及 threading 的改善與 kernel locking 的改進,這幾個讓 MySQL 跟 PostgreSQL benchmark 起來相當的讚。
從 SMPng 開始到現在花了七年,不知道未來的 FreeBSD 的使用率會不會持續進步呢… :p