Operating Systems and Using Linux Topics • What is an Operating System? • Linux Overview • Frequently Used Linux Commands Reading None. CMSC 104, L03 1 What is an Operating System (OS)? • A computer program • Performs many operations: • Allows you to communicate with the computer (tell it what to do) • Controls access (login) to the computer • Keeps track of all “processes” currently running • At this point, your main concern is how to communicate with the computer using the OS CMSC 104, L03 2 A Formal Definition of: OS Operating System: A program that integrates and Controls the computer’s Internal Functions and Provides a User Interface. CMSC 104, L03 3 OS Introduction • Computer applications today require a single machine to perform many operations and the applications may compete for the resources of the machine. • This demands a high degree of coordination • This coordination is handled by system software known as the operating system CMSC 104, L03 4 Definition of Router Router - A “gateway” machine that examines each packet of data it receives, and then decides which way (if at all) to send it towards its destination. The most efficient path is chosen. The router can be set up as a firewall, where it permits a companies users to access the Internet but places severe limits on the ability of outsiders to access internal data. CMSC 104, L03 5 Router Configuration Company A’s Network Router Internet Company B’s Network CMSC 104, L03 Router 6 Evolution of Operating System • OS for batch jobs o o o o Program execution required significant preparation of equipment Program execution (job) OS was a system to simplify program setup and simplify transition between jobs Physical separation of users and equipment led to computer operators CMSC 104, L03 7 OS Evolution (cont’d) o o Users left jobs with the operator and came back the next day (batch jobs) Users had no interaction with computer during program execution. Maybe okay for some applications, but not for all. CMSC 104, L03 8 OS Evolution • OS for Interactive Processing o o o o o Allowed programs to carry on dialogue with user via remote terminals (workstations) Real-time processing Users demand timely response Machines too expensive to serve only one user Common for several users to want interactive services at the same time CMSC 104, L03 9 CMSC 104, L03 10 OS Evolution (cont’d) • OS for time-sharing o o o o To accommodate multiple real-time users, the OS rotates its various jobs in and out of execution via time-sharing Each job gets a predetermined “time slice” At end of time slice current job is set aside and a new one starts By rapidly shuffling jobs, illusion of several jobs executing simultaneously is created CMSC 104, L03 11 Time Sharing between Process A & B Interrupt Interrupt Process B Process Switch Process A 50 nSec Interrupt Interrupt Process B Process Switch Process Switch Process A Time CMSC 104, L03 12 OS Evolution (cont’d) o o without time slicing, a computer spends most of its time waiting for peripheral devices or users A collection of tasks can be completed in less time with time-sharing than when completed sequentially CMSC 104, L03 13 Different OS’s on the Same Machine ? • It is possible to have more than one operating system available to be used on a machine. • Only one operating system is run at a time, though. • Examples: o o VAX - VMS or Ultrix IBM PCs - DOS, windows NT, or Linux CMSC 104, L03 14 Types of software • Applications software Performs tasks specific to the machine’s utilization. Generally transportable • System Software Performs tasks common to computer systems in general Operating systems vary based on the hardware they’re used on CMSC 104, L03 15 Types of software (cont’d) • Utility software o o o o Provides fundamental activities, yet not included with OS “Extends” the OS Distinction between applications and utilities is often vague Distinction between OS and utilities is also vague CMSC 104, L03 16 CMSC 104, L03 17 CMSC 104, L03 18 How Do I Communicate With the Computer Using the OS? • You communicate using the particular OS’s user interface. • Graphical User Interface (GUI) - Windows • Command-driven interface - DOS, UNIX, Linux • We will be using the Linux operating system, which is very similar to UNIX. CMSC 104, L03 19 The OS Shell • Defines interface between OS and users o o o Windows GUI UNIX command line UNIX users can choose among a variety of shells – – o csh is the “C shell” tcsh is an enhanced “C shell” Shell programming CMSC 104, L03 20 OS Shell interface Users Users O/S Users shell CMSC 104, L03 21 CMSC 104, L03 22 telnet linux1.gl.umbc.edu CMSC 104, L03 23 CMSC 104, L03 24 Unix Graphical User Interface (GUI) Terminal Icon CMSC 104, L03 25 How Do I Communicate With the Computer Using the OS? (con’t) • When you log in to the Linux system here, a user prompt will be displayed: linux#[1]% _ where # is the number of the Linux server that you have connected to. You may use any of the servers. • The number in the brackets will change as you work. It is the “number” of the command that you are about to type. • If this prompt is not on the screen at any time, you are not communicating with the OS. CMSC 104, L03 26 Linux Overview • Files and Filenames • Directories and Subdirectories • Frequently Used Commands CMSC 104, L03 27 Files • A file is a sequence of bytes. • It can be created by o o a text editor (xemacs, pico) a computer program (such as a C program) • It may contain a program, data, a document, or other information . • Files that contain other files are called directories (sometimes called folders). CMSC 104, L03 28 CMSC 104, L03 29 Linux Filenames • Restrictions o o o May not contain blanks or metacharacters Have a maximum length Are case sensitive • It is best to stick with filenames that contain letters (uppercase or lowercase), numbers, and the underscore ( _ ) for now. • Wildcard characters: * ? [ range ] CMSC 104, L03 30 Directories • Directories contain files or other directories called subdirectories. They may also be empty. • Directories are organized in a hierarchical fashion. • They help us to keep our files organized. CMSC 104, L03 31 Directories (con’t) /afs/umbc.edu/users/j/d/jdoe28 junk recipes pie apple CMSC 104, L03 notes cookie peach CMSC104 choc_chip 32 Directories (con’t) • Your home directory is where you are located when you log in. • The current directory is where you are located at any time while you are using the system. • Files within the same directory must be given unique names. • Paths allow us to give the same name to different files located in different directories. • Each running program has a current directory and all filenames are implicitly assumed to start with the name of that directory unless they begin with a slash. CMSC 104, L03 33 Subdirectories • Are used for organizing your files • For example o o make a subdirectory for CS104 make subdirectories for each project CS104 project1 CMSC 104, L03 project2 ... project8 34 Moving in the Directory Tree • . (dot) is the current directory. • . . (dot-dot) is the parent directory. • Use the Linux command cd to change directories. • Use dot-dot to move up the tree. • Use the directory name to move down. • Use the complete directory name (path name) to move anywhere. CMSC 104, L03 35 Frequently Used Linux Commands • passwd, man, lpr • pwd, ls, cat, more, cd, cp, mv, rm • mkdir, rmdir • ctl-c References: • Linux man page • Links from the 104 homepage • Books CMSC 104, L03 36 Wildcard Characters • You will find wildcard characters useful when manipulating files (e.g., listing or moving them). • The wildcard characters are * and ? • ? is used to represent any single character. • * is used to represent 0 or more characters. CMSC 104, L03 37