Литература / sys_arch
.pdf
List of Figures
Conventional executives offer no memory protection. |
|
7 |
|
|||||||
In a monolithic OS, system processes have no protection. |
7 |
|
||||||||
A microkernel provides complete memory protection. |
|
7 |
|
|||||||
The QNX Neutrino architecture. |
8 |
|
|
|
|
|
|
|||
The QNX Neutrino microkernel. |
15 |
|
|
|
|
|
|
|||
QNX Neutrino preemption details. |
17 |
|
|
|
|
|
||||
Sparse matrix (tid,key) to value mapping. |
|
21 |
|
|
|
|||||
Possible thread states. |
22 |
|
|
|
|
|
|
|
|
|
The ready queue. |
25 |
|
|
|
|
|
|
|
|
|
Thread A blocks; Thread B runs. |
26 |
|
|
|
|
|
|
|||
FIFO scheduling. |
27 |
|
|
|
|
|
|
|
|
|
Round-robin scheduling. |
27 |
|
|
|
|
|
|
|
|
|
A thread’s budget is replenished periodically. |
|
29 |
|
|
|
|||||
A thread drops in priority until its budget is replenished. |
29 |
|
||||||||
A thread oscillates between high and low priority. |
30 |
|
|
|||||||
Interrupt handler simply terminates. |
|
45 |
|
|
|
|
|
|||
Interrupt handler terminates, returning an event. |
46 |
|
|
|||||||
Stacked interrupts. |
47 |
|
|
|
|
|
|
|
|
|
Changes of state for a client thread in a send-receive-reply transaction. |
54 |
|||||||||
Changes of state for a server thread in a send-receive-reply transaction. |
55 |
|||||||||
A multipart transfer. |
56 |
|
|
|
|
|
|
|
|
|
Scatter/gather of a read of 1454 bytes. |
57 |
|
|
|
|
|
||||
Connections map elegantly into file descriptors. |
60 |
|
|
|||||||
Pulses pack a small payload. |
61 |
|
|
|
|
|
|
|
||
Threads should always send up to higher-level threads. |
63 |
|
||||||||
A higher-level thread can “send” a pulse event. |
|
64 |
|
|
|
|||||
The client sends a sigevent to the server. |
65 |
|
|
|
||||||
Signal delivery. |
67 |
|
|
|
|
|
|
|
|
|
Arguments to mmap(). |
75 |
|
|
|
|
|
|
|
|
|
Instrumentation at a glance. |
90 |
|
|
|
|
|
|
|
||
The IDE helps you visualize system activity. |
|
93 |
|
|
|
|||||
Virtual address mapping (on an x86). |
|
115 |
|
|
|
|
|
|||
Full protection VM (on an x86). |
118 |
|
|
|
|
|
|
|||
The SCOID and FD map to an OCB of an I/O Manager. |
126 |
|
||||||||
October 16, 2008 |
List of Figures xi |
♥ 2008, QNX Software Systems GmbH & Co. KG.
Two processes open the same file. 127
A process opens a file twice. 128
Object file format: linking view and execution view. 133
Process memory layout on an x86. 134
A resource manager is responsible for three data structures. 146 Multiple clients opening various devices. 147
Encapsulation. 148
QNX Neutrino filesystem layering. 153
ETFS is a filesystem composed entirely of transactions. 158 The io-char module is implemented as a library. 177 Device I/O in QNX Neutrino. 178
Conditions for satisfying an input request. 180
Pseudo-ttys. 184
A detailed view of the io-pkt architecture. 190
A simple network where the client and server reside on separate machines. 198 A client-server message pass across the network. 200
Qnet and a single network. 203
Qnet and physically separate networks. 204
The io-pkt suite and its dependents. 212
Embedded web server. 216
Static partitions guarantee that processes get the resources specified by the system designer. 237
Without adaptive partitioning, a DOS attack on one process can starve other critical functions. 241
With scheduler partitions, a DOS attack is contained. 242
Photon regions. 248
Opaque regions are clipped out. 251
High-level view of the MME components. 271
MME architecture showing mme and qdb resource managers. 275
xii |
List of Figures |
October 16, 2008 |
About This Guide
October 16, 2008 |
About This Guide xiii |
♥ 2008, QNX Software Systems GmbH & Co. KG. |
What you’ll find in this guide |
What you’ll find in this guide
The System Architecture guide accompanies the QNX Neutrino realtime OS and is intended for both application developers and end-users.
The guide describes the philosophy of QNX Neutrino and the architecture used to robustly implement the OS. It covers message-passing services, followed by the details of the microkernel, the process manager, resource managers, the Photon microGUI, and other aspects of QNX Neutrino.
Note that certain features of the OS as described in this guide may still be under development for a given release.
For the latest news and information on any QNX product, visit our website (www.qnx.com). You’ll find links to many useful areas — Foundry 27, software downloads, featured articles by developers, forums, technical support options, and more.
The following table may help you find information quickly:
To find out about: |
Go to: |
OS design goals; message-passing IPC |
The Philosophy of QNX Neutrino |
System services |
The QNX Neutrino Microkernel |
Sharing information between processes |
Interprocess Communication (IPC) |
System event monitoring |
The Instrumented Microkernel |
Working on a system with more than one processor |
Multicore Processing |
Memory management, pathname management, etc. |
Process Manager |
Shared objects |
Dynamic Linking |
Device drivers |
Resource Managers |
Image, RAM, QNX 4, DOS, CD-ROM, Flash, NFS, |
Filesystems |
CIFS, Ext2 filesystems |
|
Serial and parallel devices |
Character I/O |
Network subsystem |
Networking Architecture |
Native QNX Neutrino networking |
Native Networking (Qnet) |
TCP/IP implementation |
TCP/IP Networking |
Fault recovery |
High Availability |
Sharing resources among competing processes |
Adaptive Partitioning |
continued. . .
October 16, 2008 |
About This Guide xv |
Typographical conventions |
♥ 2008, QNX Software Systems GmbH & Co. KG. |
||
|
To find out about: |
Go to: |
|
|
|
|
|
|
Graphical environment |
The Photon microGUI |
|
|
Multimedia Engine (MME) |
Multimedia |
|
|
Terms used in QNX documentation |
Glossary |
|
For information about programming in Neutrino, see Getting Started with QNX Neutrino: A Guide for Realtime Programmers and the Neutrino Programmer’s Guide.
Typographical conventions
Throughout this manual, we use certain typographical conventions to distinguish technical terms. In general, the conventions we use conform to those found in IEEE POSIX publications. The following table summarizes our conventions:
Reference |
Example |
Code examples |
if( stream == NULL ) |
Command options |
-lR |
Commands |
make |
Environment variables |
PATH |
File and pathnames |
/dev/null |
Function names |
exit() |
Keyboard chords |
Ctrl-Alt-Delete |
Keyboard input |
something you type |
Keyboard keys |
Enter |
Program output |
login: |
Programming constants |
NULL |
Programming data types |
unsigned short |
Programming literals |
0xFF, "message string" |
Variable names |
stdin |
User-interface components |
Cancel |
We use an arrow (→) in directions for accessing menu items, like this:
You’ll find the Other... menu item under Perspective→Show View.
We use notes, cautions, and warnings to highlight important messages:
xvi |
About This Guide |
October 16, 2008 |
♥ 2008, QNX Software Systems GmbH & Co. KG. |
Technical support |
|
Notes point out something important or useful. |
! |
CAUTION: Cautions tell you about commands or procedures that may have |
unwanted or undesirable side effects. |
WARNING: Warnings tell you about commands or procedures that could be dangerous to your files, your hardware, or even yourself.
Note to Windows users
In our documentation, we use a forward slash (/) as a delimiter in all pathnames, including those pointing to Windows files.
We also generally follow POSIX/UNIX filesystem conventions.
Technical support
To obtain technical support for any QNX product, visit the Support + Services area on our website (www.qnx.com). You’ll find a wide range of support options, including community forums.
October 16, 2008 |
About This Guide xvii |
Chapter 1
The Philosophy of QNX Neutrino
In this chapter. . .
Design goals |
3 |
|
|
|
Why QNX Neutrino for embedded systems? |
5 |
|||
Microkernel architecture |
6 |
|
|
|
Interprocess communication |
|
10 |
|
|
Network distribution of kernels |
11 |
|
||
October 16, 2008 |
Chapter 1 • The Philosophy of QNX Neutrino 1 |
