Linux
------------------------
History of Linux
--------------------------------
Linux is a free operating system. It is a developed by ‘Linus Torvalds’. He uploaded his improved version of the ‘MINIX’ Operating System onto the Internet in 1991, a small but self-contained kernel for the 80386 processor and the first true 32-bit processor in Intel’s range of PC-compatible CPUs. Linux operating system is the product of the Internet. The source code should always be distributed along with the software. Linux is a UNIX work-alike.
Linux is a multi-user, multi-tasking operating system that runs on many platforms including INTEL. It implements a superset of the POSIX standard. Linux is also capable of interaction with other operating system, including computing operating system from APPLE, MICROSOFT and NOVELL
The GNU Project
-------------------------------
Linux has also gained from its association with the GNU Project. The GNU Project started in 1984 to develop a complete free UNIX-like operating system. Variants of the GNU System using Linux as the Kernel (Core of the Operating System) are now widely used though often called “Linux”, they are more accurately called “GNU Linux System”.
The founder of GNU, ‘Richard Stallman’, is seen by many to be one of the principal architects in this new way of thinking about software development.
The GNU Project is founder by the free software foundation whose description follows:
The Free Software Foundation (FSF) is dedicated to eliminating restrictions on copying, redistribution, understanding, and modification of computer programs. We do this by promoting the development and use of free software in all areas of computing- but most particularly helping to develop the GNU Operating System.
Principal among GNU’s many contributions to computer science are:
1. The GNU Emacs Editor:
One of the most powerful editors you can find today.
2. The GNU ‘C’ Compiler:
A Compiler that now support 7 language and over 30 different architectures.
3. Ghost Script:
An interpreter for the PostScript and PDF graphics language.
4. The Gimp:
The GNU Image Manipulation Program a Photoshop like graphics application only better.
5. Gnome:
The GNU desktop a graphical user interface for the desktop that includes many different
Useful applications.
Linux Distributions Or Flavours
-----------------------------------------------
1. Red Hat Linux
2. Caldera Open Linux
3. SuSE Linux
4. Turbo Linux
5. Debian Linux
6. Slackware Linux
7. Mandrake Linux
Features of Linux
------------------------------
1. Free:
Linux is available for free on the Internet. We don’t have to pay anything to download it. A
lot of distributions of Linux are available for free download.
2. Open Source:
Open Source means we get not only the executables but also the source code. The user can
access the source code and make improvements with it.
3. Well Documented:
The ‘HOW-Tos’, as they are called, are extensive and very simple.
4. Customisable:
Linux users have the option of opting for using other software other than those bundled
with the installation kit. These other software may either be commercial software or free
software available off the net.
5. Hardware:
Linux can run on almost any hardware, be it 386, 486, Pentium MMX, Pentium II, Sparc,
Dec Alpha or even Motorola 68000 Series.
6. Multi-Tasking:
Linux is a multi-tasking system. A single user can run multiple programs at the same time.
Each task is called a process. This means that a user can give the system a command to be run in the background while doing more important work in the foreground.
7. Multi-User:
This means that more than one user can use the system at the same time. The multi user concept stems directly from the multi-tasking aspect.
8. Multiple Virtual Consoles:
We can have Multiple Virtual Terminals on the server. This can be done by pressing a key Combination.
In Linux it is
CTRL + ALT + any of F1 to F6 – for character mode terminals
CTRL + ALT + F7 - or GUI terminals
9. TCP/IP Networking:
TCP/IP networking support is build into the ‘Kernel’ itself. Linux is among the best
operating system in terms of networking. It includes programs like ‘Telnet’, ‘FTP’, ‘rlogin’,
‘rsh’ and other such programs.
10. High Level Security:
One of the main advantages of Linux is that it provides a very high level of security by using
user authentication. It also stores passwords in an encrypted form. The password once
encrypted cannot be decrypted.
11. Programming Supports:
Linux Provides Programming Support for FORTRAN, C, C++, TCL/TK, Perl and many
other languages.
12. GUI:
Linux has a very good Graphical user Interface (GUI) with window manager like KDE.
GNOME has taken GUI for Linux one step a head and given it a very gook look.
13. Stable Operating System:
Linux is a complete operating system that is stable. This means that the malfunctioning of an
application is not likely to being the system down.
14. Reliable:
Linux Server is very reliable. The regular reboots seen in the case of the other Operating
System.
15. Web Server:
Linux can be used to run a web server such as ‘Apache’ to serve application protocols such
as HTTP or FTP.
16. Multi-Processor Support:
Linux supports multiple Processors.
Hardware Requirement of Linux
--------------------------------------------------
Linux runs on a variety of computing platforms unmatched by any other operating system. A short list of major platforms includes:
Intel x86
PowerPC
MIPS
Sparc
Motorola 680x
Strong Arm
DEC Alpha
The versions of Linux that run on these platforms vary in stability and completeness with the Intel x86 versions as the most stable. The PowerPC and Alpha ports follow close behind in stability and compatibility. For instance, the PowerPC team will have support for the newest Macintosh models by the time you read this. That support includes advanced features such as USB, Firmware and support for the G3 Processors.
Minimal Linux machine can look like the following.
386 CPU
4 MB RAM
Floppy Drive
VGA Video
A Typical Linux workstation machine looks more like the followings:
Pentium Class or Equivalent CPU
(Such as an AMD K5 or Cyrix Cx586)
64 MB RAM
Floppy Drive
CD-ROM Drive
4 GB Hard Drive
IDE or SCSI Disk (Small Computer System Interface)
SVGA Graphics Card
Ethernet Card or Modem
17-inch Color Monitor
A Typical Linux server configuration looks something like the following:
Pentium II Class Processor or Equivalent CPU
(Such as AMD K6-2 or Cyrix M2)
128 MB RAM
Floppy Drive
CD-ROM Drive
9 GB SCSI hard disk or Multi drive RAID Array
Ethernet Card or Modem
VGA Graphics Card
Tape Backup Drive
Structure of Linux System
-----------------------------------------
Its structure consists of Kernel, Shell tools and applications.
The Linux operating system includes features from both BSD and UNIX system. The core of the operating system Kernel implemented independent of both the UNIX system.
Linux supports many peripherals, which work real fast. Linux is not for Intel based platforms but has been ported to machines like PowerPC – including Apples, DEC alpha based machines, and MIPS based machines and 68k based machines. Linux supports programs called emulator that allow user to run code intended for other operating system.
The Parts of the LINUX System
-----------------------------------------------
1. Kernel:
Kernel forms the core of the LINUX Operating System. This interacts with the hardware. It is loaded into the memory when a System is booted. Its functions are.
Managing the System Resources.
Allocating Time for different Users and Processes.
Deciding Process Priorities and performing them.
Kernel does not interact with the user directly instead, it starts up a separate file called “Shell”.
2. Shell:
Linux’s shell interacts with the user and the computer. Some of its features are as follows.
I. Interactive Processing:
Communication between the user and the system takes the form of interactive dialogue with the shell.
II. Background Processing:
There are processes, which are time consuming and which are non-interactive in nature. Such processes can be done in the background while we can continue using the system to do other tasks.
III. Input/Output Redirection:
Programs can be instructed to take input from a file other then the standard input i.e. the keyboard and send the output to a file instead of the standard output i.e. the visual display unit. This is called redirection. Simultaneous use of input and output redirection is possible.
IV. Pipes:
Simple programs can be developed to do complex operations with minimum effort using pipes.
V. Wild Card Patterns:
File matching a particular pattern can be grouped together and actions may be performed on it.
VI. Shell Scripts:
The Shell Scripts contain a sequence of commands to be performed with a single filename. The script can be executed using that filename.
VII. Shell Variables:
By storing data in variables we can control the behaviors of shell as well as that of programs and utilities.
VIII. Programming Language Constructs:
Shell has features, which enabled. It to be used as a programming language. These help in building complex shells to perform complex.
Note: There are different types of shell available. They are Bourne Shell, C Shell, Korne Shell and Restricted Shell. The Shell that is officially distributed with the LINUX System and widely is the bash Shell.
IX. Tools And Applications:
Linux supports business application oriented packages like word processor, Electronic spreadsheets and databases etc.
The .profile File
--------------------
Linux allows us to create customize environment. A few of the environmental variables like HOME, LOGNAME are set as soon as we login in the .profile file. The other variables can be set by the user. The .profile file is similar to the autoexec.bat file in DOS. This file could be executed only if exists in the HOME directory.
The ‘/ect/stdprofile’ file is copies by the system administrator into user’s home directory as the .profile file when we enter newly into the multi-user system. This file will contain the standard path and the type of the terminal to be used. We can change the settings by changing the environmental variables suitably.
The ‘.bash_profile’ Shell Script
-----------------------------------------
The shell environment in Linux can be customized. In the ‘bash’ shell, this can be done by using the ‘.bash_profile’ shell script.
The contents of the ‘.bash_profile’ are read and executed every the user logs in. Every user has a copy of the ‘.bash_profile’ file of the user’s home directory. This copy of the ‘.bash_profile’ is used to customize the user’s environment.
The ‘.bash_profile’ shell script is the first shell script to be executed when a user logs in. It is the personal copy of the ‘.bash profile’ shell script that is executed. This file can be customized to the user’s preferences. Programs that are to be executed when the user logs in are put here. The environment variables can also be altered to the user’s preferences.
Process
-------------
A process is a program in execution. A process is more than the program code, which is sometimes, knows as the text section. It also includes the current activity, as represented by the value of the program counter and the contents of the processor’s registers. In addition, a process general includes the process stack, which contains temporary data (such as method parameters, return addresses, and local variables), and a data section, which contains global variables.
We emphasize that a program by itself is not a process; a program is a passive entity, such as the contents of a file stored on disk, whereas a process is an active entity, with a program counter specifying the next instruction to execute and a set of associated resources.
Process State
---------------------
The state of a process is defined in part by the current activity of that process. Each process may be in one of the following states:
New: The process is being created.
Running: Instructions are being executed.
Waiting: The process is waiting for some event to occur (such as an I/O completion
or reception of a signal).
Ready: The process is waiting to be assigned to a processor.
Terminated: The process has finished execution.
Only one process can be running on any processor at any instant, although many processes may be ready and waiting.
No comments:
Post a Comment