Upload
speedster87322
View
17
Download
0
Embed Size (px)
DESCRIPTION
Linux
Citation preview
7/21/2019 001 History of Linux - Optional Reading
http://slidepdf.com/reader/full/001-history-of-linux-optional-reading 1/15
LINUX
INTRODUCTION
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
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
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
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.
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
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
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
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.
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
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.
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".
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.
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
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