Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Linux [2005]
1. L I N
U X
Fernando González
Lucette Sánchez
Joel Maysonet
Raúl Soto
GSI 640
2. 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
3. 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.
4. 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
5. 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.
6. 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.
7. Who created Linux ?
25 Aug 1991 - Linus posts to comp.os.minix:
(http://groups.google.com/groups?
selm=1991Aug25.205708.9541%40klaava.Helsinki.FI&o
utput=gplain )
"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…”
8. 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).
9. 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)
10. 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
11. 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.
12. 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.
14. 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
15. 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
16. 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
17. Works Better:
Linux Clusters
"Beowulf"
Linux PC Cluster
• NASA 256-CPU cluster
• cost approx $100K
• one of the 100 fastest
computers in the world.
18. 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
19. 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
22. 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
23. 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. Linux's file system, ext2fs, is intended
for best possible use of the disk.
24. 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
25. 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 you're lucky). It might immediately crash. It might
look like it's working but really be slowly corrupting your data.
26. 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 don't 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.
27. 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
28. 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.
29. Linux Security
• Linux’s design ensures that one user can never harm
another user's 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.
30. 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.
31. 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.
32. 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
33.
34. Linux Applications:
• LILO
– LInux Loader
– allows user with multiple OS in the same PC to
select which one to load at your computer's
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.
35. 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.
36. 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
37. 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.
38. 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 Sun's StarOffice
39. 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.
40. 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.
41. 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)
42. 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
43. 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.
44. 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.
45. 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
46. 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.
47. 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.
48. 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.
49. 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.
50. Linux in Supercomputers
Shared 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 Linux
The 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
56. 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
Linux
Hardware $178,531 $70,130 $108,401
Software $120,000 $66,000 $54,000
IT Operation $620,116 $181,913 $438,203
IT Administration $49,797 $29,175 $20,622
Facilities and Overhead $50,000 $20,000 $30,000
Downtime $46,485 $104,592 - $58,107
TCO Summary $1,064,929 $471,810 $593,119
Savings with Linux = 56%
TCO per System $106,493 $47,181 $59,312
TCO per user $213 $94 $119