Introduction to linux


Published on

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.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Introduction to linux

  1. 1. Intro to Linux Kevin B. OBrien Washtenaw Linux Users Group
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 12. Linux 3 Hello everybody out there using minix - Im doing a (free) operating system (just a hobby, wont be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. Id 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). Ive currently ported bash (1.08) and gcc(1.40),and things seem to work. This implies that Ill get something practical within a few months, and Id like to know what features most people would want. Any suggestions are welcome, but I wont promise Ill implement them :-) Linus ( PS. Yes - its 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 thats all I have :-(. 12
  13. 13. Linux 4 Linus uses GNU tools, and ultimately releases his OS, which became known as Linux, under the GPL in December 1992. 13
  14. 14. Kernel 1 What Linus wrote was a kernel 14
  15. 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 kernels services, a scheduler that determines which programs share the kernels 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 systems address spaces in memory or storage, sharing these among all components and other users of the kernels services. A kernels 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.” (,,sid39_gci 212439,00.html) 15
  16. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 28. Comparison to Windows 3 Windows has one Desktop Environment. You do not get to choose. And it is definitely bloated. 28
  29. 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. 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. 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. 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. 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. 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. 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, 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. 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. 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. 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. 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. 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. 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. 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