Next: Introduction, Up: (dir) [Contents][Index]
This file documents the GNU Hurd kernel component. This edition of the documentation was last updated for version 0.9 of the Hurd.
Copyright © 1994, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
• Introduction: | How to use this manual. | |
• Bootstrap: | Turning a computer into a Hurd machine. | |
• Foundations: | Basic features used throughout the Hurd. | |
• Input and Output: | Reading and writing I/O channels. | |
• Files: | Regular file and directory nodes. | |
• Special Files: | Files with unusual Unix-compatible semantics. | |
• Stores: | Generalized units of storage. | |
• Stored Filesystems: | Filesystems for physical media. | |
• Twisted Filesystems: | Providing new hierarchies for existing data. | |
• Distributed Filesystems: | Sharing files between separate machines. | |
• Networking: | Interconnecting with other machines. | |
• Terminal Handling: | Helping people interact with the Hurd. | |
• Running Programs: | Program execution and process management. | |
• Authentication: | Verifying user and server privileges. | |
• Index: | Guide to concepts, functions, and files. | |
— The Detailed Node Listing — Introduction | ||
---|---|---|
• Audience: | The people for whom this manual is written. | |
• Features: | Reasons to install and use the Hurd. | |
• Overview: | Basic architecture of the Hurd. | |
• History: | How the Hurd was born. | |
• Copying: | The Hurd is free software. | |
Bootstrap | ||
• Bootloader: | Starting the microkernel, or other OSes. | |
• Server Bootstrap: | Waking up the Hurd. | |
• Shutdown: | Letting the Hurd get some rest. | |
Server Bootstrap | ||
• Recursive Bootstrap: | Running a Hurd under another Hurd. | |
• Boot Scripts: | Describing server bootstrap relationships. | |
• Invoking boot: | How to use the boot program. | |
Foundations | ||
• Threads Library: | Every Hurd server and library is multithreaded. | |
• Ports Library: | Managing server port receive rights. | |
• Integer Hash Library: | Integer-keyed hash tables. | |
• Misc Library: | Things that soon will be in the GNU C library. | |
• Bug Address Library: | Where to report Hurd bugs. | |
Ports Library | ||
• Buckets and Classes: | Basic units of port organization. | |
• Port Rights: | Moving port rights to and from libports .
| |
• Port Metadata: | Managing port-related information. | |
• Port References: | Guarding against leaks and lossage. | |
• RPC Management: | Locking and interrupting RPC operations. | |
Input and Output | ||
• Iohelp Library: | I/O authentication and lock management. | |
• Pager Library: | Implementing multithreaded external pagers. | |
• I/O Interface: | RPC-based input/output channels. | |
Iohelp Library | ||
• I/O Users: | User authentication management. | |
• Conch Management: | Deprecated shared I/O implementation. | |
Pager Library | ||
• Pager Management: | High-level interface to external pagers. | |
• Pager Callbacks: | Functions that the user must define. | |
I/O Interface | ||
• I/O Object Ports: | How ports to I/O objects work. | |
• Simple Operations: | Read, write, and seek. | |
• Open Modes: | State bits that affect pieces of operation. | |
• Asynchronous I/O: | How to be notified when I/O is possible. | |
• Information Queries: | How to implement io_stat and
io_server_version .
| |
• Mapped Data: | Getting memory objects referring to the data of an I/O object. | |
Files | ||
• Translators: | Extending the Hurd filesystem hierarchy. | |
• Trivfs Library: | Implementing single-file translators. | |
• Fshelp Library: | Miscellaneous generic filesystem routines. | |
• File Interface: | File ports implement the file interface. | |
• Filesystem Interface: | Translator control interface. | |
Translators | ||
• Invoking settrans: | Declaring how a node should be translated. | |
• Invoking showtrans: | Displaying how nodes are translated. | |
• Invoking mount: | Unix-compatible active filesystem translators. | |
• Invoking fsysopts: | Modifying translation parameters at runtime. | |
Trivfs Library | ||
• Trivfs Startup: | Writing a simple trivfs-based translator. | |
• Trivfs Callbacks: | Mandatory user-defined trivfs functions. | |
• Trivfs Options: | Optional user-defined trivfs functions. | |
• Trivfs Ports: | Managing control and protid ports. | |
Fshelp Library | ||
• Passive Translator Linkage: | Invoking passive translators. | |
• Active Translator Linkage: | Managing active translators. | |
• Fshelp Locking: | Implementing file locking. | |
• Fshelp Permissions: | Standard file access permission policies. | |
• Fshelp Misc: | Useful standalone routines. | |
File Interface | ||
• File Overview: | Basic concepts for the file interface. | |
• Changing Status: | Changing the owner (etc.) of a file. | |
• Program Execution: | Executing files. | |
• File Locking: | Implementing the flock call.
| |
• File Frobbing: | Other active calls on files. | |
• Opening Files: | Looking up files in directories. | |
• Modifying Directories: | Creating and deleting nodes. | |
• Notifications: | File and directory change callbacks. | |
• File Translators: | How to set and get translators. | |
Stores | ||
• Store Library: | An abstract interface to storage systems. | |
Store Library | ||
• Store Arguments: | Parsing store command-line arguments. | |
• Store Management: | Creating and manipulating stores. | |
• Store I/O: | Reading and writing data to stores. | |
• Store Classes: | Ready-to-use storage backends. | |
• Store RPC Encoding: | Transferring store descriptors via RPC. | |
Stored Filesystems | ||
• Repairing Filesystems: | Recovering from minor filesystem crashes. | |
• Linux Extended 2 FS: | The popular Linux filesystem format. | |
• ISO-9660 CD-ROM FS: | Standard CD-ROM format. | |
• Diskfs Library: | Implementing new filesystem servers. | |
Diskfs Library | ||
• Diskfs Startup: | Initializing stored filesystems. | |
• Diskfs Arguments: | Parsing command-line arguments. | |
• Diskfs Globals: | Global behaviour modification. | |
• Diskfs Node Management: | Allocation, reference counting, I/O, caching, and other disk node routines. | |
• Diskfs Callbacks: | Mandatory user-defined diskfs functions. | |
• Diskfs Options: | Optional user-defined diskfs functions. | |
• Diskfs Internals: | Reimplementing small pieces of diskfs. | |
Distributed Filesystems | ||
• File Transfer Protocol: | A distributed filesystem based on FTP. | |
• Network File System: | Sun’s NFS: a lousy, but common filesystem. | |
File Transfer Protocol | ||
• FTP Connection Library: | Managing remote FTP server connections. | |
Networking | ||
• pfinet: | TCP/IP stack. | |
• pflocal: | ||
• libpipe: | ||
• Socket Interface: | Network communication I/O protocol. | |
Authentication | ||
• Auth Interface: | Auth ports implement the auth interface. | |
Auth Interface | ||
• Auth Protocol: | Bidirectional authentication. | |
Next: Introduction, Up: (dir) [Contents][Index]