001 history of linux - optional reading

15
7/21/2019 001 History of Linux - Optional Reading http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 1/15  LINUX INTRODUCTION

Upload: speedster87322

Post on 09-Mar-2016

17 views

Category:

Documents


0 download

DESCRIPTION

Linux

TRANSCRIPT

Page 1: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 1/15

 

LINUX

INTRODUCTION

Page 2: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 2/15

 

The history of computer operating systems starts in the 1950s, with simple schemes for

running batch programs efficiently, minimizing idle time between programs. A batch

program is one that does not interact with the user at all. It reads all its input from a file

(possibly a stack of punch cards) and outputs all its output to another file (possibly to a

printer). This is how all computers used to work.

Then, in early 1960s, interactive use started to gain ground. Not only interactive use, but

having several people use the same computer at the same time, from different

terminals. Such systems were called time-sharing systems and were quite a challenge to

implement compared to the batch systems.

During the 1960s there were many attempts at building good time-sharing systems.

Some of these were university research projects, others were commercial ones. Onesuch project was Multics, which was quite innovative at the time. It had, for example, a

hierarchical file system, something taken for granted in modern operating systems.

The Multics project did not, however, progress very well. It took years longer to

complete than anticipated and never got a significant share of the operating system

market. One of the participants, Bell Labs, withdrew from the project. The Bell Labs

people who were involved then made their own operating system and called it Unix.

Unix was originally distributed for free and gained much popularity in universities. Later,

it got an implementation of the TCP/IP protocol stack and was adopted as the operating

system of choice for early workstations.

By 1990, Unix had a strong position in the server market and was especially strong in

universities. Most universities had Unix systems and computer science students were

exposed to them. Many of them wanted to run Unix on their own computers as well.

Unfortunately, by that time, Unix had become commercial and rather expensive. About

the only cheap option was Minix, a limited Unix-like system written by Andrew

Tanenbaum for teaching purposes. There was also 386BSD, a precursor NetBSD,

FreeBSD, and OpenBSD, but that wasn't mature yet, and required higher end hardwarethan many had at home.

Into this scene came Linux, in October, 1991. Linus Torvalds, the author, had used Unix

at the University of Helsinki, and wanted something similar on his PC at home. Since the

History of Linux 

Page 3: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 3/15

 

commercial alternatives were way too expensive, he started out with Minix, but wanted

something better and soon started to write his own operating system. After its first

release, it soon attracted the attention of several other hackers. While Linux initially was

not really useful except as a toy, it soon gathered enough features to be interesting

even for people uninterested in operating system development.

Linux itself is only the kernel of an operating system. The kernel is the part that makesall other programs run. It implements multitasking, and manages hardware devices, and

generally enables applications to do their thing. All the programs that the user (or

system administrator) actually interacts with are run on top of the kernel. Some of these

are essential: for example, a command line interpreter (or shell), which is used both

interactively and to write shell scripts (corresponding to .BAT files).

Linus did not write these programs himself, and used existing free versions instead. This

reduced greatly the amount of work he had to do to get a working environment. In fact,

he often changed the kernel to make it easier to get the existing programs to run onLinux, instead of the other way around.

Most of the critically important system software, including the C compiler, came from

the Free Software Foundation's GNU project. Started in 1984, the GNU project aims to

develop an entire Unix-like operating system that is completely free. To credit them,

many people like to refer to a Linux system as a GNU/Linux system. (GNU has their own

kernel as well.)

During 1992 and 1993, the Linux kernel gathered all the necessary features it required

to work as a replacement for Unix workstations, including TCP/IP networking and a

graphical windowing system (the X Window System). Linux also received plenty of

industry attention, and several small companies were started to develop and distribute

Linux. Dozens of user groups were founded, and the Linux Journal magazine started to

appear in early 1994.

Version 1.0 of the Linux kernel was released in March, 1994. Since then, the kernel has

