2

In 1980's, two most prevalent operating systems came out,

1) System V created by AT&T

2) BSD created at UOC, Berkeley

Some of the BSD variants are OpenBSD, FreeBSD, MAC OS X

Some of the System V variants are AIX/HP-UX/Solaris


Linux is created in 1991, which is made of,

GNU tools(user space) + Linux kernel(kernel space)


Comparing UNIX kernel vs GNU hurd vs Linux kernel, primary/relevant difference to be known to UNIX/Linux kernel user, is in kernel integration(build) policy approach,

In UNIX, core kernel and service layers(like MemoryMgmt/ProcessMgmt/IPC/..) are statically compiled and linked to create a kernel executable. A single static binary file.

In GNU Hurd, core kernel only is built into a static executable and services are built as dynamic modules. At boot up time core kernel gets loaded and stay resident in memory. Core kernel will dynamically load a service layer when it is required. Services will be unloaded when they are not required. Kernel with loadable modules.

Adv/Disadv:

  • A single static binary file has less response time.
  • Kernel with loadable modules has more response time
  • A single static binary file takes more memory since the foot print carries complete static image with all services
  • Kernel with loadable modules take less memory

Linux kernel integration(build) policy called “Modular kernel”, which is a mixture of above two policies. Hope you got the reason to mention GNU Hurd.


Mechanics of Linux/UNIX kernel, 1) working of kernel with its services 2) providing interface to user(shell & system calls), were always same, as shown below,

enter image description here


So, for Linux/UNIX kernel user,

1) It is more important to understand the difference in the aspect of kernel integration(build) policy approach.

2) If mechanics of UNIX vs Linux kernel, are same, then, one can further think about less important aspect that talks on different implementation of service layers(Memory_mgmt_policy/drivers/FileSy stems/.....) using C. why less important? Because, this is an abstraction to Linux/UNIX kernel user and implementation always varies(never same) in each OS and also varies in time.


My question:

To understand the difference,Unix vs Linux kernel, Do you agree with the two reasons, mentioned(above)?

If no, please correct me.

closed as too broad by Thomas Dickey, countermode, Kusalananda, ctrl-alt-delor, user34720 Jan 19 '17 at 10:51

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • The Gnu project was started in 1983, not 1991. It acquired a kernel in 1991. – ctrl-alt-delor Jan 19 '17 at 10:14
  • @richard yes you are right!!! GNU project is from 1983. Linux under GNU General Public License came in 1991/92 with GNU utilities added. – overexchange Jan 19 '17 at 10:18
  • Do you add a cake to a cherry, a cup of tea to a spoon of sugar, a car to some petrol/gas. Do you put a person under a hat. – ctrl-alt-delor Jan 19 '17 at 10:21
  • @richard Sorry to hide the significance of GNU project. you can edit the query. Am not native speaker to understand your 2nd comment. BTW, do you agree with my understanding, as mentioned in query? – overexchange Jan 19 '17 at 10:31
  • 1
    There is no such thing as “the Unix kernel”. There are many independent implementations of a Unix kernel. Linux is one. – Gilles Jan 19 '17 at 22:51