OS-9 Operating System System Programmer’S Manual OS-9 Operating System: System Programmer’S Manual Copyright © 1980, 1982 by Microware Systems Corporation

Total Page:16

File Type:pdf, Size:1020Kb

OS-9 Operating System System Programmer’S Manual OS-9 Operating System: System Programmer’S Manual Copyright © 1980, 1982 by Microware Systems Corporation OS-9 Operating System System Programmer’s Manual OS-9 Operating System: System Programmer’s Manual Copyright © 1980, 1982 by Microware Systems Corporation All rights reserved. This manual, the OS-9 Program, and any information contained herein is the copyrighted property of Microware Systems Corporation. Reproduction of this manual in part or whole by any means, electrical or otherwise, is prohibited, except by written permission from Microware Systems Corporation. The information contained herein is believed to be accurate as of the date of publication. However, Microware will not be liable for any damages, including indirect or consequential, related to use of the OS-9 Operating System or of this documentation. The information contained herein is subject to change without notice. Revision History Revision F-1 January 1983 Original Microware edition Revision G January 2003 Updated to reflect OS-9 Level 1 Version 1.2 Table of Contents 1. Introduction .......................................................................................................................1 History And Design Philosophy................................................................................1 System Hardware Requirements ...............................................................................2 2. Basic System Organization .............................................................................................3 3. Basic Functions of the Kernel.........................................................................................5 Kernel Service Request Processing ............................................................................5 Kernel Memory Management Functions..................................................................5 Memory Utilization......................................................................................................6 Overview of Multiprogramming ...............................................................................7 Process Creation ...........................................................................................................7 Process States ................................................................................................................8 The Active State ..................................................................................................8 The Wait State......................................................................................................8 The Sleeping State...............................................................................................8 Execution Scheduling ..................................................................................................8 Signals ............................................................................................................................9 Interrupt Processing...................................................................................................10 Physical Interrupt Processing .........................................................................10 Logical Interrupt Polling System....................................................................11 4. Memory Modules............................................................................................................13 Memory Module Structure .......................................................................................13 Module Header Definitions......................................................................................13 Type/Language Byte........................................................................................14 Executable Memory Module Format.......................................................................15 ROMed Memory Modules........................................................................................16 5. The OS-9 Unified Input/Output System ....................................................................17 The Input/Output Manager (IOMAN)...................................................................17 File Managers..............................................................................................................17 Device Driver Modules .............................................................................................18 Device Descriptor Modules ......................................................................................18 Path Descriptors .........................................................................................................20 6. Random Block File Manager ........................................................................................21 Logical and Physical Disk Organization.................................................................21 Identification Sector..........................................................................................21 Disk Allocation Map Sector ............................................................................22 File Descriptor Sectors .....................................................................................22 Directory Files ...................................................................................................23 RBFMAN Definitions of the Path Descriptor. ........................................................23 RBF Device Descriptor Modules..............................................................................24 RBF-type Device Drivers...........................................................................................25 RBFMAN Device Drivers..........................................................................................28 NAME: INIT......................................................................................................28 NAME: READ ...................................................................................................29 NAME: WRITE..................................................................................................29 NAME: GETSTA PUTSTA...............................................................................30 NAME: TERM ...................................................................................................31 NAME: IRQ SERVICE ROUTINE ..................................................................31 NAME: BOOT (Bootstrap Module)................................................................31 7. Sequential Character File Manager.............................................................................33 SCFMAN Line Editing Functions............................................................................33 SCFMAN Definitions of The Path Descriptor........................................................34 SCF Device Descriptor Modules ..............................................................................35 SCF Device Driver Storage Definitions...................................................................36 SCFMAN Device Driver Subroutines .....................................................................38 NAME: INIT......................................................................................................38 iii NAME: READ ...................................................................................................38 NAME: WRITE..................................................................................................39 NAME: GETSTA/SETSTA ..............................................................................39 NAME. TERM ...................................................................................................40 NAME: IRQ SERVICE ROUTINE ..................................................................40 8. Assembly Language Programming Techniques .......................................................43 How to Write Position-Independent Code.............................................................43 Addressing Variables and Data Structures.............................................................43 Stack Requirements....................................................................................................44 Interrupt Masks ..........................................................................................................44 Writing Interrupt-driven Device Drivers................................................................44 Using Standard I/O Paths ........................................................................................44 A Sample Program .....................................................................................................45 9. Adapting OS-9 to a New System .................................................................................47 Adapting OS-9 to Disk-based Systems ...................................................................47 Using OS-9 in ROM-based Systems ........................................................................47 Adapting the Initialization Module.........................................................................48 Adapting the SYSGO Module ..................................................................................49 10. OS-9 Service Request Descriptions...........................................................................51 F$AllBit - Set bits in an allocation bit map .............................................................51 F$Chain - Load and execute a new primary module............................................52 F$CmpNam - Compare two names.........................................................................53 F$CRC
Recommended publications
  • Freebsd-And-Git.Pdf
    FreeBSD and Git Ed Maste - FreeBSD Vendor Summit 2018 Purpose ● History and Context - ensure we’re starting from the same reference ● Identify next steps for more effective use / integration with Git / GitHub ● Understand what needs to be resolved for any future decision on Git as the primary repository Version control history ● CVS ○ 1993-2012 ● Subversion ○ src/ May 31 2008, r179447 ○ doc/www May 19, 2012 r38821 ○ ports July 14, 2012 r300894 ● Perforce ○ 2001-2018 ● Hg Mirror ● Git Mirror ○ 2011- Subversion Repositories svnsync repo svn Subversion & Git Repositories today svn2git git push svnsync git svn repo svn git github Repositories Today fork repo / Freebsd Downstream svn github github Repositories Today fork repo / Freebsd Downstream svn github github “Git is not a Version Control System” phk@ missive, reproduced at https://blog.feld.me/posts/2018/01/git-is-not-revision-control/ Subversion vs. Git: Myths and Facts https://svnvsgit.com/ “Git has a number of advantages in the popularity race, none of which are really to do with the technology” https://chapmanworld.com/2018/08/25/why-im-now-using-both-git-and-subversion-for-one-project/ 10 things I hate about Git https://stevebennett.me/2012/02/24/10-things-i-hate-about-git Git popularity Nobody uses Subversion anymore False. A myth. Despite all the marketing buzz related to Git, such notable open source projects as FreeBSD and LLVM continue to use Subversion as the main version control system. About 47% of other open source projects use Subversion too (while only 38% are on Git). (2016) https://svnvsgit.com/ Git popularity (2018) Git UI/UX Yes, it’s a mess.
    [Show full text]
  • Getting Started With... Berkeley Software for UNIX† on the VAX‡ (The Third Berkeley Software Distribution)
    Getting started with... Berkeley Software for UNIX† on the VAX‡ (The third Berkeley Software Distribution) A package of software for UNIX developed at the Computer Science Division of the University of California at Berkeley is installed on our system. This package includes a new version of the operating sys- tem kernel which supports a virtual memory, demand-paged environment. While the kernel change should be transparent to most programs, there are some things you should know if you plan to run large programs to optimize their performance in a virtual memory environment. There are also a number of other new pro- grams which are now installed on our machine; the more important of these are described below. Documentation The new software is described in two new volumes of documentation. The first is a new version of volume 1 of the UNIX programmers manual which has integrated manual pages for the distributed software and incorporates changes to the system made while introducing the virtual memory facility. The second volume of documentation is numbered volume 2c, of which this paper is a section. This volume contains papers about programs which are in the distribution package. Where are the programs? Most new programs from Berkeley reside in the directory /usr/ucb. A major exception is the C shell, csh, which lives in /bin. We will later describe how you can arrange for the programs in the distribution to be part of your normal working environment. Making use of the Virtual Memory With a virtual memory system, it is no longer necessary for running programs to be fully resident in memory.
    [Show full text]
  • Microware OS-9 Release Notes Version 3.2
    Microware OS-9 Release Notes Version 4.1 RadiSys. 118th Street Des Moines, Iowa 50325 515-223-8000 www.radisys.com Revision A • May 2003 Copyright and publication information Reproduction notice This manual reflects version 4.1 of Microware OS-9. The software described in this document is intended to Reproduction of this document, in part or whole, by be used on a single computer system. RadiSys Corpo- any means, electrical, mechanical, magnetic, optical, ration expressly prohibits any reproduction of the soft- chemical, manual, or otherwise is prohibited, without written permission from RadiSys Corporation. ware on tape, disk, or any other medium except for backup purposes. Distribution of this software, in part Disclaimer or whole, to any other party or on any other system may constitute copyright infringements and misappropria- The information contained herein is believed to be accurate as of the date of publication. However, tion of trade secrets and confidential processes which RadiSys Corporation will not be liable for any damages are the property of RadiSys Corporation and/or other including indirect or consequential, from use of the parties. Unauthorized distribution of software may OS-9 operating system, Microware-provided software, cause damages far in excess of the value of the copies or reliance on the accuracy of this documentation. involved. The information contained herein is subject to change without notice. May 2003 Copyright ©2003 by RadiSys Corporation. All rights reserved. EPC and RadiSys are registered trademarks of RadiSys Corporation. ASM, Brahma, DAI, DAQ, MultiPro, SAIB, Spirit, and ValuePro are trademarks of RadiSys Corporation. DAVID, MAUI, OS-9, OS-9000, and SoftStax are registered trademarks of RadiSys Corporation.
    [Show full text]
  • CS 350 Operating Systems Spring 2021
    CS 350 Operating Systems Spring 2021 4. Process II Discussion 1: Question? • Why do UNIX OSes use the combination of “fork() + exec()” to create a new process (from a program)? • Can we directly call exec() to create a new process? Or, do you have better ideas/designs for creating a new process? • Hints: To answer this question: think about the possible advantages of this solution. Fork Parent process Child process Exec New program image in execution 2 Discussion 1: Background • Motived by the UNIX shell • $ echo “Hello world!” • $ Hello world! • shell figures out where in the file system the executable “echo” resides, calls fork() to create a new child process, calls exec() to run the command, and then waits for the command to complete by calling wait(). • You can see that you can use fork(), exec() and wait() to implement a shell program – our project! • But what is the benefit of separating fork() and exec() in creating a new process? 3 Discussion 1: Case study • The following program implements the command: • $ wc p3.c > p4.output # wc counts the word number in p3.c • # the result is redirected to p4.output Close default standard output (to terminal) open file p4.output 4 Discussion 1: Case study • $ wc p3.c # wc outputs the result to the default standard output, specified by STDOUT_FILENO • By default, STDOUT_FILENO points to the terminal output. • However, we close this default standard output → close(STDOUT_FILENO ); • Then, when we open the file “p4.output” • A file descriptor will be assigned to this file • UNIX systems start looking for free file descriptors from the beginning of the file descriptor table (i.e., at zero).
    [Show full text]
  • The Dragonflybsd Operating System
    1 The DragonFlyBSD Operating System Jeffrey M. Hsu, Member, FreeBSD and DragonFlyBSD directories with slightly over 8 million lines of code, 2 million Abstract— The DragonFlyBSD operating system is a fork of of which are in the kernel. the highly successful FreeBSD operating system. Its goals are to The project has a number of resources available to the maintain the high quality and performance of the FreeBSD 4 public, including an on-line CVS repository with mirror sites, branch, while exploiting new concepts to further improve accessible through the web as well as the cvsup service, performance and stability. In this paper, we discuss the motivation for a new BSD operating system, new concepts being mailing list forums, and a bug submission system. explored in the BSD context, the software infrastructure put in place to explore these concepts, and their application to the III. MOTIVATION network subsystem in particular. A. Technical Goals Index Terms— Message passing, Multiprocessing, Network The DragonFlyBSD operating system has several long- operating systems, Protocols, System software. range technical goals that it hopes to accomplish within the next few years. The first goal is to add lightweight threads to the BSD kernel. These threads are lightweight in the sense I. INTRODUCTION that, while user processes have an associated thread and a HE DragonFlyBSD operating system is a fork of the process context, kernel processes are pure threads with no T highly successful FreeBSD operating system. Its goals are process context. The threading model makes several to maintain the high quality and performance of the FreeBSD guarantees with respect to scheduling to ensure high 4 branch, while exploring new concepts to further improve performance and simplify reasoning about concurrency.
    [Show full text]
  • ROM OS-9 Into Your Coco Boisy G
    ROM OS-9 Into Your CoCo Boisy G. Pitre Imagine turning on your CoCo and instead of being greeted with the all-to-familiar Microsoft BASIC copyright message and OK prompt, you see “OS9 BOOT”. In two seconds, the OS-9 copyright banner and an OS9: prompt appears, and you have an OS-9 shell at your fingertips without having anything plugged in the CoCo’s expansion port! It may sound far out, but it’s actually quite easy to set up a ROM-based OS-9 CoCo. It can be done simply by replacing the Microsoft BASIC ROM that comes in all CoCo systems with a ROM containing OS-9 with special modifications to certain modules to allow booting from ROM. OS-9 Sans Disk? It may sound strange that OS-9 could be run totally from ROM, but indeed, this is the way that OS-9 was designed to run: without any disk storage. In the embedded OS-9 world, a disk drive or other mass storage device is incidental, or in most cases, impractical. Yet in the CoCo world, we have become accustomed to thinking of OS-9 as a Disk Operating System (DOS) as opposed to an embedded operating system. This was reinforced by the fact that Tandy/Radio Shack catalogs stated that OS-9 required a disk drive, and indeed, for the particular boot strategy that Tandy and Microware employed, a disk drive was and still is necessary. So if it is possible to use OS-9 without a disk drive, then what’s the point? How useful can OS-9 be without a disk drive? The answer: extremely useful.
    [Show full text]
  • Linux-Kernel
    linux-kernel #linux- kernel Table of Contents About 1 Chapter 1: Getting started with linux-kernel 2 Remarks 2 Versions 2 Examples 2 Installation or Setup 2 Download extract and enter to the kernel directory 2 Build the dependencies, compile the kernel and modules. 3 Chapter 2: Creation and usage of Kernel Threads 4 Introduction 4 Examples 4 Creation of kernel threads 4 Chapter 3: Event Tracing 6 Examples 6 Tracing I2C Events 6 Chapter 4: Fork System call 7 Examples 7 fork() system call 7 Chapter 5: How to find the right person for help. 9 Introduction 9 Examples 9 Find the "likely" maintainers for the FTDI USB serial converter 9 Chapter 6: Linux Hello World Device driver 10 Examples 10 An empty kernel module 10 Building and running the module 10 Chapter 7: Linux: Named Pipes(FIFO) 12 Examples 12 What is Named Pipe (FIFO) 12 Credits 13 About You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: linux-kernel It is an unofficial and free linux-kernel ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official linux-kernel. The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.
    [Show full text]
  • Lecture 4: September 13 4.1 Process State
    CMPSCI 377 Operating Systems Fall 2012 Lecture 4: September 13 Lecturer: Prashant Shenoy TA: Sean Barker & Demetre Lavigne 4.1 Process State 4.1.1 Process A process is a dynamic instance of a computer program that is being sequentially executed by a computer system that has the ability to run several computer programs concurrently. A computer program itself is just a passive collection of instructions, while a process is the actual execution of those instructions. Several processes may be associated with the same program; for example, opening up several windows of the same program typically means more than one process is being executed. The state of a process consists of - code for the running program (text segment), its static data, its heap and the heap pointer (HP) where dynamic data is kept, program counter (PC), stack and the stack pointer (SP), value of CPU registers, set of OS resources in use (list of open files etc.), and the current process execution state (new, ready, running etc.). Some state may be stored in registers, such as the program counter. 4.1.2 Process Execution States Processes go through various process states which determine how the process is handled by the operating system kernel. The specific implementations of these states vary in different operating systems, and the names of these states are not standardised, but the general high-level functionality is the same. When a process is first started/created, it is in new state. It needs to wait for the process scheduler (of the operating system) to set its status to "new" and load it into main memory from secondary storage device (such as a hard disk or a CD-ROM).
    [Show full text]
  • List of BSD Operating Systems
    FreeBSD-based SNo Name Description A lightweight operating system that aims to bring the flexibility and philosophy of Arch 1 ArchBSD Linux to BSD-based operating systems. 2 AskoziaPBX Discontinued 3 BSDBox 4 BSDeviant 5 BSDLive 6 Bzerk CD 7 DragonFly BSD Originally forked from FreeBSD 4.8, now developed in a different direction 8 ClosedBSD DesktopBSD is a discontinued desktop-oriented FreeBSD variant using K Desktop 9 DesktopBSD Environment 3.5. 10 EclipseBSD Formerly DamnSmallBSD; a small live FreeBSD environment geared toward developers and 11 Evoke system administrators. 12 FenestrOS BSD 13 FreeBSDLive FreeBSD 14 LiveCD 15 FreeNAS 16 FreeSBIE A "portable system administrator toolkit". It generally contains software for hardware tests, 17 Frenzy Live CD file system check, security check and network setup and analysis. Debian 18 GNU/kFreeBSD 19 Ging Gentoo/*BSD subproject to port Gentoo features such as Portage to the FreeBSD operating 20 Gentoo/FreeBSD system GhostBSD is a Unix-derivative, desktop-oriented operating system based on FreeBSD. It aims to be easy to install, ready-to-use and easy to use. Its goal is to combine the stability 21 GhostBSD and security of FreeBSD with pre-installed Gnome, Mate, Xfce, LXDE or Openbox graphical user interface. 22 GuLIC-BSD 23 HamFreeSBIE 24 HeX IronPort 25 security appliances AsyncOS 26 JunOS For Juniper routers A LiveCD or USB stick-based modular toolkit, including an anonymous surfing capability using Tor. The author also made NetBSD LiveUSB - MaheshaNetBSD, and DragonFlyBSD 27 MaheshaBSD LiveUSB - MaheshaDragonFlyBSD. A LiveCD can be made from all these USB distributions by running the /makeiso script in the root directory.
    [Show full text]
  • System Calls & Signals
    CS345 OPERATING SYSTEMS System calls & Signals Panagiotis Papadopoulos [email protected] 1 SYSTEM CALL When a program invokes a system call, it is interrupted and the system switches to Kernel space. The Kernel then saves the process execution context (so that it can resume the program later) and determines what is being requested. The Kernel carefully checks that the request is valid and that the process invoking the system call has enough privilege. For instance some system calls can only be called by a user with superuser privilege (often referred to as root). If everything is good, the Kernel processes the request in Kernel Mode and can access the device drivers in charge of controlling the hardware (e.g. reading a character inputted from the keyboard). The Kernel can read and modify the data of the calling process as it has access to memory in User Space (e.g. it can copy the keyboard character into a buffer that the calling process has access to) When the Kernel is done processing the request, it restores the process execution context that was saved when the system call was invoked, and control returns to the calling program which continues executing. 2 SYSTEM CALLS FORK() 3 THE FORK() SYSTEM CALL (1/2) • A process calling fork()spawns a child process. • The child is almost an identical clone of the parent: • Program Text (segment .text) • Stack (ss) • PCB (eg. registers) • Data (segment .data) #include <sys/types.h> #include <unistd.h> pid_t fork(void); 4 THE FORK() SYSTEM CALL (2/2) • The fork()is one of the those system calls, which is called once, but returns twice! Consider a piece of program • After fork()both the parent and the child are ..
    [Show full text]
  • ® OS-9 RTOS for Power PC Based Systems Deterministic - Efficient - Scalable - Fast Booting
    MICROWARE® RTOS OS-9 for Power PC based systems Deterministic - Efficient - Scalable - Fast Booting Embedded systems span a myriad of applications, . High availability - OS-9 has the ability to add, ranging from simple microcontrollers to sophisticated remove, and replace individual components in medical imaging systems to complex industrial the system while on-line and in-use. This results applications. At the heart of these diverse applications in a high degree of system availability, even is an operating system (OS) - a software foundation during maintenance. Proven over 30 years in that delivers a common set of services helping mission critical devices around the world. software developers deliver their product to market more quickly. Enter Microware OS‐9, the high‐ performance, high‐availability real‐time operating system platform from MicroSys. The Microware OS‐9 RTOS has been deployed and proven in thousands of products worldwide and represented hundreds of embedded applications, including industrial automation and control and automotive and medical instrumentation. WHY MICROWARE OS-9 Microware OS-9 compact, high- performance multi-user, multi- tasking real-time kernel is a proven foundation for time-to-revenue success. OS-9 is a full-featured operating system framework, . Hard Real-Time Performance - Unlike Windows including the OS kernel, kernel services, and industry- and Linux-based systems, Microware OS-9 was standard APIs, middleware, and a complete IDE-based conceived from the ground up to meet the development framework. high-performance and reliability requirements of time-critical embedded applications. REDUCE RISK FAST BOOTING . High reliability - the OS-9 secure process model, real-time operating system (RTOS) provides .
    [Show full text]
  • OS-9 Technical Manual 4 Contents
    OS-9® Te c h n i c a l Manual Version 4.2 RadiSys. 118th Street Des Moines, Iowa 50325 515-223-8000 www.radisys.com Revision A • April 2003 Copyright and publication information Reproduction notice This manual reflects version 4.2 Microware OS-9. The software described in this document is intended to Reproduction of this document, in part or whole, by be used on a single computer system. RadiSys Corpo- any means, electrical, mechanical, magnetic, optical, ration expressly prohibits any reproduction of the soft- chemical, manual, or otherwise is prohibited, without written permission from RadiSys Corporation. ware on tape, disk, or any other medium except for backup purposes. Distribution of this software, in part Disclaimer or whole, to any other party or on any other system may constitute copyright infringements and misappropria- The information contained herein is believed to be accurate as of the date of publication. However, tion of trade secrets and confidential processes which RadiSys Corporation will not be liable for any damages are the property of RadiSys Corporation and/or other including indirect or consequential, from use of the parties. Unauthorized distribution of software may OS-9 operating system, Microware-provided software, cause damages far in excess of the value of the copies or reliance on the accuracy of this documentation. involved. The information contained herein is subject to change without notice. April 2003 Copyright ©2003 by RadiSys Corporation. All rights reserved. EPC and RadiSys are registered trademarks of RadiSys Corporation. ASM, Brahma, DAI, DAQ, MultiPro, SAIB, Spirit, and ValuePro are trademarks of RadiSys Corporation.
    [Show full text]