gone through many development cycles, each culminating in a stable version. Each

development cycle has taken a year or three, and has involved redesigning and rewriting

large parts of the kernel to deal with changes in hardware (for example, new ways toconnect peripherals, such as USB) and to meet increased speed requirements as people

apply Linux to larger and larger systems (or smaller and smaller ones: embedded Linux is

becoming a hot topic).

From a marketing and political point of view, after the 1.0 release the next huge step

happened in 1997, when Netscape decided to release their web browser as free

Page 4: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 4/15

 

software (the term 'open source' was created for this). This was the occasion that first

brought free software to the attention of the whole computing world for the time. It has

taken years of work since then, but free software (whether called that or open source)

has become not only generally accepted but also often the preferred choice for many

applications.

Social Phenomenon:

Apart from being a technological feat, Linux is also an interesting social phenomenon.

Much through Linux, the free software movement has broken through to general

attention. On the way, it even got an informal marketing department and brand: open

source. It is baffling to many outsiders that something as successful as Linux could be

developed by a bunch of unorganized people in their free time.

The major factor here is the availability of all the source code to the system, plus a

copyright license that allows modifications to be made and distributed.  When thesystem has many programmers among its users, if they find a problem, they can fairly

easily fix it. Additionally, if they think a feature is missing, they can add it themselves.

For some reason, that is something programmers like to do, even if they're not paid for

it: they have an itch (a need), so they scratch (write the code to fill the need).

It is necessary to have at least one committed developer who puts in lots of effort. After

a while, however, once there are enough programmer-users sending small changes and

improvements, you get a snowball effect: lots of small changes result in a fairly rapid

total development speed, which then attracts more users, some of which will be

programmers. This then results in more small changes and improvements sent in by

users, and so on.

For operating system development specifically, this large group of programmer-users

results in two important types of improvements: bug fixes and device drivers. Operating

system code often has bugs that only occur rarely and it can be difficult for the

developers to reproduce them. When there are thousands or more users who are also

programmers, this result are very effective testing and debugging army.

Most of the code volume in Linux is device drivers. The core functionality, whichimplements multitasking and multiuser functionality, is small in comparison. Most

device drivers are independent from each other, and only interact with the operating

system core via well defined interfaces. Thus, it is fairly easy to write a new device driver

without having to understand the whole complexity of the operating system. This also

Page 5: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 5/15

 

allows the main developers to concentrate on the core functionality, and they can let

those people write the device drivers who actually have the devices.

It would be awkward just to store the thousands of different sound cards, Ethernet

cards, IDE controllers, motherboards, digital cameras, printers, and so on that Linux

supports. The Linux development model is distributed, and spreads the work around

quite effectively.

The Linux model is not without problems. When a new device gets on the market, it can

take a few months before a Linux programmer is interested enough to write a device

driver. Also, some device manufacturers, for whatever reason, do not want to release

programming information for their devices, which can prevent a Linux device driver to

be written at all. Luckily, with the growing global interest in Linux such companies

become fewer in numbers.

What it is? 

Linux is a Unix-like multitasking, multiuser 32 and 64 bit operating system for a variety

of hardware platforms and licensed under an open source license.  This is a somewhat

accurate but rather brief description. I'll spend the rest of this article expounding on it.

Being Unix-like means emulating the Unix operating system interfaces so that

programs written for Unix will work for Linux merely by re-compiling.  It follows that

Linux uses mostly the same abstractions as the Unix system. For example, the way

processes are created and controlled is the same in Unix and Linux.

There are a number of other operating systems in active use: from Microsoft's family of

Windows versions, through Apple's MacOS to OpenVMS. Linux's creator, Linus Torvalds,

chose Unix as the model for Linux partly for its aesthetic appeal to system programmers,

partly because of all the operating systems he was familiar with, it was the one he knew

best.

The Unix heritage also gives Linux the two most important features: multitasking and

