630 likes | 898 Views
Every Thing You Should Know About Linux. Prabhaker Mateti Department Of Computer Science and Engineering Wright State University May 2008. Are you sure you have not used Linux already?. Linux runs on …. PDA? Smart Phone? GPS? TiVO? Router? Wireless AP? Wrist watch? Car? Airplane?.
E N D
Every Thing You Should Know About Linux Prabhaker Mateti Department Of Computer Science and Engineering Wright State University May 2008
Linux runs on … • PDA? Smart Phone? • GPS? • TiVO? • Router? Wireless AP? • Wrist watch? • Car? Airplane? Mateti-Everything-About-Linux
Linux Cell Phones • Motorola Rokr E8 • Quad GSM/GPRS • Multi-codec music player • Full HTML browser • Jan. 10, 2008 Mateti-Everything-About-Linux
Linux Cell Phones • http://openmoko.org • Open source hardware • Free CAD files Mateti-Everything-About-Linux
Linux on iPods • uCLinux + podzilla • www.ipodlinux.org/ • iPOds to 5.5G • iPod Nano 1G Mateti-Everything-About-Linux
One Laptop Per Child • Runs on Linux • Sugar “desktop” promotes sharing and learning. Mateti-Everything-About-Linux
Google Linux Clusters • GFS: The Google File System • thousands of terabytes of storage across thousands of disks on over a thousand machines • 150 million queries per day • Average response time of 0.25 sec • Near-100% uptime Mateti-Everything-About-Linux
Smallest Linux System • Mar. 28, 2005 • DigiConnect ME • RJ-45 Plus • 0.75 x 0.75 x 1.4 in • 18 grams • 2.4.27 uClinux • 32-bit ARM7TDMI Mateti-Everything-About-Linux
Overview of the Rest of theTalk • Linux Internals • Distributions • Desktop Environments • Linux Clusters • Security • Open Source Software • Important Applications Mateti-Everything-About-Linux
Academic Def: An OS consists of • File Systems • Virtual Memory Management • Process Management • Network Layer • Input/Output Subsystem • User Management • (Booting the OS) • [Collection of System Programs] Mateti-Everything-About-Linux
Academic Definition of Kernel • OS are expected to be implemented as Layers • Kernel is the inner most layer • Layers are architecturally supported by CPU privilege modes. • Micro-kernel architecture Mateti-Everything-About-Linux
“Linux kernel” • The OS as we defined – boot – SysPrgs • Monolithic • As Files • /boot/vmlinuz single file • /boot/initrd single file • /lib/modules/* about 3500 files • 4 Million lines of code • Several thousand contributors Mateti-Everything-About-Linux
Linux Kernels • Numbering Scheme: Major.Minor.Release • 2.2 (1999) • 2.4 (2001) • 2.6 (2003) • Current Source Code Versions: • linux-2.6.25.3.tar.bz2 10-May-2008 46MB • linux-2.4.36.4.tar.bz2 07-May-2008 30MB • linux-2.2.26.tar.bz2 24-Feb-2004 15MB Mateti-Everything-About-Linux
“Linux” as used in this Talk • Linux Kernel • System Programs: /sbin, /usr/sbin • UI • Desktop Env: X11, KDE, Gnome, … • Shells: Bash, csh, ksh, … • Utilities • /bin, /usr/bin, … • Applications • Publishing: TeX, MetaPost, PS, PDF, … • Multimedia: Audio, Video • Sotware Development: Perl, Python, Ruby, • Servers • Web • File • Compute Mateti-Everything-About-Linux
K Desktop Environment (KDE) • 4 Million lines of code • Over 800 contributors help to develop KDE. • The translation team: about 300. • KDE has about 20 official WWW mirrors in 12 countries. • KDE has more than 106 official FTP mirrors in over 39 countries Mateti-Everything-About-Linux
KDE Components • aRts: Analog realtime synthesizer and sound daemon. KDE 4.0 uses Phonon • KDE-Libs: Various run-time libraries • KDE-Base: window-manager, desktop, panel, Konqueror • KDE-Network: KNode, KNewsticker, Kppp, ... • KDE-Pim: KMail, KAddressbook, KOrganizer, KPilot, ... • KDE-Graphics: Graphics applications such as KDVI, KGhostview, KPaint, KFax, ... • KDE-Multimedia: Noatun, KMidi, KSCD, ... • KDE-Accessibility: applications to improve computer access for disabled people... • KDE-Utilities: KEdit, KCalc, KHexEdit, KNotes, ... • KDE-Edu: Edutainment applications • KDE-Games: KAsteroids, KPat, KTetris, ... • KDE-Admin: Various tools to aid system administration • KDE-SDK: Script and tools which simplify development of KDE applications • KOffice: Integrated office suite • KDevelop: C/C++ Integrated Development Environment • KDE-Bindings: bindings for various languages (Python, Ruby, Perl, Java...) • KDEWebdev: Web Development Tool Mateti-Everything-About-Linux
Native Linux File Systems • Extended File System • Ext2 • Ext3 • Ext4 • Other Journaling File Systems • ReiserFS • SGI XFS • IBM JFS Mateti-Everything-About-Linux
Linux Non-Native File Systems • NTFS5: Full read/write operations • Native File Systems of every major OS fully supported: • FAT, FAT16, FAT32 of Windows • MacOS • Solaris • BSD Mateti-Everything-About-Linux
Distributed File Systems • Classic DFS • NFS • AFS • Samba for Windows • Linux is a rich test bed for DFS research • KOSMOS http://kosmosfs.sourceforge.net/ • Ceph http://ceph.newdream.net/ • Many encrypted file systems Mateti-Everything-About-Linux
Linux Distributions • Define “distribution”! • Major Distributions • Debian, Ubuntu • RedHat, Fedora • Novell SuSe, Open Suse • Mandriva • Slackware • Minor Distributions • 1000+ Mateti-Everything-About-Linux
How Do Distributions Differ? • What is included in the default installation • Operating System • UI • Shells • GUI • Utilities • Selected Applicatins • Patches provided by the Distro • Installing New Components/Applications • Updates • Security • New versions • Browsing for Available Software • Look and Feel of the Initial Install Mateti-Everything-About-Linux
How Do Distributions Differ? • Versions of installed libraries • /lib/ • /usr/lib/ • Configuration • Location of Files • Syntax • GUI/command line tools • Distributions from Scratch • Build it from Source • Gentoo Mateti-Everything-About-Linux
Ubuntu • Ubuntu is a derivative of Debian • “Ubuntu will always be • “free to download, • “free to use and • “free to distribute to others.” • Desktop Edition • Server Edition • X86-32, x86-64, and Mac • Ubuntu, Kubuntu, Xubuntu, … Mateti-Everything-About-Linux
Linux Live CD/DVD • fully writable root filesystem • hardware auto-detection • can be installed to local hard disk • can be installed on USB MSD • Automated scripts to make a LiveDVD from any distro • http://www.linux-live.org/ Mateti-Everything-About-Linux
Knoppix LiveDVD • General Purpose Linux • Try it without installing on HDD • Excellent hardware detection • Large collection of applications • KDE, …, fluxbox • Open Office, Emacs, gcc, … • Web browsers, … • Uncompresses on the fly • Several GB of software • Relatively Slow Mateti-Everything-About-Linux
Damn Small Linux • About 50 MB • Can run without a HDD • X11 Desktop • Many useful applications • Office • Web surfing • Email • Multimedia Mateti-Everything-About-Linux
Linux on a USB Drive • Install on a USB MSD as a HDD • Install a Live Image on USB MSD • On the fly uncompression • Fast installation • Relatively slow execution • Lab on Installing Linux on a USB Drive • http://www.cs.wright.edu/~pmateti/Courses/233-2008-Spring/Labs/OS-on-USB/OSonUSBLab.htm • http://pendrivelinux.com/ Mateti-Everything-About-Linux
Scientific Linux LiveDVD • By Fermilab, CERN, and other labs and universities • LiveDVD 32bit/64bit with Gnome/KDE/Icewm desktop • 5.1 for i386 and x86_64 released on 2008-02-18 • RedHat Enterprise Linux • Fully writable root filesystem • Hardware auto-detection • http://www.scientificlinux.org Mateti-Everything-About-Linux
Embedded Linux • uCLinux (Micro Controller Linux) • Linux kernels 2.0, 2.4 and kernel 2.6 • collection of user applications • libraries and • tool chains • uCLinux ported widely Mateti-Everything-About-Linux
Cluster Characteristics • Commodity off the shelf hardware • Networked • Common Home Directories • Open source software and OS • Support message passing programming • Batch scheduling of jobs • Process migration Mateti-Everything-About-Linux
Why are Linux ClustersGood? • Low initial implementation cost • Inexpensive PCs • Standard components and Networks • Free Software: Linux, GNU, MPI, PVM • Scalability: can grow and shrink • Familiar technology, easy for user to adopt the approach, use and maintain system. Mateti-Everything-About-Linux
Example Clusters • July 1999 • 1000 nodes • Used for genetic algorithm research by John Koza, Stanford University • www.genetic-programming.com/ Mateti-Everything-About-Linux
Largest Cluster System • IBM BlueGene, 2007 • DOE/NNSA/LLNL • Memory: 73728 GB • OS: CNK/SLES 9 • Interconnect: Proprietary • PowerPC 440 • 106,496 nodes • 478.2 Tera FLOPS on LINPACK Mateti-Everything-About-Linux
Message Passing Interface (MPI) • http://www-unix.mcs.anl.gov/mpi/ • MPI-2.0 http://www.mpi-forum.org/docs/ • MPICH: www.mcs.anl.gov/mpi/mpich/by Argonne National Laboratory and Missisippy State University • LAM: http://www.lam-mpi.org/ • http://www.open-mpi.org/ Mateti-Everything-About-Linux
Parallel Virtual Machine (PVM) • PVM enables a heterogeneous collection of networked computers to be used as a single large parallel computer. • Older than MPI • Large scientific/engineering user community • http://www.csm.ornl.gov/pvm/ Mateti-Everything-About-Linux
Kernels Etc Mods for Clusters • Dynamic load balancing • Transparent process-migration • Kernel Mods • http://openmosix.sourceforge.net/ • http://kerrighed.org/ • http://openssi.org/ • http://ci-linux.sourceforge.net/ • CLuster Membership Subsystem ("CLMS") and • Internode Communication Subsystem • http://www.gluster.org/ • GlusterFS: Clustered File Storage of peta bytes. • GlusterHPC: High Performance Compute Clusters • http://boinc.berkeley.edu/ • Open-source software for volunteer computing and grid computing • Condor clusters Mateti-Everything-About-Linux
OS Share of Top 500 OS Count Share Rmax (GF) Rpeak (GF) Processor Linux 426 85.20% 4897046 7956758 970790 Windows 6 1.20% 47495 86797 12112 Unix 30 6.00% 408378 519178 73532 BSD 2 0.40% 44783 50176 5696 Mixed 34 6.80% 1540037 1900361 580693 MacOS 2 0.40% 28430 44816 5272 Totals 500 100% 6966169 10558086 1648095 http://www.top500.org/stats/list/30/osfam Nov 2007 Mateti-Everything-About-Linux
Security of Linux • Security flaws are largely due to • Network protocol design flaws • Sloppy programming by software authors • Poor configuration • Number of exploits, number of advisories similar to those of other OS • Worms, not viruses • Compromised crypto • Buffer overflows • Considerable research analysis of Linux source code Mateti-Everything-About-Linux
Security Hardened Linux • Portions of Linux replaced, re-designed, enhanced for improved security • Stack top randomization • Prevention of data page execution • Linux Security Modules (LSM) • SELinux Mateti-Everything-About-Linux
Security Tools on Linux • Penetration Testing • Network analysis (e.g. nmap, tcpdump) • Password cracking • Disaster recovery (e.g. gparted, gpart, partimage, testdisk, recover) • Virus scanning (Clam Antivirus, the GUI xfprot for F-Prot) • computer forensics (e.g. chkrootkit, foremost, rootkit hunter) • Backtrack3 http://backtrack.offensive-security.com/ • STD http://www.knoppix-std.org/ • INSERT http://www.inside-security.de/insert_en.html Mateti-Everything-About-Linux
A Few Ubuntu/Debian packages • Electric • custom IC layout (ASICs), schematic drawing, hardware description language specifications, and electro-mechanical hybrid layout. • ViPEC • analysis of high frequency, linear electrical networks. ViPEC supports lumped elements as well as distributed networks • Kicad • Electronic schematic and PCB design software • QCad 2 • A professional CAD System with ISO-texts and DXF-files. • PythonCAD • drafting program scriptable with Python Mateti-Everything-About-Linux
Example Applications • Email: kmail, evolution, sylpheed, thunderbird • Surfing: konqueror, firefox, galeon, opera • Software Development: compilers for nearly all known languages • Drawing: dia, graphviz, kchart, inkscape • Music: amarok, gnupod • Games: Sauerbraten, Savage, Doom Mateti-Everything-About-Linux
Applications on Publishing • TeX/LaTeX • Kyle • Lyx • TeXmacs • MetaPost drawing language • GraphViz • Scribus • Office Suites • Abiword • Koffice • OpenOffice Mateti-Everything-About-Linux
Matlab :: Scilab, Octave, Rlab • Not 100% compatible with m-files. • Matrix-based programming languages. • Built-in support for complex numbers. • Powerful built-in math functions and extensive function libraries. • Extensibility in the form of user-defined functions. Mateti-Everything-About-Linux