The latest Cisco has abandoned its proprietary iOS core, using Linux as the base platform for ASR1000 's control plane software. It is rumored that the software platforms of H3C and other manufacturers have also turned to Linux, which used to be based on VxWorks. A few years ago, even VxWorks's developer Wind River Company announced support for both VxWorks and Linux. In this view, Linux in the field of network equipment to replace VxWorks is almost a foregone conclusion. What is the reason behind this. What are the advantages of Linux compared to VxWorks?
In my opinion, IBM supports Linux in order to use Linux to save its huge server product line, with Linux to expand its software services market. (Note 1)
But the network equipment uses Linux, is not the Linux technology how advanced, but Linux represents the industrial chain development speed surpasses the VxWorks, uses the Linux to make the software development cost to be lower.
The main technical differences between Linux and VxWorks are:
A, the core of Linux and user processes is the address space isolation, the address space between each user process is isolated, when a user process crashes, does not affect the operating system core and other user processes normal operation.
B, Linux support page-level memory management, support for page change.
C, because of the isolation, so that the parts of the Linux software coupling less, the Linux application and the core has a clear line between the POSIX API.
All in all,Linux takes full advantage of the MMU hardware of modern microprocessors , while VxWorks uses a flat address space (note 2). Linux's protected mode on some high-end devices does make the system more stable, or at least easier to find bugs. This feature is also the main argument for relying on Juniper to attack Cisco IOS for a long time because Juniper's Junos is based on FreeBSD and has the same characteristics, while Cisco's iOS core is similar to VxWorks (Note 3).
In addition to the above technical advantages of Linux, in fact, there are many shortcomings, such as:
(a) Linux network protocol stack is optimized for the host, for low-end routers such devices, operating efficiency is not high.
(b) Linux software mirroring larger, occupy Flash and memory space, for very low-end equipment, high cost.
(c) In terms of overall operational efficiency, Linux is worse than VxWorks, Linux system invocation overhead, Linux dynamic Connection library calls overhead, and some hardware on the Linux process switching between the overhead and so on.
I think the technical advantages of Linux relative to VxWorks are negligible. The main reason for network device manufacturers to turn to Linux is that Linux represents an increasingly mature industrial chain, and the cost of developing Linux will be much lower than VxWorks. Mainly in: (a) More and more software to support Linux, and less software to support VxWorks, Linux has a lot of open source software, and these open-source software mostly does not support VxWorks. Now almost all commercial software for network devices supports Linux, such as gated, Zebos, Trillium, Interpeek protocol stacks. (b) Almost all chips provide Linux drivers, and almost all CPUs and evaluation boards provide Linux support. (c) Developers who are familiar with Linux are better looking. Compared with Linux, VxWorks is becoming more and more highbrow, and its living environment is getting worse.
For network devices, choosing which operating system software is not the key to success or failure, the operating system only provides some basic functions such as task scheduling, communication between tasks, interrupt management, memory management and so on. In a router, the operating system software is the total amount of code 5-20%, and regardless of the choice of operating system, this part of the code is relatively stable, do not need to do too much modification and maintenance. But if the operating system chooses improperly, it may increase the cost of development. For example, if you choose a CPU that is not supported by VxWorks, you must develop its own CPU support code and BSP (note 4). If an Ethernet chip does not have a VxWorks driver, you also have to develop a vxworks driver. The most unbearable thing is that fewer people are using vxworks now, more and more people are programming Linux, and many people are very skilled.
If IBM chose Linux with a certain element of adventure, then Cisco, H3C, and the choice of Linux, and so on, more is helpless.
Note 1: At that time, Linux has been widely used in the Internet industry, such as FTP, Web server programs running on Linux has no problem, and there are Sybyse, Oracle, Infomix and other business databases have a Linux version. A large number of young technicians who have just graduated from school are familiar with linux,linux various technical data available everywhere on the Internet, discussion of Linux forum sites are emerging, Linux in the server market share of rapid growth. While IBM's AIX is technically ahead of the technology (which may not be agreeable, I think in about 2001 years, Linux is technically far behind the commercial Unix of AIX, Solaris, and so on.) Perhaps this issue can be discussed exclusively as a topic. , and has good commercial support, but also in the financial and other traditional enterprise market share of the temporary lead and Linux, but its vitality and prospects are far behind Linux. For IBM, AIX software sales are not a major source of revenue, and IBM's main business is software services, server hardware development and sales. In this case, IBM is smart to bet on Linux. When a large number of young people who believe in Linux gradually acquire the power to make decisions, they tend to be more Linux in purchasing, which they will find that many of these products are IBM's.
Note 2: This is not entirely accurate, VxWorks also provides support in the 6.x version, but this is not the main feature of VxWorks, and most applications under VxWorks have not yet used this feature.
Note 3: It may be based on a special QNX version.
Note 4: Sometimes even this work is completely unworkable, some CPUs are bound to Linux, and do not provide a complete register document.