Operating Systems and Using Linux Topics • What is an Operating System? • Linux Overview • Frequently Used Linux Commands Reading None.
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
A Formal Definition of: OS Operating System: A program that integrates and Controls the computer’s Internal Functions and Provides a User Interface.
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
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.
Router Configuration Company A’s Network Router Internet Company B’s Network Router
Evolution of Operating System • OS for batch jobs • 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
OS Evolution (cont’d) • 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.
OS Evolution • OS for Interactive Processing • 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
OS Evolution (cont’d) • OS for time-sharing • 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
Time Sharing between Process A & B Interrupt Interrupt Interrupt Interrupt Process B Process B Process Switch Process Switch Process Switch Process A Process A 50 nSec Time
OS Evolution (cont’d) • 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
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: • VAX - VMS or Ultrix • IBM PCs - DOS, windows NT, or Linux
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
Types of software (cont’d) • Utility software • 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
OR the one line UNIX (Linux) command to mail Jones the file called: filename.dat : /bin/mail email@example.com < filename.dat
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.
The OS Shell • Defines interface between OS and users • Windows GUI • UNIX command line • UNIX users can choose among a variety of shells • csh is the “C shell” • tcsh is an enhanced “C shell” • Shell programming
OS Shell interface Users Users Users O / S shell
Unix Graphical User Interface (GUI) Terminal Icon
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#% _ • 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.
Linux Overview • Files and Filenames • Directories and Subdirectories • Frequently Used Commands
Files • A file is a sequence of bytes. • It can be created by • 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).
Linux Filenames • Restrictions • 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 ]
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.
Directories (con’t) /afs/umbc.edu/users/j/d/jdoe28 junk recipes notes pie cookie CMSC104 apple peach choc_chip
Directories (con’t) • Your home directoryis 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.
Subdirectories • Are used for organizing your files • For example • make a subdirectory for CS104 • make subdirectories for each project CS104 project1 project2 . . . project8
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.
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
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.