intro tounix

22
Introduction to Introduction to UNIX / Linux UNIX / Linux CMSC 121 Introduction to UNIX CMSC 121 Introduction to UNIX Much of the material in these slides was taken from Much of the material in these slides was taken from Dan Hood’s CMSC 121 Lecture Notes. Dan Hood’s CMSC 121 Lecture Notes.

Upload: hamza-abdolateef

Post on 08-Jul-2015

523 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Intro tounix

Introduction toIntroduction toUNIX / LinuxUNIX / Linux

CMSC 121 Introduction to UNIXCMSC 121 Introduction to UNIX

Much of the material in these slides was taken fromMuch of the material in these slides was taken fromDan Hood’s CMSC 121 Lecture Notes.Dan Hood’s CMSC 121 Lecture Notes.

Page 2: Intro tounix

What is an Operating System?What is an Operating System? The operating system (OS) is the program which starts up when The operating system (OS) is the program which starts up when

you turn on your computer and runs underneath all other you turn on your computer and runs underneath all other programs - without it nothing would happen at all.programs - without it nothing would happen at all.

In simple terms, an operating system is a In simple terms, an operating system is a managermanager. It manages all . It manages all the available resources on a computer, from the CPU, to the available resources on a computer, from the CPU, to memory, to hard disk accesses.memory, to hard disk accesses.

Tasks the operating system must perform:Tasks the operating system must perform: Control HardwareControl Hardware - The operating system controls all the parts of the - The operating system controls all the parts of the

computer and attempts to get everything working together. computer and attempts to get everything working together. Run ApplicationsRun Applications - Another job the OS does is run application software. - Another job the OS does is run application software.

This would include word processors, web browsers, games, etc... This would include word processors, web browsers, games, etc... Manage Data and FilesManage Data and Files - The OS makes it easy for you to organize - The OS makes it easy for you to organize

your computer. Through the OS you are able to do a number of things to your computer. Through the OS you are able to do a number of things to data, including copy, move, delete, and rename it. This makes it much data, including copy, move, delete, and rename it. This makes it much easier to find and organize what you have. easier to find and organize what you have.

Page 3: Intro tounix

UNIX HistoryUNIX History

The UNIX operating system was born in the late 1960s. It The UNIX operating system was born in the late 1960s. It originally began as a one man project led by Ken Thompson of originally began as a one man project led by Ken Thompson of Bell Labs, and has since grown to become the most widely used Bell Labs, and has since grown to become the most widely used operating system.operating system.

In the time since UNIX was first developed, it has gone through In the time since UNIX was first developed, it has gone through manymany different generations and even mutations. different generations and even mutations. Some differ substantially from the original version, like Berkeley Software Some differ substantially from the original version, like Berkeley Software

Distribution (BSD) or Linux.Distribution (BSD) or Linux. Others, still contain major portions that are based on the original source Others, still contain major portions that are based on the original source

code.code. An interesting and rather up-to-date timeline of these variations An interesting and rather up-to-date timeline of these variations

of UNIX can be found at of UNIX can be found at http://www.levenez.com/unix/history.htmlhttp://www.levenez.com/unix/history.html..

Page 4: Intro tounix

General Characteristics of UNIX as General Characteristics of UNIX as an Operating System (OS)an Operating System (OS)

Multi-user & Multi-taskingMulti-user & Multi-tasking - most versions of UNIX are capable of allowing multiple - most versions of UNIX are capable of allowing multiple users to log onto the system, and have each run multiple tasks. This is standard for most users to log onto the system, and have each run multiple tasks. This is standard for most modern OSs. modern OSs.

Over 30 Years OldOver 30 Years Old - UNIX is over 30 years old and it's popularity and use is still high. - UNIX is over 30 years old and it's popularity and use is still high. Over these years, many variations have spawned off and many have died off, but most Over these years, many variations have spawned off and many have died off, but most modern UNIX systems can be traced back to the original versions. It has endured the test modern UNIX systems can be traced back to the original versions. It has endured the test of time. For reference, Windows at best is half as old (Windows 1.0 was released in the mid of time. For reference, Windows at best is half as old (Windows 1.0 was released in the mid 80s, but it was not stable or very complete until the 3.x family, which was released in the 80s, but it was not stable or very complete until the 3.x family, which was released in the early 90s). early 90s).

Large Number of ApplicationsLarge Number of Applications – there are an enormous amount of applications available – there are an enormous amount of applications available for UNIX operating systems. They range from commercial applications such as CAD, for UNIX operating systems. They range from commercial applications such as CAD, Maya, WordPerfect, to many free applications. Maya, WordPerfect, to many free applications.

