What are a socket, kernel, and monolithic kernel?

Abstract

  •  Sockets are used for communication in client-server systems.
  • The kernel is part of the operating system which resides in the main memory. It contains the most frequently used functions of the OS.
  • Monolithic kernel structure has functionalities of kernel packed in a single level. 

Scope

The article explains in detail the socket, kernel, and monolithic kernel.

Socket:

Sockets are used to establish communication between processes. It is mainly used for client server-based systems. When two processes or systems want to communicate with each other, sockets are the endpoints on either end of the communicating process. A socket is identified by an IP address concatenated by the port number. When a process on a client system wants to communicate and request information from the server, it is assigned a socket consisting of the IP address of that system with the port number. Port number should be below 1024 because most of the numbers below 1024 are reserved for standard services.

Kernel:

A Kernel is a control module of an operating system. It is the one structure that loads first and remains in the memory. It lies between a system program and hardware. The kernel uses system calls to perform all the functions including CPU scheduling, memory management, etc. It is also known as a command-line interpreter.

The main functions of the kernel are

  1. It provides a mechanism for the creation and deletion of processes.
  2. It provides CPU scheduling, memory management, and I/O management.
  3. It provides a mechanism for interprocess communication.

Monolithic structure :

The monolithic structure is followed by the earlier Unix operating system. 

As shown in the figure everything below the system call and above hardware is known as the kernel. The kernel has various functionalities like signal terminal handling character, I/O system terminals drivers file system, swapping, block, input/output system, disk, and tape drivers CPU scheduling page replacement demand paging virtual memory and so on. Here every functionality is packed into one level and this is why it is called a monolithic structure. The problem caused by this is, that in monolithic structures implementations and maintenance become very difficult. 

Summary

  • A socket is used for establishing communication between the processes
  • The kernel provides a file system, CPU scheduling, memory management, and other OS functions through system calls.
  • A monolithic kernel has too many functions packed into one level and this makes its implementation and maintenance difficult.

Special thanks to Ami Jangid for contributing to this article on takeUforward. If you also wish to share your knowledge with the takeUforward fam, please check out this article