QNX® Neutrino® Realtime Operating System Photon® Microgui Programmer’S Guide

Total Page:16

File Type:pdf, Size:1020Kb

QNX® Neutrino® Realtime Operating System Photon® Microgui Programmer’S Guide QNX® Neutrino® Realtime Operating System Photon® microGUI Programmer’s Guide For QNX® Neutrino® 6.5.0 © 2010, QNX Software Systems GmbH & Co. KG. © 1995 – 2010, QNX Software Systems GmbH & Co. KG. All rights reserved. Published under license by: QNX Software Systems Co. 175 Terence Matthews Crescent Kanata, Ontario K2M 1W8 Canada Voice: +1 613 591-0931 Fax: +1 613 591-3579 Email: [email protected] Web: http://www.qnx.com/ Electronic edition published 2010. QNX, Neutrino, Photon, Photon microGUI, Momentics, Aviage, and related marks, names, and logos are trademarks, registered in certain jurisdictions, of QNX Software Systems GmbH & Co. KG. and are used under license by QNX Software Systems Co. All other trademarks belong to their respective owners. Contents About This Guide xxv What you’ll find in this guide xxvii Typographical conventions xxviii Note to Windows users xxix Technical support xxx 1 Introduction 1 Overview of the Photon architecture 3 Photon Application Builder (PhAB) 5 Widget concepts 6 Widget life cycle 9 Widget geometry 11 Programming paradigm 13 Text-mode application 13 Non-PhAB application 14 PhAB application 15 Photon libraries 16 API categories and libraries 16 Versions and platforms 18 Building applications with PhAB—an overview 18 Step 1: Create modules 18 Step 2: Add widgets 19 Step 3: Attach callbacks 19 Step 4: Generate code 20 Step 5: Run your application 20 Step 6: Repeat any previous step 20 Writing applications without PhAB 21 2 Tutorials 23 Before you start... 25 Creating a Photon project and starting PhAB 25 PhAB’s Interface 26 Tutorial 1 — Hello, world 27 May 13, 2010 Contents iii © 2010, QNX Software Systems GmbH & Co. KG. Creating the application 27 Generating code 28 Want more info? 30 Tutorial 2 — editing resources 30 Adding a button widget 31 Changing the bevel width 31 Changing the font 32 Changing the text alignment 32 Setting flags 33 Changing the fill color 34 Editing a pixmap 35 Editing multiline text 36 Editing a list of text items 37 Creating a template 39 Want more info? 41 Tutorial 3 — creating menus and menubars 42 About link callbacks 42 About instance names 42 Creating a menubar 43 Creating the File menu module 44 Adding menu items 44 Creating the Help menu module 46 Attaching link callbacks 46 Setting up the code 48 Want more info? 49 Tutorial 4 — creating dialogs 49 About dialogs 50 More on instance names 50 Attaching a dialog module 50 Adding widgets to the dialog 51 Adding a callback to the Done button 53 Modifying a generated code function 54 Compiling and Running 55 Want more info? 55 Tutorial 5 — creating windows 56 Creating a window 56 Attaching callbacks 57 Adding widgets 57 Generating and modifying the code 59 Compiling and running 63 Want more info? 63 iv Contents May 13, 2010 © 2010, QNX Software Systems GmbH & Co. KG. 3 PhAB’s Environment 65 Menus 67 File menu 67 Edit menu 68 Project menu 69 Build menu 70 Widget menu 71 View menu 72 Window menu 72 Help menu 73 Toolbars 73 Control panels 76 Widget palette 77 Modes (create vs select) 79 Resources panel 80 Callbacks panel 81 Module Tree panel 82 Module Links panel 84 Browse Files panel 85 Search dialog 86 Customizing your PhAB environment 87 General preferences 88 Color preferences 89 Dragging preferences 90 Grid preferences 90 4 Working with Applications 93 Creating an application 95 Opening an application 96 Saving an application 98 From the IDE 98 From standalone PhAB 98 Closing an application 100 Specifying project properties 100 Startup Windows tab 101 Generate Options tab 104 Run options 107 Build and Debug options 108 Importing files 109 Importing PhAB modules from other applications 110 Importing XBM images 110 May 13, 2010 Contents v © 2010, QNX Software Systems GmbH & Co. KG. Importing graphics images 110 Exporting files 111 5 Working with Modules 113 Module types 115 Anatomy of a module 115 Selecting a module 117 How modules are saved 117 Changing module resources 117 Creating a new module 118 Deleting a module 118 Iconifying modules 118 Displaying modules at run time 119 Positioning a module 119 Finding lost modules and icons 121 Window modules 121 Resizing a window module 122 Dialog modules 122 Resizing a dialog module 122 Predefined dialogs 122 Menu modules 123 Opening the menu editor 123 Specifying instance names 125 Creating hotkeys and shortcuts 125 Resizing a menu module 126 Creating command items 126 Creating submenu items 127 Creating separator items 127 Creating toggle items 127 Creating function items 128 Moving menu items 129 Using a menu module 129 Picture modules 129 Displaying a picture 130 Using pictures as widget databases 130 Resizing a picture module 130 6 Creating Widgets in PhAB 131 Types of widgets 133 Instance names 133 Default instance name 134 vi Contents May 13, 2010 © 2010, QNX Software Systems GmbH & Co. KG. When to assign a unique name 134 Instance names and translations 135 Duplicate names 135 Creating a widget 135 Creating several widgets 136 Canceling create mode 136 Selecting widgets 136 A single widget 137 Multiple widgets 138 Widgets within a group 139 Hidden widgets 140 Aligning widgets 140 To another widget 141 To a parent container 141 Distributing widgets 141 Common User Access (CUA) and handling focus 142 Changing focus with the keyboard 142 Controlling focus 142 Focus callbacks 143 Focus-handling functions 143 Ordering widgets 144 Dragging widgets 145 Setting a widget’s x and y coordinates 147 Transferring widgets between containers 147 Resizing widgets and modules 147 Clipboard 148 Cutting and copying 148 Pasting 149 Duplicating widgets and containers 150 Deleting widgets or modules 150 Matching widget resources and callbacks 151 Importing graphic files 152 Changing a widget’s class 152 Templates 153 Creating templates 153 Adding a widget class 155 Editing templates 156 Deleting templates 157 7 Editing Resources and Callbacks in PhAB 159 Editing widget resources 161 May 13, 2010 Contents vii © 2010, QNX Software Systems GmbH & Co. KG. Pixmap editor 162 Setting the pixmap’s size 163 How to draw and erase 164 Choosing colors 164 Drawing freehand 164 Drawing lines, rectangles, and circles 165 Filling an enclosed area 165 Selecting an area 165 Nudging an area 165 Using the Pixmap toolbar 166 Other pixmap controls 166 Color editor 167 Full color editor 167 Quick color editor 168 Flag/choice editor 168 Flag resources 169 Option list resources 169 Font editor 170 List editor 171 Editing existing list items 172 Deleting list items 172 Number editor 172 Text editors 173 Code editor 175 Layout editors 176 Fill layout info editor 176 Row layout info editor 177 Grid layout info editor: 178 Row layout data editor 179 Grid layout data editor 180 Callbacks 181 Editing callbacks 182 Module callbacks 184 Prerealize setup function 185 Postrealize setup function 185 Setup functions are stored in stub files 185 Code callbacks 185 Callback functions are stored in stub files 186 Hotkey callbacks 186 Hotkeys — the basics 186 Specifying the hotkey label 187 viii Contents May 13, 2010 © 2010, QNX Software Systems GmbH & Co. KG. Specifying the callback 187 Processing hotkeys 189 Disabling hotkeys 189 Event handlers — raw and filter callbacks 190 8 Geometry Management 193 Container widgets 195 Geometry negotiation 195 Resize policy 196 Absolute positioning 199 Aligning widgets using groups 200 Joining widgets into a group 200 Accessing widgets in a group 200 Aligning widgets horizontally or vertically 201 Aligning widgets in rows and columns 201 Using the Group flags 202 Splitting apart a group 203 Constraint management using anchors 204 Anchor resources 206 Using layouts 208 PtFillLayout 210 PtRowLayout 212 PtGridLayout 216 Using hints 226 Enforcing position or size constraints without anchors or layouts 229 9 Generating, Compiling, and Running Code 231 Using the Build menu 233 Building your application 234 Generating application code 235 What PhAB generates 236 Version control 237 Function prototypes 238 How application files are organized 239 Multiplatform applications 240 Single-platform applications 241 Converting to Eclipse 242 Editing source 242 Choosing an editor or browser 243 Creating a source module 244 Changing the file display 244 May 13, 2010 Contents ix © 2010, QNX Software Systems GmbH & Co. KG. Compiling and linking 244 Specifying additional libraries 244 Running make 245 Customizing the build process 246 Running the application 246 Debugging 247 Managing targets 248 The Build menu 249 Including non-PhAB files in your application 249 Eclipse Project applications 250 Multiplatform applications 250 Single-platform applications 250 Adding libraries 251 Making a DLL out of a PhAB application 251 Compiling and linking 251 Initializing your DLL 251 Unloading your DLL 252 10 Working with Code 255 Variables and manifests 257 Widget variables and manifests 257 Using the global variable and widget manifest 258 Handling multiple instances of a window 258 Internal link manifests 260 Global header file 260 Function names and filenames 261 Initialization function 262 Processing command-line options 263 Module setup functions 264 Code-callback functions 266 Geometry data types 267 Timers 267 Using PtTimer 268 RtTimer* functions 268 Initializing menus 269 Enabling, disabling, or toggling menu items 269 Changing menu-item text 270 Generating menu items 270 Delaying and forcing updates to the display 275 Globally 275 For a specific container 275 x Contents May 13, 2010 © 2010, QNX Software Systems GmbH & Co. KG. Forcing updates 276 11 Manipulating Resources in Application Code 277 Argument lists 279 Setting
Recommended publications
  • Muuglines $2.50 the Manitoba UNIX User Group Newsletter
    Vol. 14 No. 2 October 2001 MUUGlines $2.50 The Manitoba UNIX User Group Newsletter October 9, 2001: companies to seek a “Plan B” from the Plan A of Microsoft’s Internet Information Server (IIS). To Consolidated Storage – wit: SAN/NAS or something else? Gartner recommends that businesses hit by Although most I/T professionals agree on the ben- both Code Red and Nimda immediately inves- efits of consolidating storage, there is some discus- tigate alternatives to IIS, including moving sion as to whether a Storage Area Network (SAN) Web applications to Web server software or Network Attached Storage (NAS) is the best from other vendors such as iPlanet and Apache. strategy. The answer is that it depends; but making Although those Web servers have required the choice, especially in the face of new emerging some security patches, they have much better technologies is difficult. security records than IIS and are not under active attack by the vast number of virus and This session will explain the concept of Con- worm writers. solidated Storage and its benefits. Then we will explore a few of the technologies available and on the near horizon for implementing a centralized Yes, Apache isn’t a “vendor”. Nonetheless, it storage infrastructure. Terry Baydock, Technical will be interesting to see if that has any effect on the Sales Specialist with the Storage Systems Group at statistics kept by Netcraft (http:// IBM Canada Ltd., will be our presenter for this www.netcraft.co.uk/survey/). The most recent sur- session vey show that the trend for the number of comput- ers hosting websites is Windows holding steady at Please note our meeting location: IBM Cana- around 50%, and Linux is at 30%, gaining ground da’s offices in the TD Centre, at the corner of at the expense of other Unix-like operating sys- Portage and Main.
    [Show full text]
  • The Blit: a Multiplexed Graphics Terminal
    The Blit: A Multiplexed Graphics Terminal Rob Pike Bell Laboratories Murray Hill, New Jersey 07974 ABSTRACT The Blit is a programmable bitmap graphics terminal designed specifically to run with the Unix operating system. The software in the terminal provides an asynchronous multi-window environment, and thereby exploits the multiprogramming capabilities of the Unix system which have been largely under-utilized because of the restrictions of conventional terminals. This paper discusses the design motivation of the Blit, gives an overview of the user interface, mentions some of the novel uses of multiprogramming made possible by the Blit, and describes the implementation of the multiplexing facilities on the host and in the terminal. Because most of the functionality is provided by the ter- minal, the discussion focuses on the structure of the terminal’s software. Sometime in 1983 The Blit: A Multiplexed Graphics Terminal Rob Pike Bell Laboratories Murray Hill, New Jersey 07974 Introduction The Blit* is a graphics terminal characterized more by the software it runs than the hardware itself. The hardware is simple and inexpensive (Figure 1): 256K bytes of memory dual-ported between an 800×1024×1 bit display and a Motorola MC68000 microprocessor, with 24K of ROM, an RS-232 interface, a mouse and a keyboard. Unlike many graphics terminals, it has no special-purpose graphics hardware; instead, the microprocessor executes all graphical operations in software. The reasons for and conse- quences of this design are discussed elsewhere.5 The microprocessor may be loaded from the host with custom applications software, but the terminal is rarely used this way.
    [Show full text]
  • A Complete Bibliography of Publications in Software—Practice and Experience
    A Complete Bibliography of Publications in Software|Practice and Experience Nelson H. F. Beebe University of Utah Department of Mathematics, 110 LCB 155 S 1400 E RM 233 Salt Lake City, UT 84112-0090 USA Tel: +1 801 581 5254 FAX: +1 801 581 4148 E-mail: [email protected], [email protected], [email protected] (Internet) WWW URL: http://www.math.utah.edu/~beebe/ 23 July 2021 Version 3.26 Title word cross-reference [Bar82a, Bar82c, Bar84b]. < [SMGMOFM07a, SMGMOFM07b]. > [SMGMOFM07a, SMGMOFM07b]. 2 [MST13, MDB19]. 3 [DS09]. 4 [MSR+07]. \ 0 [GW96]. 1 [GW96]. $1.50 [Bar78d]. $11 [PK04]. TM [MZB00, Win02]. 8 [DB21b]. k [Bar84a]. $12.00 [Rob72]. $13 [Bar84a]. [AW93, Mer93]. κ [MG94]. µ $13.00 [Rob72]. $18.50 [Jon74]. $185 [BS90c, BDS+92, SMNB21]. N [Bar79b]. $19.30 [Lan74a]. $19.50 [Dav78]. [MS98, Coh98, KST94, YAVHC21]. P 3 $25.00 [Pet77, And78]. 3 [BE02, FMA02]. [DC03]. PM [CLD+17]. q [GSR17]. τ $31-25 [Pet77]. $31.35 [Bri82]. 32 [VED06]. 2:5 [TSZ14, UDS+07]. $35.00 [Inc86]. $39.50 [Sim83]. 5 [CPMAH+20]. $58.50 [Wal81a]. $6.95 -ary [MS98]. -bit [AM10, SF85, VED06]. [Tho74]. 64 [AM10, VED06]. 68 -gram [Coh98, KST94, YAVHC21]. -grams [Ear76, Hol77]. $68.25 [Pit82]. $7.00 [GSR17]. -level [FM77]. -queens [Plu74]. [Bar72a]. $7.50 [Bar78d]. $7.95 -R [Ear76, Hol77]. -shortest-paths [MG94]. [Bar76a, Lav77]. $78.50 [Sim83]. 8 -System [BS90c]. [Plu74, SF85]. $8.95 [Bar82a, Bar82c, Bar84b]. $9.75 . [Bis81b]. .NET [Coo04, Han04]. [Bar77e, Mul76]. $9.80 [Atk79a]. $9.95 1 2 0 [Bar81, Edw98a, Edw98b, Gru83, Llo82, 2 [Bar74a, Bar74b, Bar80b, Bud85, Cor88b, Val77a, Val78, Wal83b].
    [Show full text]
  • Acme: a User Interface for Programmers Rob Pike AT&T Bell Laboratories Murray Hill, New Jersey 07974
    Acme: A User Interface for Programmers Rob Pike AT&T Bell Laboratories Murray Hill, New Jersey 07974 ABSTRACT A hybrid of window system, shell, and editor, Acme gives text-oriented applications a clean, expressive, and consistent style of interaction. Traditional window systems support inter- active client programs and offer libraries of pre-defined operations such as pop-up menus and buttons to promote a consistent user interface among the clients. Acme instead provides its clients with a fixed user interface and simple conventions to encourage its uniform use. Clients access the facilities of Acme through a file system interface; Acme is in part a file server that exports device-like files that may be manipulated to access and control the contents of its win- dows. Written in a concurrent programming language, Acme is structured as a set of communi- cating processes that neatly subdivide the various aspects of its tasks: display management, input, file server, and so on. Acme attaches distinct functions to the three mouse buttons: the left selects text; the mid- dle executes textual commands; and the right combines context search and file opening functions to integrate the various applications and files in the system. Acme works well enough to have developed a community that uses it exclusively. Although Acme discourages the traditional style of interaction based on typescript windows— teletypes—its users find Acme’s other services render typescripts obsolete. History and motivation The usual typescript style of interaction with Unix and its relatives is an old one. The typescript—an inter- mingling of textual commands and their output—originates with the scrolls of paper on teletypes.
    [Show full text]
  • Micropython Documentation Release 1.10 Damien P. George, Paul
    MicroPython Documentation Release 1.10 Damien P. George, Paul Sokolovsky, and contributors Jan 25, 2019 CONTENTS 1 MicroPython libraries 1 1.1 Python standard libraries and micro-libraries..............................2 1.1.1 Builtin functions and exceptions................................2 1.1.2 array – arrays of numeric data................................5 1.1.3 cmath – mathematical functions for complex numbers....................5 1.1.4 gc – control the garbage collector...............................6 1.1.5 math – mathematical functions................................7 1.1.6 sys – system specific functions................................9 1.1.7 ubinascii – binary/ASCII conversions........................... 11 1.1.8 ucollections – collection and container types...................... 11 1.1.9 uerrno – system error codes................................. 12 1.1.10 uhashlib – hashing algorithms............................... 13 1.1.11 uheapq – heap queue algorithm................................ 14 1.1.12 uio – input/output streams................................... 14 1.1.13 ujson – JSON encoding and decoding............................ 16 1.1.14 uos – basic “operating system” services............................ 16 1.1.15 ure – simple regular expressions............................... 20 1.1.16 uselect – wait for events on a set of streams........................ 22 1.1.17 usocket – socket module................................... 23 1.1.18 ussl – SSL/TLS module................................... 28 1.1.19 ustruct – pack and unpack
    [Show full text]
  • Histoire D'unix
    Histoire d’Unix David du Colombier Jean-Baptiste Campesato 9 juillet 2008 Table des mati`eres 1 La gen`ese 2 1.1 Bell Labs . 2 1.2 Multics . 3 1.3 Ken’s New System . 3 1.4 Le langage B . 4 1.5 La naissance d’Unix Time-Sharing System . 4 1.6 Le langage C . 6 1.7 L’´evolution d’Unix Time-Sharing System . 6 2 L’expansion 8 2.1 Berkeley Software Distribution . 8 2.1.1 1BSD et 2BSD . 8 2.1.2 L’arriv´eede l’adressage sur 32 bits . 9 2.1.3 3BSD et 4BSD . 9 2.1.4 4BSD `a4.2BSD . 10 2.1.5 4.3BSD . 11 2.1.6 BSD Networking Release . 12 2.1.7 Le proc`es: USL vs. BSDI . 14 2.1.8 4.4BSD . 14 2.2 L’Unix de AT&T . 15 2.2.1 Les d´ebuts. 15 2.2.2 UNIX System V . 16 2.3 L’Unix de Sun Microsystems . 17 2.3.1 SunOS . 17 2.3.2 Solaris . 18 3 L’ouverture 19 3.1 Le tournant de Bell Labs . 19 3.1.1 La fin d’Unix Time-Sharing System . 19 3.1.2 Plan 9 from Bell Labs . 20 3.1.3 Lucent Technologies . 21 3.1.4 Inferno . 21 3.2 « The Unix Wars » .............................. 22 1 Chapitre 1 La gen`ese 1.1 Bell Labs Bell Telephone Company fut fond´een 1878 par le beau p`ered’Alexander Graham Bell, Gardiner Greene Hubbard. Il participa ´egalement `ala mise en place d’une soci´et´e fille nomm´eeNew England Telephone and Telegraph Company.
    [Show full text]
  • Download The
    THE SHIP MODEL - A NEW COMPUTATIONAL MODEL FOR DISTRIBUTED SYSTEMS By George William Phillips B. Sc. (Computer Science) University of British Columbia, 1987 A THESIS SUBMITTED IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF SCIENCE in THE FACULTY OF GRADUATE STUDIES COMPUTER SCIENCE We accept this thesis as conforming to the required standard THE UNIVERSITY OF BRITISH COLUMBIA 1992 © George William Phillips, 1992 In presenting this thesis in partial fulfilment of the requirements for an advanced degree at the University of British Columbia, I agree that the Library shall make it freely available for reference and study. I further agree that permission for extensive copying of this thesis for scholarly purposes may be granted by the head of my department or by his or her representatives. It is understood that copying or publication of this thesis for financial gain shall not be allowed without my written permission. Computer Science The University of British Columbia 2075 Wesbrook Place Vancouver, Canada V6T 1Z1 Date: (9(2, 11i2 Abstract One of the fundamental goals of a distributed operating is to make a collection of corn— puters connected by a network appear as a unified whole to the users of the system. The system relies heavily on the network to help maintain this illusion. If the network is not fast enough system performance will be noticeably affected and the system will fail to achieve this primary goal. Since the network is used to allow two entities on different machines to communicate with each other, it is possible to reduce the use of the network by allowing entities to migrate between machines.
    [Show full text]
  • A Concurrent Window System
    A Concurrent Window System Rob Pike AT&T Bell Laboratories ABSTRACT: When implemented in a concurrent language, a window system can be concise. If its client programs connect to the window system using an interface defined in terms of communication on synchronous channels, much of the complexity of traditional event-based interfaces can be avoided. Once that interface is specified, complex interactive programs can be assembled, not monolithically, but rather by connecting, using the same techniques, small self-contained components that each imple- ment or modify elements of the interface. In partic- ular, the window system itself may be run recur- sively to implement subwindows for multiplexed applications such as multi-frle text editors. This is the software tool approach applied to windows. @ Computing Systems, Vol. 2 . No. 2 . Spring 1989 133 1. Introduction Traditional window systems offer their clients - the programs that call upon them for services an interface consisting primarily of a - o'events": graphics library and a stream of tokens representing key presses, mouse motion and so on. The clients of these systems tend to be written as state machines with transitions triggered by these events. Although this style of programming is adequate, it is uncomfortable; state machines are powerful but inconvenient. There are also engineering reasons to object to this interface style: all types of events come through the same port and must be disen- tangled; the event handlers must relinquish control to the main loop after processing an event; and the externally imposed definition of events (such as whether depressing a mouse button is the same type of event as releasing one) affects the structure of the overall program.
    [Show full text]
  • A Research UNIX Reader: Annotated Excerpts from the Programmer's
    AResearch UNIX Reader: Annotated Excerpts from the Programmer’sManual, 1971-1986 M. Douglas McIlroy ABSTRACT Selected pages from the nine research editions of the UNIX®Pro grammer’sManual illustrate the development of the system. Accompanying commentary recounts some of the needs, events, and individual contributions that shaped this evolution. 1. Introduction Since it beganatthe Computing Science Research Center of AT&T Bell Laboratories in 1969, the UNIX system has exploded in coverage, in geographic distribution and, alas, in bulk. It has brought great honor to the primary contributors, Ken Thompson and Dennis Ritchie, and has reflected respect upon many others who have built on their foundation. The story of howthe system came to be and howitgrewand prospered has been told manytimes, often embroidered almost into myth. Still, aficionados seem neverto tire of hearing about howthings were in that special circle where the system first flourished. This collection of excerpts from the nine editions of the research UNIX Programmer’sManual has been chosen to illustrate trends and some of the lively give-and-take—or at least the tangible results thereof—that shaped the system. It is a domestic study,aimed only at capturing the way things were in the system’soriginal home. To look further afield would require a tome, not a report, and possibly a more dis- passionate scholar,not an intimate participant. The rawreadings are supplemented by my own recollec- tions as corrected by the memories of colleagues. The collection emphasizes development up to the Seventh Edition (v7*) in 1979, providing only occasional peeks ahead to v8 and v9.
    [Show full text]
  • Dash1.Nothinkpad.Pdf
    '.4ON6 .4-37-N6L; 37-561ON-, )N59-45 6DEI >ook M=I JOFAIAJ troff -ms -mpictures|lp -dstdout|ps2pdf En LK?E@= 5=nI >OJDA=KJDoH,KIEnC=LAnoLo6DEnk2=@: HKnnEnCJDA'BHonJoFAH=JEnCIOIJAm. 4An@AHA@: -#- # '.4ON6 'BHonJ.oHC 15*N-!:'%&$'%$''&"# 6DEI EI = MoHk oB BE?JEon. N=mAI, ?D=H=?JAHI, Fl=?AI =n@ En?E@AnJI AEJDAH =HA JDA FHo@K?J oB JDA =KJDoHߣI Em=CEn=JEon oH =HA KIA@ BE?JEJEoKIlO, =n@ =nO HAIAm>l=n?A Jo =?JK=l FAH­ IonI, lELEnC oH @A=@, >KIEnAIIAI, ?omF=nEAI, ALAnJI oH lo?=lAI EI AnJEHAlO ?oEn?E@AnJ=l. 4E?D=H@ MEllAH =n@ 5JALA 5J=llEon =HA noJ =BBElE=JA@ MEJD 'BHonJ. 6DA oFAH=JEnC IOIJAm @oAInoJD=LA=noBBE?E=lFoHJIJHAA. M16/++/2K>lE?,om=En The study of this Book is forbidden. It is wise to destroy this copy after the first reading. Whosoever disregards this does so at his own risk and peril. These are most dire. Those who discuss the contents of this Book are to be shunned by all, as centres of pestilence. All questions of the Law are to be decided only by appeal to my writings, each for himself. There is no law beyond Do what thou wilt. 9FRONT FREQUENTLY QUESTIONED ANSWERS ACHTUNG! 'BHonJ@=IDm=nK=lEIMHEJJAn>O=n@BoH'BHonJKIAHI. Those who can do, those who can’t write and those who can’t write make ezines. ߞ 5=FAMKllAn@AH ACHTUNG! 1nBoHm=JEon FHoLE@A@ >O JDEI @o?KmAnJ EI 7NO..1+1)L =n@ m=O >A oKJ@=JA@ oHjKIJFl=En94ON/.7IAOoKH>H=En.NO4-.7N,5.
    [Show full text]
  • QNX® Neutrino® RTOS System Architecture
    QNX® Neutrino® RTOS System Architecture For release 6.4.0 © 2008, QNX Software Systems GmbH & Co. KG. © 1996–2008, QNX Software Systems GmbH & Co. KG. All rights reserved. Published under license by: QNX Software Systems International Corporation 175 Terence Matthews Crescent Kanata, Ontario K2M 1W8 Canada Voice: +1 613 591-0931 Fax: +1 613 591-3579 Email: [email protected] Web: http://www.qnx.com/ Electronic edition published 2008 QNX, Neutrino, Photon, Photon microGUI, Momentics, and Aviage are trademarks, registered in certain jurisdictions, of QNX Software Systems GmbH & Co. KG. and are used under license by QNX Software Systems International Corporation. All other trademarks belong to their respective owners. Contents About This Guide xiii What you’ll find in this guide xv Typographical conventions xvi Note to Windows users xvii Technical support xvii 1 The Philosophy of QNX Neutrino 1 Design goals 3 An embeddable POSIX OS? 3 Product scaling 3 Why POSIX for embedded systems? 4 Why QNX Neutrino for embedded systems? 5 Microkernel architecture 6 The OS as a team of processes 8 A true kernel 8 System processes 9 Interprocess communication 10 QNX Neutrino as a message-passing operating system 10 Network distribution of kernels 11 Single-computer model 11 Flexible networking 11 2 The QNX Neutrino Microkernel 13 Introduction 15 The implementation of QNX Neutrino 16 POSIX realtime and thread extensions 16 System services 16 Threads and processes 17 Thread attributes 20 Thread scheduling 24 When are scheduling decisions are made? 24 Scheduling priority 24 Scheduling algorithms 26 October 16, 2008 Contents iii © 2008, QNX Software Systems GmbH & Co.
    [Show full text]
  • The Unix Magician's Handbook
    The Unix Magician’s Handbook Gerard J. Holzmann° Bell Laboratories Murray Hill, New Jersey 07974 ABSTRACT A review of "The Unix Programming Environment," by Brian W. Kernighan and Robert Pike, Prentice-Hall Software Series (1984), ISBN 0-13-937699-2. Unix:Login, 1984, (publisher under the name Elizabeth Bimmler) The Unix Wizard Unix† is traditionally taught by ‘wizards.’ Every installation, and there seem to be well over 3000 now, inevitably comes with its own set of gurus where Unix freshmen can learn the art of Unix programming. Until recently, the prospective Unix programmer had to find a guru and seek to become his apprentice. After a long training the student could then become a master and as a token of his excellence would be issued the superuser password. Unix, to be sure, is not a trivial system, and as Kernighan and Pike note in the preface to their book: "as the Unix system has spread, the fraction of its users who are skilled in its application has decreased." The Unix operating system has been acclaimed for its conciseness and structure, its portability, and perhaps more important still: for its availability. Commenting on the 6th Edition Unix, John Lions made the follow- ing, often quoted, observation: "the whole documentation is not unreasonably transportable in a student’s briefcase." As Kernighan and Pike hav eaptly countered in their book: "this has been fixed in recent ver- sions." Considering that the kernel of the first edition Unix was only 8k in size, on the average, the size of the system has more than doubled with every new edition issued.
    [Show full text]