DEV Community

Aisuko
Aisuko

Posted on

The concepts of the GNU Hurd

There may many concepts need to know about the GNU Hurd, like what's the Gnu Hurd? How to understand the it? And the concepts could help us to understand this.

What's the GNU Hurd?

The GNU projects replacement for UNIX, a popular operating system kernel

It includes many parts:

  • A collection of protocols formalising how different components may interact.
  • A set of servers that implement these protocols.
  • It provides compatibility layer such that compiling higher level programs is essentially transparent(glibc).
  • It provides servers and infrastructure with microkernel itself has no business implementing, but required for high level programs and libraries to operate.

The collection of protocols

What's the protocols?

The protocols are designed to reduce the mutual trust requirements of the actors thereby permitting a more extensible system.

The protocols include three parts:

  • interface definitions to manipulate file
  • directories
  • to resolve path names

And this allows any process to implement a file system. But there are requirements:

  • it have access to its backing store
  • principal starts it own the file system node to which it converts

What's the mean of trust requirements of the actors?

When we say that a program trusts another, we mean that correctness of the former depends on the operation of the latter.

For example, when users use ssh login to the remote hosts that mean users trust in ssh binary.

In UNIX, a programs tcb consist not only of the kernel and all the devices, file systems, and protocol stacks that it contains.

But every program running under the same UID. It's impossible to protect against destructive interference from programs running under the same UID.

What's the mean of tcb?

tcb: trusted computer base

  • referrers to the set of components programs must trust to function correctly.

What's the extensible operating system?(How to enables extensibility of operating system?)

  • providing non-privileged mechanisms to extend existing objects and to introduce new objects.
  • UNIX can not hook into the virtual file system.

A set of servers that implement these protocols

The set of severs includes:

  • file systems
  • network protocols
  • authentication

And those servers run on top of the Mach microkernel and use March is IPC mechanism to transfer information.

What's the mean of IPC?

  • Internal-process communicate

What's the server(translator)?

There is a concept need to know that server==translator

The translator is simply a normal program acting as an object server and participating in the Hurd's distributed virtual file system.

Why call is as a translator?

  • It typically exports a file system(although need not).
  • It translates object invocations into calls appropriate for the backing store(e.g., ext2 file system, nfs server, etc.).

Another reason is that

  • It translates from one representation of data structure into another representation.

A translator is usually registered with specific file system node by using the strains command, and it does not require any special privilege to run.

A translator is not different from other user_space application, it can be written in any programming language.

Summary

We already knew the concepts like the GNU Hurd, protocols, translator, tcb,IPC and the architecture benefit of microkernel, and those concepts are not easy to understand and the mistakes of the article will be fixed in as depth as we learning.

Reference articles:

https://www.gnu.org/software/hurd/hurd/what_is_the_gnu_hurd.html
https://www.gnu.org/software/hurd/extensibility.html
https://www.gnu.org/software/hurd/hurd/translator.html
https://www.gnu.org/software/hurd/microkernel/mach/ipc.html
https://www.gnu.org/software/hurd/trust.html

Top comments (0)