對於 Linux,是我最熟悉的系統,之前有設定過一次,可是出現錯誤,當下沒有立即排除,造成這次閱讀的時候釐清了一些原本誤解的觀念。例如,Quota 是 kernel mode 的功能,我有一種感覺一直以為要 dependence on HW;要怎樣的 quota limit 就得割一個 partition 給設定檔,一時腦筋轉不過來。既然都是軟體實做了,這些硬體的問題都會克服的。
接著,Venus 是跑 GNU/Debian Linux,大約花了三個小時設定,釐清觀念,事後很開心,翻起 FreeBSD Handbook 接著看。
FreeBSD 是 CoreDure Quad 的壯壯機,fBSD 對於我來說是個新系統,先前的成功經驗,加上對 fBSD 的新鮮感,所以猛看手冊。上次的進度停留在 Ch.4,今天大約花了五個小時,一直看到完。我沒那麼神,中間有些東西我不感興趣,例如 printer setting 還有 networking setting,所以就 skip into next lol。早上開始逐章讀,興致全開,竟然編起 FreeBSD Kernel,我真的很開心,因為學到不少新東西。之前見到 afoofa 說 Linux 的 make menuconfig is such friendy to her, but the interface FreeBSD is a little bit bored and monolithic. 但是我反而覺得 Handbook 教的很詳細,我很感謝 maintainer 把文件寫的那麼清楚,一一介紹,讓我觀念清楚明瞭,可以放心地跟著進度走。
今天編 kernel 都沒有 booting failure,真開心。不過還沒很確定是否要這麼做 make clean cleandepend depend buildkernel installkernel,前面三個步驟是我比較不清楚的。Durning making the source tree, I've found a interesting function, had before in Linux, that is -j, menas make "make" to does something in parallel. And my best argument is "16", not "32". It earns more and more time-saving and performance.
中午吃完飯,一度沉迷在 SMP 的 option。先說的,這篇 Installing the FreeBSD SMP Kernel 已經過期了,裡面的
APIC_IO, NCPU, NBUS, NAPIC
都已經在 6.2 kernel 失效了,只需要指定 SMP
就行了。接著,我又病發了,開始找 SMP 的實做時比較早,心中一直有個感覺,逐漸推翻 FreeBSD 優於 Linux 的看法。Linux 很多人送 code & patch,FreeBSD 則是人數沒有那麼多,而且 Linux 有不少商業公司背書,燒錢改善 Linux。不過,現在下定論還太早,因為各有可取之處。謂之:「量才適性,學而不倦」。
我現在找到最早的 Linux SMP 是 2.0 加入的,1996。而 FreeBSD 是 5.0, in 2003 推出。不過,我也有看見 1986 就在寫的,不知道正確與否。
後來,有個疑問:如果 OS kernel has no SMP supports, can program run as parallel, as like MP? 後來想到,如果 OS 沒有 SMP,四隻 folding@home process 會平分一個 CPU 資源,而有 SMP 的話,每隻都是跑到 99.8% 左右。哈哈~ 可是這又不是純 MP,如果用 icc 編的話,應該也會得到同樣的結果。
好奇 kernel 怎麼知道是 SMP-type cpu,用 asm does detect?
另一支 BSD Family 就是 Solaris,我一直覺得上面的 utilities 功能都不健全,Linux 算是最健全的,fBSD 其次,Solaris 最少。我看,說不定 AIX, IRIX, HP-UP 更少呢~ 可是,也必須承認,因為硬體特性的關係,這些大廠都寫了很多東西支援,是一般 i386 OS (Linux, fBSD) 不會去實做的。
光是 Solaris 要設定 quota 的手冊就翻了兩本,因為要 refer,加上我也對它不熟,所以今天眼睛累,手指也酸了,就先暫擱吧。
沒有留言:
張貼留言