* how it handles tasks (process management)
* how it handles memory
* how it handles the filesystem
* how it handles general I/O
* security issues
Typical computer system consists of:
* Operating system
* Applications and utilities
Typical OS includes a user interface or commandinterpreter.
Unix is somewhat unique in that the command interpreter is not integrated with the OS but is a separate program
De nos jours Unix utilise microkernel :
In a monolithic kernel, all OS services run along with the main kernel thread, thus also residing in the same memory area. This approach provides rich and powerful hardware access. Some developers, such as UNIX developer Ken Thompson,maintain that it is "easier to implement a monolithic kernel" than microkernels. The main disadvantages of monolithic kernels are the dependencies between system components — a bug in a device driver might crash the entire system — and the fact that large kernels can become very difficult to maintain.
Unix uses a layer approach of defining software.
Layered approach is basis for Unixsecurity. At the lowest level, the level closest to the hardware, are the basic hardware interface :
* Process scheduling
* Memory management
* Interrupt handling
* Low level device control
* Disk system management and data buffering
* Process synchronization and inter-process
* communication (IPC)
The next level provides all the kernel services
*Mapping between user requests and device driver actions
* The user system call is converted to a kernel service call that actually performs the requested service
* Process creation and termination
* I/O services
* File/disk access services
* Terminal handling services
The system call interface layer converts a process running in user mode to a protected kernel mode processThis allows the program to invoke protected kernel routines to perform system functions
In addition to the software levels, Unix also features two "rings of protection" from inadvertent programming errors or malicious attacks that might damage other user's processes or the kernel's processes and data structures.
The inner protected ring is known as kernel space and the outer ring is called userspace
User space is the area in memory where user processes are run. This consists of memory starting above the kernel and includes the rest of available memory. This memory is protected; the system prevents one user from interfering with another. Only kernel process can access a user process, A process operating in this memory region is said to be operating in user mode.
Kernel space is the region of memory where all kernel services are provided via kernel processes.Any process executing in kernel space is said to be executing in kernel mode. Kernel space is a privileged area; the user has access to it only through the system call interface. A user does not have direct access to either all machine instructions or devices. A kernel process does have directaccess to both
The main task of a kernel is to allow the execution of applications and support them with features such as hardware abstractions. A process defines which memory portions the application can access. (For this introduction, process, application and program are used as synonyms.) Kernel process management must take into account the hardware built-in equipmentfor memory protection.
To run an application, a kernel typically sets up an address space for the application, loads the file containing the application's code into memory (perhaps via demand paging), sets up astack for the program and branches to a given location inside the program, thus starting its execution.
Multi-tasking kernels are able to give the user the illusion that the...