Free Applications and Even a Free Operating SystemFree Applications and Even a Free Operating System - of all of the applications - of all of the applications available under UNIX, many of them are free. The compilers and interpreters that we use available under UNIX, many of them are free. The compilers and interpreters that we use in most of the programming courses here at UMBC can be downloaded free of charge. in most of the programming courses here at UMBC can be downloaded free of charge. Most of the development that we do in programming courses is done under the Linux OS. Most of the development that we do in programming courses is done under the Linux OS.

Less Resource IntensiveLess Resource Intensive - in general, most UNIX installations tend to be much less - in general, most UNIX installations tend to be much less demanding on system resources. In many cases, the old family computer that can barely run demanding on system resources. In many cases, the old family computer that can barely run Windows is more than sufficient to run the latest version of Linux. Windows is more than sufficient to run the latest version of Linux.

Internet DevelopmentInternet Development - Much of the backbone of the Internet is run by UNIX servers. - Much of the backbone of the Internet is run by UNIX servers. Many of the more general web servers run UNIX with the Apache web server - another Many of the more general web servers run UNIX with the Apache web server - another free application. free application.

Page 5: Intro tounix

Parts of the UNIX OSParts of the UNIX OS The KernelThe Kernel - handles memory management, input and output requests, and - handles memory management, input and output requests, and

program scheduling. Technically speaking, the kernel program scheduling. Technically speaking, the kernel isis the OS. It provides the OS. It provides the basic software connection to the hardware. The kernel is very complex the basic software connection to the hardware. The kernel is very complex and deals with the inner workings of these things, and is beyond the scope of and deals with the inner workings of these things, and is beyond the scope of this course. The kernel is covered in detail in “Operating Systems.”this course. The kernel is covered in detail in “Operating Systems.”

The Shell and Graphical User Interfaces (GUIs) The Shell and Graphical User Interfaces (GUIs) - basic UNIX shells - basic UNIX shells provides a “command line” interface which allows the user to type in provides a “command line” interface which allows the user to type in commands. These commands are translated by the shell into something the commands. These commands are translated by the shell into something the kernel can comprehend, and then executed by the kernel. kernel can comprehend, and then executed by the kernel.

The Built-in System UtilitiesThe Built-in System Utilities - are programs that allow a user to perform - are programs that allow a user to perform tasks which involve complex actions. Utilities provide user interface functions tasks which involve complex actions. Utilities provide user interface functions that are basic to an operating system, but which are too complex to be built that are basic to an operating system, but which are too complex to be built into the shell. Examples of utilities are programs that let us see the contents into the shell. Examples of utilities are programs that let us see the contents of a directory, move & copy files, remove files, etc... of a directory, move & copy files, remove files, etc...

Application Software & UtilitiesApplication Software & Utilities – these are not part of the operating – these are not part of the operating system, per se. They are additional programs that are bundled with the OS system, per se. They are additional programs that are bundled with the OS distribution, or available separately. These can range from additional or distribution, or available separately. These can range from additional or different versions of basic utilities, to full scale commercial applications. different versions of basic utilities, to full scale commercial applications.

Page 6: Intro tounix

Flavors of UNIXFlavors of UNIX These can be grouped into two categories:These can be grouped into two categories: Open Source Open Source and and ProprietaryProprietary Proprietary:Proprietary: (redistribution and modification prohibited or restricted; not free) (redistribution and modification prohibited or restricted; not free)

SolarisSolaris - Access to a Solaris UNIX server (solaris.gl.umbc.edu) via SSH access. - Access to a Solaris UNIX server (solaris.gl.umbc.edu) via SSH access. IRIXIRIX - There are a couple of IRIX machines in the basement of the library, as well as server - There are a couple of IRIX machines in the basement of the library, as well as server

access (irix.gl.umbc.edu) via SSH access. access (irix.gl.umbc.edu) via SSH access. Mac OS XMac OS X - no access currently available at UMBC. - no access currently available at UMBC. and many others... and many others...

Open Source: Open Source: (source code is readily available and free to modify)(source code is readily available and free to modify) FreeBSDFreeBSD - no access currently available at UMBC. - no access currently available at UMBC. Linux Distributions - access is available in the form of dual-boot PCs scattered throughout Linux Distributions - access is available in the form of dual-boot PCs scattered throughout

the Engineering building. There are also several Linux servers (linux.gl.umbc.edu) through the Engineering building. There are also several Linux servers (linux.gl.umbc.edu) through which access is available.which access is available.

