Solaris 10推出已經1年多了,在此期間大家可能聽說了它的很多新的特性和優勢,比如dtrace,zone,smf等等,我就不去誇這些東西了,在這裡我要說說Solaris的缺點,歡迎拍磚。
前段時間和一個同事打完網球,就談到了客戶對Solaris10有什麼看法,我雖然沒有去刻意的總結,但從自己和一些客戶的體驗來說,我覺得Solaris需要在易用性上下點功夫。雖然在Solaris 10裡已經在易用性上有了不少的改進,比如一些命令選項的支持,對包管理命令的功能增強,JDS的引入以及好多很零散的改進,但總體來說,目前的易用性還不是很占優勢。
對於一個產品來說,大部分的目標客戶不是操作系統的專家,他們所需要的是容易上手的,好用的產品,而不是不好用,但有很強功能的產品。如果一個用戶在安裝和配置一個產品時就遇到很多的問題,那對這個產品的信心就會大打折扣。而Solaris的開發,很多時候對功能比較重視,而對一些簡單的可以加強易用性的組件的開發,做的還不夠,如果只是追求功能齊全但可用性差的話,還不如加強主要功能的易用性,以下是我自己感覺到的易用性不好的地方,列舉如下:
1,Solaris中的可執行路徑太多
對於一個初學Solaris的人來說能很快的找到一個命令,還是不容易的,比如一個比較完整的PATH應該設置為:/usr/bin:/usr/sbin:/usr/dt/bin:/usr/openwin/bin:/usr/ccs/bin:/usr/sfw/bin:/usr/ucb
這樣大部分命令才能找到,雖然我知道好多路徑是有淵源的,改動任何一個路徑需要復雜的流程,但還是希望以後大部分命令能放在三到四個路徑下,不需要我們去設置這麼多。
2,對命令選項支持的不好
在bash中輸入一個命令時,我們遇到這樣的情況,一個命令寫完了,才想起來要用個某個選項,但在Solaris中,你必須將這個選項加到命令靠前的位置,如果直接放在後邊,就會沒有任何效果,不信,你可以試試這兩個命令的輸出:
CODE:grep -l test * 和
grep test * -l後一個命令的選項"-l"是沒有用的,而如果我們用了GNU的grep,這兩個命令的輸出就是你所想要的了,比如:
CODE:/usr/sfw/bin/ggrep -l test *
/usr/sfw/bin/ggrep test * -l大家可以實驗一下,問題雖小,但很多時候給我們帶來了方便
3,網卡設備的命名
在Linux中,所有的網卡設備都以eth0來命名,這樣的好處大家應該理解,但在Solaris中,所有的網卡命名是根據網卡驅動的名稱來定的,這樣才有了什麼bge0,hme0,ipge0等等,那大家要知道網卡設備名,就需要額外的步驟來得知,極不方便,因為大部分人不需要知道我這個網卡到底是什麼廠商的,我只關心設備名稱,所以只需要將原來的網卡設備做個映射到一個公共的設備,就可以增強易用性。聽說有一個項目已經在做這方面的事情了,好事情。
4,有些命令,程序不是很好用
Solairs中有些命令不是很好用,比如說vi,在Linux中,缺省的vi其實是用vim,曾經做項目時遇到一個linux開發者居然不會用Solaris中的vi,這裡不去評判別人的水平怎麼樣,這個還是反映出了一些易用性的問題,難道我們也不能缺省就用vim嗎?這個工作量可能只是開發一個dtrace的千萬分之一啊,但效果那,至少那個開發人員會覺得Solaris還很好用。還有其他一些命令,列舉幾個:
a:Solaris中的tar不能解開.tar.gz文件,而Linux中的tar確可以,只用一個很小的參數,下面是這兩個達到同樣效果的命令:
CODE:/usr/sfw/bin/gtar xvzf aa.tar.gz
/usr/bin/gunzip -dc aa.tar.gz | /usr/bin/tar xvf -後一個命令我老是記不住,太難
b,grep。在查找字符串時,grep是經常用的工具,但Solaris自帶的grep就不好用,因為它不能搜索子目錄,而GNU的grep就可以,只要一個簡單的選項就可以,比較一下這兩個命令:
CODE:/usr/sfw/bin/ggrep -r string /usr
/usr/bin/find . -exec /usr/bin/grep string /usr {} /;還是第一個簡單很多啊,以前我常用第二個,現在基本上用第一個了,誰都希望生活變得簡單阿。
呵呵,以上是我的一家之言,不過相信隨著開發部門越來越重視易用性,Solaris會受到越來越多開發人員的采用。還有,還有什麼易用性不夠的地方,大家可以提出來,一起做為參考。