LINUX System : Lecture 2OS and UNIX summary Bong-Soo Sohn Assistant Professor School of Computer Science and Engineering Chung-Ang University Acknowledgement : (i) wikipedia.org , (ii) http://www.doc.ic.ac.uk/~wjk/UnixIntro
Operating Systems • OS acts as an intermediary between user and HW • Resource Manager • Allocates and manages system resources (CPU, Memory, Disks, Networks, … ) • Efficient and fair use of the resources • Interface • OS allows users and application programs to access system resources • Controls the execution of user programs accurately • Efficiently, Fairly, Safely(Accurately), Abstractly
Computer System Structure • HW – provides basic computing resources • CPU, memory, disk, … • OS Kernel • direct control of underlying HW • System call • Programming interface to the services provided by the OS • The one program running at all times on the computer is the kernel. Everything else is either a system program (shipped with OS) or an application program • Application programs • Define the ways in which the system resources are used to solve user problems • executed thru shell/GUI. • Ex) word processor, video games, etc
Operating Systems • Functionality • Process Management • CPU scheduling : batch vs time-sharing • Memory Management • Memory allocation : determine what is in memory when? • Virtual memory : a technique that gives an application program the impression that it has large contiguous working memory, while in fact it is physically fragmented and may even overflow on to disk storage. • Disk and file system • Device driver : interface for communicating with HW devices • Networking : supports network protocols. (ex) TCP/IP • Security : authentication (login), authorization (file permission), … • UI : GUI (Graphical User Interface), CLI (Command Line Interface) • OS comes with application programs that provide an interface for managing OS.
Storage Hierarchy • Register, Cache, Main memory, Secondary Storage (disks), Magnetic tapes • Why hierarchical structure? • Speed • Cost • Volatility • Caching • Copying information into faster storage system. • Faster storage checked first to determine if information is there • Cache<->main memory, main memory<->disk • Important principle, performed at many levels in computer
OS Structures • Multiprogramming • a technique used to utilize maximum CPU time by running multiple programs simultanously • Single user cannot keep CPU and I/O devices busy at all times. • Multiprogramming organizes jobs (code and data) so CPU always has one to execute • One job is selected and run via job scheduler • When a running job has to wait for I/O, OS switches to another job • Multitasking (time-sharing) • CPU switches jobs so frequently that users can interact with each job while it is running. • Creates interactive computing • Response time can be controlled • If processes don’t fit in memory, swapping moves them in and out to run
Operating Systems • MS Windows • Most popular on desktop computers • Gaining popularity in servers. • UNIX/LINUX • Most popular in server environments • LINUX are gaining popularity on desktop PC.
UNIX System • has been popular for more than two decades • Portability • Written mostly in C + a few in assembly language • Kernel size is small • Multi-user, multi-tasking environment • Stability • Powerful networking capabilities • Free, open source code(LINUX) Suitable for using as a server
UNIX History • Created by Ken Thompson et al. ( a researcher at AT&T Bell Lab) • UNICS(1969) (shortened to UNIX later) : first version • Released Fifth version of UNIX • kernel was rewritten in C, which was a big step forwards in terms of system portability (1973) • LINUX • Developed by Linus Torvalds, a finnish undergrad student, in 1991 • Free open source UNIX OS for PC • Open source code nature means any one can add features and correct deficiencies. • Turned in to collaboration of hundreds of volunteer developers around the world. • Several different distributions (e.g. Redhat, Debian, … etc) • Distribution comprises a prepackaged kernel, system utilities, GUI, application programs
LINUX • Kernel • Device driver support for various HW device • Advanced processor and memory management • Support different types of file system • Shells / GUI : two forms of command input • Textual command line shells (e.g. C shell, … ) • Graphical user interface (e.g. GNOME window manager) • System utilities • Virtually every UNIX system utilities were ported to LINUX • Include daemons • server program running as a background process • Application programs • Come with standard application programs • e.g. vi, emacs, xv, gcc/g++, xfig, latex, …