思科和Juniper的操作系统之争:一个还是多个?
作者 杰夫 | 2008-04-23 16:09 | 类型 专题分析, 弯曲推荐, 通讯产品 | 22条用户评论 »
最近几个月来,Juniper公司一直高调宣传他们只有一个操作系统(OS, Operating System),JUNOS,贯穿其所有产品,大大降低了用户网络的管理成本,不像其竞争对手,有很多个操作系统,管理困难,…,云云。Juniper所谓的竞争对手,也就是思科(Cisco),却好像每宣布一个新产品,就推出一个新的操作系统–边缘路由器ASR 1000的操作系统是IOS XE,网络交换机Nexus 7000的操作系统是NX-OS(详见相关文章),再加上原有的核心路由器CRS-1(见左图)的操作系统IOS XR,以及思科传统的IOS操作系统。看起来,Juniper和思科的OS战略有所不同,那么,一个和多个OS,到底哪个更好? 直觉告诉我们,当然是一个更好。多个不同的OS增加用户的维护成本和学习时间,很多网络设备用户也表示同意这一看法。但是从商业角度来看,多个OS似乎并未使思科丢失市场份额。据Dell’Oro公司数据,2007年,思科在总额是42亿美元的企业级路由器市场的份额是82%,在47亿美元的电信商边缘路由器市场占54%,27亿美元的核心路由器市场占55%。Juniper在上述市场都是第二位,分别占据5%,18%,和30%。在局域网(LAN)交换机市场,思科占总额18亿美元的71%,Juniper的份额可忽略不计,因为其EX系列交换机上个月才刚刚开始交付。 让我们首先从技术上比较一下思科的传统OS,IOS,和Juniper的JUNOS。IOS起源于1987年,大概每两年发布一个重要的升级版本,目前最新版本是12.4;JUNOS起源于1996年,每三个月定期发布一个新版本,目前最新版本是9.0版,大概含有两千万行源代码(IOS和JUNOS一样,主要源代码都是C语言)。IOS起步较早,发展过程是从小逐步到大,整个OS就是一个进程(Process)。也就是说,所有的功能模块共享同一个地址空间。这样的话,一个模块的Bug可能会影响到其它模块,甚至造成整个系统当机;另外,如果某个模块需要更新,必须先停机,加载新的OS,再重新启动。JUNOS起步比IOS要晚将近十年,它一开始就是一个模块化的OS,在开源的FreeBSD的基础上开发。Juniper改写了BSD的网络部分,如TCP/IP stack和路由协议,以及用户界面,硬件管理部分等,各个功能模块都是独立的进程。可以说,与IOS相比,JUNOS是一个更加现代的OS, 一个模块的Bug影响其他模块的可能性较小,比较容易Debug。另外,JUNOS可以进行不停机的功能升级。从用户的角度来看,IOS和JUNOS的用户界面类似,都是使用所谓的CLI(Commend Line Interface);在网络功能上,它们都支持标准的协议,MPLS,RIP,OSPF,BGP,VPN等等,由于市场竞争激烈,在网络功能方面,IOS和JUNOS基本上完全相同。 IOS诞生于思科还是初创公司之时,随着思科的成长壮大,它兼并了120多家公司,许许多多的来自五湖四海的代码也不断的加入IOS,使得IOS对于不同的设备,衍生出许多不同的版本。您如果看到过IOS的“Upgrade Tree”,就知道它不是“tree”,更像一片茂密的森林。IOS含有如此多来源不定的代码在同一个地址空间内运行,可想而知,Debug是多么的艰难。 所以,思科的OS战略是用三个OS逐步取代IOS。IOS XR用于核心路由器(Core Router),IOS XE用于边缘路由器,NX-OS用于数据中心的网络交换机。三个都是模块化的OS,IOS XE和NX-OS基于Linux内核(目前Linux的代码质量已经全面超过BSD,JUNOS 1996年起步时Linux还不成熟,如果Juniper现在起步,大概也会选择Linux),IOS XR基于一个兼容POSIX的微内核(Microkernel), 名叫QNX。IOS的各个功能模块被移植到这些新的OS,作为单独的进程运行于内核之上。 当然,战略归战略,实现起来非常复杂,完成这一工作需要不是一年、两年,而是五年、甚至十年。再加上IOS的数十万的Installation Base,在可预见的将来IOS会长期存在下去。另一方面,虽然Juniper一直宣称他们的JUNOS贯穿其所有设备,那么他们真的只有一个OS吗?当然不是。除JUNOS外,Juniper的边缘路由器的OS是JUNOSe,虽然名字中也有JUNOS,但JUNOSe和JUNOS完全是两码事;防火墙产品用的是ScreenOS;其它OS还有JUNOS ES,IVE OS,NetScreen-IDP,WXOS,和CTP等。可见一个OS也只是Juniper的战略,但战略和现实总有一定的距离。和思科一样,Juniper的这些OS也是来自其收购的几个公司(JUNOSe来自Unisphere,ScreenOS、IVE OS、NetScreen-IDP来自NetScreen,WXOS来自Peribit,等等),往JUNOS的集成工作也在不断进行,例如JUNOS 9.0中就集成了ScreenOS的许多功能模块。但集成工作进展缓慢,在这些OS消失之前,Juniper很可能又兼并了新的公司,他们大概永远都不会只有一个OS。不过,Juniper的产品比思科少很多,历史也比较短,所以其OS的混乱情况要比思科好很多。 理论上讲,对于一家网络设备厂商来说,一个OS要好于多个OS。但是,不论是思科还是Juniper,由于许多技术和非技术上的原因,长时间内都需要开发和维护多个OS。那么,他们就应该尽量使各个OS的用户界面相同,降低用户的使用和学习难度。在这一点上,思科做得较好,其IOS和三个后续OS的CLI基本兼容。而Juniper的各个OS的CLI完全不一样,这大概和用户不从Juniper购买成套网络设备有关,还有就是Juniper的主要产品都已经运行JUNOS,包括T系列,M系列,MX系列,E系列,和J系列路由器和交换机等。
弯曲评论相关文章: 思科发布边缘路由器(Edge Router)–ASR 1000系列 | |
雁过留声
“思科和Juniper的操作系统之争:一个还是多个?”有22个回复
好文章,对我的工作具有很好的指导意义
今天又阅读了一遍杰夫的这篇文章。觉得很好。希望读者们也能注意到这篇文章。
“目前Linux的代码质量已经全面超过BSD”
结果是怎么评估出来的?
读罢陈sir的《对中国系统软件的思考与建议》和杰夫的这篇,收获颇多。都是专家呀。
希望把这两篇,另外还有关于QNX,RTLinux的文章的相互做一个链接。感兴趣的读者能很容易地注意到他们。
很好的建议。Stay Tuned。我的文章是2004年左右写的,2008年创办《弯曲评论》时修订过。有许多技术观点到现在不一定正确。还望读者海涵。
我觉得freebsd的驱动模型还是比linux简单,优美。
[...] 最近的Cisco抛弃了其专有的IOS核心,在 ASR1000的控制平面软件上采用了Linux为基础平台。【陈怀临注:思科在OS方面目前比较乱了。是的,IOS确实没有能力支持其将来的发展。有兴趣的读者也可参阅弯曲评论相关文章,如“思科的OS战略是用三个OS逐步取代IOS。IOS XR用于核心路由器(Core Router),IOS XE用于边缘路由器,NX-OS用于数据中心的网络交换机。三个都是模块化的OS,IOS XE和NX-OS基于Linux内核(目前Linux的代码质量已经全面超过BSD,JUNOS 1996年起步时Linux还不成熟,如果Juniper现在起步,大概也会选择Linux),IOS XR基于一个兼容POSIX的微内核(Microkernel), 名叫QNX。IOS的各个功能模块被移植到这些新的OS,作为单独的进程运行于内核之上。”—《思科和Juniper的操作系统之争:一个还是多个?》】据传Huawei、H3C等厂商的软件平台也纷纷转向以Linux为基础,而以前他们都采用 vxWorks作为基础。【陈怀临注:我个人对华为在这方面的判断力,特别是决断力略表失望。要加快步伐。这与决策者的知识面和视野的局限性有关系。】几年前,就连vxWorks的开发者风河公司也宣布同时支持vxWorks和Linux【陈怀临注:风河:WindRiver Inc. 目前,WindRiver在Linux方面力挺其收购的RTLinux/FSMLab技术方案。相关信息可参阅笔者的陈怀临时间–RTLinux/RTCore体系结构】。由此看来,Linux在网络设备领域取 代vxWorks几乎已成定局。这背后的原因究竟是什么?与vxWorks相比,Linux究竟有那些优势? [...]
怎么不写一下HW的东西呢
个人认为比较理想的是所有产品使用同一个基础平台,不同产品自己的特殊部分进行扩展开发,构建出不同的系统.问题是理想的组织方式要求对软件架构有严格的控制,这点比较难实现。每个产品使用单独的系统,每个系统都能最大限度的切合实际应用环境,出来的结果是High performance和High quality,在一个产品规划清晰的前提下,是非常好的方式.产品规划不清晰,需要在产品间移植特性,当然使用同一个操作系统比较灵活。但是如果看过所有产品使用同一个平台的代码质量,就知道这是最不好Debug和维护的系统了.
IOS与JUNOS对抗,其实IOS是出于下风的,若非CISCO版本管理和流程能力足够强大,其稳定性和JUNOS必然相差较大。IOS不断的吸收集成新特性,一个单process的系统能够如此稳定,cisco的测试和版本管理之强大可见一斑。随着CISCO切换到linux内核,CISCO产品将会更加稳定,JUNOS面临更大的挑战。
Linux发展相当不错,一个一个版本过来,各种方案都进行了改良,得益于Unix 系统调用接口的稳定性,没有对应用有太大影响,里头许多模块都已经切换为更加合理方案。作为操作系统部分的source code,linux非常不错。
8, HW的VRP资料基本上为零。有两个互为矛盾的原因。一是要保密;二是没什么可泄露。从各方面来看,华为在数据通信方面目前是一个非常好的跟随者(Follower),因此,在系统软件,体系结构方面,大家对C,J等知道了,也就举一反三了。
没有领先的教育和人才,怎么能做到领先?
更别提软环境和文化氛围。
但有一样可以,
凡是负面的都可以做到领先。
目前Linux的代码质量已经全面超过BSD
受教。
作为一个交换机的网络测试工程师,时常跳出一个想法,是否能革CLI的命呢?
13楼,你的理由是什么?
cisco的这种单进程的封闭系统,必然要面临更大挑战。将来使用LINUX是必然的。现在很多交换机和路由器厂商还是考虑转移到LINUX上了。
同时WEB必将取代CLI的方式,将来是趋势。
banboo,在一些高性能的应用领域,Linux采用一些进程绑定、用户态驱动,一些新的处理器甚至支持1G的也表,确实可以解决性能的问题。但是多核、众核的发展,Linux这种宏内核内在的调度开销、性能的起伏都是问题,或许通过内核的定制可以解决这些问题,但是定时和维护又会带来其他的问题。(听说Linux社区现在已经有many core性能问题的解决方案了,不知道是否是真的,如果有知道的可以来晒一下)
要说Linux是必然的趋势,我倒觉得更多的还是社区的理想化的看法,产业界来说,各种形态的OS长期并存才是必然的。当然,Linux的应用越来越广确实是不争的事实,只是一统天下就不敢苟同了。Linux要一统天下,光解决技术问题还不够,还需要解决历史遗留问题。
我觉得当前阶段并行计算遇到的问题,以及计算资源越来越复杂的现状来说,虚拟化、GPU+CPU等技术都会是不错的选择。
哇。。。今年是几几年。还有人认为思科是单进程的封闭系统?
人家早就用位内核了。晕倒。
除了那种矮小的低端货用一用montavista的linux,大型的高端分布式系统无一例外是XR-QNX。不得不说在OS这一块,C已经做到了华丽。
J是非常聪明。用FreeBSD,省掉了一票协议。
用Linux也就省掉硬件到跑小系统。对于一个高性能路由器来说。还省掉了啥?
QNX和LINUX比,各有何优劣?
QNX是microkernel的