Next: Introduction, Up: (dir) [Contents][Index]
This file documents the GNU Mach microkernel.
This is edition 0.4, last updated on 17 March 2014, of The GNU Mach Reference Manual, for version 1.4.
Copyright © 2001, 2002, 2006, 2007, 2008 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Section, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.
This work is based on manual pages under the following copyright and license:
Mach Operating System
Copyright © 1991,1990 Carnegie Mellon University
All Rights Reserved.Permission to use, copy, modify and distribute this software and its documentation is hereby granted, provided that both the copyright notice and this permission notice appear in all copies of the software, derivative works or modified versions, and any portions thereof, and that both notices appear in supporting documentation.
CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
• Introduction: | How to use this manual. | |
• Installing: | Setting up GNU Mach on your computer. | |
• Bootstrap: | Running GNU Mach on your machine. | |
• Inter Process Communication: | Communication between process. | |
• Virtual Memory Interface: | Allocating and deallocating virtual memory. | |
• External Memory Management: | Handling memory pages in user space. | |
• Threads and Tasks: | Handling of threads and tasks. | |
• Host Interface: | Interface to a Mach host. | |
• Processors and Processor Sets: | Handling processors and sets of processors. | |
• Device Interface: | Accessing kernel devices. | |
• Kernel Debugger: | How to use the built-in kernel debugger. | |
Appendices | ||
---|---|---|
• Copying: | The GNU General Public License says how you can copy and share the GNU Mach microkernel. | |
• Documentation License: | This manual is under the GNU Free Documentation License. | |
Indices | ||
• Concept Index: | Index of concepts and programs. | |
• Function and Data Index: | Index of functions, variables and data types. | |
— The Detailed Node Listing — Introduction | ||
• Audience: | The people for whom this manual is written. | |
• Features: | Reasons to install and use GNU Mach. | |
• Overview: | Basic architecture of the Mach microkernel. | |
• History: | The story about Mach. | |
Installing | ||
• Binary Distributions: | Obtaining ready-to-run GNU distributions. | |
• Compilation: | Building GNU Mach from its source code. | |
• Configuration: | Configuration options at compilation time. | |
• Cross-Compilation: | Building GNU Mach from another system. | |
Bootstrap | ||
• Bootloader: | Starting the microkernel, or other OSes. | |
• Modules: | Starting the first task of the OS. | |
Inter Process Communication | ||
• Major Concepts: | The concepts behind the Mach IPC system. | |
• Messaging Interface: | Composing, sending and receiving messages. | |
• Port Manipulation Interface: | Manipulating ports, port rights, port sets. | |
Messaging Interface | ||
• Mach Message Call: | Sending and receiving messages. | |
• Message Format: | The format of Mach messages. | |
• Exchanging Port Rights: | Sending and receiving port rights. | |
• Memory: | Passing memory regions in messages. | |
• Message Send: | Sending messages. | |
• Message Receive: | Receiving messages. | |
• Atomicity: | Atomicity of port rights. | |
Port Manipulation Interface | ||
• Port Creation: | How to create new ports and port sets. | |
• Port Destruction: | How to destroy ports and port sets. | |
• Port Names: | How to query and manipulate port names. | |
• Port Rights: | How to work with port rights. | |
• Ports and other Tasks: | How to move rights between tasks. | |
• Receive Rights: | How to work with receive rights. | |
• Port Sets: | How to work with port sets. | |
• Request Notifications: | How to request notifications for events. | |
Virtual Memory Interface | ||
• Memory Allocation: | Allocation of new virtual memory. | |
• Memory Deallocation: | Freeing unused virtual memory. | |
• Data Transfer: | Reading, writing and copying memory. | |
• Memory Attributes: | Tweaking memory regions. | |
• Mapping Memory Objects: | How to map memory objects. | |
• Memory Statistics: | How to get statistics about memory usage. | |
External Memory Management | ||
• Memory Object Server: | The basics of external memory management. | |
• Memory Object Creation: | How new memory objects are created. | |
• Memory Object Termination: | How memory objects are terminated. | |
• Memory Objects and Data: | Data transfer to and from memory objects. | |
• Memory Object Locking: | How memory objects are locked. | |
• Memory Object Attributes: | Manipulating attributes of memory objects. | |
• Default Memory Manager: | Setting and using the default memory manager. | |
Threads and Tasks | ||
• Thread Interface: | Manipulating threads. | |
• Task Interface: | Manipulating tasks. | |
• Profiling: | Profiling threads and tasks. | |
Thread Interface | ||
• Thread Creation: | Creating threads. | |
• Thread Termination: | Terminating threads. | |
• Thread Information: | How to get informations on threads. | |
• Thread Settings: | How to set threads related informations. | |
• Thread Execution: | How to control the thread’s machine state. | |
• Scheduling: | Operations on thread scheduling. | |
• Thread Special Ports: | How to handle the thread’s special ports. | |
• Exceptions: | Managing exceptions. | |
Scheduling | ||
• Thread Priority: | Changing the priority of a thread. | |
• Hand-Off Scheduling: | Switch to a new thread. | |
• Scheduling Policy: | Setting the scheduling policy. | |
Task Interface | ||
• Task Creation: | Creating tasks. | |
• Task Termination: | Terminating tasks. | |
• Task Information: | Informations on tasks. | |
• Task Execution: | Thread scheduling in a task. | |
• Task Special Ports: | How to get and set the task’s special ports. | |
• Syscall Emulation: | How to emulate system calls. | |
Host Interface | ||
• Host Ports: | Ports representing a host. | |
• Host Information: | Query information about a host. | |
• Host Time: | Functions to query manipulate the host time. | |
• Host Reboot: | Rebooting the system. | |
Processors and Processor Sets | ||
• Processor Set Interface: | How to work with processor sets. | |
• Processor Interface: | How to work with individual processors. | |
Processor Set Interface | ||
• Processor Set Ports: | Ports representing a processor set. | |
• Processor Set Access: | How the processor sets are accessed. | |
• Processor Set Creation: | How new processor sets are created. | |
• Processor Set Destruction: | How processor sets are destroyed. | |
• Tasks and Threads on Sets: | Assigning tasks or threads to processor sets. | |
• Processor Set Priority: | Specifying the priority of a processor set. | |
• Processor Set Policy: | Changing the processor set policies. | |
• Processor Set Info: | Obtaining information about a processor set. | |
Processor Interface | ||
• Hosted Processors: | Getting a list of all processors on a host. | |
• Processor Control: | Starting, stopping, controlling processors. | |
• Processors and Sets: | Combining processors into processor sets. | |
• Processor Info: | Obtaining information on processors. | |
Device Interface | ||
• Device Open: | Opening hardware devices. | |
• Device Close: | Closing hardware devices. | |
• Device Read: | Reading data from the device. | |
• Device Write: | Writing data to the device. | |
• Device Map: | Mapping devices into virtual memory. | |
• Device Status: | Querying and manipulating a device. | |
• Device Filter: | Filtering packets arriving on a device. | |
Kernel Debugger | ||
• Operation: | Basic architecture of the kernel debugger. | |
• Commands: | Available commands in the kernel debugger. | |
• Variables: | Access of variables from the kernel debugger. | |
• Expressions: | Usage of expressions in the kernel debugger. | |
Documentation License | ||
• GNU Free Documentation License: | The GNU Free Documentation License. | |
• CMU License: | The CMU license applies to the original Mach kernel and its documentation. | |
Next: Introduction, Up: (dir) [Contents][Index]