RedHatRedHat (used by UMBC) and the (used by UMBC) and the Fedora ProjectFedora Project (maintained by RedHat) (maintained by RedHat) MandrakeMandrake DebianDebian SuSESuSE SlackwareSlackware and many others...and many others...

As a side note, Linux is a open source UNIX-based OS that was originally developed in 1991 by As a side note, Linux is a open source UNIX-based OS that was originally developed in 1991 by Linus Torvalds, a Finnish undergraduate student. Linus Torvalds, a Finnish undergraduate student.

Page 7: Intro tounix

UNIX InterfacesUNIX Interfaces

There are really 2 means of connecting to UNIX There are really 2 means of connecting to UNIX computers here at UMBC:computers here at UMBC: You can be sitting in front of a dual-bootable PC that you You can be sitting in front of a dual-bootable PC that you

have booted into Linux and logged onto. All of your have booted into Linux and logged onto. All of your commands are then being run locally on that computer. commands are then being run locally on that computer. When you logon in this manner you have a full GUI When you logon in this manner you have a full GUI environment. environment.

You can connect remotely to one of the UNIX servers You can connect remotely to one of the UNIX servers (whether from home or at the labs). This is often how your (whether from home or at the labs). This is often how your projects are suggested to be developed as they are graded on projects are suggested to be developed as they are graded on those same servers. When you logon in this manner you have those same servers. When you logon in this manner you have a command line (or text based) environment. You can also a command line (or text based) environment. You can also open up a command line on local lab machines as well. open up a command line on local lab machines as well.

Page 8: Intro tounix

Graphical User Interfaces (GUIs)Graphical User Interfaces (GUIs)

When you logon locally, you are presented with When you logon locally, you are presented with graphical environment.graphical environment.

You start at a graphical login screen. You must enter You start at a graphical login screen. You must enter your username and password. You also the have the your username and password. You also the have the option to choose from a couple session types. Mainly option to choose from a couple session types. Mainly you have the choice between Gnome and KDE.you have the choice between Gnome and KDE.

Once you enter in your username and password, you Once you enter in your username and password, you are then presented with a graphical environment that are then presented with a graphical environment that looks like one of the following... looks like one of the following...

Page 9: Intro tounix

GnomeGnome

Page 10: Intro tounix

KDEKDE

Page 11: Intro tounix

Command Line InterfaceCommand Line Interface

You also have access to some UNIX servers as well.You also have access to some UNIX servers as well. You can logon from virtually any computer that has internet You can logon from virtually any computer that has internet

access whether it be Windows, Mac, or UNIX itself.access whether it be Windows, Mac, or UNIX itself.

In this case you are communicating through a local In this case you are communicating through a local terminal to one of these remote servers.terminal to one of these remote servers. All of the commands actually execute on the remote server.All of the commands actually execute on the remote server. It is also possible to open up graphical applications through It is also possible to open up graphical applications through

this window, but that requires a good bit more setup and this window, but that requires a good bit more setup and software. (Time permitting, we may cover how to do this.)software. (Time permitting, we may cover how to do this.)

Page 12: Intro tounix

The TerminalThe Terminal

Page 13: Intro tounix

Linux vs. WindowsLinux vs. Windows OS does not have to use a graphical interface.OS does not have to use a graphical interface.

The OS itself (the kernel) is incredibly small. The OS itself (the kernel) is incredibly small. The GUI just another application (or set of applications) that can be The GUI just another application (or set of applications) that can be

installed and run on top the existing text-based OS. installed and run on top the existing text-based OS. File system differences.File system differences.

Windows typically uses FAT32 or NTFS file systems. Windows typically uses FAT32 or NTFS file systems. Linux typically uses the ext2 or ext3 file systemsLinux typically uses the ext2 or ext3 file systems In much larger research and university environments, where file access is In much larger research and university environments, where file access is

necessary across the network, something like Network File System (NFS) necessary across the network, something like Network File System (NFS) or the Andrew File System (AFS) is used. We use AFS here on GL at or the Andrew File System (AFS) is used. We use AFS here on GL at UMBC. UMBC.

Windows lists all drives separately (A:,C:,D:, etc…), with “My Computer” Windows lists all drives separately (A:,C:,D:, etc…), with “My Computer” at the highest level.at the highest level.

UNIX starts its highest level at “/” and drives can be mounted anywhere UNIX starts its highest level at “/” and drives can be mounted anywhere underneath it. underneath it.

Page 14: Intro tounix

UMBC’s Computing EnvironmentUMBC’s Computing Environment

You need a GL account username and password!You need a GL account username and password! Since almost all UNIX systems are multi-user systems you will need to Since almost all UNIX systems are multi-user systems you will need to

