[2024]Digital Global Overview Report 2024 Meltwater.pdf
Introduction to linux
1. Intro to Linux
Kevin B. O'Brien
Washtenaw Linux Users Group
http://www.lugwash.org
http://www.zwilnik.com
2. What is an OS? 1
First computers had no OS
They ran a program and data, prepared
for specific hardware
Ran one “job” at a time
Time-sharing is what led to first OS
2
3. What is an OS? 2
These OS’s managed the hardware,
scheduled the jobs, and contained
“runtime libraries”
Usually written in machine language
3
4. Unix
Developed at Bell Labs in late 1960s
Owned by AT&T at the time, which meant
you had to buy it once AT&T figured out it
was valuable
Written in C (a high level language)
Needs to be compiled to run
Can be easily moved to a different system
by re-compiling for new hardware 4
5. BSD 1
In 1973 UC Berkeley acquired a license
on favorable terms.
In 1977 Bill Joy (grad student at the time)
released the first version of Berkeley
Software Distribution (BSD). This
becomes pretty much free to anyone who
wants it.
5
6. BSD 2
In 1990s legal battle between U C
Berkeley and an AT&T subsidiary, BSD
becomes legally free.
BSD is in some sense “real” Unix. It uses
code that can be traced back to Bell Labs.
Has since split into various flavors
(FreeBSD, NetBSD, OpenBSD)
6
7. GNU Project 1
Richard M Stallman (rms) was a
programmer at MIT, which had a hacker
ethos
Became very upset at rise of proprietary
software that cannot be modified or
hacked.
7
8. GNU Project 2
Founded GNU project in September 1983
to create a Unix “clone” with 100% free
code.
Founded Free Software Foundation, and
ultimately the GNU Public License (GPL),
now in version 3
8
9. GNU Project 3
GNU project starts with developing the
tools need to create an OS: compiler
(GCC), text editor (Emacs), debugger,
build automator. But still no kernel. Hurd,
the proposed kernel, was started in 1990,
but progress was slow.
9
10. Linux 1
Linus Torvalds, Finnish computer student,
wanted a simple OS for his computer.
Looked at Minix, a very simple “Unix-like”
OS. Hurd is still nowhere near ready
The owner of Minix, Andrew Tanenbaum,
would not make the changes people
wanted to Minix
10
11. Linux 2
Linus decides to make his own version,
and is quite happy to work with others to
make changes that people want. Post to
Usenet in August 1991
11
12. Linux 3
Hello everybody out there using minix - I'm doing a (free) operating
system (just a hobby, won't be big and professional like gnu) for
386(486) AT clones. This has been brewing since april, and is
starting to get ready. I'd like any feedback on things people
like/dislike in minix, as my OS resembles it somewhat (same
physical layout of the file-system (due to practical reasons) among
other things). I've currently ported bash (1.08) and gcc(1.40),and
things seem to work. This implies that I'll get something practical
within a few months, and I'd like to know what features most people
would want. Any suggestions are welcome, but I won't promise I'll
implement them :-) Linus (torvalds@kruuna.helsinki.fi)
PS. Yes - it's free of any minix code, and it has a multi-threaded fs.
It is NOT protable (uses 386 task switching etc), and it probably
never will support anything other than AT-harddisks, as that's all I
have :-(.
12
13. Linux 4
Linus uses GNU tools, and ultimately
releases his OS, which became known as
Linux, under the GPL in December 1992.
13
15. Kernel 2
“Typically, a kernel (or any comparable center of an operating
system) includes an interrupt handler that handles all requests or
completed I/O operations that compete for the kernel's services, a
scheduler that determines which programs share the kernel's
processing time in what order, and a supervisor that actually gives
use of the computer to each process when it is scheduled. A kernel
may also include a manager of the operating system's address
spaces in memory or storage, sharing these among all components
and other users of the kernel's services. A kernel's services are
requested by other parts of the operating system or by application
programs through a specified set of program interfaces sometimes
known as system calls.”
(http://searchenterpriselinux.techtarget.com/sDefinition/0,,sid39_gci
212439,00.html)
15
16. Kernel 3
The latest stable Linux kernel is currently
2.6.26 (as of early 2009)
Linus himself has remained almost
entirely concerned with the kernel
Other necessary programs come from
other developers
16
17. Shell 1
This is the part of the OS that interacts
with the user
This does not generally refer to Graphical
User Interfaces (GUI), but to command
line interfaces (CLI)
Examples are Bourne Shell (sh), Bourne-
Again shell (bash), Korn shell (ksh), and
C shell (csh)
17
18. Shell 2
These are somewhat similar to the DOS
COMMAND.COM, and its Windows
successor CMD.EXE. They have a list of
built-in commands and capabilities that
you can use
18
19. X1
As Xerox PARC first showed, and
Macintosh then made very clear,
graphical interfaces are easier for most
people to use
The basic need for a GUI as it is currently
conceived is a windowing system, that is,
software to draw windows on the screen
19
20. X2
A program called “W”, for window, was
written at Stanford, and then ported to
Unix
At MIT, this was developed further and
became “X” (the letter after W)
By 1987 X had gotten to version 11,
which was released as free software
(X11)
20
21. X3
X is only the basis. Many window
managers have been written using the
underlying code of X (e.g. Enlightenment,
Fluxbox, Metacity, WindowMaker)
21
22. Wayland
But X is old, and hard to use for modern
3D systems
So Wayland is the next graphical
environment
Scheduled to appear in Ubuntu 11.10 and
Fedora 15
22
23. Desktop Environment 1
Same thing as a GUI, to start with, but
now goes much further
Lets you interact with the computer in
other ways than through the command
line shell
Develops from the first window managers,
but goes much further
23
24. Desktop Environment 2
Has the ability to configure the
appearance of the screen in various ways
(e.g. color schemes, themes, icons)
Has started to include more and more
software programs (particularly Gnome
and KDE). This is not necessarily a good
thing (bloat). Examples include their own
built-in Web browsers, text editors, and
games
24
25. Desktop Environment 3
Gnome is considered somewhat more like
Macintosh
KDE is considered somewhat more like
Windows
XFce is less bloated, and should be a little
snappier, particularly on older hardware. It
is, however, an order of magnitude larger
than a simple Window manager.
25
26. Comparison to Windows 1
Windows also has a kernel. They just
don’t talk about it much. But any OS has
to handle the basic things a kernel
handles.
Windows also has a shell, but only one.
You have no choice.
Windows “shell” is more limited. And most
Windows users have rarely if ever used it.
26
27. Comparison to Windows 2
Linux’s shells are robust, and can do
anything you need them to do.
You can use a simple Window manager,
which could let you run a system on older
hardware or conserve system resources,
if you are in Linux. Windows does not give
you any options.
27
28. Comparison to Windows 3
Windows has one Desktop Environment.
You do not get to choose. And it is
definitely bloated.
28
29. Distributions 1
Linux has a variety of distributions, which
are called distros.
The oldest is MCC Interim Linux, begun in
February 1992
There are now hundreds of distros. If you
don’t see one you like, start your own.
29
30. Distributions 2
Distros have a variety of components, and how
and what they select is the main distinction
among different distros
Kernel: Every distro will have a kernel, usually
the latest stable version at the time the distro is
released. But over time a distro like Debian,
which is notably slow to update, will fall behind
the latest version. A distro like Ubuntu, which
releases a new version every 6 months, is more
likely to have the latest version of the kernel
30
31. Distributions 3
Shell: Every distro will have a selection of
shells available (and you can always
install any that are missing). By default,
most distros install the bash shell in their
initial installation.
31
32. Distributions 4
Drivers: These let your kernel/OS work with peripheral
equipment, like video cards, sound cards, mice,
monitors, printers, etc. The key issue here is whether
the drivers are open source (i.e. the source code has
been released for anyone to look at and modify) or
proprietary (the drivers are kept secret by an owner).
This is currently a big issue in the Linux community. Any
change to the kernel in any OS could potentially render
some equipment unusable. If the drivers are open
source, the Linux developer community can usually fix
the problem very quickly, but if they are proprietary, you
are at the mercy of an owner somewhere who may not
consider it a priority to fix the problem.
32
33. Distributions 5
Utilities: Every distro will include a variety
of utilities. Many of these come from the
GNU Project, such as GCC and Emacs.
Others come from a variety of developers
all over the world.
33
34. Distributions 6
Codecs: In this day of multimedia computing, the
codecs (Coder-Decoder) used for sound and video are
very important. Some codecs are free and open (like
ogg vorbis (sound) and ogg theora (video)) and others
are proprietary (like MP3, owned by Fraunhofer). And
DVDs are recorded in closed codecs). Some distros will
only include software (including codecs) that is free and
open (e.g. PhatLinux), other include proprietary stuff
right out of the box (e.g. Linspire). Many take a middle
ground; they don’t install it right away, but make it easy
for you to install if you decide to do so (e.g. Ubuntu)
34
35. Distributions 7
Other software: These days, most distros
will include a lot of other software as well.
Examples include Web browsers like
Firefox, office productivity suites like
OpenOffice.org, media players, CD
Burning software, etc. And pretty much
every major distro makes it easy to add
software and offers a wide variety of free
and open source software to fit any need
most people have.
35
36. Software Installation 1
Linux gives you access to a wide variety
of software packages
Installation can take a variety of forms
depending on the distro and the package
36
37. Software Installation 2
Repositories are online collections of
software maintained by various
companies, developers, etc. You can
download software from these
repositories and install it on your
computer at any time.
37
38. Software Installation 3
Package Managers are utilities in each
distro that let you easily access these
repositories and handle the downloading
and installing for you. These package
managers deal with pre-compiled code, or
binaries, which means that the code is
already in the form that the computer
needs to install it. This is pretty much the
same as you would have with Windows
installation software.
38
39. Software Installation 4
Every modern OS has found it preferable
to use libraries of code that can be shared
by a variety of different software
programs. In Windows, these are called
DLL files (Dynamic Link Libraries). In
Linux, we frequently call them Libraries.
39
40. Software Installation 5
In Windows, these DLL files are often included
with the software itself, and are installed at the
same time as the program. In Linux, these are
usually kept separate, and are called
dependencies. In Windows, you can get into
trouble when one program overwrites the DLL
installed previously by another program with a
different version number, sometimes breaking
the other program. In Linux, this cannot happen
accidentally if you are careful, but you need to
watch out for this.
40
41. Software Installation 6
Package Managers will help you by checking for any
dependencies that need to be met. Many of them will
even automatically go to the repository, download, and
install any software programs or libraries you need to
run the software program you are interested in as part of
the installation process. This depends on being able to
find the other programs or libraries in the repositories. If
they cannot find these other programs or libraries, they
will give you a message telling you which dependencies
could not be met, and you can attempt to find the
missing piece(s) on the Internet.
41
42. Software Installation 7
Compiling from Source Code: Sometimes
a pre-compiled binary is not available.
Other times, you find the pre-compiled
binary is not as good with your hardware
as it could be. The answer is to download
the source code, configure it, and compile
it for yourself with your own hardware
settings. This is not something a beginner
would be likely to do right away, but it is
not that hard.
42