05-07-2014, 02:26 PM
Linux Operating System
Linux Operating System.docx (Size: 20.47 KB / Downloads: 16)
Abstract
Linux is an operating system in which the configuration of services is contained within plain text files, and within which said services are configured by editing the configuration text files manually. The aim of this project is to research, design and implement a tool that provides a means for the manipulation of the files used for the configuration of the Domain Name Service (DNS) and Dynamic Host Configuration Protocol (DHCP) network services to be carried out graphically. The project will look at the various approaches and enabling tools suitable for this purpose, and develop the most suitable. The origins of Linux lie with the development of the UNIX operating system. UNIX was developed in 1969 by researchers based at AT&T Bell Laboratories to provide an operating system tailored to the needs of a research environment; an efficient and affordable operating system designed to run on minicomputers with multitasking and multi-user capabilities (Petersen 2003).
Over the years, UNIX evolved to a portable, powerful and flexible operating system, used within research laboratories and enterprise computer systems around the world. It had been designed at a time when mainframes and minicomputers were the only computers available, and as these computers evolved in terms of power, capability and features, UNIX evolved alongside to provide the operating system support that was required. In a nutshell, UNIX is an operating system designed to run on big, powerful computers in order for the computers to carry out big, powerful tasks (Rosen et al. 2001). Technologies such as networking and the World Wide Web
were originally developed with UNIX in mind, and for these reasons UNIX remains the most popular choice of operating system for network servers and mainframe systems (Petersen 2003).
The Linux operating system was originally conceived by Linus Torvalds, a research student based at the University of Helsinki in Finland. His intention was to develop a version of the In Linux, the configuration of options and
LINUX MEMORY MANAGEMENT
Linux shares many of the characteristics of the memory management schemes of other UNIX
implementations but has its own unique features. Overall, the Linux memory-management
scheme is quite complex [DUBE98]. In this section, we give a brief overview of the two main
aspects of Linux memory management: process virtual memory, and kernel memory allocation.
Linux Virtual Memory
Virtual Memory Addressing!
Linux makes use of a three-level page table structure, consisting of the following types of
tables (each individual table is the size of one page):
• Page directory: An active process has a single page directory that is the size of one page.
Each entry in the page directory points to one page of the page middle directory. The page
directory must be in main memory for an active process.
• Page middle directory: The page middle directory may span multiple pages. Each entry in
the page middle directory points to one page in the page table.
• Page table: The page table may also span multiple pages. Each page table entry refers to
one virtual page of the process.
To use this three-level page table structure, a virtual address in Linux is viewed as
consisting of four fields (Figure 8.25). The leftmost (most significant) field is used as an index
into the page directory. The next field serves as an index into the page middle directory. The
third field serves as an index into the page table. The fourth field gives the offset within the
selected page of memory.
The Linux page table structure is platform independent and was designed to accommodate
the 64-bit Alpha processor, which provides hardware support for three levels of paging. With 64-bit addresses, the use of only two levels of pages on the Alpha would result in very large page
LINUX VIRTUAL FILE SYSTEM
Linux includes a versatile and powerful file handling facility, designed to support a wide variety
of file management systems and file structures. The approach taken in Linux is to make use of a
virtual file system (VFS), which presents a single, uniform file system interface to user
processes. The VFS defines a common file model that is capable of representing any conceivable
file system's general feature and behavior. The VFS assumes that files are objects in a computer's
mass storage memory that share basic properties regardless of the target file system or the
underlying processor hardware. Files have symbolic names that allow them to be uniquely
identified within a specific directory within the file system. A file has an owner, protection
against unauthorized access or modification, and a variety of other properties. A file may be
created, read from, written to, or deleted. For any specific file system, a mapping module is
needed to transform the characteristics of the real file system to the characteristics expected by
the virtual file system.
Figure 12.15 indicates the key ingredients of the Linux file system strategy. A user process
issues a file system call (e.g., read) using the VFS file scheme. The VFS converts this into an
internal (to the kernel) file system call that is passed to a mapping function for a specific file
system [e.g., IBM's Journaling File System (JFS)]. In most cases, the mapping function is simply
a mapping of file system functional calls from one scheme to another. In some cases, the
mapping function is more complex. For example, some file systems use a file allocation table
(FAT), which stores the position of each file in the directory tree. In these file systems,
directories are not files. For such file systems, the mapping function for such a file system must
be able to construct dynamically, and when needed, the files corresponding to the directories. In
any case, the original user file system call is translated into a call that is native to the target file
system. The target file system software is then invoked to perform the requested function on a
file or directory under its control and secondary storage. The results of the operation are then
Why Run Linux?
Much of the success of Linux is due not only to its outstanding performance, but also by the fact that it is a non-commercial, non-proprietary, platform-independent, open source product. Much like the Internet, Linux brings with it a freedom and openness that has not been seen in the computer industry in many years. No longer are large, domineering companies like Microsoft dictating what users can and cannot do with their computers. No longer are computer users being treated as pawns in Microsoft's unethical (and illegal) practices of predatory capitalism. No longer are computer users the slaves of greed, aggregate wealth, or the whims of a single, domineering software company whose only concern is the "bottom line". With Linux, there is no "bottom line". Instead, success is measured by performance and design excellence.
A survey conducted of Information Technology executives attending last December's Giga Emerging Technology Scene conference concluded that 58 percent of computer users are ready to drop Windows for Linux. The survey also painted Microsoft as the software vendor least trusted to deliver on its promises, and Linux as the platform to which computer users would most likely move.
Today, Linux is receiving strong support from forward-thinking computer industry giants such as Netscape, AOL, Intel, IBM, HP, Dell, Sun, Oracle, Informix, Sybase, Compaq, Silicon Graphics Inc., and Novell, as well as many smaller companies who have traditionally aligned themselves with Microsoft in the past. These actions, and the trend it suggests, are an indication that a growing number of companies see a brighter future for Linux than they do for Microsoft Windows.
Amerada Hess Corporation, a $6.6 billion oil company, successfully replaced an IBM SP2 supercomputer with a 32-node cluster of PCs running Linux. Amerada Hess decided against using Windows NT because it would have required them to re-write an application containing three million lines of code, an effort that was judged to be impractical.