GNU Hurd (usually referred to as the Hurd) is a free software computer operating system kernel, released under the GNU General Public License. A software developer is a person or organization concerned with facets of the software development process wider than design and coding a somewhat broader scope of Thomas Bushnell BSG, formerly known as Michael Bushnell, is a software developer and Gregorian friar. Roland McGrath is a Computer programmer. While working for the GNU Project he wrote the GNU C Library, co-wrote GNU Make, worked on the Marcus Brinkmann (born August 25 1975 in Dortmund, Germany is one of the lead developers of the Hurd/L4 which is supposed to supersede A software release is the distribution whether public or private of an initial or new and upgraded version of a Computer software product Events 1460 - Wars of the Roses: Battle of Wakefield. 1816 - The Treaty of St Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination GNU ( pronounced) is a computer Operating system composed entirely of Free software. Computer software can be organized into categories based on common function type or field of use In Computer science, the kernel is the central component of most computer Operating systems (OS A software license (or software licence in commonwealth usage is a Legal instrument governing the usage or redistribution of copyright protected software A website (alternatively web site or Web site, a back-construction from the Proper noun World Wide Web) is a collection of Web pages Free software or software libre is Software that can be used studied and modified without restriction and which can be copied and redistributed in modified or unmodified In Computer science, the kernel is the central component of most computer Operating systems (OS It consists of a set of servers (or daemons, in Unix terminology) that work on top of a microkernel; together they form the kernel of GNU. A server is a Computer dedicated to providing one or more services over a computer network typically through a request-response routine In Unix and other computer multitasking Operating systems a daemon (ˈdiːmən or /ˈdeɪmən/ is a Computer program that runs in the background Unix (officially trademarked as UNIX, sometimes also written as Unix with Small caps) is a computer A microkernel is a minimal Computer Operating system kernel which in its purest form provides no operating-system services at all only the In Computer science, the kernel is the central component of most computer Operating systems (OS GNU ( pronounced) is a computer Operating system composed entirely of Free software. The Hurd aims to surpass Unix kernels in functionality, security, and stability, while remaining largely compatible with them. Unix (officially trademarked as UNIX, sometimes also written as Unix with Small caps) is a computer
HURD is a mutually recursive acronym, standing for HIRD of Unix-Replacing Daemons, where HIRD stands for HURD of Interfaces Representing Depth. Mutual recursion is a form of Recursion where two mathematical or computational functions are defined in terms of each other A recursive acronym (or occasionally recursive initialism, and sometimes recursive backronym) is an Abbreviation that refers to itself in the It is also a play on the words herd of gnus, reflecting how it works. A herd is a large group of animals The term is usually applied to mammals particularly Ungulates. [1]
Contents |
Development on the GNU operating system began in 1984 and initially made good progress. Free GNU tools started to acquire a good reputation and were often adopted in preference to inferior proprietary tools provided by system vendors. By the early 1990s, the only major component missing was the kernel. [2]
Development on the Hurd began in 1990 after an abandoned kernel attempt in 1986, based on the research TRIX operating system developed by Professor Steve Ward and his group at MIT's Laboratory for Computer Science (LCS). Year 1990 ( MCMXC) was a Common year starting on Monday (link displays the 1990 Gregorian calendar) TRIX is a research network-oriented operating system compatible with UNIX version 7. Project MAC (the MIT Project on Mathematics and Computation later the MIT Laboratory for Computer Science ( LCS) was a research laboratory at MIT [3] According to Thomas Bushnell, the initial Hurd architect, their early plan was to adapt the 4.4BSD-Lite kernel and, in hindsight, "It is now perfectly obvious to me that this would have succeeded splendidly and the world would be a very different place today". Thomas Bushnell BSG, formerly known as Michael Bushnell, is a software developer and Gregorian friar. [4] However, in 1987, due to a lack of cooperation from the Berkeley programmers, Richard Stallman proposed instead to use the Mach microkernel developed at Carnegie-Mellon University. The University of California Berkeley (also referred to as Cal, Berkeley and UC Berkeley) is a major research university located in Berkeley Richard Matthew Stallman (born March 16 1953 often abbreviated " rms " is an American software freedom activist Mach is an Operating system Microkernel developed at Carnegie Mellon University to support operating system research primarily distributed and parallel Carnegie Mellon University (also known as CMU) is a private Research University in Pittsburgh, Pennsylvania, United Work on this was delayed for three years due to uncertainty over whether CMU would release the Mach code under a suitable license. [3]
With the release of the Linux kernel in 1991, the primary consumer of GNU's userland components soon became the Linux operating system, prompting the coining of the controversial term GNU/Linux. Linux is an operating system kernel used by a family of Unix-like Operating systems These are popularly termed Linux operating systems and Userland refers to an application space that is external to the kernel and is protected by Privilege separation. Linux (commonly pronounced ˈlɪnəks The GNU/Linux naming controversy is a dispute among members of the Free and open source software community.
Development of the Hurd has proceeded slowly. Despite an optimistic announcement by Stallman in 2002[5] predicting a release of GNU/Hurd later that year, the Hurd is still not considered suitable for production environments. See also 2002 (disambiguation Year 2002 ( MMII) was a Common year starting on Tuesday of the Gregorian calendar. Development in general has not met expectations, and there are still bugs and missing features. [6] This has resulted in a poorer product than many (including Stallman) had expected. [7]
The Debian project, among others, have worked on the Hurd project to produce binary distributions of Hurd-based GNU operating systems for PC compatible systems. Debian ( pronounced) is a computer Operating system composed entirely of Free and open source software. IBM PC compatible computers are those generally similar to the original IBM PC, XT, and AT. [8]
Unlike the majority of Unix-like kernels, the Hurd builds on top of a microkernel which is responsible for providing the most basic kernel services — coordinating access to the hardware: the CPU (through process management and scheduling), RAM (via memory management), and other various input/output devices (via I/O scheduling) for sound, graphics, mass storage, etc. A Unix-like (sometimes shortened to *nix) Operating system is one that behaves in a manner similar to a Unix system while not necessarily conforming A microkernel is a minimal Computer Operating system kernel which in its purest form provides no operating-system services at all only the Typical PC hardware A typical Personal computer consists of a case or chassis in a tower shape (desktop and the following parts Motherboard Process management is an integral part of any modern day Operating system (OS Scheduling is a key concept in Computer multitasking and Multiprocessing Operating system design and in Real-time operating system design Memory management is the act of managing Computer memory. In its simpler forms this involves providing ways to allocate portions of memory to programs at their request In Computing, input/output, or I/O, refers to the communication between an Information processing system (such as a Computer) and the outside I/O Scheduling is the term used to describe the method computer operating systems decide the order that block I/O operations will be submitted to the disk subsystem In theory the microkernel design would allow for all device drivers to be built as servers working in user space, but today most drivers of this kind are still contained inside GNU Mach, the currently used microkernel. "kernel space" redirects here For mathematical definition see Null space. GNU Mach is an implementation of the Mach microkernel. It is the default microkernel in the GNU Hurd kernel of the GNU Operating That is because initially user-space drivers would have suffered from performance loss, due to the overhead of the Mach interprocess communication. With the performance of today's machines, it is possible that this overhead would no longer cause a significant performance problem. [9]
From early on, the Hurd was developed to use GNU Mach as the microkernel. GNU Mach is an implementation of the Mach microkernel. It is the default microkernel in the GNU Hurd kernel of the GNU Operating This was a technical decision made by Richard Stallman, and one that he later saw as a mistake. [10]
From 2004 onward, various efforts were launched to port the Hurd to more modern microkernels. The L4 microkernel was the original choice in 2004, but progress slowed to a halt. L4 is a family of second-generation Microkernels based on theoriginal designs and implementations by German Computer scientist Jochen Liedtke. In 2005, there was a discussion of whether to change to L4. sec (a different L4 microkernel) or to Coyotos (EROS successor). Coyotos is a capability-based security-focused Microkernel Operating system being developed by The EROS Group LLC EROS ( The Extremely Reliable Operating System) is an Operating system developed by The EROS Group LLC [11] Although no formal decision was made, most of the Hurd developers' time has gone into thinking about Coyotos,[12] especially since 2006.
Other Unix-like systems working on top of the Mach microkernel include OSF/1, Lites, and MkLinux. Mach is an Operating system Microkernel developed at Carnegie Mellon University to support operating system research primarily distributed and parallel Tru64 UNIX is a 64-bit UNIX Operating system for the Alpha Microprocessor architecture currently owned by Hewlett-Packard Lites was a Unix-like Operating system, based on 44BSD and the Mach Microkernel. MkLinux is an Open source computer Operating system started by the OSF Research Institute and Apple Computer in February 1996 to port Linux These are implemented as a single Unix server which, together with the microkernel, replaces the monolithic kernel of a traditional Unix system. A monolithic kernel is a kernel architecture where the entire kernel is run in Kernel space in Supervisor mode. Mac OS X and NEXTSTEP use monolithic kernels based on Mach, often incorrectly believed to be microkernels. Mac OS X (mæk oʊ ɛs tɛn is a line of computer Operating systems developed marketed and sold by Apple Inc, the latest of which is pre-loaded on all currently Nextstep was the original object-oriented, multitasking Operating system that NeXT Computer developed to run on its range of proprietary computers
In the Hurd, elements of a monolithic kernel are instead handled by separate server processes. Such a "set of servers" was one of the main design goals of Mach, but Hurd appears to be the first Mach-based system to be implemented in this way. Mach is an Operating system Microkernel developed at Carnegie Mellon University to support operating system research primarily distributed and parallel (QNX and Minix-3 are similar but based on their own microkernels. QNX (pronounced either Q-N-X or Q-nix is a commercial Unix-like Real-time operating system, aimed primarily at the Embedded systems market MINIX is a Unix-like computer Operating system based on a Microkernel architecture. ) It is not entirely clear why this happened, but it might have something to do with the high performance hit of Mach IPC. Hurd also aims to be microkernel-independent.
OSKit-Mach began as a branch of the GNU Mach 1. 2 kernel, but since the release of GNU Mach 1. 3 was merged as the new GNU Mach 2. x mainline.
In 2005, Hurd developer Neal Walfield finished the initial memory management framework for the L4/Hurd port, and Marcus Brinkmann ported essential parts of glibc; namely, getting the process startup code working, allowing programs to run, thus allowing the first user programs (trivial ones such as the hello world program in C) to run. Year 2005 ( MMV) was a Common year starting on Saturday (link displays full calendar of the Gregorian calendar. Neal H Walfield is one of the lead developers of Hurd/L4. He is working on the GNU Project and is a Debian developer Marcus Brinkmann (born August 25 1975 in Dortmund, Germany is one of the lead developers of the Hurd/L4 which is supposed to supersede The GNU C Library, commonly known as glibc, is the C standard library released by the GNU Project. A "Hello World" program is a Computer program that prints out "Hello world!" on a Display device.
In 2006, Marcus Brinkmann and associates met with Jonathan Shapiro (a primary architect of the Coyotos Operating System) to aid in and discuss the use of the Coyotos kernel for GNU/Hurd. Coyotos is a capability-based security-focused Microkernel Operating system being developed by The EROS Group LLC These discussions continued into 2007, but progress is slow.
A number of traditional Unix concepts are replaced or extended in the Hurd.
Under Unix every program running has an associated user id, which normally corresponds to the user that started the process. On Unix-like systems users are represented by a user identifier, often abbreviated UID or User ID. In computing a process is an instance of a Computer program that is being sequentially executed by a computer system that has the ability to run several computer This id largely dictates the actions permitted to the program. No outside process can change the user id of a running program. A Hurd process, on the other hand, runs under a set of user ids, which can contain multiple ids, one, or none. A sufficiently privileged process can add and remove ids to another process. For example there is a password server that will hand out ids in return for a correct login password.
Regarding the file system, a suitable program can be designated as a translator for a single file or a whole directory hierarchy. In Computing, a file system (often also written as filesystem) is a method for storing and organizing Computer files and the data they contain to make Every access to the translated file, or files below a hierarchy in the second case, is in fact handled by the program. For example a file translator may simply redirect read and write operations to another file, not unlike a Unix symbolic link. In Computing, a symbolic link (also symlink or soft link) is a special type of file that contains a reference to another The effect of Unix mounting is achieved by setting up a filesystem translator (using the "settrans" command). Mounting, in Computer science, is the process of making a File system ready for use by the Operating system, typically by reading certain index data structures Translators can also be used to provide services to the user. For example, the ftpfs translator allows a user to encapsulate remote FTP sites within a directory. Then, standard tools such as ls, cp, and rm can be used to manipulate files on the remote system. In Computing, ls is a command to list files in Unix and Unix-like operating systems cp is the command entered in a Unix shell to copy a file from one place to another possibly on a different Filesystem. rm (short for remove) is a Unix command used to delete files from a Filesystem. Even more powerful translators are ones such as UnionFS, which allows a user to unify multiple directories into one; thus listing the unified directory reveals the contents of all the directories (a feature that is missing in many Unixes, although available in modern BSDs). UnionFS is a filesystem service for Linux and FreeBSD which implements a Union mount for other File systems.
The Hurd requires a multiboot-compliant boot loader, such as GRUB. The Multiboot Specification is an Open standard originally created in 1995 and developed by the Free Software Foundation. In Computing, booting ( booting up) is a bootstrapping process that starts Operating systems when the user turns on a Computer system
According to the Debian documentation there are 24 servers (18 core servers and 6 file system servers) named as follows:[13]
The servers collectively implement the POSIX API, with each server implementing a part of the interface. POSIX (ˈpɒzɪks or "Portable Operating System Interface" is the collective name of a family of related standards specified by the IEEE to define For instance, the various filesystem servers each implement the filesystem calls. The storage server will work as a wrapping layer, similar to the VFS of Linux. A virtual file system (VFS or virtual filesystem switch is an abstraction layer on top of a more concrete File system. Linux (commonly pronounced ˈlɪnəks
A "computer bought the farm" message is an error message displayed on GNU Hurd when one of the servers that provide kernel-like functions reaches a "hopeless" situation (after which it is usually terminated). Debian GNU/Hurd is the Debian Project's distribution of the GNU Operating system (with the GNU Hurd as its kernel) A euphemism is a substitution of an agreeable or less offensive expression in place of one that may offend or suggest something unpleasant to the listener or in the case of doublespeak An error message is a message displayed when an unexpected condition occurs usually on a Computer or other device [14] This is a rough equivalent of a kernel panic in monolithic Unix-like kernels. A kernel panic is an action taken by an Operating system upon detecting an internal Fatal error from which it cannot safely recover the term is largely specific A Unix-like (sometimes shortened to *nix) Operating system is one that behaves in a manner similar to a Unix system while not necessarily conforming
Its corresponding error code in the GNU C Library is EIEIO. In computer programming, error codes are enumerated messages that correspond to faults in a specific Software application. The GNU C Library, commonly known as glibc, is the C standard library released by the GNU Project. "Old McDonald Had a Farm" is a children's song about a Farmer named McDonald (or MacDonald and the various Animals he keeps on his Farm