Juniper公司一直高調(diào)宣傳他們只有一個操作系統(tǒng)(OS, Operating System),JUNOS,貫穿其所有產(chǎn)品,大大降低了用戶網(wǎng)絡的管理成本,不像其競爭對手,有很多個操作系統(tǒng),管理困難,…,云云。Juniper所謂的競爭對手,也就是思科(Cisco),卻好像每宣布一個新產(chǎn)品,就推出一個新的操作系統(tǒng)–邊緣路由器ASR 1000的操作系統(tǒng)是IOS XE,網(wǎng)絡交換機Nexus 7000的操作系統(tǒng)是NX-OS,再加上原有的核心路由器CRS-1的操作系統(tǒng)IOS XR,以及思科傳統(tǒng)的IOS操作系統(tǒng)。看起來,Juniper和思科的OS戰(zhàn)略有所不同,那么,一個和多個OS,到底哪個更好?
直覺告訴我們,當然是一個更好。多個不同的OS增加用戶的維護成本和學習時間,很多網(wǎng)絡設備用戶也表示同意這一看法。但是從商業(yè)角度來看,多個OS似乎并未使思科丟失市場份額。據(jù)Dell’Oro公司數(shù)據(jù),2007年,思科在總額是42億美元的企業(yè)級路由器市場的份額是82%,在47億美元的電信商邊緣路由器市場占54%,27億美元的核心路由器市場占55%。Juniper在上述市場都是第二位,分別占據(jù)5%,18%,和30%。在局域網(wǎng)(LAN)交換機市場,思科占總額18億美元的71%,Juniper的份額可忽略不計,因為其EX系列交換機上個月才剛剛開始交付。
讓我們首先從技術(shù)上比較一下思科的傳統(tǒng)OS,IOS,和Juniper的JUNOS。IOS起源于1987年,大概每兩年發(fā)布一個重要的升級版本,目前最新版本是12.4;JUNOS起源于1996年,每三個月定期發(fā)布一個新版本,目前最新版本是9.0版,大概含有兩千萬行源代碼(IOS和JUNOS一樣,主要源代碼都是C語言)。IOS起步較早,發(fā)展過程是從小逐步到大,整個OS就是一個進程(Process)。也就是說,所有的功能模塊共享同一個地址空間。這樣的話,一個模塊的Bug可能會影響到其它模塊,甚至造成整個系統(tǒng)當機;另外,如果某個模塊需要更新,必須先停機,加載新的OS,再重新啟動。JUNOS起步比IOS要晚將近十年,它一開始就是一個模塊化的OS,在開源的FreeBSD的基礎上開發(fā)。Juniper改寫了BSD的網(wǎng)絡部分,如TCP/IP stack和路由協(xié)議,以及用戶界面,硬件管理部分等,各個功能模塊都是獨立的進程。可以說,與IOS相比,JUNOS是一個更加現(xiàn)代的OS, 一個模塊的Bug影響其他模塊的可能性較小,比較容易Debug。另外,JUNOS可以進行不停機的功能升級。從用戶的角度來看,IOS和JUNOS的用戶界面類似,都是使用所謂的CLI(Commend Line Interface);在網(wǎng)絡功能上,它們都支持標準的協(xié)議,MPLS,RIP,OSPF,BGP,VPN等等,由于市場競爭激烈,在網(wǎng)絡功能方面,IOS和JUNOS基本上完全相同。
IOS誕生于思科還是初創(chuàng)公司之時,隨著思科的成長壯大,它兼并了120多家公司,許許多多的來自五湖四海的代碼也不斷的加入IOS,使得IOS對于不同的設備,衍生出許多不同的版本。您如果看到過IOS的“Upgrade Tree”,就知道它不是“tree”,更像一片茂密的森林。IOS含有如此多來源不定的代碼在同一個地址空間內(nèi)運行,可想而知,Debug是多么的艱難。
所以,思科的OS戰(zhàn)略是用三個OS逐步取代IOS。IOS XR用于核心路由器(Core Router),IOS XE用于邊緣路由器,NX-OS用于數(shù)據(jù)中心的網(wǎng)絡交換機。三個都是模塊化的OS,IOS XE和NX-OS基于Linux內(nèi)核(目前Linux的代碼質(zhì)量已經(jīng)全面超過BSD,JUNOS 1996年起步時Linux還不成熟,如果Juniper現(xiàn)在起步,大概也會選擇Linux),IOS XR基于一個兼容POSIX的微內(nèi)核(Microkernel), 名叫QNX。IOS的各個功能模塊被移植到這些新的OS,作為單獨的進程運行于內(nèi)核之上。
當然,戰(zhàn)略歸戰(zhàn)略,實現(xiàn)起來非常復雜,完成這一工作需要不是一年、兩年,而是五年、甚至十年。再加上IOS的數(shù)十萬的Installation Base,在可預見的將來IOS會長期存在下去。另一方面,雖然Juniper一直宣稱他們的JUNOS貫穿其所有設備,那么他們真的只有一個OS嗎?當然不是。除JUNOS外,Juniper的邊緣路由器的OS是JUNOSe,雖然名字中也有JUNOS,但JUNOSe和JUNOS完全是兩碼事;防火墻產(chǎn)品用的是ScreenOS;其它OS還有JUNOS ES,IVE OS,NetScreen-IDP,WXOS,和CTP等。可見一個OS也只是Juniper的戰(zhàn)略,但戰(zhàn)略和現(xiàn)實總有一定的距離。和思科一樣,Juniper的這些OS也是來自其收購的幾個公司(JUNOSe來自Unisphere,ScreenOS、IVE OS、NetScreen-IDP來自NetScreen,WXOS來自Peribit,等等),往JUNOS的集成工作也在不斷進行,例如JUNOS 9.0中就集成了ScreenOS的許多功能模塊。但集成工作進展緩慢,在這些OS消失之前,Juniper很可能又兼并了新的公司,他們大概永遠都不會只有一個OS。不過,Juniper的產(chǎn)品比思科少很多,歷史也比較短,所以其OS的混亂情況要比思科好很多。
理論上講,對于一家網(wǎng)絡設備廠商來說,一個OS要好于多個OS。但是,不論是思科還是Juniper,由于許多技術(shù)和非技術(shù)上的原因,長時間內(nèi)都需要開發(fā)和維護多個OS。那么,他們就應該盡量使各個OS的用戶界面相同,降低用戶的使用和學習難度。在這一點上,思科做得較好,其IOS和三個后續(xù)OS的CLI基本兼容。而Juniper的各個OS的CLI完全不一樣,這大概和用戶不從Juniper購買成套網(wǎng)絡設備有關(guān),還有就是Juniper的主要產(chǎn)品都已經(jīng)運行JUNOS,包括T系列,M系列,MX系列,E系列,和J系列路由器和交換機等。