Introduction to linux

42
Intro to Linux Kevin B. O'Brien Washtenaw Linux Users Group http://www.lugwash.org http://www.zwilnik.com

description

Information useful to a new user or a Linux-curious person. It will help you understand Linux and some of the choices you will need to make.

Transcript of Introduction to linux

Page 1: Introduction to linux

Intro to Linux

Kevin B. O'BrienWashtenaw Linux Users Group

http://www.lugwash.orghttp://www.zwilnik.com

Page 2: Introduction to linux

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

Page 3: Introduction to linux

3

What is an OS? 2

These OS’s managed the hardware, scheduled the jobs, and contained “runtime libraries”

Usually written in machine language

Page 4: Introduction to linux

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

Page 5: Introduction to linux

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.

Page 6: Introduction to linux

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)

Page 7: Introduction to linux

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.

Page 8: Introduction to linux

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

Page 9: Introduction to linux

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.

Page 10: Introduction to linux

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

Page 11: Introduction to linux

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

Page 12: Introduction to linux

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 ([email protected]) 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 :-(.

Page 13: Introduction to linux

13

Linux 4

Linus uses GNU tools, and ultimately releases his OS, which became known as Linux, under the GPL in December 1992.

Page 14: Introduction to linux

14

Kernel 1

What Linus wrote was a kernel

Page 15: Introduction to linux

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_gci212439,00.html)

Page 16: Introduction to linux

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

Page 17: Introduction to linux

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)

Page 18: Introduction to linux

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

Page 19: Introduction to linux

19

X 1

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

Page 20: Introduction to linux

20

X 2

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)

Page 21: Introduction to linux

21

X 3

X is only the basis. Many window managers have been written using the underlying code of X (e.g. Enlightenment, Fluxbox, Metacity, WindowMaker)

Page 22: Introduction to linux

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

Page 23: Introduction to linux

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

Page 24: Introduction to linux

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

Page 25: Introduction to linux

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.

Page 26: Introduction to linux

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.

Page 27: Introduction to linux

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.

Page 28: Introduction to linux

28

Comparison to Windows 3

Windows has one Desktop Environment. You do not get to choose. And it is definitely bloated.

Page 29: Introduction to linux

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.

Page 30: Introduction to linux

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

Page 31: Introduction to linux

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.

Page 32: Introduction to linux

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.

Page 33: Introduction to linux

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.

Page 34: Introduction to linux

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)

Page 35: Introduction to linux

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.

Page 36: Introduction to linux

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

Page 37: Introduction to linux

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.

Page 38: Introduction to linux

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.

Page 39: Introduction to linux

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.

Page 40: Introduction to linux

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.

Page 41: Introduction to linux

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.

Page 42: Introduction to linux

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.