linux

Linux operating system

General Info about Linux

You probably heard about it, it’s like second or third system after Windows along with Apple Mac operating system. It’s UNIX like system, but more about it later. It’s assembled and distributed under free software and open-source software. Core component of all Linux distributions is the Linux Kernel. First release was done in 1991 by Linus Torvalds, that first kernel operating system one. The initial goal of Linux was free operating system for PC’s based on x86 architecture but it was advanced after that in much more ways. It was ported to so many computer systems than any other OS. In my last article I talked about Android, s0…. it was built on Linux kernel and have huge database of installs. Linux also widely used as server-side OS, mainframe computers and supercomputers. On desktops market share is quite small, as well as it runs on embedded systems which means mobile phones, tablets, network switches and routers, tv, video games consoles and even some sort of smart watches.

History

It was started from UNIX like I already mentioned. In 1969 in AT&T Bell Labs. First release of UNIX was in 1971, it was done completely on assembler language, you may not even remember what it is, but it was common thing that days. Later in 1973 it was rewritten in C language, that high-level language implementation allows UNIX to be ported basically everywhere. Whole General Public License thing was done first in 1983 allowing UNIX-compatible software system to be entirely free. By the start of 1990’s many software programs like text editors, compilers, windowing system, etc were completed. Those were things which required OS, though low level elements like kernel and drivers were still stalled. Finally in 1992 386BSD descender of NetBSD, OpenBSD, FreeBSD was done. Linux was not created if that OS were present at that time.

Design

So Linux inherits much in terms of interface from UNIX. No surprises here, principles which were established in 1970’s and 1980’s. System using some monolith kernel, i.e Linux kernel. It handles processes control, network control, access to devices and file system. Device drivers usually integrated in kernel or just serving as modules while whole system is running. There is some sort of separation on layers mode.

There are User mode and Kernel mode. On Kernel mode there is Linux kernel working – various system calls (about 380 to be exact), i.e. Linux Kernel SCI (system call interface). Next thing on that level is process scheduling subsystem, memory management subsystem, virtual files subsystem, network subsystem and IPC subsystem as well as some other components like device mapper, net filter, linux network scheduler and few important linux security modules. On User mode – usual user applications like office, some browser, etc. ; C standard library with upto 2000 subroutines;  series of low-level components like system daemons – systemd, runit, soundd, etc. then goes windowing system X11, wayland, Mir, etc., then goes other popular libraries GTK+, QT, EFL, SDL, GNUStep and finally Graphic section – Mesa3d, AMD, Catalyst.