Download Game! Currently 61 players and visitors. Last logged in:LikuKrypetUkliTuli

Beow's Blog >> 66883

Back to blogs index
Posted: 09 Apr 2020 11:01 [ permalink ]
Now I want to talk about the so-called GNU system

It is a difficult question whether the operating system is just the kernel, as
Tanenbaum would put it, or as Stallman claims includes the system tools with
which various system-level operations can be done, for example by using "rm
path_to_file_name/file.extension" to remove a file - that would be usually
either a binary that can be executed by for example by the shell, by the user
- either with a keyboard or a ready-made script or could even be called within
a C programming language compiled ready made binary with the system("rm
path_to_file_name/file.extension") function call, or it could be put into a
shell script.

For example remove_file.sh could include the command in question. System tools
are important for the housekeeping of the system, and nowadays all kinds of
graphical tools are available for file manipulation, and a graphical user
interface can be the optimal solution for an end user that has little or no
knowledge of hand-written computer commands that include a command-line
interface (a CLI), that is included for example in the usual GNU/Linux tool in
the path /bin/bash, the shell utility program is called the Bourne Again
SHell, BASH.

It can be argued that the system is GNU, and Linux is one of its kernels as
Stallman put it, but it can also be argued that GNU is a collection of
utilities (tools) that can use any kernel that has been rendered compatible
for it - and that the kernel is the operating system, since all a properly
made working computer program needs is the kernel to run, as far as all of the
components that are not readily made in the kernel are provided by the
programming tools.

A simple kernel is something that does the housekeeping of the computations,
and it either cooperates with or includes the drivers that make the kernel
cooperate with the hardware. The user is always in touch with the hardware,
and the software is ultimately run by the hardware, that has to have an
application programming interface of sorts, to interact with the hardware and
for that the POSIX standard is good, and the glibc. I prefer to call my
"operating system" Linux and my system "GNU/Linux", and I often remark that
the kernel is Linux.

There was also some polemic about whether the so-called kernel of the
operating systems (sometimes the kernel IS CALLED the operating system, like
in the OS name Linux where the OS is called after the central core of:
"application and program and driver interaction LINUX" (the so-called
application programming interface, API), and after the Kernel, for example it
is quite valid according to Tanenbaum to say "the LINUX Operating System" or
"the MINIX Operating System").

Should the OS kernel be a mini-kernel like Tanenbaum's MINIX or Torvald's and
friends' monolithic kernel LINUX? In fact I am not against Microsoft
technology as long as it works sufficiently for my needs, for example I use a
wireless Microsoft keyboard and a wireless Microsoft mouse, and the Microsoft
Windows kernel is a distributed collection of programs, and it is a hybrid
kernel in fact.

I will not delve into the at least 20 year old technology of MS-DOS too
deeply, but I will have to say it had very simple, crude ways of interacting
with the programs written for it and the drivers had to be either provided by
the programs themselves, or the programs had to do assembly calls to use the
hardware, or there had to be loaded drivers into CONFIG.SYS and even
AUTOEXEC.BAT. Believe me, it was horrible. I am glad those days are over for
good now. ;-D

Stallman has a view that also the system utilities that the user directly or
indirectly interacts with for example with the keyboard, the mouse, or even a
pen or a joystick or a touch screen is part of the Operating System, but I
would simply call it the System, because the Main Operations are done by the
Kernel (like the Windows kernel, the Linux kernel, or the MINIX kernel or even
HURD or whatever, or BSD) - there are a lot of different types of systems and
kernels that variably operate with various types of systems.