2022年网络操作系统的发展历程 .pdf
《2022年网络操作系统的发展历程 .pdf》由会员分享,可在线阅读,更多相关《2022年网络操作系统的发展历程 .pdf(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、白皮书网络操作系统的发展历程Juniper Networks,Inc.China北京市东城区东长安街1号东方经贸城西三办公楼15层1508 室邮编:100738 电话:(86)10-文档编号:200264-002SC 08/2008JUNOS软件:网 络行业中最先进的架构方法名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 26 页 -Copyright?2008,Juniper Networks,Inc.2网络操作系统的发展历程目录概述3介绍3网络操作系统的起源和发展3第一代 OS:单片式架构 4第二代 OS:控制面板模块性4第三代 OS:灵活性、可扩展性和持续运行5OS设计的基
2、本考虑因素5商用 OS与开源 Donor OS 6功能分割与进程调度6内存模式6调度原则6虚拟内存/抢占调度编程模式7常见的内核设计8单模块与微内核的网络操作系统设计9JUNOS 软件的内核10JUNOS 软件中的进程调度11JUNOS 软件的路由协议进程12可扩展性14缩减 14扩展 15架构和基础设施16并行化16灵活性和可移植性17模块化程度19开放架构19产品维护19自治愈20故障排除21质量和可靠性21系统完整性21版本流程总结23最终产品的质量和稳定性24结语25JUNOS 软件与众不同的原因25特性 25可预测性:2004 C2008 之间发行的 JUNOS 软件版本25关于瞻博
3、网络26图表列表图1.典型抢占调度模式的顺序7图2.抢占调度模式中出现的资源管理冲突7图3.JUNOS 软件 9.0版本的通用设计结构10图4.JUNOS 软件中的多级 CPU调度 12图5.层级式协议栈的运行13图6.典型的 CPU时间捕获截图(摘录自 NEC 8800 产品文件)16图7.通用操作系统环境中的产品合并18名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 26 页 -Copyright?2008,Juniper Networks,Inc.网络操作系统的发展历程3概述本文将讨论运营商级网络操作系统(OS)设计中固有的要求和面临的挑战。我们将以瞻博网络操作系统JUNO
4、S?软件的主要功能为例来演示OS设计的发展历程,主要强调功能与架构决策之间的关系。本文将从不同角度讨论设计现代化网络操作系统的挑战,包括灵活性、支持众多平台的能力、不间断运行以及并行化等。此外,本文还将讨论已经发现的架构挑战、折中性和机会,以及构建先进网络操作系统的最佳业务实践。介绍现代化网络设备是由硬件和软件组成的复杂实体。因此,仅凭设计高效的硬件平台并不能提供经济高效、持久运行的产品。控制平面在开发特性及确保设备可用性方面发挥着至关重要的作用。我们很容易就能发现CPU主板及转发平面的速度提升,而软件的结构变化通常却难以察觉。虽然供应商常在宣传资料中提到了大量的运营商级特性,但这些特性的运行
5、体验却存在着较大差异。那些部署过多个软件版本的产品最能体现出因为选择不同OS而造成的性能差异。现在,仍有大量的路由器和交换机在一开始部署陈旧的单模块软件,然后再迁移到更为完善的设计。这种做法对稳定性和运行效率的积极影响显而易见。但是,从一个网络操作系统迁移到另一个网络操作系统将带来众多挑战,包括特性集不兼容、运行体验不一致,以及软件质量不一致等。这些潜在挑战使供应商迫切需要构建一款强大的控制平面,以支持现在和将来市场上的硬件产品及其特性。开发灵活、使用持久、高质量的网络OS使您能够在将来通过平滑演进来满足新需求,其高度能够支持您进行扩展和缩减,其广度使您能够将它们部署在多个平台上,其深度又支持
6、您集成丰富的新特性和新功能,这一切都需要充裕的时间、巨大的投资以及深入的技术知识。编写 JUNOS 软件早期版本的工程师大多来自其他公司,曾从事过网络软件构建工作,对于如何构建软件以及需要对哪些软件领域进行改进拥有一手经验。通过不断摸索,这些工程师发现了解决构建旧式操作系统时所遇局限性问题的新方法,从而在一开始就将众多创新成果融入到JUNOS 软件之中。此外,为了确保我们的产品能够预测并满足下一代市场要求,我们会对JUNOS 软件开展定期评估,以便根据需要对软件进行修改,从而维护一贯的可靠性、高性能和永续性。网络操作系统的起源和发展现代化的网络操作系统是满足POSIX要求的软件平台中最高级的专
7、业化分支,很少需要从头开发,这主要是因为从产品构思到产品面市,如果完全从头开发一流的操作系统成本显然太高。通过部署通用 OS架构,网络供应商能够将精力集中在特定路由的代码上,加快新产品的上市速度,并借鉴多年的技术和研发成果来设计新颖的(donor)产品。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 26 页 -Copyright?2008,Juniper Networks,Inc.4网络操作系统的发展历程例如,表 1列出了面向路由器的一些操作系统及其起源(“第几代”一列将在下文详细解释)。表1.路由器操作系统的起源供应商路由器 OSDonor OSDonor OS的所有人第几代
8、Donor OS 网站Juniper Networks,Inc.JUNOS 软件FreeBSD互联网社区2,3www.freebsd.orgCiscoIOS-XRQNXQNX Software SCiscoIOSn/a专用1n/aCiscoIOS-XEIOS,Linux混合(ASR)1.5n/aCisco模块化 IOSIOS,QNX混合(6500)1.5n/aAlcatel-LucentSR OSVxWorksWindRRedbackSEOSNetBSD互联网社区bsd.orgForce10FTOSNetBSD互联网社区bsd.orgExtremeExtremeWARELinux互联网社区2w
9、ww.xoslinux.org总的来说,路由器中的网络操作系统历经3代的开发历程,每代操作系统都有着截然不同的架构和设计目标。第一代OS:单片式架构通常情况下,面向路由器和交换机的第一代网络操作系统都是运行在平坦内存空间的专用映像,这个内存空间通常由闪存或ROM直接提供。这些操作系统虽然提供多个进程来支持协议、数据包处理和管理工作,但这些进程却以一种多任务处理的协作模式运行,彼此争用资源,除非有些进程自愿放弃 CPU。所有的第一代网络操作系统都拥有一个共性:降低在嵌入式硬件上运行全规模商用操作系统的风险。内存管理、防护和内容交换几乎或根本不存在,它们的主要目标是减少空间占用,加快运行速度。但是
10、,第一代网络操作系统却推动了网络的商业化,使供应商纷纷将产品部署在网络上。这些系统的缺陷在于一系列资源管理和故障隔离相关的问题;一个失控(runaway)进程能够轻松耗尽整个处理器资源或导致整个系统故障停机。在由陈旧软件控制的数据网络中,这种故障可谓是司空见惯,引发故障的原因包括软件错误、恶意流量以及操作错误等。传统的第一代平台虽然已被逐渐应用到最低端的电信产品中,但在如今的全球网络中仍然可以见到。第二代OS:控制面板模块性20世纪 90年代中期,数据网络在全球迅速发展,为现有网络和路由器的容量带来了巨大挑战。当时,嵌入式平台运行全规模商用操作系统已成为不争的事实,至少在高端硬件领域是这样的,
11、但问题是:这些操作系统不能通过令人满意的速度维持数据包转发性能。市场迫切需要突破性的解决方案。于是,对控制平面和转发平面实施硬分割的概念油然而生。不久,瞻博网络成功推出了业界第一款由应用特定型集成电路(ASIC)驱动的路由平台“M40”,这种方法自此得到广泛的采纳和应用。经证实,完全在硬件中转发数据包是一种可行的方案,为瞻博网络JUNOS 软件牵头的下一代网络操作系统开发扫除了障碍。名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 26 页 -Copyright?2008,Juniper Networks,Inc.网络操作系统的发展历程5今天,最初的M40 路由器几乎已被完全淘汰。
12、但是,这款产品的传统概念却被许多类似的设计所沿用,它们的蓝图也已成为业界公认的第二代参考架构。第二代网络操作系统不提供数据包交换功能,而是将注意力完全集中在了控制平面功能上。不同于第一代产品,第二代OS能够全面利用多任务处理、多线程、内存管理和内容操作的能力,从而大幅度减少了系统级故障。过去几年安装的大多数核心及边缘路由器都在运行第二代操作系统上。现在,正是这些系统负责在互联网和公司网络中传输大批流量。但是,第二代操作系统却因缺乏软件上的数据转发平面而无法支持不具备单独(硬件)转发平面的低端设备。此外,某些客户因为兼容性问题而无法迁移出旧式软件,仍在使用传统的软件特性。这些局限性推动了过渡OS
13、(第 1.5代OS)的产生。在这个版本的操作系统中,第一代单模块映像作为进程运行在第二代调度程序及内核上,从而将传统特性与全新的软件概念结合在一起。“第1.5代”产品旨在提供一定的发展空间,并将功能循序渐进地迁移到新代码中,同时维护原始代码库的特性。虽然这是一次有趣的工程尝试,但1.5代产品的特性不如第一代产品丰富,运行不如第二代产品高效,令人们对它们的长期价值深感怀疑。第三代OS:灵活性、可扩展性和持续运行虽然第二代 OS的设计非常成功,但在过去10年中还是不断遇到新的挑战。激烈的竞争迫使企业降低运行成本,一致性要求又使网络软件必须足够灵活,以便能够重新部署在网络设备中,覆盖绝大部分的端到端
14、数据包传输路径。从太比特位的路由器到二层交换机和安全设备,广告词中声称的“一流”不再代表产品能够提供卓越体验市场迫切需要真正的“网络”操作系统。此类系统还必须支持持续运行,以便路由代码或系统升级期间出现的软件问题不会影响网络的正常运行。迎接这个挑战所需的可用性及融合要求远远不是第二代路由器凭借硬件冗余所能满足的。第三代操作系统的另一个主要目标是零故障停机(计划内和意外停机)。根据前几代设计的经验教训,在 OS之间迁移是一项非常困难的任务,因此第三代操作系统还应提供对客户完全透明的迁移路径。它们不能像传统软件设计的淘汰流程那样支持革命性的升级体验,而是必须支持演进性的升级体验。OS设计的基本考虑
15、因素为操作系统选择适当的基础(原型)非常重要,这将决定整个软件设计流程、最终产品质量和可服务性。因此,OEM供应商有时会在开发过程中从一个原型迁移到另一个原型,以期实现最佳效果。总的来说,从专用代码库到商用代码库以及从商用代码库到开源软件是最常见的迁移情况。无论最初的选择是什么,当网络设备供应商开发自己的代码时,他们都会离最初的初衷越来越远,这一点不仅适用于协议特定型应用开发,还适用于系统开发。控制平面冗余、不中断业务运行的软件升级以及多机箱操作等扩展都需要对原始设计的各个层次进行关键性的改变。但是,网络供应商非常希望从donor OS(源操作系统)中获得自己不擅长的内容,如改进内存管理、调度
16、、多核及对称多处理(SMP)支持和主机硬件驱动器等。通过应用合理的工程原则,业界同行对donor OS(源操作系统)越是关注,相关网络产品就能越快地受益于新代码和新技术。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 26 页 -Copyright?2008,Juniper Networks,Inc.6网络操作系统的发展历程这种关系通常能够解释表1中显示的另一个显著市场趋势过去10年间,在路由市场上出现的每五个网络操作系统中就有两个将商用OS作为构建基础。瞻博网络的主要操作系统JUNOS 软件堪称这一业界趋势的范例。JUNOS 软件的内核基础来自开源软件系统“FreeBSD UN
17、IX OS”。瞻博网络大幅度修改了JUNOS 软件的内核及基础架构,以便提供高级特性和独有特性,如状态复制、不间断路由和不中断业务运行的软件升级等,这些都是donor OS不提供的特性。但是,JUNOS 软件树仍可与 FreeBSD 代码库保持同步,以便提取最新的系统代码、设备驱动器和开发工具集,从而使瞻博网络工程师能够集中精力完成网络具体的开发任务。商用OS与开源 Donor OSDonor OS 日益得到普及的主要原因在于它并不只是仅仅提高软件性能,而是通过先进技术来提高产品的灵活性及可用性,避免客户被锁定在单一供应商框架和路线图中,从而增强对产品发展的控制能力,并充分受益于独立开发商的创
18、新成果。JUNOS 软件中的优势是显而易见的,它成为了将控制平面与数据转发平面从物理上分割开的第一款商用产品。瞻博网络对原始BSD系统架构的特定扩展依赖于多核CPU,使 JUNOS 软件这个利用同一代码库构建的系统镜像成为既能支持纯低端软件系统,又能支持太比特位的高端硬件平台的唯一操作系统。如果没有整个互联网社区提供支持,我们不可能开发出这项技术,也根本无法提供这种体验。领先的个人、大学及商业机构之间的密切协作使JUNOS 软件始终位于操作系统开发的最前沿。这在两方面得到了体现:瞻博网络在获益的同时也推动了免费软件的发展,瞻博网络FreeBSD/MIPS 端口就是其中一例。功能分割与进程调度多
19、处理及功能分割和调度几乎是所有软件设计的基本原则,也包括网络操作系统软件。由于CPU和内存是共享资源,因此,所有正在运行的线程和进程都必须通过可控的有序方式来访问它们。虽然许多软件都是围绕着实现这个目标而设计的,但内存模式和调度原则却是最重要的考虑因素。在下一章节中,我们将简要介绍内存、CPU循环及系统性能和稳定性之间的复杂关系。内存模式内存模式决定进程(线程)是否运行在通用内存空间中。如果是,切换线程的开销将非常低,不同线程中的代码可以通过直接内存指针来共享数据。它的缺点在于失控进程可以破坏不属于它的内存。在更为复杂的内存模式中,线程能够运行在自己的虚拟机中,每当需要运行下一个线程时,操作系
20、统都会切换上下文。这种上下文切换导致线程间不再可能进行直接通信,而是需要管道、文件和共享内存池等特殊的进程间通信(IPC)结构提供帮助。调度原则调度选择主要在协作模式与抢占(preemptive)模式之间进行,用于规定线程切换是否自愿发生(图 1)。协作多任务处理模式允许线程完成全部的运行任务,而抢占设计则确保每个线程都能访问CPU,不受其他线程状态的影响名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 26 页 -Copyright?2008,Juniper Networks,Inc.网络操作系统的发展历程7虚拟内存/抢占调度编程模式对于正确构建的功能模块而言,采用抢占调度模式的
21、虚拟内存是最佳的设计方案,因为这些模块之间的交互受到限制,并且被定义得很好。这项技术是第二代OS设计的主要优势之一,也是确保现代化网络操作系统的稳定性和强大性能的基础。但是,它也有自己的缺点。我们先不考虑环境转换相关的成本,只考虑A线程与 B线程之间的交互(图2),这两个线程都在使用共同的资源 R。由于线程无法在抢占模式中检测出相关的调度信息,因此,它们通常会以不同顺序和不同频率访问R。例如,R资源的访问顺序可能是A-B-A-A-B。如果线程 B修改了资源 R,那么线程 A的每次访问将得到不同结果不存在任何可预测性。例如,如果R是内部网关协议(IGP)下一跳,B是IGP进程,A是BGP进程,那
22、么 BGP路由安装可能会因相关下一跳在路由表修改期间被修改而导致失败。协作多任务处理模式中就永远不会出现这种情况,因为IGP进程只在完成下一跳维护之后才释放CPU。线程 B线程 A中断导致线程 A暂停运行选择让线程 A运行线程 B抢先线程 A所利用的资源线程 A恢复运行系统闲置,线程A和线程 B准备运行线程A线程B资源 R被线程 B读取资源 R被线程 A读取线程 A的资源 R视图不一致线程B修改资源 R线程 A使用资源 R,认为 R是当前资源图1.典型抢占调度模式的顺序图2.抢占调度模式中出现的资源管理冲突名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 26 页 -Copyrig
23、ht?2008,Juniper Networks,Inc.8网络操作系统的发展历程软件设计人员所了解对这一设计理念进行了充分了解和认真研究,他们开发出了资源锁定和原语同步等特殊解决方案,并已应用到了最近面市的几乎所有操作系统上。但是,IPC的效力很大程度上取决于不同进程间的交互数量。当交互进程数据增加时,IPC的运行次数也会随之增加。在设计精准的系统中,IPC运行次数要与进程数量(N)成一定比例。在存在大量IPC活动的系统中,您可将这个比例调整为N2。IPC规模呈指数增长将会呈现负面影响,这不仅是因为相关开销有所增加,还因为意外的进程交互数量有所增加,但是软件工程师可能不会注意到这一点。在实际
24、操作中,一旦重大事件触发密集的交互时,IPC成规模地过度增长就可能导致系统级“IPC崩溃”。例如,拔出线卡通常会对接口管理、IGP、外部网关协议和流量工程产生影响。如果不对进程间交互加以妥善牵制,这个事件可能就会导致出现死锁和死循环等现象,同时多个线程彼此等待,路由表维护和IGP计算等虚拟系统运行也会临时中断。此类缺陷体现了不合理的模块化部署,在此,类似的功能组件或者高度交互的功能组件不能作为一个进程或一个线程发挥作用。此时,您可能会提出这样一个问题:“系统的模块化程度会不会过高?”根据以往的经验,答案通常是肯定的。过度模块化将带来长期的问题,包括代码复杂性、相互锁定和不必要的进程间依存等。虽
25、然这些问题都没有严重到必须停止开发工作,但将对特性速度和扩展参数产生一定影响。复杂的进程交互还将使您越来越难以为此类网络操作系统编写程序。另一方面,如果不相关的进程通过共享内存池和协作可重启性彼此影响,那么协作多任务处理在共享内存范例方面显然也并不理想。第一代操作系统中最常见的问题是:一些相对来说不重要的进程(如 SNMP或网络统计数据)中的轻微错误会导致系统级的故障停机。如果此类错误出现在受保护的、可独立重启的系统代码片段中,那么您将能够轻松地将问题隔离在这个代码片段中。这使我们得出一个重要结论。在软件设计中,不存在任何适用于所有情况的通用原则。从一个完美主义者的角度来说,代码设计应该采用最
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年网络操作系统的发展历程 2022 网络 操作系统 发展 历程
限制150内