This article analyzes and compares four real-time operating systems (RTOS) characteristics. They are: Lynx real-time system company Lynxos, QNX Software Systems Co., Ltd. QNX and two representative real-time Linux - RT-Linux and Kurt-Linux at the University of Kansas University of Technology.
In recent years, real-time operating systems have been widely used in multimedia communications, online transactions, production process control, traffic control, etc., and thus increasingly attracting attention.
Basic characteristics overview
* QNX is a distributed, embedded, large-scale extensible real-time operating system. It follows POSIX.1
(Program interface) and POSIX.2
(Shell and Tools), partially follow POSIX.1B (real-time extension). It was developed in 1980 and is now quite mature.
* Lynxos is a distributed, embedded, scalable real-time operating system that follows POSIX.1A, POSIX.1B, and POSIX.1C standards. It was first developed in 1988.
* RT-Linux is an embedded hard real-time operating system that partially supports the POSIX.1B standard.
* Kurt-Linux is not designed for embedded applications, unlike hard (HARD) real-time / soft (Soft) real-time applications, "Strong (FIRM)" real-time application concept, such as some multimedia applications and ATM network applications, Kurt It is a "strict" real-time system designed for such applications.
Architecture
The real-time system is mostly the micro-nuclear architecture, which makes the core compact and reliable, easy to curing, and modular expansion. In the microelectronuclear structure system, the OS service module runs in a separate address space, so the memory error of different modules is isolated. But it also has weaknesses, inter-process communication and the overhead of context switching have increased. Compared to large integrated kernel systems, it must perform the same task with more system calls.
* QNX is a micro-verification operating system, which provides only 4 services: process scheduling, inter-process communication, underlying network communication and interrupt processing, its process runs in standalone address space. All other OS services are implemented as a collaborative user process, so the QNX core is very small (qnx4.x is approximately 12KB) and the running speed is extremely fast.
* Lynxos is still not a microcarbon operating system, but it plans to use the so-called "Galaxy" technology to transform it from large integrated kernel into microenvironment, this technology will be in Lynxos.
Import in 3.0. The new 28KB microennuclear provides the following services: core start and stop, underlying memory management, error processing, interrupt processing, multitasking, underlying synchronization, and mutual exclusive support.
* RT-Linux implements a small real-time core, only supports the underlying task creation, an interrupt service routine loading, underlying task communication queue, interrupt service routine (ISR), and Linux processes. The original non-real-time Linux core is running on this small core as a preemptive task, and all tasks run in the core address space. It is different from the micronard and large core, which belongs to real-time EXE
Arctime EXECUTIVE Architecture. Its reliability and maintainability is not ideal for telecom service systems.
* Kurt-Linux core includes two parts: kernel and real-time modules. The kernel is responsible for the scheduling of real-time events, and the real-time module provides a specific real-time service for the user process. It does not belong to the microelectronics structure.
Scheduling strategy analysis
The task scheduling strategy is a factor that directly affects real-time performance. Although the scheduling algorithm is varied, most of them are changed by a monotonometer algorithm (RM) and the earliest period priority algorithm (EDF). The former is mainly used for the scheduling of static cycle tasks, the latter is mainly used for dynamic scheduling, and the two algorithms have various algorithms in different systems. The actual strategy used in commercial products is often a fold of various factors.
QNX provides POSIX.1B standard process schedule:
* 32 process priorities; * seizure, based on priority, switch;
* Optional scheduled strategy: FIFO, rotation strategy, adaptability.
Lynxos has its scheduling strategy:
* Lynxos supports thread concept, providing 256 global user thread priorities;
* Hard real-time priority scheduling: Turning scheduling, quantitative scheduling and FIFO scheduling strategy are implemented on each priority;
* Fast body switching and blocking time;
* Preematch the RTOS core.
RT-Linux
Under the operating system, a simple real-time core is implemented, and Linux itself is running in the nucleus as a grabable task, the lowest priority, and will be preemptive by high priority tasks.
* Users can write a scheduler yourself, which can be implemented as the core module that can be loaded;
* The implemented schedule is: based on priority preemptive scheduling and EDF scheduling;
* Based on priority scheduling uses a "monotonometer algorithm", it directly supports periodic tasks.
Kurt-Linux
Under both state: usual and real-time state. In normal conditions, all processes can be run, but some core services will bring uninterrupted disrupt shielding. Real-time mode only allows real-time processes to run.
* Support FIFO scheduling policies, rotary scheduling policies, and UNIX scheduled scheduling strategies;
* Added the SCHED-KURT scheduling policy, which is a static scheduling policy that uses a special scheduling file to record the parameters of the predetermined process.
It can be seen from the above brief description that the first three scheduling strategies are achieved more specifications, especially two commercial RTOS, follow or partially follow the POSIX.1B real-time scheduling standard.
Operating system service comparison
QNX system service:
* A variety of resource manager, including various file systems and device management, support multiple file systems simultaneously, including POSIX file systems that provide full POSIX.1 and UNIX syntax, support multi-flash device embedded file system, support For a variety of file servers (such as Windows
Transparent access to NT / 95, LAN Manager et al., DOS file system, CD-ROM file system, etc.
* Device management. To provide large throughput, low overhead interface services between processes and terminal devices.
* Graphics / Window Support. Including QNX Windows, X Window System for QNX, MS
Windows NT / 95 and X Window System Remote Graphics Connections.
* TCP / IP for QNX.
* High performance, fault-tolerant QNX network - FleET, makes all connected networks into a logically supercomputer.
* Transparent distributed processing. The integration of FleET network processing and message delivery and process management primitives, unity of local and network IPCs, making the network transparent to IPC.
Lynxos system service:
* Network and communication. Due to using UNIX / POSIX
API, Lynx is ideal for data communication and Internet applications. In addition to the openness of the system, the network software is easy to transplant to Lynx. Similarly, Lynx also provides a key telephone communication protocol to make it suitable for the infrastructure, operation and multimedia applications of the telecommunications system.
* TCP / IP protocol stack. Lynx's own optimized TCP / IP protocol stack, providing high-performance services, such as TCP header prediction, advanced routing algorithms, IP-level multicast, and link-level cache.
* Internet Tool. Includes, Telnet, FTP, TFTP, PPP, SLIP, real-time scheduling embedded Java virtual machine, embedded HTTPSERVER, BOOTP, ARP / RARP, DNS domain, email, perl, telephone communication protocol, etc.
* SVR3 stream. Lynxos flow mechanism provides core support for the development and transplant-based drivers and applications.
*File system. Real-time Unix hierarchical file system: Continuous structure file, buffered / without buffering, original partition, and original device access.
* Based on the MotiF graphical user interface.
* Distributed computing resources. SCMP and VME bus, PCI bridge service, CompactPCI
Hot-Swap Services, Lynx / HA-DDS distributed data system.
Linux system service:
Recently, many LINUX-based real-time applications have been developed, which has maturity and rich resources.
* UNIX users' development tools and applications are ported to Linux.
* TCP / IP network protocol.
* Various Internet client / server software.
* X window.
* C / C , Java and other language compilers.
The commonality of the above system is to provide a graphical interface, a variety of network support, etc. necessary. QNX is a more conforming to the traditional "distributed" concept. The target is to turn the entire local area network into a large supercomputer, so that the existence of the network is transparent to the user, the service provided by the file system is also very rich. However, the higher the degree of distribution, but also means that the system overhead increases. Lynxos is intended to provide rich network services, and Linux's biggest advantage is economical, but also through newsgroups or mailing.
List quickly solves any problems encountered by the user.
System open comparison
For many large, medium-sized systems, most software is written for UNIX platforms, so RTOS provides POSIX / UNIX
API is very important.
QNX openness:
* QNX's POSIX compatibility and its Unix featured compiler, debugger, x
Window and TCP / IP are familiar with UNIX programmers.
* Support multiple CPUs: AMD ELANSC300 / 310/400/410, AM386 DE / SE, CYRIX
Mediagx, X86 processor (386 or more), Pentium series, STMICROELECTRONICS STPC.
* Multi bus: CompactPCI, Eisa, ISA, MPE (RADISYS), STD, STD
32, PC / 104, PC / 104-PLUS, PCI, PCMCIA, VESA, VME.
* Various peripherals: a variety of SCSI devices, IDE / EIDE drives, 10M / 100M Ethernet card, Token
Ring NIC, FDDI interface card, a variety of PCMCIA devices, flash memory, sound cards, etc.
Openness of Lynxos:
* POSIX.1A, 1B, 1C, and BSD4.4 compatibility, make it followed by POSIX
1003 or programs for UNIX are easy to port to Lynxos.
* Support multiple CPU motherboards: including CompactPCI (6U / 3U) and standard PCI, VME / Eurobus, PC / 104, and PC / AT hardware, etc.
* Various peripherals adapters: 10 / 100BaseT
Ethernet, SCSI interface, single / multi-channel serial controller, single / duplex parallel port, clock, timer, IDE interface, high resolution display adapter, etc.
LINUX openness:
* Users can get all the development tools for UNIX.
* You can use a cheap and common hardware in the market.