Hurd-ng is an effort to build a new 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_Mach]] * [[Issues_with_L4_Pistachio]] * [[Limitations_of_the_original_Hurd_design]] * [[History]] # Work already done 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. A [[critique]] of the original Hurd is available. # Subjects ## Design processus * [[DesignGoals]] * [[RequirementsForUser]] * [[DesignPrinciples]] * [[Philosophy]] ## Concepts * [[security]] * [[CapabilityBasedMicrokernel]] * [[FirstClassReceiveBuffer]] * [[PowerBox]] * [[WhatIsACapability]] * [[WhatIsAConstructor]] * [[WhatIsASpacebank]] * [[TrivialConfinementVsConstructorVsFork]] * [[CopyVsRevocableCopyVsMap]] * [[SetuidVsConstructor]] * [[HurdishApplicationsForPersistence]] * [[WhatsInAGroup]] * [[ThePolycastInterface]] * [[PermissionBits]] * [[CancellationForwarding]] ## Problems to solve * [[HowMuchConfinementDoWeWant]] * [[SharedLibraries]] * [[PathMax]] ## Implementation * [[ChoiceOfMicrokernel]] * [[HurdInterafaces]] * [[PosixLayer]] * [[SystemStructure]] ## Use Cases _please move me somewhere better! [[SamMason]]_ * [[UseCaseUserFileSystem]] * [[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 consenus * if no choice has been clearly made, all valid positions are descrbied * withdrawed and invalid positions (prooved 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.