operating-system


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.

Related Links

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
default sound for javascript alert() box
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?

Categories

HOME
elasticsearch
firebase
android-studio
focus
mousemove
command-prompt
stacktrace.js
code-formatting
ios-simulator
elisp
swift2
iptables
linker
repair
google-search-console
onvif
telegraf
tup
bellman-ford
locationmanager
chromecast
jodatime
twisted
android-5.1.1-lollipop
android-contacts
word2vec
string-formatting
deepfreeze
azure-machine-learning
unity-container
neo4j.rb
pst
intel
sipp
crud
python-imageio
envoy
autodesk-model-derivative
steam-web-api
memory-fences
epplus
cloveretl
xll
cheat-engine
selenide
praat
oauth2
vungle-ads
elasticsearch-aggregation
destroy
rightnow-crm
rm
renderman
ptvs
mobile-angular-ui
degrees
streamwriter
msg
wolfram-language
qpixmap
deferred-rendering
teamviewer
jsr363
ioexception
lovefield
miniconda
self
bjam
postal-code
supersocket.net
ngcordova
dynamics-ax-2012-r2
android-handler
rfc5545
r.java-file
htmltidy
uno
rubber
incognito-mode
reference-counting
zend-search-lucene
map
mft
acceptance-testing
mongo-jackson-mapper
red-system
gprof
cgrectmake
jzmq
prefuse
kobold2d
hardcode
exponent
nsrangeexception
iphone-sdk-4.3
self-tracking-entities
sqlsitemapprovider
objectinstantiation
regioninfo

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App