思科和Juniper的操作系统之争:一个还是多个?

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




image      最近几个月来,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系列路由器和交换机等。

 

弯曲评论相关文章:

思科推出新型网络交换机 – Nexus 7000系列

思科发布边缘路由器(Edge Router)–ASR 1000系列

思科(Cisco)发布最新网络处理器–QuantumFlow

Juniper网络公司宣布其以太网交换机设备

(7个打分, 平均:5.00 / 5)

雁过留声

“思科和Juniper的操作系统之争:一个还是多个?”有22个回复

  1. frank_seng 于 2008-04-24 12:14 上午

    好文章,对我的工作具有很好的指导意义

  2. 陈怀临 于 2008-11-02 5:18 下午

    今天又阅读了一遍杰夫的这篇文章。觉得很好。希望读者们也能注意到这篇文章。

  3. rapidio 于 2008-11-06 11:52 下午

    “目前Linux的代码质量已经全面超过BSD”
    结果是怎么评估出来的?

  4. Eleven 于 2008-11-08 8:06 下午

    读罢陈sir的《对中国系统软件的思考与建议》和杰夫的这篇,收获颇多。都是专家呀。
    希望把这两篇,另外还有关于QNX,RTLinux的文章的相互做一个链接。感兴趣的读者能很容易地注意到他们。

  5. 陈怀临 于 2008-11-08 9:00 下午

    很好的建议。Stay Tuned。我的文章是2004年左右写的,2008年创办《弯曲评论》时修订过。有许多技术观点到现在不一定正确。还望读者海涵。

  6. easion 于 2008-12-23 12:16 上午

    我觉得freebsd的驱动模型还是比linux简单,优美。

  7. 《网络设备操作系统(Linux .vs. vxWorks)》校注 : 弯曲评论 于 2008-12-25 5:28 下午

    [...] 最近的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究竟有那些优势? [...]

  8. HW 于 2009-07-08 10:28 下午

    怎么不写一下HW的东西呢

  9. D.P. 于 2009-07-10 2:15 上午

    个人认为比较理想的是所有产品使用同一个基础平台,不同产品自己的特殊部分进行扩展开发,构建出不同的系统.问题是理想的组织方式要求对软件架构有严格的控制,这点比较难实现。每个产品使用单独的系统,每个系统都能最大限度的切合实际应用环境,出来的结果是High performance和High quality,在一个产品规划清晰的前提下,是非常好的方式.产品规划不清晰,需要在产品间移植特性,当然使用同一个操作系统比较灵活。但是如果看过所有产品使用同一个平台的代码质量,就知道这是最不好Debug和维护的系统了.

  10. D.P. 于 2009-07-10 2:26 上午

    IOS与JUNOS对抗,其实IOS是出于下风的,若非CISCO版本管理和流程能力足够强大,其稳定性和JUNOS必然相差较大。IOS不断的吸收集成新特性,一个单process的系统能够如此稳定,cisco的测试和版本管理之强大可见一斑。随着CISCO切换到linux内核,CISCO产品将会更加稳定,JUNOS面临更大的挑战。
    Linux发展相当不错,一个一个版本过来,各种方案都进行了改良,得益于Unix 系统调用接口的稳定性,没有对应用有太大影响,里头许多模块都已经切换为更加合理方案。作为操作系统部分的source code,linux非常不错。

  11. 陈怀临 于 2009-07-10 7:50 下午

    8, HW的VRP资料基本上为零。有两个互为矛盾的原因。一是要保密;二是没什么可泄露。从各方面来看,华为在数据通信方面目前是一个非常好的跟随者(Follower),因此,在系统软件,体系结构方面,大家对C,J等知道了,也就举一反三了。

  12. michael 于 2009-07-10 10:46 下午

    没有领先的教育和人才,怎么能做到领先?
    更别提软环境和文化氛围。

    但有一样可以,
    凡是负面的都可以做到领先。

  13. a 于 2011-06-16 1:33 下午

    目前Linux的代码质量已经全面超过BSD

  14. switch 于 2011-06-16 7:26 下午

    受教。
    作为一个交换机的网络测试工程师,时常跳出一个想法,是否能革CLI的命呢?

  15. Panabit 于 2011-06-16 7:55 下午

    13楼,你的理由是什么?

  16. banboo 于 2011-06-16 8:15 下午

    cisco的这种单进程的封闭系统,必然要面临更大挑战。将来使用LINUX是必然的。现在很多交换机和路由器厂商还是考虑转移到LINUX上了。

  17. banboo 于 2011-06-16 8:16 下午

    同时WEB必将取代CLI的方式,将来是趋势。

  18. 沙加 于 2011-06-16 8:51 下午

    banboo,在一些高性能的应用领域,Linux采用一些进程绑定、用户态驱动,一些新的处理器甚至支持1G的也表,确实可以解决性能的问题。但是多核、众核的发展,Linux这种宏内核内在的调度开销、性能的起伏都是问题,或许通过内核的定制可以解决这些问题,但是定时和维护又会带来其他的问题。(听说Linux社区现在已经有many core性能问题的解决方案了,不知道是否是真的,如果有知道的可以来晒一下)
    要说Linux是必然的趋势,我倒觉得更多的还是社区的理想化的看法,产业界来说,各种形态的OS长期并存才是必然的。当然,Linux的应用越来越广确实是不争的事实,只是一统天下就不敢苟同了。Linux要一统天下,光解决技术问题还不够,还需要解决历史遗留问题。
    我觉得当前阶段并行计算遇到的问题,以及计算资源越来越复杂的现状来说,虚拟化、GPU+CPU等技术都会是不错的选择。

  19. 一条虫 于 2011-06-16 10:42 下午

    哇。。。今年是几几年。还有人认为思科是单进程的封闭系统?

    人家早就用位内核了。晕倒。

  20. 一条虫 于 2011-06-16 10:50 下午

    除了那种矮小的低端货用一用montavista的linux,大型的高端分布式系统无一例外是XR-QNX。不得不说在OS这一块,C已经做到了华丽。

    J是非常聪明。用FreeBSD,省掉了一票协议。

    用Linux也就省掉硬件到跑小系统。对于一个高性能路由器来说。还省掉了啥?

  21. 理客 于 2011-06-17 12:35 上午

    QNX和LINUX比,各有何优劣?

  22. Lucifer 于 2011-06-17 12:54 上午

    QNX是microkernel的