Introduction to Linux Introduction to Linux ➲ ➲ ➲ ➲ ➲ ➲ ➲ What is Linux, and Who Created it? GNU and the GPL Unix/GNU, What is the Difference? POSIX Compliance Other POSIX Operating Systems Uses of Linux Advantages and Disadvantages What is Linux ➲ Linux is a UNIX clone ● It can run on 32 bit and 64 bit hardware ● Linux is a true multitasking environment ● Fully capable of taking advantage of multiple processors ● Can address up to 64 GB of RAM ● Partial POSIX Compliance Penguin Power ➲ Linux is free ● Anyone can download and compile the source ● The code can be modified by anyone provided the modifications are released to the community History ➲ The history of Linux began with Unix in 1969 Unix was created at Bell Labs with the goals: ● ● ● ● ➲ Simplicity Recycleable code Written in C as opposed to assembly Development started in 1991 ● ● ● Linus Torvalds wanted to create a free implementation of UNIX By 1993 there were 12000 Linux users Today Linux rivals UNIX in stability and scalability The Kernel ➲ Linux is not an Operating System ➲ Linux is a kernel ➲ A kernel is a program that allocates and controls hardware resources in a system ➲ Linux Distrobutions use the Linux kernel together with the GNU Operating System The Linux Kernel ➲ ➲ The Linux kernel is currently maintained by Linus Torvalds and a few hundred other developers Releases are numbered in a very ordered fashion. Major.minor.patchlevel Odd minor numbers are development kernels Thus ● ● ● 2.4.20 latest stable kernel 2.5.67 latest development kernel ● ● ● Will become the 2.6 kernel Design ➲ ➲ ➲ The Linux kernel has a monolithic design The other approach is the microkernel design Both have their upsides and downsides Monolithic kernels ● ● ● ● ● Easier to build and design Generally faster More recompiles Less object oriented Micro kernels ● ● ● ● ● ● Considered safer Easier to develop drivers for Only recompile for upgrades Generally slower Much harder to build and design Other *NIX Kernels ➲ The BSD kernel This is the kernel used by the open source BSD's ● ● ● ➲ FreeBSD, OpenBSD, NetBSD It is neither GNU nor GPL The GNU HURD ● ● ● ● ● Hird of Unix Replacing Daemons Hurd of Interfaces Representing Death The world's first doubly recursive acronym Micro kernel Not very functional Isn't a GNU an Animal? ➲ ➲ GNU stands for GNU Not Unix The goal of GNU Create a free and complete UNIX-like operating ● system ● This has been in development since 1984 ● Towards this goal the GNU project has released: ● GCC, GNU Emacs, Bash, to name a few For more information see the GNU Manifesto ● ● http://www.gnu.org/gnu/manifesto.html What is the GNU GPL? ➲ The GNU General Public License ● Ensures that GNU software stays free ● This is done through Copy Lefting ● Any modification to GPL software is required to be released to the public ● Linux is released under the GPL ● Due to its restrictive nature the GPL has recently come under fire ● http://www.linux.org.uk/GPL.html Does the GPL Matter? ➲ Depends on your point of view ● Not as important for users ● Very important for developers ● Any GPL code that is incorportated into a program makes the entire program GPL ● No closed source software can use any GPL software So Unix Costs Money and GNU/Linux is Free ➲ Essentially this is the case Both have the goals of POSIX compliance Commercial UNIXes are in general closer ● ● ● ➲ Commercial UNIXes generally perform better in large systems ● ➲ This is generally in implementation, not in use But even this is difference is shrinking The biggest difference is that UNIX is trademarked and must be commericial—not free POSIX? Another Operating System? ➲ Nope, its yet another acronym ● ➲ POSIX is a set of specifications ● ● ➲ Portable Operating System Interface Describes how the operating system should behave Both to the user, and to other programs POSIX was created to combat the plethora of UNIXes that popped up in the 1980, all of which had a different look and feel POSIX cont... ➲ The Open Group controls the UNIX trademark ● ➲ ➲ They also release their own UNIX specification The latest POSIX specification has been merged with the Open Group's UNIX specification For more information see: ● ● http://www.pasc.org http://www.opengroup.org/ Other POSIX OSes ➲ IBM AIX ➲ Sun Solaris ➲ SGI IRIX ➲ HP HP--UX ➲ Compaq TRU64 UNIX So Why Should I Use Linux? ➲ As a server platform few other operating systems can match Linux in: ● ● ● ● ➲ For Developers Resources: ● ● ➲ Performance Price Stability Linux has a tremendous number of tools available for developers. And they are all free. For the Desktop ● It's fun Advantages ➲ Linux is free ● ● ➲ ➲ Can't say that enough It's great for poor college students Learning Linux means learning UNIX, and UNIX is the largest server platform in the world Community ● ● The Linux community is very active and helpful This makes support very rapid But it's hard to learn ➲ ➲ Linux is much harder than Windows It's harder to use than Windows ➲ It lacks all those great automated installation tools ➲ You have to manually configure hardware ➲ There is lots of hardware out there that just won't run in Linux So You Are Ready to Take the Plunge ➲ What do I need to know? Not all distros are the same ● ● Internet Resources ● ● ● ● ● ➲ Linux From Scratch is a bad starting place www.linux.org www.tldp.org www.justlinux.org www.desktoplinux.org What distro should I start with? ● ● ● Redhat Mandrake Suse Some Linux Basics ➲ File System Linux is much more hierarcal than Windows ● Everything starts at the root / ● ● ● ● ● ● ● ● ● ● ● ● ● ● Boot -- contains the kernel and system map Bin -- contains the basic system binaries Dev -- all the device entries Etc -- can't think of any other place to put it Home -- where all the users live Lib -- system libraries Mnt -- place to mount filesystems Proc -- system information Root -- the root user's home Sbin -- system binaries Usr -- where user accessible programs go Var -- logs and such Basics cont... ➲ CLI The command line interface Bash is the most common shell The CLI in Linux is quite useable ● ● ● ➲ Navigation ls -- lists files and directories cd -- changes directories rm -- removes files Navigation switches ● ● ● ● ● Most programs have options that you can pass to them via switches, for ex. ls -h gives you all the options that ls can take and what they do 6 Runlevels ➲ Level 0 ● ➲ Level 1 ● ➲ Reserved Level 5 ● ➲ Full Mulituser Level 4 ● ➲ Reserved Level 3 ● ➲ Single User mode Level 2 ● ➲ Halt Xwindows Level 6 ● Reboot XWindows ➲ ➲ Linux Graphical Environment Invoked via the startx command Two major environments ● ● KDE ● Gnome The difference is primarily in philosophy ● ● ➲ Redhat trys to erase the differences with Bluecurve Does everything Windows does and more A Few Good Distros ➲ ➲ Redhat Mandrake ➲ Suse ➲ Lycoris ➲ Gentoo ➲ Knoppix Hat's off ➲ Redhat Pros ● ● ● ● ● Easy install Tons of graphical tools Great hardware support One of the most mature distros Cons ● ● ● ● ● It's slow Their stock kernel is somewhat bloated Installs files in non-standard directories Not customizeable Drako ➲ Mandrake ● Based on Redhat ● Modified to suit desktop systems more than Redhat ● Supports that funky DVD Decoder Card you have to use ● More on the edge than Redhat ● Uses a modified kernel Tame the Lizard ➲ Suse Pros ● ● Avoids much of the bloat of Redhat and Mandrake ● Great hardware support ● The easiest Linux installation I have ever had Cons ● ● Still hard to customize Perfection ➲ Gentoo Pros ● ● ● ● ● ● ● Builds Linux from scratch, optimizing for the architecture of your PC Blazing speed Highly customizeable User Forums are a great place for support Runs Quake and Unreal Tournament 2003 out of the box Has a kernel specifically modified for gamers Cons ● ● ● ● Can be overwhelming Takes a long time to build Do not trip over the power cable while it is building Knoppix ➲ ➲ Self contained Can boot almost any pc that supports cdrom booting ➲ Settings can be stored locally or on USB pen drive ➲ Great to learn on ➲ Does not require resizing partions or wiping drives