Chapter 10 - Introduction to Linux.docx
Document Details
Uploaded by WonderfulHonor
Full Transcript
Chapter 10 - Introduction to Linux Operating Systems •Computers have two fundamental components: –Hardware: physical components inside a computer –Software: set of instructions or programs that allow hardware components to manipulate data •Hardware components include: –Processor (CPU) –Physical m...
Chapter 10 - Introduction to Linux Operating Systems •Computers have two fundamental components: –Hardware: physical components inside a computer –Software: set of instructions or programs that allow hardware components to manipulate data •Hardware components include: –Processor (CPU) –Physical memory (RAM) –Hard disk drives –CD and DVD drives –Flash memory card readers (SD cards) –Sound cards –Video cards –Circuit boards •Two different types of programs are executed on a computer: –Applications (apps): programs designed for a specific use and with which a user interacts –Operating system (OS) software: software components used to control the hardware of the computer •Device driver: software containing instructions that the OS uses to control and interact with a specific device •User interface: an application program that accepts user input indicating what is to be done, forwards this input to the OS for completion, and gives results back to the user –Can be a command line prompt or a graphical user interface (GUI) •Graphical user interface (GUI): component of an OS that the user can interact with using the keyboard or the mouse Figure 1-1: The role of operating system software Figure 1-2: A Linux graphical user interface The Linux Operating System •Linux - an OS used to run a variety of applications on a variety of different hardware components •Multiuser and multitasking OS –Has the ability to manage thousands of tasks at the same time –Allows multiple users to access the system simultaneously Versions of the Linux Operating System •Core component is called the Linux kernel –Written almost entirely in the C programming language •Software can be used to modify appearance of Linux, but the kernel is common to all Linux •Important to understand Linux kernel version numbers to decide which version is appropriate for user needs •Good understanding of system hardware is important in deciding which kernel version to use Identifying Kernel Versions •Linux kernel versions are composed of: –Major number - indicates the major revision to the Linux kernel –Minor number - indicates the minor revision and stability of the Linux kernel •If odd, referred to as a developmental kernel: a kernel which is not fully tested and with implied instability •If even, referred to as a production kernel: a kernel that has been thoroughly tested and is declared to be stable –Revision number Table 1-1: Latest revisions of common Linux kernels Licensing Linux •Open Source Software (OSS): programs distributed and licensed so that the source code is freely available to anyone who wants to examine, utilize, or improve upon it •Source code: refers to the list of instructions that a software developer writes to make up a program •Format and structure of source code follows rules defined by the programming language in which it was written •Implications of OSS: –Software is developed very rapidly through widespread collaboration –Software bugs (errors) are noted and promptly fixed –Software features evolve quickly based on users’ needs –The perceived value of the software increases because it is based on usefulness, not on price Table 1-2: Software types Linux Advantages: Risk Reduction •Changes in the market or customer needs may cause companies to change software frequently –Can be costly and time-consuming •Support for closed source software may end –Software version may be retired •OSS products offer the opportunity to maintain and change the source code Linux Advantages: Meeting Business Needs •Common software available for Linux includes: –Scientific and engineering software –Software emulators –Web servers, Web browsers, and e-commerce suites –Graphics manipulation software –Database software –Security software Linux Advantages: Stability and Security •Customers using a closed source OS must rely on the OS vendor to fix any bugs –Waiting for a hot fix may take weeks or months •The collaborative open source approach to testing and fixing bugs increases the stability of Linux •Bugs and security loopholes in OSS programs can be identified and fixed quickly Linux Advantages: Flexibility for Different Hardware Platforms •Partial list of hardware platforms on which Linux can run: – Intel x86/x64 – Itanium – Mainframe (S/390) – ARM – Alpha – MIPS •Linux can be customized to work on mobile and embedded devices Linux Advantages: Ease of Customization •Ability to control the inner workings of the OS –To use Linux as an Internet Web server, recompile the kernel to include only the support needed to be an Internet Web server •Results in a much smaller and faster kernel –Can choose to install only software packages needed to perform required tasks –Linux supports several programming languages, such as shell and PERL scripts to customize or automate tasks Linux Advantages: Ease of Obtaining Support •Linux documentation can be found on the Internet –Frequently asked questions (FAQs) –HOWTO documents •HOWTO documents are maintained by their authors but are centrally collected by the Linux Documentation Project (LDP) •Linux newsgroups •Linux User Groups (LUGs): Open forum of Linux users who discuss and assist each other in using and modifying the Linux OS Linux Advantages: Cost Reduction •Linux is less expensive than other OSs –There is no cost associated with acquiring the software –A wealth of OSS can run on a variety of different hardware platforms running Linux •The largest costs associated with Linux: –Costs associated with hiring people to maintain the Linux system •Total cost of ownership (TCO): overall cost of using a particular OS Linux Advantages: Cost Reduction Table 1-3: Calculating the total cost of ownership Linux •First developed by Linus Torvalds in 1991 –Published under the GNU license •Linux kernel was developed collaboratively. •Distribution: a collection of software containing the Linux kernel and libraries, combined with add-on software specific to a certain use. –Red Hat and SuSE •Since 2000, there has been interest in embedded Linux –Linux OSs that run on smaller hardware devices such as mobile devices) •Because Linux is currently very well developed –More application development can be expected from the OSS community in the next decade Linux Distributions •Distributions may appear different on the surface, but run the same kernel •Some distributions include a large number of server-related tools –Such as Web servers and database servers •Most distributions include a GUI that can be further customized to suit the needs of the user. •Two competing GUI environments in Linux: –GNU Object Model Environment (GNOME) –K Desktop Environment (KDE) Figure 1-5: The GNOME Desktop Figure 1-6: The KDE Desktop •Package manager: software system that installs and maintains software –Red Hat Package Manager - the most widely supported package manager •Package managers have become the most common method for installing software Table 1-4: Common Linux distributions Table 1-4 (cont’d): Common Linux distributions Common Uses of Linux •Linux may be customized to provide services for a variety of companies in a variety of situations •Workstation services: services used on a local computer •Server services: services made available for other computers across a network •Linux configurations commonly used today: –Internet servers –File and print servers –Application servers –Cloud systems –Supercomputers –Scientific workstations –Office/personal workstations –Mobile devices Internet Servers •The most common Internet services: –Mail services –Routing services –FTP services –Firewalls and proxy services –Web services –DNS services Internet Servers: Routing •Routing: provides interconnection between separate networks –Core service necessary for the Internet to function –Linux provides support for routing and is easily customizable •Router: a computer or special hardware device that provides interconnection between separate networks Internet Servers: FTP Services •File Transfer Protocol (FTP) Services: most common and efficient method for transferring files over the Internet –Also commonplace when transferring files on an internal company network •Most FTP servers available on the Internet allow any user to connect –Called anonymous FTP servers •Most OS are distributed with an FTP client program Internet Servers: Firewalls and Proxy Services •Firewall: Protects companies from outside intruders on the Internet –Linux has firewall support built into the kernel –Allows companies to control what traffic is allowed into their network •Proxy server: requests Internet resources such as Web sites and FTP sites on behalf of the computer inside the company –Common proxy server used on Linux is Squid Internet Servers: Web Services •Web services: Web servers host information •Many open source Web server software packages are available for Linux –Most widely used is the Apache Web Server Internet Servers: DNS Services •Computers communicating on a network need to be uniquely identified –Each computer is assigned an Internet Protocol (IP) address •Long string of numbers •Allows computers to identify and reference each other •Fully Qualified Domain Name (FQDN): masks IP addresses with user-friendly names •Domain Naming Service (DNS) server: maintains a list of proper FQDN to IP mappings File and Print Servers •Linux is well-suited for centrally sharing resources –More economical to share files and printers over a network –Is an inherently fast and light OS –A distribution specific to a certain task can be installed on the central server –Can share resources with a computer running another OS –Most common service used to allow clients to connect to shared information and printers on a Linux server is Samba Cloud Systems •Cloud: a large system of computers that work together to provide a wide set of services to users and organizations across the Internet •Most cloud systems run Linux in a cloud-based configuration using cloud software –Collectively called a cloud platform •OpenStack is one of the most popular open source cloud platforms available Supercomputers •Clustering: combining several smaller computers to act as one large supercomputer •Scalability: the ability for a computer to increase workload as the number of processors increases –Clustering computers often results in better scalability than adding processors to a single computer Scientific/Engineering Workstation •Scientific and engineering community often needs customized programs •OSS programs can be used or modified to create specific scientific and engineering workstations •Many OSS programs are available for –Physics, Astrophysics, Biophysics, Biocomputation, Materials and Polymer Chemistry, Mathematics and Optimization, Data Mining, and many other scientific and engineering fields Mobile Devices •Following introduction of the Apple iPhone in 2007 –Several Linux-based smartphone and tablet OS started to appear on the market –Google Android in 2008 is most notable •By January 2014, Android was installed on over 79 percent of smartphones in North America Summary •Linux is an OS whose kernel and additional software are freely developed and improved upon by a large community of software developers •Companies find Linux a stable, low-risk, and flexible alternative to other OOS • Available in different distributions, all having a common kernel, but packaged with different OSS applications