1 1 2 9 211 212 213 Xinu 9 uc/os and uc/os-ii 10 ecos 10 221 222 223 224 225 226 psos+ 12 QNX 14 VRTX 15 VxWorks 16 Nucleus PLUS 18 OS-9 19 3 25 i
341 342 343 344 345 346 347 348 349 28 29 30 31 31 /POSIX 32 33 34 35 4 36 411 412 413 414 415 416 417 418 419 36 37 38 39 39 /POSIX 40 40 40 41 ii
421 422 423 424 425 44 45 46 Inter-Process Communication 47 47 431 432 48 50 5 53 511 512 54 56 551 552 553 65 66 67 6 70 iii
1 ecos 11 2 psosystem 13 3 QNX 15 4 VRTX 16 5 VxWorks 18 6 OS-9 20 7 43 8 44 9 45 10 46 11 IPC 47 12 48 13 Network Address Translation 53 14 Cross 58 15 59 16 67 17 68 iv
1 21 2, MMU 22 3,, POSIX, 23 4,, 24 5 25 6 Cross 60 7 63 8 64 9 65 v
1 1 LAN, WAN, L4, PDA,, 11 TCP/IP
2 TCP/IP, TCP/IP,,, PC Xinu[8], uc/os[10] psos[14], VxWorks[17] IOS[20] [1]
: Xinu, uc/os, etc : psos, VxWorks, Nucleus[18], LynxOS[47], VRTX[16], QNX[15], etc : IOS, Enterprise OS[21], etc 12, [2],, 3
4 [3], TCP/IP,,,,,
13 PC GNU/Linux PC Glibc C [4], GNU/Linux, C, [2],, TCP/IP, PPP, X25, HDLC, 5
6 FDDI [48] [5, 6] PC, 1 1 [7] 1999 9 [49]
7, 114, WindRiverQNX EE Times 1400% [50] 14 15 2 3 2, 4 3
, 5 6 8
2,, 21 211 Xinu XinuPurdue UniversityDouglas E Comer [1, 8] TCP/IP Xinu,,,, I/O TCP/IP,, CPU 9
212 uc/os and uc/os-ii uc/osjean J Labrosse POSIX uc/os-ii [1, 9], uc/osuc/os-ii 4000 C CPU Intel, Motorola, ARM, SPARC, Hitachi SH 32 CPUZilogZ80 8 CPU, TI DSP C,, TCP/IP uc/os, uc/os-ii 213 ecos ecos RedHat Cygnus [1, 11],,, CPU GUI C 10
EL/IX API EL/IX ecos ITRON[12] TCP/IP TCP/IP 1 ecos 1 ecos 22 100 TCP/IP 11
50 [3] Motorola, ARM, MIPS 6 221 psos+ psos WindRiver Systems, Inc Integrated Systems, Inc [13, 14] psosystem - psos+m, psos+m x86 - fault tolerant priority 256 prioritized FIFO prioritized round-robin MMU 4KB 12
TCP/IP FTP, Telnet, TFTP, NFS, HTTP psosystem prism+ 95/98, NT prism+corba SNiFF++ probe+gui 2 psosystem 2 psosystem 13
222 QNX QNXQNX Software Systems Ltd - [13, 15] QNX,,, IPC,,,, CPU QNX IPC QNX fault-tolerant, QNX QNX32 priority 2000 prioritized FIFO, prioritized round-robin, adaptive QNX MMU 4KB TCP/IP 3QNX 14
3 QNX 223 VRTX VRTXMentor Graphics VRTXoc (on-chip) VRTXsa (scalable architecture) [16] POSIX/ANSI MS-DOS TCP/IP SNMPTMN/CMIP, I/O, MMU MMU XRAY XRAY 15
4VRTX 4 VRTX 224 VxWorks VxWorks WindRiver Systems, Inc VRTXpSOSystem WindRiver Systems, Inc [13, 17] VxWorks - VxWorks wind 16
,, /, privilege VxVMI Priority 256 POSIX wind proprietary MMUVxVMI 8KB VxVMI,, VxWorks VM,,, Tornado Tcl VxSim VxWorks VxMP TCP/IP 5VxWorks 17
5 VxWorks 225 Nucleus PLUS NucleusAccelerated Technology Inc Nucleus PLUS [18] Nucleus NET TCP/IP Nucleus PLUS ANSI C,,, Nucleus NET TCP/IP telnet, ftp, web Nucleus NETTCP/IP 60KB Nucleus PLUS 18
CPU Nucleus PLUS,, MMU 226 OS-9 OS-9 Microware [19] OS-9,, CRC OS-9 CRC OS-9 OS-9 C/C++ HTML API OS-9 I/O I/O SoftStax I/O OS-9 19
6OS-9 6 OS-9 23 Cisco, 3Com CiscoIOS[20] 3ComEnterprise OS[21], 20
24, 1 Name Supported CPUs Supported Languages Xinu x86, SPARC, i960, 68k, PowerPC Assembly, C, C++ uc/os I, II Most Assembly, C, C++ ecos ARM, MIPS, SPARC, PowerPC Assembly, C, C++ psos+ 68k, ARM, M Core, ColdFire, i960, MIPS, PowerPC, SH, SPARC, x86 Assembly, C, C++, Java, Fortran, ADA QNX MIPS, PowerPC, x86 Assembly, C, C++ VRTX 68k, ARM, PowerPC, x86, M Core VxWorks PowerPC, 68k, ColdFire, M Core, x86, i960, ARM, MIPS, SH, SPARC Nucleus PLUS 68k, ARM, M Core, ColdFire, i960, MIPS, PowerPC, SH, x86 Assembly, C, C++, Java Assembly, C, C++, Java, Fortran, ADA Assembly, C, C++, Java OS-9 68k, ARM, PowerPC, SH, x86 Assembly, C, C++, Java 1 21
2, MMU Name Req ROM (min) Req RAM (min) Multitasking Strategy MMU support Xinu Unknown Unknown Fixed Priority No uc/os I, II 4 ~ 8KB 3KB Fixed Priority No ecos Unknown Unknown Unknown No psos+ 15KB 5KB Round Robin, Time Slice, Cooperative,Rate Monotonic,Proprietary QNX 32 ~ 64KB 8KB Round Robin, Time Slice, Fixed Priority, Proprietary, VRTX Unknown Unknown Round Robin, Time Slice, Fixed Priority VxWorks Unknown Unknown Round Robin, Fixed Priority Nucleus PLUS 3 ~ 45KB 2KB Time Slice, Cooperative, Prorietary OS-9 128 ~ 6000KB 128KB Round Robin, Time Slice, Rate Monotonic, Cooperative, Proprietary 2, MMU Yes Yes Yes Yes Yes Yes 22
3,, POSIX, Name Modular link Multiprocessor support POSIX compliant Compilers supported Xinu No No No All ANSI compatible compilers uc/os I, II Yes No No All ANSI compatible compilers ecos Unknown No Yes GNU gcc psos+ Yes Yes Yes Diab Data, prism+ QNX No Yes Yes GNU gcc, Watcom C/C++ VRTX Yes No Yes Microtec C/C++, VxWorks Yes Yes Yes GNU gcc, Diab Data, Tornado Nucleus PLUS Yes Yes No GNU, ARM, Diab Data, SDS, MetaWare, Watcom, Borland, Microsoft, SSI OS-9 Yes No No ucc, GNU gcc 3,, POSIX, 23
4,, Name Debuggers supported Approx installed base Price Xinu Post-Mortem Debugger Unknown Free uc/os I, II Unknown 2,000 $50 ecos GNU GDB Unknown Free psos+ Cross compiler and source level debugger included QNX CodeWarrior IDE for QNX Neutrino, GNU GDB, Watcom C/C++ 7,000 $16,500 One million $795 VRTX XRAY debugger 50,000 $1,000 VxWorks GNU GDB, Tornado, Unknown - Very Large Nucleus PLUS Nucleus UDB, SDS, EST VisionCLICK, MetaWare, SSI, CodeWarrior $90,000 ~$200,000 2,300 $7,495 ~ $12,495 OS-9 Hawk, CodeWarrior Three million Unknown 4,, 24
3, 2 31 32bit MMU MIPS DRAM MB ~ MB [22] 5 [23] Flash 100K ~ 4MB RAM 500K ~ 2MB Tiny Midrange High-end Embedded PC Embedded Server 2 ~ 8MB 8 ~ 32MB 16 ~ 64MB 64+ MB or disk 2 ~ 4MB 4 ~ 16MB 16+ MB 64+ MB 5 25
26 32 100KB 5 TCP/IP, 128 ~ 256KB TCP/IP 100 ~ 200KB 800KB [24] PC PC,,, TCP/IP
33 2 Xinu IEEE [25], hard real-timesoft real-time Hard real-time worst-case time soft realtime soft real-time 2 hard real-time Xinu 27
28, real-time VoIP,, [25] Xinu 34 2 341 portability
C RISC RISC RISC RISC C Wind River Inc,VxWorksRISC 98% CISC 80% C [26] portability C 342, Gbps, modularity C RISC RISC 29
CISC [26] psosystem CISC 68k psosystem, ROMRAM psosystem,, VxWorks, I/O, 343 Gbps VxWorkspSOSystem VxWorks VxMP tightly-coupled 30
20 psosystem psos+m loosely-coupled LAN, bus, psosystem 344,,,,,,, I/O, OS-9, psosystem, VxWorks TCP/IPNFS OS-9 I/O FIFO, character device, random and sequential block device, file system, internet device, NFS, X-Windows, ISDN 345 31
SNMP vertical application PC psosystem SNMP OS-9 kiosk mpeg decoder 346 /POSIX POSIX(Portable Operating System Interface) [27] POSIX C POSIX1 C POSIX C POSIX 32
POSIX POSIX latency hard realtime [28] POSIX 10031 POSIX 10031B TRON(The Real-time Operating system Nucleus)[12] POSIX 347 API C C++ C/C++ Fortran ADA 33
C OS-9 Microware Ultra C OS-9 C psosystem VxWorks C, C++, Fortran, ADA 348,,,, 34
35 349 1 1000
4 3 41 3 411 Alpha, ARM, i386, Motorola 68k, PowerPC, MIPS, S390, SPARC, SPARC64 MotorolaDragonBall, ColdFire, MC68360, MC68EN302, ETRAX, Intel i960, Hitachi SH [29] Crusoe Intel IA-64 [30, 31] 36
2217 86,597,632 bytes 18,829,312 bytes 2174% PowerPC 2,531,328 bytes 292% 97% VxWorks 412 modular configuration tool Loadable Module Support Networking Support Floppy, IDE, SCSI, RAM disk Support File System Support 37
Kernel Debugger Support Etc,, i386 2217 402,183 bytes 393KB 1 DOS 413 Alpha, i386, PowerPC, S390, SPARC, SPARC64 tightly-coupled symmetric multiprocessing i386 16 tightly-coupled VxMP IPC System V IPC 38
414,,, IPC Floppy, IDE, SCSI, IrDA,,,, serial, parallel port DOS, HFS, ISO9660, Minix, NTFS, HPFS, ROMFS, ext2, UFS, NFS Ethernet, PPP, SLIP, PLIP, X21, X25, V24, V35, V36, Wireless LAN, Token ring, Fibre Channel, ARCnet, Frame relay L2 IP, IPX, Appletalk L3 415 12,000 [32, 33] 1,000 FTP, telnet, HTTP, SMTP, POP3, DNS, NNTP, SNMP TCP/IP, 100, 100 DB, 1,000, 500, 200, 10 ORB 39
, vertical application 416 /POSIX POSIX [34] POSIX 417 C, C++, Fortran, ADA, assembly, Java, Forth, Prolog, Dylan, Eiffel, Modula-2 100 418, gdb, RCS, 40
gprof,,, OS/2, IRIX, HP-UX, Solaris, AIX,, GUI wrapper IDE IDE IDE 419 [35] 1 2 3 4 5 6 7 41
8 Open Source Initiative [36] 1 2 3 GPL, LGPL, BSD, MIT, Artistic [35, 37] GPL 42 3 3 7 [38] 42
7 monolithic, layered, virtual machine, client-server [45] 7 layered monolithic subsystem [39] 5 subsystem Process Scheduler Memory Manager Virtual File System 43
Inter-Process Communication Network Interface subsystem 421 8 8, 44
422 9 9 vertical application, POSIX MMU MMU MMU [29] 45
423 10 10 exended service bin_exec POSIX 46
424 Inter-Process Communication IPC 11 11 IPC File IPC application File IPC System V IPCNet IPC vertical application Kernel IPC System V IPC IPC 425 12 47
48 12 43, 431
vertical application [40] glibc GNU C Library sglibc Small glibc libc5 Older GNU C Library dietlibc To create small statically linked apps Newlib C library intended for use on embedded systems glibcgnu C sglibc glibc glibc libc5 glibc 2 glibc 20 glibc 49
50 libc5 dietlibc Newlib 432, PC PC RAM, ROM, Flash 20
[40] Network File System (NFS) Initial Ramdisk ROM File System (ROMFS) RAM File System (RAMFS) Compressed RAM File System (CRAMFS) Journaling Flash File System (JFFS) NFS NFS root mount NFS Initial Ramdisk VFS ext2 ROM File SystemEEPROMROM ROM ROM Read-Only 51
Minix 20KB ROMFS 4KB RAM File System 24 Compressed RAM File SystemRAMFS, VFS Read-Only File System RAMFS RAMFS CRAMFS 24 22 Journaling Flash File System Read-Write Journaling 52
5,,, 51 IP NAT(Network Address Translation) [41] 13 Network Address Translation 53
NATRFC1631 IP IP IP < IP> : < > : < IP> : < > IP IP [42] Solve A World Shortage of IP Addresses Satisfy Security Needs Ease and Flexibility of Network Administration, NAT NAT 511 WAN, LAN LAN NAT LAN CPU 54
WAN interface : 10Base-T Ethernet 1 Port LAN interface : 10/100Base-T Ethernet 4 Ports, Auto-Sensing CPU : MPC850DE (have 2 Ethernet Controllers) Memory : 2MB Flash, 16MB RAM 2 MII Transceivers 1 Switched Repeater (for HUB function) MPC850DEPowerPC PowerPC MC68360 QUICC PowerQUICC MPC860/850 MPC850 MPC860 MPC850 MPC850DE 105MIPS at 80MHZ (maximum speed) 2KB instruction cache and 1KB data cache Instruction and data MMUs Two SCCs (Serial Communication Controller with Ethernet Support) Two SMCs (Serial Management Channels) Parallel interface port PCMCIA interface Background Debug Mode(BDM)[43] debug interface 55
33V operation MPC860/850 PowerPC Cisco 4500 512 NAT, LAN WAN LAN Telnet, HTTP, SMTP well-known LAN, LAN LAN IP, WAN NAT (Network Address Translation) Virtual Server Access Control Special Internet Application Exposed Host DNS Cache DHCP Client and Server 56
Static Routing PPPoE (PPP over Ethernet) Virtual ServerLAN WAN Access ControlLAN WAN Special Internet ApplicationNAT Exposed HostLAN WAN DNS DHCP WAN DHCP IP LAN IP Static RoutingLAN PPPoEWAN ADSL PPPoE 52 PC 57
14 14 Cross LED, 7-segment LED LCD, RS-232 58
RS-232, 15 15 6 PowerPC PowerPC BDM(Background Mode Debugger) BDM gdb AbatronBDI2000 for GDB [44] 59
Name powerpc-linux-gcc powerpc-linux-g++ powerpc-linux-as powerpc-linux-gdb powerpc-linux-objdump powerpc-linux-objcopy powerpc-linux-strings powerpc-linux-strip powerpc-linux-size powerpc-linux-ar powerpc-linux-nm powerpc-linux-ranlib Functions GNU C and C++ compiler GNU assembler GNU debugger GNU object file tools GNU library tools gdbserver PowerPC Binary that enables application debugging with remote gdb protocol 6 Cross 53 4 MPC850 60
MPC850 ext2 elfscript Inter-Process Communication TCP/IP PPPMPC850 MPC850DEserial communication channel 2 61
MPC850DEserial management channel AMDIntel read/write/erase PPPoE 2,,, PPPoE 1MB 400KB 54 7 62
Name ash busybox tinylogin route insmod expr stty make_scripts flash_utils killall5 Functions Shell Multi-function binary Works as [, basename, cat, chgrp, chmod, cp, cut, date, df, dmesg, echo, false, free, grep, hostname, id, kill, killall, ln, ls, lsmod, mkdir, mount, mv, nslookup, ping, ps, rm, rmmod, sleep, sync, syslogd, test, touch, true, uname, update and uptime Multi-function binary Works as getty, login, passwd, sulogin Show/manipulate the IP routing table Install loadable kernel module Evaluate expressions Set the options for a terminal Make configuration scripts from configuration DB file Multi-function binary Works as file2flash, flash2file, flash2img, flash_info, img2flash, tftp2flash Send a signal to all processes halt, reboot, poweroff Stop the system 7 make_scripts CGI 63
500KB NAT, CGI 8 Name dhcpd pump ens inetd ipchains ipmasqadm pppd, pppoe telnetd webs Functions DHCP daemon DHCP client for embedded purpose Embedded domain name server Internet super server IP firewall administration IP Masquerading additional modules administration Poin to Point Protocol daemon and PPPoE wrapper Telnet server GoAhead web server 8 NAT, coordination 200KB 64
55 551 8 glibc glibc glibc PC C 9 Name ld-212so libc-212so libcrypt-212so libdl-212so libnss_db-212so libnss_dns-212so libnss_files-212so libutil-212so libresolv-212so libgdbmso200 libprocso200 Functions Portion of GNU C library GNU database indexing library procps system information library 9 65
66 11MB 552 ext2 IP ext2 minix msdos RAMFS / 16 PC
16 3MB 12MB 553 eeprom AMD 64KB 2MB bottom boot 64KB 8 8KB 17 67
17 56 400KB 1MB, 400K, 15MB 3MB, DNS 2MB 4MB 3MB + 2MB + 4MB = 9MB 16MB 68
69 15 PC ARM MPC850
70 6,,
71 MPC850DE
, 72
[1] Emmanuel Marty, The TUNES Project for a Reflective Computing System Review of Operating Systems, April 2000, http://wwwtunesorg/review/oseshtml#embedded_systems [2] Rick Lehrbaum, Using Linux in Embedded and Real-time Systems, February 2000, http://wwwlinuxdevicescom/articles/at3611822672html [3] Embedded Systems Programming, 2001 Buyer s Guide, http://wwwembeddedcom/bg/2001_bghtm [4] Rick Lehrbaum, What is Linux?, July 2000, http://wwwlinuxdevicescom/articles/at5383333597html [5] Linux Documentation Project, http://wwwlinuxdocorg [6] Korean Linux Documentation Project, http://kldporg [7] Rick Lehrbaum, Embedded Linux one year later, September 2000, http://wwwlinuxdevicescom/articles/at3595894022html [8] University of Canberra, Australia, The Xinu Page, October 1998, http://willowcanberraeduau/~chrisc/xinuhtml [9] AI Lab Zurich, Embedded and Real-Time Systems, October 2000, http://wwwifiunizhch/groups/ailab/links/embeddedhtml [10] Micrium, Inc, Home of uc/os-ii, The Real-Time Kernel, December 2000, http://wwwucos-iicom/ [11] RedHat, ecos, http://wwwredhatcom/embedded/technologies/ecos/ [12] TRON Association, ITRON Project Home Page, 1999, http://tronumutokyoacjp/tron/itron/home-ehtml [13] Real-Time Magazine, Comparison between VxWorks/x86 531, QNX 425 and psosystem/x86 226, April 1999 [14] Wind River, psosystem, http://wwwwrscom/products/html/psosystemhtml [15] QNX, QNX Products, http://wwwqnxcom/products/indexhtml [16] Mentor Graphics, VRTX Real Time Operating System, http://wwwmentorcom/embedded/vrtxos/indexhtml [17] Wind River, VxWorks 54, 73
http://wwwwindrivercom/products/html/vxwks54html [18] Accelerated Technology, Nucleus real-time, multitasking kernel, http://wwwatinucleuscom/nucprods/kernelshtm [19] Microware, OS-9 Real-Time Operating System, http://wwwmicrowarecom/products/software/os9-overviewhtml [20] Cisco Systems, Cisco IOS Software, http://wwwciscocom/warp/public/732/jumpshtml [21] 3Com, Enterprise OS User Guides, http://infodeli3comcom/infodeli/tools/bridrout/u_guides/html/indexhtm [22] Linux Devices, The Embedded Linux Market, May 2000, http://wwwlinuxdevicescom/files/article002/ [23] Lineo, Developer Info : White Papers, http://wwwlineocom/file_index/w/white_papers/indexhtml [24] Jim Ready and Bill Weinberg, Leveraging Linux for Embedded Applications, January 2000, http://wwwlinuxdevicescom/articles/at9844090738html [25] Rick Lehrbaum, Real-time Linux what is it, why do you want it, how do you do it?, September 2000, http://wwwlinuxdevicescom/articles/at9837719278html [26] Heurikon Corporation, Choosing an Operating System for Embedded Real- Time Applications, 1996, http://patscranenavymil/pubdoc/choososhtm [27] IEEE Standards Association, Portable Operating System Interface (POSIX), http://standardsieeeorg/catalog/posixhtml [28] Real-Time Korea, An Introduction to the Real-Time OS & Nucleus PLUS Training Guide [29] uclinux, Embedded Linux Microcontroller Project, http://wwwuclinuxorg/ [30] Linux s Ports, Current ports of Linux OS, July 2000, http://persowanadooes/xose/linux/linux_portshtml [31] Linux on IA-64, The Official Home Page of the IA-64 Linux Project, http://wwwlinuxia64org/ [32] SourceForge, SourceForge Statistics, http://sourceforgenet [33] Freshmeat, Application Index, http://freshmeatnet/appindex/ 74
[34] Paul Dunne, An Introduction to Linux, 2000, http://memberslinuxstartcom/~dunne//what_is_linuxhtml [35] Juancarlo Añez, The true meaning behind open source licenses, October 1999, http://communityborlandcom/devnews/article/1,1714,10335,00html [36] Eric Steven Raymond, Software Release Practice HOWTO, August 2000, http://wwwlinuxdocorg/howto/software-release-practice- HOWTO/indexhtml [37] Open Source Initiative, The Approved Licenses, http://wwwopensourceorg/licenses/ [38] Meyer C Tanuan, An Introduction to the Linux Operating System Architecture, January 1998, http://wwwgradmathuwaterlooca/~mctanuan/cs746g/linuxcahtml [39] Ivan Bowman, Saheem Siddiqi, Meyer C Tanuan, Concrete Architecture of the Linux Kernel, February 1998, http://plguwaterlooca/~itbowman/cs746g/a2/ [40] Graham Stoney, Linux for PowerPC Embedded Systems HOWTO, December 2000, http://penguinppcorg/usr/embedded/howto/powerpc- Embedded-HOWTOhtml [41] K Egevang, Cray Communications, P Francis, NTT, The IP Address Translator (NAT), May 1994, RFC 1631, http://sunsitecnlabswitchch/ftp/doc/standard/rfc/16xx/1631 [42] VicomSoft, Network Address Translation, 2000, http://wwwvicomsoftcom/knowledge/reference/nathtml [43] Craig A Haller, The ZEN of BDM, 1997, http://wwwmacraigorcom/zenofbdmpdf [44] Abatron AG, BDM/JTAG Debug Interfaces, http://wwwabatronch/bdi/bdimainhtml [45] Andrew S Tanenbaum, Operating Systems: Design and Implementation, Prentice-Hall, 1987 [46] David A Rusling, The Linux Kernel, 1999, http://wwwlinuxdocorg/ldp/tlk/ [47] LynuxWorks, LynxOS, http://wwwlynuxworkscom/products/whatisloshtml 75
[48] Joshua Drake, Linux Networking HOWTO DocBook Rev 02, 2000, http://wwwlinuxdocorg/howto/net-howto/indexhtml [49] Embedded Systems Conference, Embedded Systems Conference Papers, 2000, http://wwwesconlinecom/papershtm [50] Jeff Child and Charles J Murray, Linux deals rock the RTOS status quo, October 2000, http://wwweetcom/story/oeg20000929s0036 76