lighttpd 的 async I/O 支援

lighty 1.5.0 and linux-aio 這篇告訴大家 開始支援 async I/O 了。

async I/O 將 read request 丟給 kernel 後先去做其他事情,等到 kernel 處理完以後再用 callback routine 告訴 已經完成讀取。這使得 kernel 可以最佳化讀取的順序以達成 I/O 效率的提升,另外一方面 也可以趁機去做其他的事情。依照作者自己的測試,這使得 throughput 提升了 80%。而在作者在 Blog 上炫耀 上的 performance 大幅提升後,也有人 上丟出 patch,接下來就是等待了... :p

mlterm

這是 裡中文字開 anti-alias 的審察砲彈,如果要看效果的話請點進去看大圖才看的出來:

我拿 Ptt 的進站畫面來示範,可以看的出來 ANSI code 的部份還是有問題,照 mlterm - 多國語言終端機 這篇的說法,先開 後再連線就會正常,不過我這邊開了 還是會有問題... ( 的畫面就更慘了 :p) 要再看看要怎麼處理。

附上幾個設定檔,先是 .mlterm/ 下的 font

ISO8859_1 = --sony-fixed-medium-r-normal--16-150-75-75-c-80-iso8859-1;
BIG5 = -eten-fixed-medium-r-normal--16-150-75-75-c-160-big5.eten-0;
ISO10646_UCS4_1 = -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1;
ISO10646_UCS4_1_BIWIDTH = -gnu-unifont-medium-r-normal--16-160-75-75-c-80-iso10646-1;

再來是 .mlterm/ 下的 main

bg_color=black
fg_color=grey
geometry=100x35
use_anti_alias=true
encoding=BIG-5
fontsize=18
scrollbar_mode=right

以及最後啟動的指令:

env LANG=zh_TW.Big5 mlterm -A

改用 gcin

本來在 X-Window 下都是用 2.5 輸入中文 (用習慣了),不過這次想用 OverTheSpot 但一直找不出問題在哪裡,就決定去找其他的輸入法軟體看看... 像是 scim,以及

看了一下,發現 似乎不會很難安裝,而且我也只用注音輸入法 (要有自動選詞的功能),裝起來發現比起 簡單多了,於是我就跳槽到 啦...。

Gnash

以前在 上是透過 Linux Emulator 跑 Linux 版的 Flash Plugins,但由於 不願意授權 使用這種方式執行,所以 FreeBSD 就從 ports 把 linux-flashplugin* 移除掉了。(參考 Linux flash plugin 從 ports 中移除 這篇)

於是在 上要看 Flash 就只剩下 Gnash 這個東西了,問題是這東西 ports 做的非常爛,光是要讓他「能動」就要兩個 patch:

  • 由於不知名原因,有時候在 options 選單選了 PLUGIN 後,WITH_PLUGIN 這個變數還是不會被設定,這造成不管怎麼裝,Firefox Plugin 一直不會裝進去。我的解法是在 /usr/local/etc/ports.conf (這是因為我有裝 sysutils/portconf) 直接硬設 WITH_PLUGIN=true
  • Firefox 2.0 預設是裝到 /usr/local 下,但 Gnash 則是裝到 /usr/X11R6,於是你必須手動將 /usr/X11R6/lib/browser_plugins/ 下的 libgnashplugin.so 建一個 symbolic link 到 /usr/local/lib/browser_plugins/ 下。

除此之外,裝完以後發現在 /etc/X11/xorg.conf 裡面要把 Load "glx" 打開...。

結果 開起來後發現還是不能看,因為現在不支援直接內嵌在 Browser 裡面的情況,zzzz... (他會告訴你已經下載到 /tmp 下了,你可以直接跑 XD)

然後抓 來玩發現超慢 (也有可能是機器慢啦,那台機器才 AMD Duron 800 而已),而且不能正常運作... 我還是回 Windows 上玩 zookeeper 好了... XD

FreeBSD 與 Linux 的一些安全性設定

很久前聽 kenduest 講過在 上有某些加強安全性的 kernel patch 可以用,當時年紀小不懂事沒記下來...

這陣子系上被破整排 的機器 (Update:現在懷疑是 false alarm),除了重新安裝確定系統是乾淨的以外,利用當年的記憶搜尋一些關鍵字,終於找出來當初 kenduest 講的東西了:

除了對 Buffer Overflow 稍做抵抗的 Heap/Stack Protection 外, 讓我想起之前在 上看不到別人 process,按 w 看不到別人,以及 Last PID 會故意亂跳的情況。

上了 後我就想要在 上也炮製一番,透過 大神的幫忙下把這幾個對應的功能都找到了。其中看不到別人的 process 這點是透過 security.bsd.see_other_uids=0,而 Random PID 則是透過 kern.randompid=99999 (實際上會被縮成 99899)。

打開以後看一看似乎不錯,也許跑一陣子看看情況 :p

OpenSSH 的修補

剛剛在 的 CVS Log 上看到 也有漏洞要修補... (!@#$%^) 不過 Security Advisory 還沒看到 Security Officer 丟出來,要再看看要怎麼處理...

補記:看起來是 這兩份,不過目前這兩份文建的狀態都是 Under review,以目前的敘述看起來是 DoS attack 的...

Update:SA 放出來了:Multiple vulnerabilities in OpenSSH,一個是 ,另外一個是

後者是在打開 GSSAPI Authentication 時的漏洞,預設是關掉的,所以應該還好...

OpenSSL 的安全性更新

參考:Multiple problems in crypto(3),從 4.11 後的版本都有提供 security patch。(雖然早就說不維護 4.11 了,但這個包袱實在太重,還有不少機器跑 4.11,所以大家都心知肚明... XD)

這次不更新的話會中大獎 (remote buffer overflow),所以凌晨看到後超熱血一次開了 30 個窗連到一堆機器上跑 make world,不讓學弟/妹慢慢做了... 結果做完後發現原 patch 是有問題的 (喂喂),所以又出了第二個 patch,看了一下說明,看起來是有 patch 掉,但沒 patch 乾淨,可能還是會造成 DoS 攻擊...

那我就懶了,學弟妹上吧... XD

Intel 版 Mac Mini 的安裝

... :p (下面這張好像是當掉的畫面... XD)

FreeBSD Boot on Mac Mini

幾個對於 不熟的人,應該先知道的東西:

  • 開機按住 C 會從光碟開機。
  • 開機按住 F12 會把光碟片吐出來。

再來就是燒光碟了, 6.1 不能在 上開起來,但 6.1-STABLE 是可以的,所以請抓 snapshots 版本:freebsd.csie.nctu.edu.tw/pub/snapshots/200609/

安裝時請不要選擇無 ACPI 的開機,會開不起來。(一般人沒事不會去關掉 ACPI 吧?我就會... 然後發現開不起來 XD)

如果裝好後只有 ath 會起來 (無線網路),內建的 Gigabit Ethernet 抓不到,請參考這兩篇文章下載 的 driver source 並安裝:

編完後把 if_myk.ko 複製到 /usr/local/modules,然後在 /boot/loader.conf 裡面放:

if_myk_load="YES"
module_path="/boot/kernel;/boot/modules;/usr/local/modules"

這樣可以避免重新編 kernel 時把 if_myk.ko 弄不見 :p

Update:警告!可以放在 /usr/local/modules 是因為我們沒有切 /usr 或 /usr/local 出來,開機的時候在只有 mount / 的情況下是讀的到的... XD

最後,kernel 裡的 options SMP 要記得開,不然 reboot 會卡住。