multiuser capabilities. Linux, like Unix, was designed from the start to run multiple

processes independently of each other. Implementing multitasking well requiresattention at every level of the operating system. It is hard to add multitasking to an

operationg system afterwards. That's why the Windows 95 series and MacOS (before

MacOS X) did multitasking somewhat poorly: multitasking was added to an existing

operating system, not designed into a new one. That's also why the Windows NT series,

MacOS X, and Linux do multitasking so much better.

Page 6: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 6/15

 

A good implementation of multitasking requires, among other things, proper memory

management. The operating system must use the memory protection support in the

processor to protect running programs from each other. Otherwise a buggy program

(that is, most any program) may corrupt the memory area of another program, or the

operating system itself, causing weird behavior or a total system crash, with likely loss of

data and unsaved work.

Supporting many concurrent users is easy after multitasking works. You label each

instance of a running program with a particular user and prevent the program from

tampering with other user's files.

Portable and Scalable:

Linux was originally written for an Intel 386 processor, and naturally works on all

successive processors. After about three years of development, work began to adapt (or

port) Linux to other processor families as well. The first one was the Alpha processor,then developed and sold by the Digital Equipment Corporation. The Alpha was chosen

because Digital graciously donated a system to Linus. Soon other porting efforts

followed. Today, Linux also runs on Sun SPARC and UltraSPARC, Motorola 68000,

PowerPC, PowerPC64, ARM, Hitachi SuperH, IBM S/390, MIPS, HP PA-RISC, Intel IA-64,

