WHAT IS AN OPERATING SYSTEM….... ? ● What do you do on your computer? ● Check e-mail ● Browse the Internet, Chatting ● Play music/movies ● Create reports, presentations ● Play Games
WHAT IS AN OPERATING SYSTEM….... ? ● Functions ● Hides underlying hardware . ● Provides consistent environment for programs to run in . ● Resource management .
KERNEL ● While the system is operational a program is constantly running known as KERNEL. It forms the core of any operating system. ● With the aid of the firmware and device drivers, the kernel provides the most basic level of control over all of the computers hardware devices. It manages memory access for programs in the RAM, it determines which programs get access to which hardware resources, it sets up or resets the CPUs operating states for optimal operation at all times, and it organizes the data for long-term non-volatile storage with file systems on such media as disks, tapes, flash memory, etc. ● Executing an application program involves the creation of a process by the operating system kernel which assigns memory space and other resources, establishes a priority for the process in multi- tasking systems, loads program binary code into memory, and initiates execution of the application program which then interacts with the user and with hardware devices. ● If a program wishes to access hardware for example, it may interrupt the operating systems kernel, which causes control to be passed back to the kernel. The kernel will then process the request.
SHELL & GUI ● The other part of operating system is shell/GUI which is the interface between user and system itself. It allows the user to instruct the machine and to run programs. A shell communicates with the kernel. A shell only active when somebody is using the system while kernel is always active. Today different type of shell exists depending on the ideas of different developers who created them . ● Sh → Bourne shell (first shell named after its creator) ● Bash → Bourne again shell ● Ksh → korn shell ● Csh → c shell ● Tcsh → pronounced – teesh etc.
OPERATING SYSTEMS ARE ALMOST EVERYWHERE ! ● Supercomputers ● desktop/laptops ● mobile phones ● iPod ● Servers ● Embedded devices ● ….......
OPERATING SYSTEMS ARE ALMOST EVERYWHERE ! ● Supercomputers ● Established operating systems . . . ● desktop/laptops ● Microsoft DOS and Windows ● mobile phones ● GNU Linux ● iPod ● UNIX ● Servers ● Other UNIX derivatives - FreeBSD, OpenSolaris etc. ● Other . . . ● Embedded devices ● ….......
MEMORY HIERARCHY ● Hard disk drive, CD-ROM drive etc. – Slow, Huge – Cost/Megabyte very low – Persistent ● Random Access Memory (RAM) – Fast (avg 3-5GBps), Few Gigabytes – Cost/Megabyte moderate, getting cheaper – Volatile ● Processor cache – Extremely fast (avg 20GBps), Few Kilobytes – Cost/Megabyte extremely high – Volatile
FILE SYSTEMS ● File : Block of arbitrary data/information ● Similar to : How do you manage storage in a library such that – Locating a book is fast, easy – Least space is wasted ● Well known file-systems – Microsoft FAT16/32 – NTFS (NT file system) – ext2/3/4 – ZFS, xfs, UFS1/2, jfs, ReiserFS . . .
WHY LET OPERATING SYSTEMS MANAGE I/O ….? ● Abstraction : Consistent access for all programs, across machines ● Arbitration / Conflict resolution ● Easy software development ● Security
DEVICE DRIVERS ● Sequence of instructions ● Programmed for a particular piece of hardware ● Helps higher-level programs to talk with hardware ● Operating System specific
SECURITY ● Each entity in the system – Well defined set of operations – Define who can perform what operation ● If all rules above are obeyed, system is more secure :) ● Types of Users – Super User / Administrator ● Has (almost) full control over the system ● Not recommended for day-to-day use – Normal User ● Has some usage restrictions eg. Sensitive files and directories, ● operating with devices, Software installation ● Recommended for casual day-to-day use – Restricted user ● Even tighter restrictions ,eg. guest accounts
REFERENCES ● Maurice J. Bach -->The Design Of The Unix Operating System. ● A.Silberschatz, P.Galvin, G.Gagne → Operating System Concepts. ● http://www.wikipedia.org