From 1e67a761cbfa94a69cec2f5709d23d7983cd0fc1 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 25 Nov 2010 11:55:21 +0100 Subject: Talk about advantages, challenges, how many developers, why so few developers. --- advantages.mdwn | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 advantages.mdwn (limited to 'advantages.mdwn') diff --git a/advantages.mdwn b/advantages.mdwn new file mode 100644 index 00000000..18e6506b --- /dev/null +++ b/advantages.mdwn @@ -0,0 +1,71 @@ +[[!meta copyright="Copyright © 2001, 2002, 2008, 2010 Free Software Foundation, +Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="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 +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +The GNU Hurd has a number of enticing features: + +It's free software, so anybody can use, modify, and redistribute it under the +terms of the [[GNU General Public License (GPL)|GPL]]. + +It's compatible as it provides a familiar programming and user environment. +For all intents and purposes, the Hurd provides the same facilities as a modern +[[Unix]]-like kernel. The Hurd uses the [[GNU C Library|glibc]], whose +development closely tracks standards such as ANSI/ISO, BSD, POSIX, Single Unix, +SVID, and X/Open. + +Unlike other popular kernel software, the Hurd has an object-oriented structure +that allows it to evolve without compromising its design. This structure will +help the Hurd undergo major redesign and modifications without having to be +entirely rewritten. + +The Hurd is built in a very modular fashion. Other Unix-like kernels (Linux, +for example) are also modular in that they allow loading (and unloading) some +components as kernel modules, but the Hurd goes one step further in that most +of the components that constitute the whole kernel are running as separate +user-space processes and are thus using different address spaces that are +isolated from each other. This is a multi-server design based on a +[[microkernel]]. It is not possible that a faulty memory dereference inside +the [[TCP/IP stack|hurd/translator/pfinet]] can bring down the whole kernel, +and thus the whole system, which is a real problem in a monolothic Unix kernel +architecture. + +One advantage of the Hurd's separation of kernel-like functionality into +separate components ([[servers|hurd/translator]]) is that these can be +constructed using different programming lanugages -- a feature that is not +easily possible in a monolithic kernel. Essentially, only an interface from +the programming environment to the [[RPC]] mechanism is required. (We have a +[[project proposal|community/gsoc/project_ideas/language_bindings]] for this, +if you're interested.) + + + +The Hurd is an attractive platform for learning how to become a kernel hacker +or for implementing new ideas in kernel technology. Every part of the system +is designed to be easily modified and extended. + +It is possible to develop and test new Hurd kernel components without rebooting +the machine. Running your own kernel components doesn't interfere with other +users, and so no special system privileges are required. The mechanism for +kernel extensions is secure by design: it is impossible to impose your changes +upon other users unless they authorize them or you are the system +administrator. + +The Hurd is real software that works right now. It is not a research project +or a proposal. You don't have to wait at all before you can [[start +using|hurd/running]] and [[developing|contributing]] it. + + -- cgit v1.2.3 From 04b7d246206355e4c85587a40177aa99a3209381 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Fri, 26 Nov 2010 10:17:20 +0100 Subject: advantages, open_issues/virtualization: Link to unsorted/hurd-migr. --- advantages.mdwn | 2 ++ open_issues/virtualization.mdwn | 7 +++++++ 2 files changed, 9 insertions(+) (limited to 'advantages.mdwn') diff --git a/advantages.mdwn b/advantages.mdwn index 18e6506b..8b41f3cd 100644 --- a/advantages.mdwn +++ b/advantages.mdwn @@ -51,6 +51,8 @@ it runs efficiently on both single processors and symmetric multiprocessors. The Hurd interfaces are designed to allow transparent network clusters (*collectives*), although this feature has not yet been implemented. +See also [[unsorted/hurd-migr]] ([[!taglink open_issue_documentation]]). + --> The Hurd is an attractive platform for learning how to become a kernel hacker diff --git a/open_issues/virtualization.mdwn b/open_issues/virtualization.mdwn index ebf86a2d..343f624a 100644 --- a/open_issues/virtualization.mdwn +++ b/open_issues/virtualization.mdwn @@ -20,6 +20,13 @@ An index of things to work on w.r.t. virtualization. * [[hurd/subhurd]] / [[hurd/neighborhurd]] + + * [[Implementing_Hurd_On_Top_of_Another_System]] * Unix / Linux -- cgit v1.2.3 From 29b6f1b8a084c61d2d62d33e2d4413b91afae6e3 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 21 Dec 2010 12:43:38 +0100 Subject: faq/posix_compatibility: New. --- advantages.mdwn | 4 ++-- faq/posix_compatibility.mdwn | 32 ++++++++++++++++++++++++++++++++ hurd/interface.mdwn | 4 +++- hurd/status.mdwn | 9 +++++---- 4 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 faq/posix_compatibility.mdwn (limited to 'advantages.mdwn') diff --git a/advantages.mdwn b/advantages.mdwn index 8b41f3cd..100c8ff8 100644 --- a/advantages.mdwn +++ b/advantages.mdwn @@ -17,8 +17,8 @@ terms of the [[GNU General Public License (GPL)|GPL]]. It's compatible as it provides a familiar programming and user environment. For all intents and purposes, the Hurd provides the same facilities as a modern [[Unix]]-like kernel. The Hurd uses the [[GNU C Library|glibc]], whose -development closely tracks standards such as ANSI/ISO, BSD, POSIX, Single Unix, -SVID, and X/Open. +development closely tracks [[standards such as ANSI/ISO, BSD, POSIX, Single +Unix, SVID, and X/Open|faq/posix_compatibility]]. Unlike other popular kernel software, the Hurd has an object-oriented structure that allows it to evolve without compromising its design. This structure will diff --git a/faq/posix_compatibility.mdwn b/faq/posix_compatibility.mdwn new file mode 100644 index 00000000..1525a7ad --- /dev/null +++ b/faq/posix_compatibility.mdwn @@ -0,0 +1,32 @@ +[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="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 +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta title="POSIX compatibility"]] + +Is it favorable of rather a hindrance to be compatible to POSIX and similar +standards? + +A lot of things in POSIX et al. are designed for [[UNIX]]-like systems with +traditional monolithic [[kernel]]s. + +Thus, a [[microkernel]]-based system, as ours is, has to employ a bunch of +detours, for example to implement the [[`fork` system call|glibc/fork]]. + +On the other hand, (mostly) complying to these standards, made a really big +body of software *just work* without any (or just trivial) [[hurd/porting]]. +Especially so for command-line programs, and libraries. + +But: a large part of today's user programs are not written according to POSIX +et al. low-level interfaces, but against GNOME, GTK+2, and other high-level +frameworks and libraries. It may be a valid option to enrich these instead of +striving for total POSIX compliance -- and the high-level programs (that is, +their users) may not even notice this, but we would avoid a lot of overhead +that comes with wrapping the [[Hurd interfaces|hurd/interface]] to be POSIX +compliant. diff --git a/hurd/interface.mdwn b/hurd/interface.mdwn index 75fda808..53cd31f0 100644 --- a/hurd/interface.mdwn +++ b/hurd/interface.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2009, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this @@ -10,5 +10,7 @@ License|/fdl]]."]]"""]] [[!meta title="Interfaces"]] +/!\ Incomplete. + [[!map pages="hurd/interface/* and !hurd/interface/*_*" show=title]] diff --git a/hurd/status.mdwn b/hurd/status.mdwn index 721cdeda..fe56f183 100644 --- a/hurd/status.mdwn +++ b/hurd/status.mdwn @@ -6,8 +6,8 @@ id="license" text="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 Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled -[[GNU Free Documentation License|/fdl]]."]]"""]] +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] The Hurd, together with the GNU Mach microkernel, the GNU C Library and the other GNU and non-GNU programs in the GNU system, provide a @@ -30,8 +30,9 @@ and advanced server applications like the Apache webserver. On the negative side, the support for character devices (like sound -cards) and other hardware is mostly missing. Although the POSIX -interface is provided, some additional interfaces like POSIX shared +cards) and other hardware is mostly missing. Although the [[POSIX +interface|faq/posix_compatibility]] is provided, some additional interfaces +like POSIX shared memory or semaphores are still under development. All this applies to the current development version, and not to the -- cgit v1.2.3 From 2743141fef80b95c6dfb678e699d6cc46509b172 Mon Sep 17 00:00:00 2001 From: "http://diod.myopenid.com/" Date: Tue, 28 Dec 2010 03:36:44 +0000 Subject: Fixed a little spelling error (lanugages to languages) --- advantages.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'advantages.mdwn') diff --git a/advantages.mdwn b/advantages.mdwn index 100c8ff8..21577903 100644 --- a/advantages.mdwn +++ b/advantages.mdwn @@ -38,7 +38,7 @@ architecture. One advantage of the Hurd's separation of kernel-like functionality into separate components ([[servers|hurd/translator]]) is that these can be -constructed using different programming lanugages -- a feature that is not +constructed using different programming languages -- a feature that is not easily possible in a monolithic kernel. Essentially, only an interface from the programming environment to the [[RPC]] mechanism is required. (We have a [[project proposal|community/gsoc/project_ideas/language_bindings]] for this, -- cgit v1.2.3