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)