Operating System a program that acts as an intermediate between a user and the computer hardware controls all computer's resource (memory, harddisk (s), ... ) create a base for user level application so that user-level programmer don't have to worry about the hardware facility, e. g. in using 'printf'. Components inside Operating System (Four Basic Components) Process Management (Scheduler) Creation and deletion of both user and system processes Scheduling of the processes Keep track the status of the processes Provide channel for interprocess communication Memory Management Memory allocation and de allocation Program memory space protection Paging Swapping Virtual Memory File System Disk space management Maintain directory structure Enforce security Control read and write access Device Drivers, I/O User Level vs.

System Level When a user-level program wants to get kernel services, it will issues a system call. (kernel call or supervisor call) Next, the instruction will switch the process from user level to kernel level. (system level) Here, the operating system will take over the control flow. After examining the parameter given to the system call, the system call will be run. Finally, the control is passed back to the user-level program and i. e.

from kernel mode back to user level You may look at /usr / src /linux / include /asm / unists . h to see the listings of system calls What is Kernel? Monolithic vs microkernel? Generally, the operating system, as a running program, is called the kernel and have the four basic components as shown above. A trend in modern OS is to implement more function in user level and leave a minimal kernel. (microkernel) In Linux, all the components are kept inside kernel and so, it is not a microkernel structure. However, it is now moving to modules hierarchy, e.

g. fs, mm, .