Page 405 - DCAP103_Principle of operating system
P. 405
Principles of Operating Systems
Notes 14.7 Security in Linux
14.8 Summary
14.9 Keywords
14.10 Review Questions
14.11 Further Readings
Objectives
After studying this unit, you will be able:
• Discuss overview of Linux
• Explain process of Linux
• Understand of Booting process of Linux
• Explain Memory management of Linux
• Explain Input/output of Linux
• Discuss Linux file system
• Understand Security of Linux
Introduction
During the early years of MINIX development and discussion on the Internet, many people
requested (or in many cases, demanded) more and better features, to which the author often
said “No” (to keep the system small enough for students to understand completely in a one-
semester university course). This continuous ”No” irked many users. At this time, FreeBSD was
not available, so that was not an option. After a number of years went by like this, a Finnish
student, Linus Torvalds, decided to write another UNIX clone, named Linux, which would be
a full-blown production system with many features that MINIX was initially lacking.
The first version of Linux, 0.01, was released in 1991. It was cross-developed on a MINIX machine
and borrowed numerous ideas from MINIX, ranging from the structure of the source tree to the
layout of the file system. However, it was a monolithic rather than a microkernel design, with
the entire operating system in the kernel. The code size totaled 9,300 lines of C and 950 lines of
assembler, roughly similar to MINIX version in size and also roughly comparable in functionality.
Linux rapidly grew in size and evolved into a full production UNIX clone as virtual memory, a
more sophisticated file system, and many other features were added. Although it originally ran
only on the 386 (and even had embedded 386 assembly codes in the middle of C procedures),
it was quickly ported to other platforms and now runs on a wide variety of machines, just as
UNIX does. One difference with UNIX does stand out however—Linux makes use of many
special features of the gcc compiler and would need a lot of work before it would compile with
an ANSI standard C compiler.
The next major release of Linux was version 1.0, issued in 1994. It was about 165,000 lines of
code and included a new file system, memory-mapped files and BSD-compatible networking
with sockets and TCP/IP. It also included many new device drivers. Several minor revisions
followed in the next two years. By this time, Linux was sufficiently compatible with UNIX that
a vast amount of UNIX software was ported to Linux, making it far more useful than it would
have otherwise been. In addition, a large number of people were attracted to Linux and began
working on the code and extending it in many ways under Torvalds’ general supervision.
The next major release, 2.0 was made in 1996. It consisted of about 470,000 lines of C
and 8000 lines of assembly code. It included support for 64 bit architectures, symmetric
multiprogramming, new networking protocols and numerous other features. A large fraction
of the total code mass was taken up by an extensive collection of device drivers. Additional
398 LOVELY PROFESSIONAL UNIVERSITY