What is Kernel
-
Heart of Linux OS. Kernel is chunk of code doing following tasks:
1. Process management: Creation/Destruction of processes, IPC(using signals, pipes etc) is handled by kernel. 2. Memory Management: virtual addressing space for all processes is provided by kernel. 3. File System management: kernel builds a structured filesystem on top of unstructured hardware 4. Device Control: kernel have device drivers for every peripheral device present on system, from the hard drive to the keyboard. 5. Networking(TCP/IP stack): Routing, address resolution, sending, receiving packets and delivery to application
User, Kernel Modes
Kernel/Priviledged mode | User mode | |
---|---|---|
What | priviledged application run. Has strong security/access checks | Non-priviledged mode, user application runs |
Applications | Kernel runs here | Application runs in user space (Eg: shells, command line, GUI) |
Access Method | Using system calls(400+) or H/W Interrupt | |
Sizes on 1TB system | 4 GB | 966 GB |
IO / Input Output
-
Methods with which CPU communicates with I/O Device(Eg: printer, Disk etc).
Types of IO?
Polling Method | Interrupt Driven IO | DMA(Direct Memory Access) Based IO | |
---|---|---|---|
What | processor tests each I/O device in sequence and asks each one if it needs communication with the processor | Device itself tells when it need attention. CPU will stop doing present task, fulfill device request. then resume present task. | DMA Controller does handling interrupts. |
Disadv | Huge amount of processor time wastes in looping. Poor performance | High number of interrupts can halt currently running process | |
Adv | Increases throughput |