Nội dung text Unit 1 - Introduction of Linux - Linux.pdf
www.ckundan.com.np 1 Unit I: Introduction of Linux - Linux History of Linux: In earlier days, computers were as big as houses or parks. So we can imagine how difficult it was to operate them. Moreover, every computer has a different operating system which made it completely worse to operate on them. Every software was designed for a specific purpose and was unable to operate on another computer. It was extremely costly and normal people neither can afford it nor can understand it. In 1969, a team of developers of Bell Labs started a project to make a common software for all the computers and named it as 'Unix'. It was simple and elegant, used 'C' language instead of assembly language and its code was recyclable. As it was recyclable, a part of its code now commonly called 'kernel' was used to develop the operating system and other functions and could be used on different systems. Also, its source code was open source. Initially, UNIX was only found in large organizations like government, university, or larger financial corporations with mainframes and minicomputers (PC is a microcomputer). Fig: History of Linux Operating System In the eighties, many organizations like IBM, HP and a dozen other companies started creating their own UNIX. It results in a mess of UNIX dialects (vocabulary). Then in 1983, Richard Stallman developed GNU project intending to make it freely available UNIX like operating system and to be used by everyone. But his project failed in gaining popularity. Many other UNIX like operating system came into existence but none of them was able to gain popularity. In 1991, Linus Torvalds a student at the University of Helsinki, Finland, thought to have a freely available academic version of Unix started writing its own code.
www.ckundan.com.np 2 Later this project became the Linux kernel. He wrote this program especially for his own PC as he wanted to useUnix 386 Intel computer but couldn't afford it. He did it on MINIX using GNU C compiler. GNU C compiler is still the main choice to compile Linux code but other compilers are also used like Intel C compiler. He started it just for fun but ended up with such a large project. Firstly he wanted to name it as 'Freax' but later it became 'Linux'. He published the Linux kernel under his own license and was restricted to use as commercially. Linux uses most of its tools from GNU software and is under GNU copyright. In 1992, he released the kernel under GNU General Public License. Today, supercomputers, smartphones, desktop, web servers, tablet, laptops and home appliances like washing machines, DVD players, routers, modems, cars, refrigerators, etc. use the Linux Operating System. Introduction of Linux: In the simple language Linux is an operating system. We all are familiar with other operating systems like Microsoft Windows, Apple Mac OS, iOS, Google android, etc. just like them, Linux is also an operating system. An operating system is a software that enables communication between computer hardware and software. It conveys input to get processed by the processor and brings output to the hardware to display it. This is the basic function of an operating system. Linux is around us since the mid-90s. It can be used from wristwatches to supercomputers. It is everywhere in our phones, laptops, PCs, cars and even in refrigerators. It is very much famous among developers and normal computer users. Fig: Linux Distributions
www.ckundan.com.np 3 Structure of the Linux Operating System: An operating system is a collection of software, each designed for a specific function. Linux OS has the following components: Fig: Structures of Linux Operating System 1. Kernel: Kernel is the core of the operating system. It establishes communication between devices and software. Moreover, it manages system resources. Basically, it has four responsibilities: A. Device Management: A the system has many devices connected to it like CPU, a memory device, sound cards, graphic cards, etc. A kernel stores all the data related to all the devices in device driver (without this kernel won't be able to control the devices). Thus kernel knows what a device can do and how to manipulate it to bring out the best performance. It also manages communication between all the devices. The kernel has certain rules that have to be followed by all the devices. B. Memory Management: Another a function that kernel has to manage is the memory management. Kernel keeps a track of used and unused memory and make sure that processes shouldn't manipulate data of each other using virtual memory address.
www.ckundan.com.np 4 C. Process Management: In process management kernel assign enough time and gives priorities to processes before handling CPU to another process. It also deals with security and ownership information. D. Handling System Calls: Handling system calls mean a programmer can write a query or ask the kernel to perform a task. 2. System Libraries: System libraries are special programs that help in accessing the kernel's features. A kernel has to be triggered to perform a task and this triggering is done by the applications. But applications must know how to place a system call because each kernel has a different set of system calls. Programmers have developed a standard library of procedures to communicate with the kernel. Each operating system supports these standards and then these are transferred to system calls for that operating system. Most well-known system library for Linux is Glibc (GNU C library). 3. System Tools: Linux OS has a set of utility tools which are usually simple commands. It is a software which GNU project has written and publish under their open source license so that software is freely available to everyone. With the help of commands, we can access our files, edit and manipulate data in our directories or files, change the location of files or anything. 4. Development Tools: With the above three components our OS is running and working. But to update our system we have additional tools and libraries. These additional tools and libraries are written by the programmers and are called toolchain. A toolchain is a vital development tool used by the developers to produce a working application. 5. End-User Tools: These end tools make a system unique for a user. End tools are not required for the operating system but are necessary for a user. Some examples of end tools are graphic design tools, office suites, browsers, multimedia players, etc.