今天清晨的時候,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 (感謝爽大 :D)
- 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
兩年多前,我還在維護計中 webmail 的時候,曾經評估了 Horde/IMP 跑 UTF-8 模式會碰到的問題。當時有一個很大的問題就是很中信的標題都是直接放沒編碼過的 Big5 字,導致顯示不正常。那時候在 Horde 的 MIME::decode 做了一個很噁心的事情:把所有沒編碼的東西都當 Big5 轉一次到 UTF-8,之後測試的時候,一直注意到中文的副檔名不太正確,後來就沒繼續維護後,也一直沒有機會去看為甚麼。
剛才,因為某些緣故,跑去看了另外一套 Horde 的安裝,花了不到十分鐘,發現問題是我自己製造出來的。因為 MIME::decode() 傳進來的字串有可能是以經處理過的,所以已經變成 UTF-8,而我又轉了一次… XD 現在的作法是先 UTF-8 到 UTF-8 轉一次,如果不一樣的話,才當 Big5 處理。目前看起來狀況還不錯,再觀察看看。
剛剛 netchild 把今年 Summer of Code 的成果丟進 8.0-CURRENT 了,詳細的 log 可以看這邊。我的感覺是不會出現在 7.0-RELEASE,應該會有機會出現在 7.1 才對
UPDATE: 在 phk@ 的要求下(整個架構設計), 這個被 back-out 了
剛剛無意中發現,sort 有一個參數叫做 -S 可以指定用多少記憶體當 sorting 時候的 buffer(單位是 KB)。現在記憶體這麼大,當然是多多益善囉
根據這則 FAQ,被標記成 inactive 的應該也算是 cache memory 的一種。而 net-snmp 的 UCD-SNMP 這份 mib 裡面的 memory 實作上,只看被標記成 cache 的,於是配合 nagios 看的時候就會有些問題,剛剛生了一個簡單的 patch 暫時解決了這個情況。
UPDATE: 已經進了官方的收藏了: net-snmp-5.4.1_2 (2008/03/30)。
之前更新設定檔的時候,都是用 vimdiff 慢慢按,每次都記得有 sdiff 可以用,可是每次都懶的看怎麼用。基本上就是:
sdiff -a -s -w 80 -o foo.conf.merged foo.conf.old foo.conf.new
介面就是 mergemaster 用的那樣子。
應該有些人知道 screen 有 shelltitle 這個功能可以跟 shell prompt 配合,讓 screen 的標題是跑的程式的名稱。今天碰到一個問題是我想要讓設成「如果是 ssh 的話,抓空白後的東西,也就是 hostname」,弄了一下沒有成功,後來跑去看別的東西就先暫時放著了。
想過一個可能的惡搞法,讓一個東西吃 ssh-hostname 開頭的指令,然後這個會展開成 ssh hostname 之類的,這樣子就可以配合原本的 shelltitle 弄出我想要的東西,不過也還沒時間仔細研究可不可行。
有人知道怎麼惡搞的話,跟我說一下吧
因為某些理由,我要把 FreeBSD iso 裡面的 loader 換掉,一兩個月前弄過一次,剛剛又要弄,又找了半天才弄好。避免以後我又要重花力氣找,決定寫下來。
首先要把 iso 抓下來,然後 mount 到某個目錄,接下來用 mkisofs 就可以了:
mkisofs -b boot/cdboot -no-emul-boot -r -J -V label -o cd.iso cd/
Recent Comments