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.