DEC VAX, AMD x86-64 and CRIS processors. (See http://kernel.org for details.)

Most of those processors are not very common on people's desks. For example, S/390 is

IBM's big mainframe architecture. Here, mainframe means the kind of computer inside

of which you can put your desk, rather than the kind that fits on your desk.

Some of those processors are 32 bit, like the Intel 386. Others are 64 bit, such as the

Alpha. Supporting such different processors has been good for Linux. It has required

designing the system to use proper modularity and good abstractions and this has

improved code quality.

The large variety of supported processors also shows off Linux's scalability: it works

everything from very small systems, such as embedded computers, handheld devices,

and mobile phones, to very large systems, such as the IBM mainframes.

Using clustering technology, such as Beowulf (http://www.beowulf.org/), Linux even

runs on supercomputers. For example, the US Lawrence Livermore National

Laboratories bought a cluster with 1920 processors, resulting in one of the five fastest

supercomputers in the world with a theoretical peak performance of 9.2 teraFLOPS or

9.2 trillion calculations per second. (http://lwn.net/Articles/4759/).

Using Linux

Page 7: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 7/15

 

The operating system itself is pretty boring to most people. Applications are necessary

so to get things done. Traditionally, Linux applications have been the kinds of

applications used with Unix: scientific software, databases, and network services. Also,

of course, all the tools programmers want for their craft.

Much of such software seems rather old-fashioned by today's desktop standards. User

interfaces are text based, or they might not exist at all. Indeed, most software hasusually been non-interactive and has been of the command line, batch processing

variety. Since most users have been experts in the application domain, this has been

good enough.

Thus, Linux first found corporate employment as a file server, mail server, web server,

or firewall. It was a good platform for running a database, with support from all major

commercial database manufacturers.

In the past few years Linux has also become an interesting option on the user friendlydesktop front. The KDE (http://www.kde.org/) and Gnome (http://www.gnome.org/)

projects develop desktop environments and applications that are easy to learn (as well

as effective to use). There is now plenty of desktop applications which people with

Windows or MacOS experience will have no difficulty using.

There is even a professional grade office software package. OpenOffice

(http://www.openoffice.org/), based on Sun's StarOffice, is free, fully featured, and file

compatible with Microsoft Office. It includes a word processor, spreadsheet, and

presentation program, competing with Microsoft's Word, Excel, and Powerpoint.

Linux distributions

To install Linux, you have to choose a Linux distribution. A distribution is the Linux

kernel, plus an installation program, plus some set of applications to run on top of it.

There are hundreds of Linux distributions, serving different needs.

All distributions use pretty much the same actual software, but they are different in

which software they include, which versions they pick (a stable version known to work

well or the latest version with all the bells and whistles and bugs), how the software is

pre-configured, and how the system is installed and managed. For example, OpenOffice,Mozilla (web browser), KDE and Gnome (desktop environments), and Apache (web

server) will all work on all distributions.

Some distributions aim to be general purpose, but most of them are task specific: they

are meant for running a firewall, a web kiosk, or meant for users within a particular

Page 8: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 8/15

 

university or country. Those looking for their first Linux experience can concentrate on

the three biggest general purpose distributions: Red Hat, SuSE, and Debian.

The Red Hat and SuSE distributions are produced by companies by the same names.

They aim at providing an easy installation procedure, and for a pleasant desktop

experience. They are also good as servers. Both are sold in boxes, with an installation CD

and printed manual. Both can also be downloaded via the network.

The Debian distribution is produced by a volunteer organization. It's installation is less

easy: you have to answer questions during the installation the other distributions

deduce automatically. Nothing complicated as such, but requiring understanding of and

information about hardware most PC users don't want to worry about. On the other

hand, after installation, Debian can be upgraded to each new release without re-

installing anything.

The easiest way to try out Linux is to use a distribution that works completely off a CD-ROM. This way, you don't have to install anything. You merely download the CD-ROM

image from the net and burn it on a disk, or buy a mass-produced one via the net. Insert

disk in drive, then reboot. Not having to install anything on the hard disk means you can

easily switch between Linux and Windows. Also, since all Linux files are on a read-only

CD-ROM, you can't break anthing by mistake while you're learning.

Why Linux is better?

Security: Linux is Open Source Software, while Windows is not. The simplest benefits of

Open Source Code to demonstrate are increased security, reliability and functionality;because users of Open Source are readily able to identify and correct problems with the

programs and to submit their own enhancements for incorporation into the program.

Closed Source systems enjoy none of those benefits.

Scalability: Systems implemented under Linux can be cloned limitless times without

paying additional software licensing fees - With Windows, you pay for each

installation/workstation/server/cpu.

Power : Linux is made with the Unix design philosophy, which dictates that system toolsare small and highly specialized. The result is an incredibly powerful and reliable system,

limited in capability only by the user's imagination and ability to integrate the Unix

utilities. The Windows philosophy is to create unwieldy swiss army knives, limited in

capability by how many features the user purchased on their particular knife.

Diminished reliability is arguably a side effect of increased complexity. Thus with

Page 9: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 9/15

 

Windows, the case is often that you have tools that ALMOST do what you want them to,

if they didn't crash.

Reliability: The architecture of Linux is superior to Windows because critical operation

system functions are implemented in such a way that buggy programs can't cause the

computer to become unstable and crash. In fairness, though not quite as robust as

Linux, Windows 2000 and Windows XP are much improved over Windows 9x andWindows Millenium Edition.

Advanced Capabilities: In addition to the system utility tools from the Unix world, Linux

usually comes with the Apache Webserver, an email server, router/firewall capabilities

and SQL databases. These are extras costing up to thousands of dollars on Windows.

There IS free software to do these jobs on Windows, but it has mostly been adapted

from Linux and loses some functionality when ported to Windows.

Compatibility: Linux is POSIX Compliant which means that applications developed forLinux can be operated on other POSIX compliant Unix derivatives with a minimum of

reworking.

Support: For persons not familiar with the Open Source Community, the quality of free

technical support on the internet may come as a shock. Sometimes knowing enough to

ask the right questions can be a problem, but overall the best and the brightest are

there to assist you at no charge when you run into problems that can't be solved by

reading the documentation included with Linux. With Windows or other commercial

software, your manufacturer support is only free for a limited time and is often of little

value anyways.

Not Single Source Software: Linux is distributed by several companies, giving consumers

to pick and choose the flavor that best suits their needs. Windows is the product of a

single company, Microsoft Corporation. Windows users have no choice but to accept

what Microsoft offers.

Rate of Advancement: Linux has and will continue to advance at a rate impossible for a

close development project such as Microsoft Windows to sustain. A few factors driving

this rate of progress are (in no particular order): the number of active developers;

quantity and quality of feedback from the field; short development cycle from

development team to the end user; absence of corporate "meddling" in the design

process; independently developed open source subsystems frequently incorporated into

Linux, giving it quantum advances in a short time.

Page 10: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 10/15

 

Cost : - That Linux is FREE deserves honorable mention and a bit of explanation. You can

package and sell Linux for money. The competing Linux distributions all provide slightly

different feature sets beyond the core system, including canned e-commerce solutions,

printed manuals and phone support options. There is no rule that says you can't make

money distributing Linux. For those who choose to download and install free

distributions from the Internet, Linux is truely free. Some cynics have proclaimed, "Sure

Linux is free now, but the Linux People will start charging for it once it catches on!". That

statment is completely false. No single person or organization controls Linux, so that will

never happen. In the unlikely case that Linus Torvalds (the author of Linux) adds some

proprietary code and proclaims that all future releases will be $99.99USD, someone will

simply take the latest "free" version and possibly rename it to Spin-UX. Then all the

volunteer developers and contributors will jump on that bandwagon. Spin-UX will

diverge from its Linux roots, over time becoming better supported and more advanced,

rendering its ancestor obsolete, except possibly for purposes specifically addressed by

that hypothetical proprietary added code. Furthermore Linux is covered by the Gnu

Public License, stating that it and all derivative works must be distributed with the

source code. This makes it extremely unlikely that anyone will wield monopolistic power

in the Linux Sector.

User Privileges: In linux no user is given administrative Privileges rather than root

therefore linux doesn’t allow a normal user to write any system file.Only root user can

install software and can edit system file so if you need to install any software or need to

edit any configuration file you will have use su - command.

No Executables: Like windows linux doesn’t support .exe files. Most of the viruses in

windows are being spread with .exe files what happens you just double click on .exe file

and virus,trojan or malware easily integrate itself with windows.

No Registry: Registry is another place where viruses put their information so what

happens even if you delete files infected with virus.It rewrites its information from

registry and it is also too difficult to find where virus hides its information in

registry.Linux uses configuration files rather than registry so another big hole for viruses

is closed and as i mentioned in point 1 that linux doesn’t allow any normal user to edit

system files.

No Internet Explorer (IE): Internet Explorer (IE) which is installed in windows by default

is another big hole for virus.It has been proved by many times by research that IE is has

Page 11: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 11/15

 

lots of vulnerabilities.Linux has Mozilla firefox browser installed by default which is the

most secure browser and blocks most of viruses and trojans and doesn’t allow any

website to install any software without your permission.

Linux is not soo common like Windows: Although developers of linux has improved it

alot and has also worked to make it user friendly but still linux is unsuccessful to capture

most of the desktop users.Most of the viruses are made for desktop users rather than

servers because servers are monitored by system administrators and have security

softwares,Hardware firewalls and much more to protect them against viruses.Because

linux is not common like windows number of viruses created for linux is also minimum.

Some of its features include:

1. Virtual memory, allowing the system to use disk room the same as RAM memory.

2. Networking with TCP/IP and other protocols.

3. Multiple user capability.

4. Protected mode so programs or users can't access unauthorized areas.

5. Shared libraries.

6. True multitasking.

7. X - A graphical user interface similar to windows, but supports remote sessions over

a network.

8. Advanced server functionality

* FTP server

* Telnet server* BOOTP serverz

* DHCP server

* Samba server

* DNS server

* SNMP services

* Mail services

* Network file sharing

* much, much more...

9. Support of filesystems that other operating systems use such as DOS (FAT),

Windows95, 98 (FAT32), Windows NT, 2000 (NTFS), Apple, minix, and others.

Basic Commands

date:- used for show system date and time.

Page 12: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 12/15

 

date MMDDhhmmyy:- change the system date and time.

ls:- List files in the current working directory except those starting with and only shows

the file name.

ls  –al:- List all files in the current working directory in long listing format showing

permissions, ownership, size, and time and date stamp

cal :- show the calender.

cal 04 2009 :- show the calendar of April 2009.

cal 2009 :- show the calendar of 2009.

man :- show usage manual for a command 

more:- Allows file contents or piped output to be sent to the screen one page at a time.

less textfile :-Similar to the more command, but the user can page up and down

through the file. The example displays the contents of textfile

logout :-  Logs the current user off the system.

pwd :- Show the name of the current working directory.

whereis :-  Show where the binary, source and manual page files are for a

command.

wc :- Print byte, word, and line counts.

cd Change directory

cd /home  Change the current working directory to /home. The '/' indicates

relative to root, and no matter what directory you are in when

you execute this command, the directory will be changed to"/home".

cd httpd  Change the current working directory to httpd, relative to the

current location which is "/home". The full path of the new

working directory is "/home/httpd".

Page 13: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 13/15

 

cd  Move to the parent directory of the current directory. This

command will make the current working directory "/home.

cd ~  Move to the user's home directory which is "/home/username".

The '~' indicates the users home directory.

cp  Copy files

cp myfile yourfile Copy the files "myfile"(source) to the file "yourfile"(destination) in

the current working directory. This command will create the file

"yourfile" if it doesn't exist. It will normally overwrite it without

warning if it exists.

mv  Move or rename files

mv -i myfile yourfile Move the file from "myfile"(source) to "yourfile"(destination). This

effectively changes the name of "myfile" to "yourfile".

mv -i /data/myfile Move the file from "myfile" from the directory "/data" to the

current working directory.

Eject eject the removable media.

Touch create a file.

cat Sends file contents to standard output. This is a way to list the

contents of short files to the screen. It works well with piping.

cat files  Prints the contents of the specified files

clear  Clears the terminal screen

finger users Prints descriptions of the specified users.

Page 14: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 14/15

 

free  Displays the amount of used and free system memory.

fg jobs  Brings the current job (or the specified jobs) to the foreground.

ln  Creates a symbolic link to a file.

uptime  Prints the system uptime.

w  Prints the current system users.

wall  Prints a message to each user except those who've disabled

message reception. Type Ctrl-D to end the message.

sort files Sorts the specified files. The command has many useful

arguments; see the online documentation.

rm  Remove files or directories

rmdir  Remove an existing directory

rm –r Removes directories and files within the directories recursively. 

du estimate file space usage

df report filesystem disk space usage

exit cause the shell to exit

history  Manipulate the history list

init process control initialization

kill terminate a process

mount mount a file system

ping  send ICMP ECHO_REQUEST packets to network hosts

Page 15: 001 History of Linux - Optional Reading

7/21/2019 001 History of Linux - Optional Reading

http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 15/15

 

ps report process status

passwd  change user password

reboot  Reboots the system (requires root privileges).

shutdown  bring the system down

sleep  delay for a specified amount of time

sort  sort lines of text files

slocate Security Enhanced version of the GNU Locate.

sync  synchronize data on disk with memory

su  run a shell with substitute user and group IDs

telnet  user interface to the TELNET protocol

top  display top CPU processes

tree  list contents of directories in a tree-like format.

time  time a simple command or give resource usage

tty  print the file name of the terminal connected to standard input

tail  output the last part of files

umount  unmount file systems

umask  get or set the file mode creation mask

who  show who is logged on

whoami  print effective userid