L I N U X Fernando González Lucette Sánchez Joel Maysonet Raúl Soto GSI 640
What is Linux?• Linux is a freely distributed, complete multitasking, multi-user operating system• Designed specifically for the PC platform; takes advantage of its design to give users comparable performance to high-end UNIX workstations.• Most famous example of free software and open source development – its underlying code is available to the public, and anyone can freely use, modify, and redistribute it.• LINUX refers to the kernel, and to the combination of libraries and tools from the GNU project• There are over 300 Linux distributions available
What is Linux?• Linux behaves like UNIX in terms of kernel behavior and peripheral support.• Originally used by individual enthusiasts, currently is supported by major corporations such as HP, IBM, and Novell for servers, desktops.• Originally developed for Intel 80386 CPUs, now supports various architectures.• 25% of servers and 3% of desktops were running Linux in 2002.• Clustering technology enables a large number of Linux machines to be combined into a single computing entity: a parallel computer.
What is a Kernel?• Originally, "Linux" was only the name of the kernel. kernel• The term "kernel" properly refers to the low-level kernel system software that provides: • hardware abstraction layer • disk and filesystem control • multi-tasking • load-balancing • networking • security enforcement• A kernel is not a complete operating system (as the term is usually understood). A complete system built around the Linux kernel is commonly known as the Linux operating system, although some prefer to call the system GNU/Linux
What is UNIX?• First practical multi-user, multi-tasking OS• Designed by Bell Labs in the early 70’s, along with C language• Rapidly adopted by universities and corporations• Used to develop the Internet• Implemented on a wide variety of platforms, from Cray to Apple• Several “flavors” depending on source – System V : Bell Labs – BSD : UC Berkeley – AIX – Solaris – HPIX, etc.
Who created Linux ?• The Linux kernel was initially written by Linus Torvalds a student at the University of Helsinki, Finland.• Based on Minix, a simplified kernel used for teaching OS design.• Linux was originally written in Intel 386 assembly and C, booted from floppy to run outside OS• First version released to the Internet in September 1991.
Who created Linux ?25 Aug 1991 - Linus posts to comp.os.minix:(http://groups.google.com/groups?selm=1991Aug25.205708.9541%40klaava.Helsinki.FI&output=gplain )"Im doing a (free) operating system(just a hobby, wont be big andprofessional like gnu) for 386(486) ATclones. This has been brewing sinceapril, and is starting to get ready…”
Who created Linux ?• Story of Linux closely related to the GNU free software project led by Richard Stallman, for the purpose of developing a Unix-like OS with free development tools and user applications.• The GNU project had already produced all the necessary components for this free system – except the kernel. Linux was adapted to work with the GNU components. Linux kernel and OS are licensed under the GNU General Public License (GPL).
History• In 1991, MS DOS was the predominant PC Operating System• Unix was far more expensive.• Unix source code, once taught in universities courtesy of Bell Labs, was now cautiously guarded and not published publicly.• Big players in the software market did not provide an efficient solution to this problem.• A solution seemed to appear in form of MINIX. Written by Andrew MINIX S. Tanenbaum, a US-born Dutch professor who wanted to teach his students the inner workings of a real operating system.• Minix was designed to run on the Intel 8086 microprocessors (XT)
History• MINIX was not a superb OS, but it had the advantage that the source code was available. Anyone who happened to get the available book Operating System by Tanenbaum could get hold of the 12,000 lines of code, written in C and assembly language.• MINIX was good, but still it was simply an operating system for the students, designed as a teaching tool rather than an industry strength one.• In 1991, Linus Benedict Torvalds was a second year student of Computer Science at the University of Helsinki and a self-taught hacker.• At the time, the GNU project had created many of the components required for a free operating system, but its own kernel, the GNU Hurd, was incomplete and unavailable.• The Linux kernel filled that space
GPL License• The Linux kernel and most every other program that is part of a distribution are released under the GPL, or General Public License, also called a copyleft license‘• This license makes provisions for the distribution and modification of free software like Linux.• Anyone may modify and/or distribute GPL software, as long as all subsequent modifications are released under this same GPL.• The GPL ensures that everyone can distribute and continue to have access to this same software without restrictions.• GPL software is copyrighted to the author or authors, and is not public domain software or shareware.
Linux Workload Management• The classic environments typically slated for migration to Linux are: – File and Print: monitoring basic network functions like file sharing, remote printing – Email: including SMTP mail and authentication – Web/Internet: ranging from simply serving static web pages to ostensibly delivering a customized website to every user – Firewall & other I/O bound applications: LDAP directories, other apps that access data across multiple systems – Business Intelligence: data warehousing apps – Other CPU bound apps: calculation-intensive apps like CAD/CAM, statistical packages – Mixed workload: servers running various apps.
Advantages of Linux1. Costs Less2. Works Better
Costs Less • Internet and LAN functions built in – Apache web server – Firewall – TCP / IP, FTP • TCO: Total Cost of Ownership – To determine whether long-term ownership of Linux servers is truly less expensive than Unix or Windows servers, one needs to examine all aspects of ownership: • Custom programming • Deployment of new applications • Ongoing maintenance • Type of hardware used
Costs Less • Linux can be freely copied, subject to reasonable licensing fees • BUT initial price is NOT the only consideration • Ongoing operational expenses, licensing fees and support costs for applications, can all be much larger than the initial cost • HP Study: Comparison Linux vs Sun Solaris (Unix) – 10 servers; 10,000 Gb storage; 5,000 users – TCO with Linux was 56% lower – Solaris TCO = over $1 M – Linux TCO = $472,000 – Savings = $593,000
Works Better• Much more stable: – Hard to crash, Linux servers can run for months, even years, without rebooting – Only root can see, change, execute everything – Ordinary users can see, change, execute only their own files, unless given specific permission by another user – Each user’s session can be separately customized• Much faster: – Linux servers typically can handle several times as many users as NT, with the same hardware – Can be custom-compiled for speed and small size – Can be optimized for a specific CPU type – Scalable: multiple processors, clustered PCs possible
Works Better:Linux Clusters "Beowulf" Linux PC Cluster • NASA 256-CPU cluster • cost approx $100K • one of the 100 fastest computers in the world.
Works Better • Much smaller: – Can run on a 4Mb Intel 386 – Users don’t have to upgrade hardware as often – “obsolete” machines can be productive as terminals or servers (i.e. a 486 with 16Mb can be a server/firewall for a home or small office)• Much more flexible: – User has choice of shell (command interpreter), GUI – Linux shells offer many more features than the standard DOS/Windows shell – Complete modularity, any component can be upgraded
Works Better: Linux GUI• Unlike Windows, Linux separates the GUI into two modular components – Graphical server • handles display hardware • does the actual drawing • “standard” is XFree86 – Window manager • Provides the “look and feel” • Most common – Fvwm – KDE – GNOME
Works Better: Linux File System• Flexibility – Long file names – All devices which accept or emit data are treated as files • com ports, printers, sound cards, LAN, internet connection, etc. – No drive letters. Extra partitions or physical drives are subdirectories of one tree structure• Security – All files and directories have read, write, and execute privileges for the owner, the owner’s workgroup, and all others
Works Better: Hardware Management• Monolithic kernel: all the device drivers are part of the kernel proper.• Demand paging: only the sections of a program that are necessary are read into RAM.• Supports copy-on-write:a process that if more than one copy of a particular application is loaded, all tasks can share the same memory.• Swap space: Swap space allows pages of memory to be written to a reserved area of a disk and treated as an extension of physical memory.• Supports diverse file systems, as well as those compatible with DOS and OS/2. Linuxs file system, ext2fs, is intended for best possible use of the disk.
Linux Directory Structure/ root/bin Linux itself/boot Linux itself/proc Linux itself/sbin Linux itself/var Linux itself /mail /spool /temp/dev I/O devices/usr shared files for all users /bin standard utilities /lib shared libraries /man manual pages (help system) /doc misc.documentation /X11 Xwindow system files . . ./lib shared libraries/etc administrivia/tmp temporary – usable by all programs/home ordinary user’s home directories /rsoto /zrodrig/root superuser home directory
Works Better: DLL Management• Windows allows the use of DLLs (Dynamic Link Libraries) to modularize applications and reuse code.• When an application is starting up, it locates the DLL and calls functions inside it.• Advantages: – The application does not need to contain the code itself, – other applications can reuse the same code, – different people (even different companies) can provide components that other people can link to and use.• Windows has no version control on DLLs.• When you install application1, it installs version 1 of "frog.dll". Then you install app2, which uses version 2 of "frog.dll". The new version overwrites the old version. The next time you start app1, it opens "frog.dll" and finds something other than version 1, leading to unpredictable results.• It might work fine (if youre lucky). It might immediately crash. It might look like its working but really be slowly corrupting your data.
Works Better: DLL Management• Many Windows users have installed an application (even one written by Microsoft) and had it break other programs that were working fine, or even render the machine unbootable, requiring a full reinstall of Windows.• There are third-party applications that help to deal with this problem, but they dont allow you to run applications that require conflicting DLLs at the same time.• Linux (among other operating systems) does not have this problem.• Linux uses DLLs, too (in Unix terms they are called "shared objects"), objects" but the OS keeps track of the versions.• When you run app1, Linux notes that it needs version 1 of "frog.so", and automatically links it in. When you run app2, Linux automatically links version 2 of "frog.so". This happens even if app1 and app2 are running at the same time.
Linux Networking• UUCP (Unix-to-Unix Copy): Unix programs for transferring files over modem / serial lines, eMail, remote program execution, among others. Old technology, narrow bandwith.• Net-3 software provides Linux with support for – TCP/IP – Ethernet – SLIP / PLIP (serial / parallel line IP)• Other networking capabilities – PPP (point to point protocol) – AX.25 (for HAM radio) – IPX (in development) – Samba - NetBIOS
Linux Networking• Besides the reliable TCP/UDP/IP protocol suite, a number of new features has been added to the networking kernel: – firewalls – QoS : Quality of Service – tunneling – firewall implementation using IPchains – VPN implementation using GRE tunnels – advanced routing implementation using netlink sockets.
Linux Security• Linux’s design ensures that one user can never harm another users files or any system files without explicit permission.• Linux’s permission structure ensures that even if a bug in one process is found, it does not affect other processes• Linux ensures that no user is capable of denying service to any other user through crashing the machine, resource depletion, or a number of other more subtle approaches.• Open source nature of Linux ensures bugs are caught and fixed quickly – usually within hours• Linux supports disk quotas, limiting the amount of space a malicious or mistaken user can take up.
Linux Security: Viruses• Very few viruses have been written for Linux (Bliss, Staog)• Open source code is a tough place for a virus to hide• In Linux, each application runs in its own protected memory space, which prevents viruses from infecting applications running in RAM.• The file permission structure greatly limits the damage a virus may do: » Permissions: Read, Write, Execute » Users: File’s owner, users in the same group, others » A virus would only be able to infect the applications for which ONE specific user has WRITE permission.
seLinux• Security-Enhanced Linux was released by the US National Security Agency (NSA) http://www.nsa.gov/selinux/• Source code was released to the public as part of Linux’s GPL license.• Strong, flexible mandatory access control architecture incorporated into the major subsystems of the kernel.• Provides mechanism to enforce the separation of information based on confidentiality and integrity requirements.• Enables the confinement of damage that can be caused by malicious or flawed applications.• Linux chosen by NSA as platform because its growing success and open development environment provided an opportunity to demonstrate that this functionality can be successful in a mainstream OS and, at the same time, contribute to the security of a widely used system.
Linux Applications• Netscape suite• Office suites : – word processor, spreadsheet, graphics, database, scheduler, etc. – Corel Office Suite – StarOffice – ApplixWare• GIMP – GNU Image Management Program – PhotoShop look-alike
Linux Applications:• LILO – LInux Loader – allows user with multiple OS in the same PC to select which one to load at your computers startup. – LILO is generally stable and easy to use. – Distributions like Red Hat bundle LILO with their installation.• Text Editors- – Emacs Editor is a very popular text editor in the Linux world. – Has become a standard for many Linuxers. – Emacs is usually loaded with the distribution installation.
Linux Applications:• Emulators- – Allow users to run DOS or Windows files directly on the Linux system. – Two popular DOS emulators are Dosemu and xdos. – For the Windows emulation, the current project is Wine. – Programs will run just as fast, maybe even faster with the Linux environment.• Gaming – The gaming industry is just gaining speed on Linux. – Companies like id are beginning to tailor to Linux gamers. – Games like Quake 3 are beginning to have Linux versions – Many best-selling games like Starcraft have to be emulated on the Linux box using Wine.
Wine and Bochs• Wine – Forms a layer between the MS Windows application and the Linux OS – Behaves more as an interpreter than a full emulator – More than 1,000 applications run under Wine – Wine can take advantage of all Unix strong points in Linux, such as stability, flexibility, remote administration; while using common Windows apps. – Wine is open software, can be modified as needed• Bochs – PC emulation package written in C++ – Provides complete x86 emulation, including the x86 processor, hardware devices, and memory – Similar to having a machine inside another machine
Linux Labels• Many big-name companies have joined the Linux bandwagon such as IBM and Compaq, offering systems pre-installed with Linux.• Many companies have started Linux packages. For example – Red Hat – Corel – Samba• However, they can only charge for services and documentation packaged with the Linux software.• More and more businesses are using Linux as an efficient and more economical way to run their networks.
Linux Labels• RedHat Linux – One of the most popular distributions out there right now – supports the Intel, Alpha, and SPARC platforms – Many users prefer RedHat Linux because of its ease of use, installation, and live tech support – Primarily comes bundled with the X Windows System, GNOME and KDE desktop environments, as well as the StarOffice suite• Linux Mandrake – Similar to RedHat, it also bundles the X Windows System, GNOME, KDE, and StarOffice. – Improved ease of use, plus a few added extra tools and utilities• Corel Linux – less popular than RedHat – continues to shine with its usability and ease of installation through its Install Express. – comes with only the KDE environment, – also includes WordPerfect for Linux instead of Suns StarOffice
Linux Labels• Debian/GNU – Debian/GNU is intended for the more advanced Linux users out there. – More difficult to use than other distributions, but is frequently chosen for web server purposes. – Its stability and web adminstration tools are the reason many webmasters rely on Debian/GNU for their server environment.• Slackware – One of the first distributions of Linux created, continues to be fairly popular. – Includes the usual X Window System, GNOME, and KDE. – Excellent stability, at the expense of less updated code and more intermediate to advanced user appeal.
Linux Labels• SuSE Linux – Full feature bundle – Originally created by German programmers, has become popular in Europe, gaining much recognition in the United States. – Includes the standard X Windows System, KDE and GNOME environments, – Distances itself from the other offerings by including a huge amount of bundled software – this distribution is also recommended for newer users.• Caldera OpenLinux – Primarily designed for the business and power user, – Focuses on internet applications. – Includes a full collection of internet connectivity and access tools, – helps anyone take full of advantage of the internet through Linux.
Linux example: SuSE • Cost: $27 • Linux OS, about 1 release behind • Installation and maintenance programs • 442-pg manual, complete online documents • Several GUI and shells • 5 CDs, 850 application programs: – GNU C++, FORTRAN, LISP, Perl, Emacs, etc. – TeX / LaTeX typesetting program – Netscape 4.5 suite – GIMP – Photoshop clone – Lots of games (i.e. QUAKE)
Linux vs Microsoft OS - Similarities• ALL OS have standard features, such as: – Hardware-level I/O – Job control – Memory management – Task switching – Utilities for management• Unix / Linux and DOS / Windows also have: – Similar file structure (subdirectory tree) concept: • /users/rsv21/fotos/enero2005.jpg is a legal filename – This means Linux can read and write DOS/Windows partitions (FAT32, NTFS) in addition to its native “ext2”. – Command interpreter, batch files – Similar command line utilities (ls=dir, cp=copy, etc.) – Files are executable (binary or batch) or data – User has choice of command line shell, GUI, or both
Linux vs Microsoft OS- Differences • Linux can be implemented in several hardware platforms (Intel, Mac, Alpha, MIPS, etc.) • Programs compiled to run on Linux won’t run on DOS/Windows. • Some DOS/Windows programs can be run under Linux using emulators • Modularity : Linux user is not locked in to one shell or GUI • MS OS are owned by proprietary systems. MS controls their interface and design, and only MS may implement code changes.
Linux vs. Unix • In terms of features, Unix and Linux are quite similar. • Unix was designed specifically for networking. Linux runs perfectly fine as a personal Unix system and on large servers. • Linux supports a much wider range of hardware than Unix and because of the Open Source model, any driver for certain hardware can be written for Linux as long as someone has the time to do so. • Many universities and companies are beginning to use Linux instead of Unix because it can provide the functionality of a workstation on PC hardware at a fraction of the cost.
Disadvantages of Linux• Flexibility can be intimidating – Complex installation, no “turnkey” – Some vendors won’t pre-install in new computers • HP, Dell, IBM now pre-install and support on request – Many command options (in this case, use a GUI)• Not designed to be user-friendly – Written by programmers for programmers• Significant learning curve when moving from Windows OS – User must learn new commands and vocabulary – Different “look and feel” for OS and applications – Case sensitive names• Fewer consumer-oriented applications
Disadvantages of Linux• Support – Linux is maintained and enhanced by an informal community of developers – This makes it relatively more difficult to obtain guaranteed, qualified support• Many companies have found that managing these risks responsibly is worth the benefits that Linux brings.
How to use Linux?• Before the installation – Research of what do you have in your computer• Why? – Because some peripherals have been created for Windows only. – e.g. Winmodem, sound card, video card use proprietary drivers.• After the installation – You can install different applications.
Linux Today • Linux is one of the fastest growing operating systems in history • The big businesses have discovered Linux, and have poured millions of dollars into the development effort • IBM has come forward with a huge fund for development of open source Linux based solutions. • A continuously increasing band of developers spread throughout the world work to improve upon the features of Linux. • A well designed development model supervised by some maintainers is adopted. • There are thousands of developers working to port various applications to Linux. • Some distributions: Red Hat, SuSE, Caldera, Slackware, Debian.
Linux Today• Commercial enterprises are no longer wary of Linux. With a large number of vendors providing support for Linux based products, it is no longer a do-at-your-own-risk thing to use Linux at the office.• Reliability: Linux certainly proved it during the nasty attacks of the CIH virus in 1999 and the love bug a year later, during which Linux based machines proved to be immune to the damages caused by these otherwise quite simple computer viruses.• With this added confidence, many large and small businesses have adopted Linux based servers and workstations as an integral part of their offices.
Linux in SupercomputersShared Hierarchical Academic Research Computing Network (SHARCNET)• Canada’s largest high-performance computing (HPC) research facility• 64-bit, 2-way Intel Itanium 2 processor clusters running LinuxThe TeraGrid (www.teragrid.com)• Completed in September 2004• Massively parallel supercomputer clusters• 40 teraflops of computing power• 2 petabytes of rotating storage• Connected network of US supercomputing centers (currently 8, and growing)• Each of the four original sites operates a Linux cluster, interconnected by means of a 10-30 Gigabit/sec dedicated optical network
HP study: 10 servers; Costs Less 10,000 Gb storage; 5,000 users TCO Comparison: Sun Solaris vs HP Linux Sun Solaris Linux Savings with LinuxHardware $178,531 $70,130 $108,401Software $120,000 $66,000 $54,000IT Operation $620,116 $181,913 $438,203IT Administration $49,797 $29,175 $20,622Facilities and Overhead $50,000 $20,000 $30,000Downtime $46,485 $104,592 - $58,107TCO Summary $1,064,929 $471,810 $593,119 Savings with Linux = 56%TCO per System $106,493 $47,181 $59,312TCO per user $213 $94 $119