Linux operating system
History
Before understanding the popularity of Linux, we need to go back to the last few years. When the computer began to develop, there was no fixed operating system for the computer. The size of the computer was very large and each computer had a different operating system. Software from one computer did not work on another computer and it was difficult to work from one computer to another. Overall, computers have become more expensive and difficult to work with.
In 1969, some developers at Bell Labs began working on an operating system compatible software solution that could run on any computer. They developed an advanced operating system with many features written in C language called UNIX Operating System . UNIX was very simple and able to recycle code. The C language was recently developed to create UNIX. UNIX could run on any computer and only needed small pieces of code called kernels .
UNIX is compatible with several systems and was initially developed for mainframes and minicomputers especially for universities. When I started developing small computers for individual users, like home computers, called microcomputers. At that time, many versions of UNIX supported PC architecture, but they were not fully compatible and were slow. So users started running MS-DOS or Windows on their home computers.
In 1990, PCs were fully UNIX-powered and had good features, but they were not fully open source, meaning there was no free software available. In 1991, Linus Torvalds began developing an operating system called Linux, which is a member of a large family of UNIX-like operating systems. Linux is developed for IBM compatible personal computers based on Intel 80386 microprocessor. All UNIX features were added to Linux within a few years, which makes the Linux operating system mature. Today Linux is compatible with any workstation, home user PC, and server and client.
What is Linux?
Linux is a free, fully customizable operating system. Any hardware component is supported. Due to the advent of open source feature of Linux, everyone can download Linux source code and modify it. On the server side, Linux is a well-known stable and reliable operating system. Day by day Linux has become more popular and easier to use. Modern Linux is not only compatible with high-end servers, workstations, and home PCs, but it also runs on a variety of devices.
Linux is a fully UNIX kernel but not a fully UNIX operating system because it does not include full UNIX applications such as a file system, window system, text editor, compiler, and so on. Linux is just a kernel. The entire Linux distribution is a collection of Linux Kernel, GUI, GNU C/C++ compiler, text editors and various GPL applications. Linux only uses POSIX (Portable Operating System Interface Standards) of UNIX. POSIX are standards specified by the IEEE computer society to maintain compatibility between operating systems.
Figure 1: Linux Operating System
Linux requires a standard GNU C compiler and GPL (General Use License). GNU is a collection of computer software that can be used in building an operating system such as UNIX or Linux. GNU is an organization that implements an entire operating system that can be used by everyone for free. Various GNU components used to develop Linux such as compiler, debugger and GNU hardware. Linux has been licensed under the GPL. Without paying any fees, you can download Linux source code to use, share and modify it. GPL (General Public License) is a free license software that gives you the freedom to run, share, modify and study it.
Before we briefly discuss Linux, I mentioned advantages of Linux :
- open code
- Run on low-end and high-end hardware
- Compatible with other operating systems
- More powerful
- Low failure time
- Well supported
- Very safe
- Fully customizable in all its components
Linux Feature
Linux is a complete operating system. Linux has adopted several features from different versions of UNIX.
Multithreading:
Linux supports multithreading environment. More than one thread can run at the same time in Linux. Thread is a small code within the process. I will briefly explain the topic in another tutorial.
Monolithic kernel:
The Linux kernel is a monolithic kernel. Monolithic kernel is an operating system architecture where the entire operating system runs in kernel mode instead of user mode. When programs or applications want to use hardware, they send a request to kernel mode via system call. The kernel evaluates the system call request and interacts with the appropriate hardware. All operational services like memory management, file management and process management are running in the kernel.
File system:
The entire Linux kernel consists of file system architecture. Linux supported many file types such as directory file, link, pipe, named pipe, special file, and block device file. Each file type has its own characteristics and features. The file system not only contains the file data but also contains the file structure and all the information about the file.
Multi-User Capability:
Linux operating system shares the same resource like memory, hard disk, etc. for multiple users. Multiple users can access the same resource using an individual terminal (i.e. client PC).
Linux operating system architecture
Figure 2: Linux operating system architecture
The Linux operating system architecture consists of the following layers:
Hardware layer:
Hardware consists of all the peripheral devices like RAM, HDD, CPU, etc. The user cannot interact directly with the user space hardware (where the application or program runs).
Core:
Kernel is a small special code that is the main component of the operating system. The kernel interacts directly with the hardware. The kernel provides low-level service for user-mode components. The kernel is entirely developed in C language and file system architecture.
Shell:
Shell is a means of interfacing between user mode and kernel mode. Any program or application can interact with the kernel through the shell. Shell is hiding the complexity of the kernel function from the user. It takes the command from user mode (i.e. command terminal) and executes the kernel function. For example, if you entered any terminal command (which runs in user mode), behind the terminal shell is the terminal command, interacts with the kernel and executes the corresponding function related to the command.
User or utilities:
This is the top layer of the operating system, also called user mode, where the application or program runs. In the User layer, multiple users, applications, software and programs can run at the same time.
Difference between User mode and Kernel mod and
Kernel Mode :
All kernel programs run in kernel mode. Kernel mode directly accesses memory and hardware. It can execute any CPU instruction and access any memory address. It is to provide a completely reliable low-level service. The entire PC stops and the operating system gets corrupted if Kernel mode crashes occur. It is to prevent the user mode application from damaging the system. This mode is reserved for device drivers that operate at a low level and are executed upon request via the API.
User Mode:
All user programs and applications run in user mode. User mode cannot directly access memory and hardware. The program running in user mode can access memory and hardware by calling the API. Due to full protection, user mode failures are recoverable.
Linux distributions
Linux distribution is a fully operating system which is a collection of Linux kernel and package management system. The user can download any distribution and run it on a PC or hardware. Various distributions are supported on different platforms such as desktop environment, embedded platform, etc. Linux distribution includes Linux, GNU tool, software and library collection. Some distributions are developed especially for specific hardware.
Here are some popular Linux distributions:
Debian:
Debian is a Linux operating system made up of only free and open source software. It was introduced in 1993 and until now it is stable and used in the system. Debian is much slower than Ubuntu and Linux mint. Debian is user friendly and preferred for server.
Ubuntu:
Ubuntu is a well-known Linux distribution for desktop environment. It is based on Debian, but has its own repository (central place where data is stored and managed). It's very easy to use.
Linux Mint:
Linux mint also Linux distribution for desktop environment similar to Ubuntu. The Ubuntu repository is used. The same packages are available for Ubuntu and Linux mint. Linux mint includes media codec which is not included in Ubuntu by default.
Some more Linux distributions are mentioned here:
- Fedora
- CentOS
- KaliLinux
- OpenSUSE
- Linux Arc
- SlackwareLinux
- Mageia
Project source code
Project source code
###
//Program to
###