CST334 Unix & X Window System Overview of UNIX Purpose of an Operating System (OS) History Unix OS Characteristics of Unix OS History of Linux OS The Drive for compatability (POSIX standards) Attention For additional reading, consult Appendix B and Chapter 1 of Forouzan and Gilberg, Unix and Shell Programming your textbook Definition of an Operating System (OS) An operating system is a control program for a computer that performs the following operations: allocates computer resources schedules routine tasks provides a platform to run application software for users to accomplish tasks provides an interface between the user & the computer History of Unix OS Prior to Unix, many operating systems ran collections or “batches” of operations one at a time. This single-user “batch-processing” approach did not take advantage of the potential processing power and speed of computers Enter data in files to be later processed Process Collection or “Batch” of files Receive information of processed data Note: batch processing lacks the advantage of immediate feedback as opposed to online processing History of Unix OS The Unix OS was developed (based on Multics & CTSS operating systems) by Ken Thompson at the AT&T Bell Laboratories in 1969. He wanted to create an multi-user operating system to run “space travel” game. Ken’s philosophy was to create an operating system with commands or “utilities” that would do one thing well (i.e. UNIX). Pipes could be used combine commands... History of Unix OS The first versions of UNIX were written in “machine-dependent” program (such as PDP-7). Ken Thompson approach Dennis Ritchie developer of C program), and in 1973 they compiled UNIX in C programming language to make operating system “portable” to other computers systems. History of Unix Ken Thompson (recently retired from Bell Labs) is on left, and Dennis Ritchie is in the middle. What`s his name is on the right… UNIX Features The Unix OS is a multi-user OS allowing more that more person to directly communicate with the computer. Although the OS can only work on one task at a time, a small piece of time (time slice) is dedicated to each task or user - this is referred to as “time-sharing”. Time sharing gives the illusion that the CPU is giving all the users its full attention Illustration of Time-Sharing User 8 User 1 User 7 User 2 User 6 User 3 User 5 User 4 TIME Development of Unix OS Unix became a popular OS among institutions such as colleges & universities through a 4year “try before you buy” deal. Efficient and inexpensive way of networking promotes Internet use and file-sharing Open system allows for source code to be shared among many programmers - allows for better coordination among programmers Development of Unix OS Students at University of California (in Berkley) further developed the UNIX operating system and introduced the BDS version of Unix Unix Bell Labs UNIX System V (5) Proprietary Berkley Software Distribution (BSD) Free Development of Unix OS There were versions of UNIX for the Personal Computer (PC), such as XENIX, etc., but they didn’t catch on in popularity until Linux was developed in the early 90’s. History of Linux Linux operating system developed by programming student Linus Torvalds Linus wanted to develop Unix-like OS just to experiment with new 386 computer at the time... Why Has Linux Become so Popular? Linus decided to make Linux OS source-code for Linux Kernal open to all: Unlike traditional Operating Systems, anyone can modify and distribute Linux OS (as long as they distribute source code of Linux Kernel) “Competition among Hackers” allow code to be improved and distributed often Many users can spot bugs in the operating system or application if source code is “open” Why Has Linux Become so Popular? Other Factors: PC’s have increased processing power and a there has been a noted shift from mainframes and minicomputers to PCs. Since Linux is a “Unix Work-alike”, this OS has a reputation to be a very stable platform for networking (creating at-home servers) and running / maintaining applications. Agencies such as Free Software Foundation created GNU project to provide free software. Concerns Some people claim that “there are as many version of Linux as there are users…” POSIX (Portable Operating System Interface for Computer Environments) is a government standard to ensure consistency among different UNIX and Linux versions. Many versions of Linux are approaching POSIX standard. Concerns Freedom of allowing Linux users to create “servers” connected up to Internet can lead to attacks from experienced hackers. Linux commands may be considered “userunfriendly” although GUIs are now used. Prior reputation for difficult install process including the loss of data on other hard disk partitions. Attention The following material is taken from chapter one of your textbook , Unix and Shell Programming Advantages of Unix Portable Multi user Multitasking Networking – log into the any site Organized file system Device independence – i/o vs files Utilities – > 100 utilities, productivity Services – administrative tools built in Figure 1-1 Computer System A computer system Hardware Input , output, CPU, auxiliary/secondary storage Software Systems software Primary purpose to support computer Applications software Programs written to solve users problems Figure 1-2 Components of Computer Hardware Operating system A special category of systems software that manages all operating facets of the computer Heart and character of a computer: DOS, Windows , Mac, UNIX Performs resource allocation, scheduling, data management (file I/O), system security Unix environments Personal environment Timesharing environment Linux, Apple’s System X (Unix kernel) Many users connected to one computer Client/server environment Computing split between a central computer (server) and users’ computers (clients) Figure 1-4 The Time-Sharing Environment Figure 1-5 The Client/Server Environment Figure 1-6 Components of UNIX Components of the Unix OS, cont The kernel: contains most basic parts including process control and resource management The shell: receives & interprets the commands entered by the user Interpreter and script programming language Three standard shells: Bourne (sh/bash) , C (csh/tcsh), Korn (used in text) Components of the Unix OS, cont Utilities: hundreds ! Primarily Text editors, search programs, sort programs ls, cp, mv, vi, emacs, grep, chmod, sort, cal, date, plus countless options the real heart of the class Applications: written by systems administrators, professional programmers, or users Extended capability , sometimes made into future utilities Accessing Unix User ID Passwords Interactive session Figure 1-8 Interactive Session Common commands date date -u cal cal 1 2005 cal 2005 who passwd man Figure 1-9 Command Source and Destination Figure 1-10 General Command Format Figure 1-11 The date Command Figure 1-12 The calendar Command Figure 1-13 The who Command Figure 1-14 The passwd Command Passwords a) must be >=6 characters long, b) must contain 2 out of 3 of upper-case letters, lower-case letters, non-letters (digits, punct) c) may not be a dictionary word or too similar to your name Exit—to Log Out Type exit if it says "there are stopped jobs" type exit again Figure 1-15 The echo Command Figure 1-16 The man Command Figure 1-17 The lpr Command Figure 1-18 The tty Command Figure 1-19 The clear Command Figure 1-20 The stty Command Figure 1-21 The script Command Figure 1-22 The uname Command