have a logon name and password to authenticate yourself to the system. have a logon name and password to authenticate yourself to the system. At UMBC, when you signup for a GL account, you are given a username At UMBC, when you signup for a GL account, you are given a username and password, which is your means of logging on to any computer and password, which is your means of logging on to any computer system, be it UNIX, Windows or Mac.system, be it UNIX, Windows or Mac.

Where is UNIX / Linux available?Where is UNIX / Linux available? There are many labs in the Engineering (ENG) building where there are There are many labs in the Engineering (ENG) building where there are

dual-bootable Windows and Linux PCs. You can simple reboot one of dual-bootable Windows and Linux PCs. You can simple reboot one of these machines and select Linux as the operating system.these machines and select Linux as the operating system.

There are also a couple of other places across the campus where you can There are also a couple of other places across the campus where you can sit directly in front of a UNIX computer. UMBC's Office of Information sit directly in front of a UNIX computer. UMBC's Office of Information Technology (OIT) maintains a list of the labs it maintains as well as Technology (OIT) maintains a list of the labs it maintains as well as descriptions about the operating systems in those labs.descriptions about the operating systems in those labs.

This list is online at This list is online at http://www.umbc.edu/oit/classroomtechnology/labs/lablocation.htmlhttp://www.umbc.edu/oit/classroomtechnology/labs/lablocation.html..

Page 15: Intro tounix

Practical TasksPractical Tasks

Rebooting the computer into Linux on a dual-Rebooting the computer into Linux on a dual-boot PC.boot PC.

Logging in.Logging in. Locking the screen.Locking the screen. Logging out.Logging out. The non-graphical terminal!The non-graphical terminal!

Press Ctrl-Alt-F2 then loginPress Ctrl-Alt-F2 then login Be sure to logout with the command “logout”Be sure to logout with the command “logout” Press Ctrl-Alt-F7 to get the GUI back.Press Ctrl-Alt-F7 to get the GUI back.

Page 16: Intro tounix

If all else fails in Gnome or KDEIf all else fails in Gnome or KDE

If your session seems to have froze up, you can If your session seems to have froze up, you can press press ctrl-alt-backspacectrl-alt-backspace to restart the X to restart the X window server, in the process logging you out.window server, in the process logging you out.

Note that by doing it this way, you risk losing Note that by doing it this way, you risk losing unsaved work.unsaved work.

Page 17: Intro tounix

What is X Window?What is X Window?

X window is the program that draws windows on the screen X window is the program that draws windows on the screen under most GUI-based versions of UNIX. It is important to under most GUI-based versions of UNIX. It is important to note that the language that X windows speaks is completely note that the language that X windows speaks is completely different from that of Microsoft Windows or Mac OS X.different from that of Microsoft Windows or Mac OS X.

Any X window system consists of 2 distinct parts - the X server Any X window system consists of 2 distinct parts - the X server and 1 or more X clients.and 1 or more X clients. The server controls the display directly, and is responsible for all The server controls the display directly, and is responsible for all

input/output via the keyboard, mouse or display.input/output via the keyboard, mouse or display. The clients, on the other hand, do not access the screen directly - they The clients, on the other hand, do not access the screen directly - they

communicate with the server, which handles all input and output.communicate with the server, which handles all input and output. It is the clients which do the "real" computing work - running applications or It is the clients which do the "real" computing work - running applications or

whatever. whatever. The clients communicate with the server, causing the server to open one or The clients communicate with the server, causing the server to open one or

more windows to handle input and output for that client. more windows to handle input and output for that client.

Page 18: Intro tounix

What’s the deal about the X Window What’s the deal about the X Window Server and Client?!Server and Client?!

The X window server runs on the machine to which the monitor is The X window server runs on the machine to which the monitor is connected.connected.

The clients may also run on this machine, communicating directly with the The clients may also run on this machine, communicating directly with the server. On most workstations, this is the normal situation. However, X is a server. On most workstations, this is the normal situation. However, X is a networked window system, and it is possible for the client to run on a remote networked window system, and it is possible for the client to run on a remote machine, communicating with the server via some form of network.machine, communicating with the server via some form of network.

It is possible to connect to one of the UMBC servers and launch graphical It is possible to connect to one of the UMBC servers and launch graphical applications from one of the UNIX servers.applications from one of the UNIX servers. This does require that an X window server is installed on the machine from which This does require that an X window server is installed on the machine from which

you are connecting from. This is automatically running if you are running a GUI you are connecting from. This is automatically running if you are running a GUI UNIX system.UNIX system.

