Composition Of An OS [closed]
Are all parts of an operating system processes? And in case this does not apply, what is an OS commonly made up of then?
An operating system (OS) consists of a kernel and system programs. Kernel The kernel implements basic abstraction from the hardware to ease up the life of programers to access the HDD, SSD, the screen, or GPU, for example. These services are then provided in shape of system calls, which can be invoked by processes to perform said operations. Since the advent of protection mechanisms, the kernel runs in a higher privileged mode called supervisor mode than the processes (a.k.a. user programs) called user mode. Otherwise, as in good old DOS times, the OS could easily be overwritten by user programs and users could take over the system. There are different types of kernels: Monolithic Kernel The kernel contains all abstraction mechanisms necessary to directly run user programs. It is fast because less interfaces and privilege mode switches are involved but it's technically less secure because every part of the kernel may access everything. Example: Linux (initiated by Linus Torvalds)1 Microkernel The kernel contains the most basic abstraction, which absolutely requires higher privileges granted by the kernel. Everything else like many drivers are implemented in the so-called user space, as opposed to kernel space. The kernel runs slower because more interfaces and privilege mode switches are involved but it's technically more secure because only the innermost kernel parts have the highest privilege levels and everything else needs permission. Example: Minix (initiated by Andrew S. Tanenbaum)1 Exokernel2 An exokernel is an even more rigid microkernel. It provides only the most basic abstraction. I suppose it's exokernel because most of the code is outside (ex - lat. out) the kernel. Example: ExOs (from MIT), Singularity (Microsoft research project), whose security is mostly enforced by static code analysis techniques Unikernel2 Unikernels are highly-specialized and minimal. They consist of some library operating system, which basically is a library running directly on the hardware, and a user-defined part, which determines its actual task. The user chooses from a diversity of library components, whatever fits her/his needs, which eventually constitute a runtime library the user runs her/his software on. I assume the name "unikernels" comes from them serving only one (one - lat. unum) purpose, so they are minimal and specialized. Example (library OS): MirageOS Furthermore, there are hybrids of multiple kinds of kernels and other types of kernels I don't know. But the ones listed above constitute the vast majority of all kernels. System Programs Now we know what the kernel is. But what about the system programs? They are user programs that provide means of actually accessing the system. Examples are a text editor, a window manager, a shell (and Counterstrike ;-)). The kernel alone does not make for a usable system. It provides system calls and such but without actual programs making use of these system calls the OS is useless. Your Question Answered As you see, not all parts of an OS are processes, so not all parts are "executable as processes." The kernel is not a process because it runs in privileged mode and does not run in the context of another kernel, which supervises its actions. 1 If you're interested, you may read the Tanenbaum-Torvalds debate, in which said Minix and Linux creators discuss benefits and drawbacks of monolithic and microkernels. 2 Thanks to #BasileStarynkevitch for your contribution to those topics in this answer.
Maximum size of executable on 32-bit machine [closed]
EOF representation in Windows
How BIOS boot from floppy and CD-ROM differently?
OS Booting Issue
Apply Password to Folder in Directory D:\myFolder
BSD for the NXT
How locks are implemented on multiple cores
boot loader's size
A question about Device drivers & Kernel
What are the factors by which virtual memory is limited?
Hardware supported OS functions
Multicores and mulithreads
What is an Operating System (with respect to embedded systems)? [closed]
Why isn't every OS real-time?
Does disabling interrupt automatically disable CPU scheduling?