[[!meta title="Hurd NG"]] Hurd-ng is an effort to build a new, "Next Generation" operating system that preserves the main design goals of the Hurd while fixing some of the Hurd's shortcomings. There is not yet an official roadmap or a concrete specification; indeed, much of the work is research oriented. These pages try to summarize the major discussions and ideas. --- # Why ngHurd This section explains the motivations behind the new design: * [[Issues_with_L4_Pistachio]] * [[Limitations_of_the_original_Hurd_design]] * History of the [[history/port_to_another_microkernel]] --- # Work already done A [[critique]] of the original Hurd is available. A [[position_paper]] by Marcus Brinkmann and Neal H. Walfield can be found. A draft specification of the Hurd-NG interfaces has been, but is no longer, available. --- # Subjects ## Design processus * [[Design Goals|DesignGoals]] * [[Requirements For User|RequirementsForUser]] * [[Design Principles|DesignPrinciples]] * [[Philosophy]] ## Concepts * [[Security]] * [[Capability Based Microkernel|CapabilityBasedMicrokernel]] * [[First-class Receive Buffer|FirstClassReceiveBuffer]] * [[PowerBox]] * [[What is a Capability|WhatIsACapability]] * [[What is a Constructor|WhatIsAConstructor]] * [[What is a Spacebank|WhatIsASpacebank]] * [[Trivial Confinement vs. Constructor vs. Fork|TrivialConfinementVsConstructorVsFork]] * [[Copy vs. Revocable Copy vs. Map|CopyVsRevocableCopyVsMap]] * [[Setuid vs. Constructor|SetuidVsConstructor]] * [[Hurdish Applications for Persistence|HurdishApplicationsForPersistence]] * [[What's in a Group|WhatsInAGroup]] * [[The Polycast Interface|ThePolycastInterface]] * [[Permission Bits|PermissionBits]] * [[Cancellation Forwarding|CancellationForwarding]] ## Problems to solve * [[How Much Confinement Do We Want|HowMuchConfinementDoWeWant]] * [[Shared Libraries|SharedLibraries]] * [[Path Max|PathMax]] ## Implementation * [[Hurd Interafaces|HurdInterafaces]] * [[Posix Layer|PosixLayer]] * [[System Structure|SystemStructure]] ## Use Cases _please move me somewhere better! [[SamMason]]_ * [[Use Case User Filesystem|UseCaseUserFileSystem]] * [[Use Case Private Keys|UseCasePrivateKeys]] ## Organization Summaries should obey the following structure: * if there is a consensus, it is clearly described * if controversial points remain, there are also described after the consensus * if no choice has been clearly made, all valid positions are described * withdrawn and invalid positions (proved wrong, unrealistic, contradictory to some design principle, etc.) should be described only very briefly, and developed in a separate article Each time a point seems to be overly long with respect to the rest of the article, it should be summarized in place and developed in a separate article.