You can also install an X window server on top of Microsoft Windows, so that You can also install an X window server on top of Microsoft Windows, so that you can open up windows locally that are talking to the server at UMBC. Like I you can open up windows locally that are talking to the server at UMBC. Like I said earlier, this does require installing some software on the client side, and time said earlier, this does require installing some software on the client side, and time permitting we may talk about this later in the course.permitting we may talk about this later in the course.

Page 19: Intro tounix

What is a Desktop Manager?What is a Desktop Manager? Gnome and KDE are examples of desktop managers. Both of these look a Gnome and KDE are examples of desktop managers. Both of these look a

lot like Microsoft Windows.lot like Microsoft Windows. They have the equivalent of a Start Menu, have an equivalent of Windows They have the equivalent of a Start Menu, have an equivalent of Windows

Explorer, and have some sort of control panel.Explorer, and have some sort of control panel. The roll of the Desktop Manager is to provide you with the ability to manage The roll of the Desktop Manager is to provide you with the ability to manage

all of the details of your system that would otherwise require you to type in a all of the details of your system that would otherwise require you to type in a bunch of commands in a terminal window. bunch of commands in a terminal window. These details include managing your files, launching programs, configuring various These details include managing your files, launching programs, configuring various

aspects of your system, etc. aspects of your system, etc. It is also worthy to note that the desktop manager is optional. Many older It is also worthy to note that the desktop manager is optional. Many older

systems did not have a desktop manger that sat in-between the X server and systems did not have a desktop manger that sat in-between the X server and the Window manager.the Window manager.

Page 20: Intro tounix

What is a Window Manager?What is a Window Manager? The Window Manager is a program that manages the placement of Windows The Window Manager is a program that manages the placement of Windows

on your system. The Window Manager makes it possible to move, resize, and on your system. The Window Manager makes it possible to move, resize, and minimize the various programs running on your computerminimize the various programs running on your computer

KDE handles this functionality as well, whereas Gnome does not directly KDE handles this functionality as well, whereas Gnome does not directly provide this functionality, but rather relies on an independent window provide this functionality, but rather relies on an independent window manager to do it for us.manager to do it for us.

Think of the Window Manager as the framing around the windows as well as Think of the Window Manager as the framing around the windows as well as all of the associated functionality that they provide.all of the associated functionality that they provide. For example, most all window managers can close, minimize, maximize & resize.For example, most all window managers can close, minimize, maximize & resize. However most UNIX window managers add so much more in the way of However most UNIX window managers add so much more in the way of

functionality. The decoration and customization of these windows under UNIX functionality. The decoration and customization of these windows under UNIX tends to be much more flexible.tends to be much more flexible.

Many Window Managers also provide other functionality such as shading, sticky/Many Window Managers also provide other functionality such as shading, sticky/nonsticky, window history, and desktop and workspace manipulations.nonsticky, window history, and desktop and workspace manipulations.

Page 21: Intro tounix

Some Notes on X window, Desktop Managers & Some Notes on X window, Desktop Managers & Window ManagersWindow Managers

Most UNIX systems can be installed without the GUI.Most UNIX systems can be installed without the GUI. The GUI is just another application that runs on top of The GUI is just another application that runs on top of

the operating system.the operating system. There are many implementations of all three of these There are many implementations of all three of these

components.components. It is possible to mix and match implementation and versions It is possible to mix and match implementation and versions

of these. of these. They need not be alike and need not be all by the same They need not be alike and need not be all by the same

organization.organization. This is quite a shift in paradigm from Microsoft and This is quite a shift in paradigm from Microsoft and

Apple.Apple.

Page 22: Intro tounix

Programming Tools and Utilities Programming Tools and Utilities Available under LinuxAvailable under Linux

Text EditorsText Editors Xemacs Xemacs Emacs Emacs Pico Pico vivi

CompilersCompilers C compiler - gcc C compiler - gcc C++ compiler - g++ C++ compiler - g++ Java compiler & Java Virtual Java compiler & Java Virtual

Machine - javac & java Machine - javac & java

DebuggersDebuggers C / C++ debugger - gdb C / C++ debugger - gdb

InterpretersInterpreters Perl - perl Perl - perl Tcl/Tk - tcl & wish Tcl/Tk - tcl & wish

MiscellaneousMiscellaneous Web Browsers - Mozilla, Web Browsers - Mozilla,

Netscape, Firefox, and Lynx Netscape, Firefox, and Lynx (lynx is text based) (lynx is text based)

Instant Messengers - Gaim Instant Messengers - Gaim Email - Netscape is there, but Email - Netscape is there, but

we will learn Pinewe will learn Pine