Introduction to Operating System (OS)
Dr P Bhaskar Naidu
                     M.Tech., Ph.D., PGP(NIT-W), LMISTE,LMCSI
                          History of Operating System
     The First Generation (1940's to early 1950's)
        No Operating System
        All programming was done in absolute machine language, often by wiring up plug-boards to control
         the machine’s basic functions.
     The Second Generation (1955-1965)
        First operating system was introduced in the early 1950's.It was called GMOS
        Created by General Motors for IBM's machine the 701.
        Single-stream batch processing systems
     The Third Generation (1965-1980)
        Introduction of multiprogramming, Unix
        Development of Minicomputer
     The Fourth Generation (1980-Present Day)
        Development of PCs
        Birth of Windows/MaC OS
2
                         :Course Content
    •   What is an OS.
    •   What are its key functions.
    •   The evaluation of OS.
    •   What are the popular types of OS.
    •   Basics of UNIX and Windows.
    •   Advantages of open source OS like Linux.
    •   Networks OS.
3
                    ?What is an Operating System
    • Computer System = Hardware + Software
    • Software = Application Software + System Software(OS)\
    • Definition of OS:
    • An Operating System is a system Software that acts like an interface in
      between a user of a computer and the computer hardware components.
    • Operating system goals:
        Execute user programs and make solving user problems easier
        Make the computer system convenient to use
        Use the computer hardware in an efficient manner
4
5
                  The Structure of Computer Systems
     Accessing computer resources is divided into layers.
     Each layer is isolated and only interacts directly with the layer below or
      above it.
     If we install a new hardware device
        No need to change anything about the user/applications.
        However, you do need to make changes to the operating system.
        You need to install the device drivers that the operating system will
          use to control the new device.
     If we install a new software application
        No need to make any changes to your hardware.
        But we need to make sure the application is supported by the operating
          system
        user will need to learn how to use the new application.
     If we change the operating system
        Need to make sure that both applications and hardware will compatible
6         with the new operating system.
                             Computer Architecture
    Special busses (roads)
                                  ISA: Intelligent Service Architecture
    connecting all input/output
                                  PCI:Peripheral Component
    devices to motherboard.       Interconnect
7                                 USB: universal serial bus
    BUS & BRIDGES
8
                   CPU – Central Processing Unit
     This is the brain of your computer.
     It performs all of the calculations.
     In order to do its job, the CPU needs commands to perform, and data to
      work with.
     The instructions and data travel to and from the CPU on the system bus.
     The operating system provides rules for how that information gets back
      and
          forth, and how it will be used by the CPU.
9
10
                     RAM – Random Access Memory
      This is like a desk, or a workspace, where your computer temporarily stores all of
       the information (data) and instructions (software or program code) that it is
       currently using.
      Each RAM chip contains millions of address spaces.
      Each address space is the same size, and has its own unique identifying number
       (address).
      The operating system provides the rules for using these memory spaces, and
       controls storage and retrieval of information from RAM.
      Device drivers for RAM chips are included with the operating system.
     Problem: If RAM needs an operating system to work, and an operating system needs
        RAM in order to work, how does your computer activate its RAM to load the
        operating system?
11
12
             Operating System Services/Features
     • . User Services
       – Program Execution
       – User Interface
          • CLI
          • GUI
       – I/O Operations
          • Key Board- Key Board Controller
          • Mouse – Mouse Controller          >>Device Controllers
          • Monitor – Monitor Controller
13
       – Communication
          • IPC
       – File System & Manipulations
       – Error Detection
          • Errors- Program or H/W Components
     • System Services
       – Resource Allocation
       – Accounting
       – Protection & Security
14        • Firewalls
     A View of Operating System Services
15
                        Operating System Services
     •   Program execution
     •   Control Input/output devices
     •   Program creation
     •   Error Detection and Response
     •   Accounting
     •   Security and Protection
     •   File Management
     •   Communication
16
     • Program execution
     • To execute a program, several tasks need to be performed. Both the instructions and data
       must be loaded into the main memory. In addition, input-output devices and files should
       be initialized, and other resources must be prepared. The Operating structures handle
       these kinds of tasks. The user now no longer should fear the reminiscence allocation or
       multitasking or anything.
     • Control Input/output devices
     • As there are numerous types of I/O devices within the computer system, and each I/O
       device calls for its own precise set of instructions for the operation. The Operating
       System hides that info with the aid of presenting a uniform interface. Thus, it is
       convenient for programmers to access such devices easily.
     • Program Creation
     • The Operating system offers the structures and tools, including editors and debuggers, to
17     help the programmer create, modify, and debugging programs.
     • Error Detection and Response
     •   An Error in a device may also cause malfunctioning of the entire device. These include hardware and
         software errors such as device failure, memory error, division by zero, attempts to access forbidden
         memory locations, etc. To avoid error, the operating system monitors the system for detecting errors and
         takes suitable action with at least impact on running applications.
     •   While working with computers, errors may occur quite often. Errors may occur in the:
     •   Input/ Output devices: For example, connection failure in the network, lack of paper in the printer, etc.
     •   User program: For example: attempt to access illegal memory locations, divide by zero, use too much
         CPU time, etc.
     •   Memory hardware: For example, Memory error, the memory becomes full, etc.
     •   To handle these errors and other types of possible errors, the operating system takes appropriate action
         and generates messages to ensure correct and consistent computing.
18
     • Accounting
     • An Operating device collects utilization records for numerous assets and tracks the
       overall performance parameters and responsive time to enhance overall performance.
       These personal records are beneficial for additional upgrades and tuning the device to
       enhance overall performance.
     • Security and Protection
     • Operating device affords safety to the statistics and packages of a person and protects
       any interference from unauthorized users. The safety feature counters threats, which are
       published via way of individuals out of doors the manage of the running device.
19
     • For Example:
     • When a user downloads something from the internet, that program may contain
       malicious code that may harm the already existing programs. The operating system
       ensures that proper checks are applied while downloading such programs.
     • If one computer system is shared amongst a couple of users, then the various processes
       must be protected from another intrusion. For this, the operating system provides
       various mechanisms that allow only those processes to use resources that have gained
       proper authorization from the operating system. The mechanism may include providing
        unique users ids and passwords to each user.
20
     • File management
     • Computers keep data and information on secondary storage devices like magnetic tape,
       magnetic disk, optical disk, etc. Each storage media has its capabilities like speed,
       capacity, data transfer rate, and data access methods.
     • For file management, the operating system must know the types of different files and the
       characteristics of different storage devices. It has to offer the proportion and safety
       mechanism of documents additionally.
     • Communication
     • The operating system manages the exchange of data and programs among different
       computers connected over a network. This communication is accomplished using
       message passing and shared memory.
21
                                 Operating System Mode
      The User Mode is concerned with the actual
       interface between the user and the system.
      It controls things like running applications
       and accessing files.
       The Kernel Mode is concerned with everything
        running in the background.
       It controls things like accessing system
        resources, controlling hardware functions and
        processing program instructions.
       System calls are used to change
22      mode from User to Kernel.
                                         Kernel
        Kernel is a software code that reside in central core of OS. It has complete
         control over system.
        When operation system boots, kernel is first part of OS to load in main
         memory.
        Kernel remains in main memory for entire duration of computer session. The
         kernel code is usually loaded in to protected area of memory.
        Kernel performs it’s task like executing processes and handling interrupts in
         kernel space.
        User performs it’s task in user area of memory.
         This memory separation is made in order to prevent user data and kernel
         data from interfering with each other.
        Kernel does not interact directly with user, but it interacts using SHELL(Your
         interface to the operating system is called a shell.) and other programs and
23
     SHELL
24
25
                                 …Kernel cont
        Kernel includes:-
         1. Scheduler: It allocates the Kernel’s processing time to various
         processes.
         2. Supervisor: It grants permission to use computer system resources
         to each process.
         3. Interrupt handler : It handles all requests from the various
         hardware devices which compete for kernel services.
        4. Memory manager : allocates space in memory for all users of
        kernel service.
      kernel provides services for process management, file management,
       I/O management, memory management.
      System calls are used to provide these type of services.
26
                      System Call
     • What is a System Call
     • How it works
     • Types of System Calls
27
                           What is a System Call
     • A system call will act as a interface between s/w applications and kernel.
     • System call provides the services of OS to the process via API
     • When the process is being executed and if it requires any recourse , then the
       process create a System call which is nothing but Interrupt and sends to the
       kernel
     • The Application Program Interface (API) connects the operating system's
       functions to user programs. It acts as a link between the operating system
       and a process, allowing user-level programs to request operating system
       services.
     • The kernel system can only be accessed using system calls.
28
                                   System Call
      Application program is just a user-process. Due to security reasons , user
       applications are not given access to privileged resources(the ones controlled
       by OS).
      When they need to do any I/O or have some more memory or spawn a
       process or wait for signal/interrupt, it requests operating system to
       facilitate all these. This request is made through System Call.
      System calls are also called software-interrupts.
29
30
                         How it Works
     • 1.User Space
     • 2. Kernel Space
31
                      Working of System Call
     • 1.User Space
       – Process Execution
       – Process Creates one System Call
     • 2.Kernal Space
       – The System Call send to the Kernel Space and the System call
         will be executed
       – After Completing the execution the control move back to User
         Space
32
     How it Works
33
34
     API – System Call – OS Relationship
35
36
37
                     Types of System Calls
     • There are commonly five types of system calls. These are
       as follows:
     1. Process Control System Call
     2. File Management System Call
     3. Device Management System Call
     4. Information Maintenance System Call
     5. Communication System Call
38
      1. Process Control System Call
     •Process control is the system call that is used to direct the
     processes. Some process control examples include creating, load,
     abort, end, execute, process, terminate the process, etc.
      2. File Management System Call
     •File management is a system call that is used to handle the files.
     Some file management examples include creating files, delete files,
     open, close, read, write, etc.
39
     3. Device Management System Call
     •Device management is a system call that is used to deal with devices. Some
     examples of device management include read, device, write, get device
     attributes, release device, etc.
     4. Information Maintenance System Call
     •Information maintenance is a system call that is used to maintain information.
     There are some examples of information maintenance, including getting
     system data, set time or date, get time or date, set system data, etc.
40
     5. Communication System Call
     •Communication is a system call that is used for communication.
     There are some examples of communication, including create, delete
     communication connections, send, receive messages, etc.
41
42
     Examples of Windows and Unix system calls
43
     Standard C Library Example
44
45
                                   Threads
     • Process: Task under execution
     • Thread: light weight process
               Part of process (segment)
               Each Process may have multiple threads
               It improves CPU utilization
             Increase the performance of the application
     Processer-> opening a web browser
     Thread-> opening the tabs in the web browser
     Example: ATM (Processor) , Services(Thread)
46
                        Types of Threads
     • 1. User Level Thread
     • 2. Kernel level Thread
47
                        User Level Thread
     • 1.User Level Thread is created by the user , it is not
       recognised by the os.
     • 2. User Level Thread is a type of thread that is not created
       using system calls
     • 3. The kernel has no work in the management of user-level
       threads.
     .
48
                      Kernel Level Thread
     • 1. Kernel level thread is created by the os.
     • 2. A Kernel Level Thread is a type of thread that can
       recognize the Operating system easily.
     • 3. The operating System Kernel helps in managing threads
     • 4. Kernel helps in the management of threads
49
     User Level Thread & Kernel Level Thread
50
     Single Threaded Process
51
     Multithreaded Process
52
             Thread Models / Multithread Models
     • Mapping user level threads to kernel level threads
     • These Mapping process is called Thread Models.
     • Kernel which are mapped to user level is called virtual
       Processers
53
     •   They are 3 types of Thread Models
     •   1. Many-to-one Model (M:1)
     •   2. one-to-one Model (1:1)
     •   3. Many-to-Many Model(M:N)
         – M Threads
         – Create <M Kernels
54
     Many-to-one Model.1
55
     One-to-one Model .2
56
     Many-to-Many Model .3
57
                         Process Management
     1.Process Concept
58
59
     A stack is a data structure used by processors in operating systems to manage the
     execution of programs. The stack is typically implemented in the memory of the
     processor and is used to store data and return addresses during program execution .
     Heaps are memory areas allocated to each program. Memory allocated to heaps can
     be dynamically allocated, unlike memory allocated to stacks. As a result, the heap
     segment can be requested and released whenever the program needs it. (Garbage
     collector)
60
     Process State
61
     Process Scheduling
62
     PCB
63
                                   Scheduling Queues
      The OS maintains all Process Control Blocks (PCBs) in Process Scheduling Queues. The OS
       maintains a separate queue for each of the process states and PCBs of all processes in the
       same execution state are placed in the same queue. When the state of a process is changed, its
       PCB is unlinked from its current queue and moved to its new state queue.
      The Operating System maintains the following important process scheduling queues −
      Job queue − This queue keeps all the processes in the system.
      Ready queue − This queue keeps a set of all processes residing in main memory, ready and
       waiting to execute. A new process is always put in this queue.
      Device queues − The processes which are blocked due to unavailability of an I/O device
       constitute this queue.
64
     Scheduling Queues
65
                                   Schedulers
      Schedulers are special system software which handle process scheduling in
       various ways. Their main task is to select the jobs to be submitted into the
       system and to decide which process to run. Schedulers are of three types −
      1. Long-Term Scheduler (Job Scheduler)
      2. Short-Term Scheduler (CPU Scheduler)
      3. Medium-Term Scheduler (Swapping)
66
     Swap in removes the process from hard drive(secondary
     memory) & swap out removes the process from
     RAM(main memory).
67
                    Context Switching
     •   PCB
     •   REGISTERS
     •   KERNAL
     •   PROCESS STATE
68
                  Types of Operating Systems
     1.   Batch Operating System
     2.   Multiprogramming Operating System
     3.   Time-Sharing OS
     4.   Multiprocessing OS
     5.   Distributed OS
     6.   Network OS
     7.   Real Time OS
     8.   Embedded OS
69
                           Batch Operating System .1
     •   The users of this type of operating system does not interact with the computer directly.
     • Each user prepares his job on an off-line device like punch cards and submits it to the
       computer operator
     •   There is an operator which takes similar jobs having the same requirement and group them into
         batches.
     •   Example : ATM MECHINE, PUNCH CARDS
70
                        :Multiprogramming Operating System .2
     •   This type of OS is used to execute more than one jobs simultaneously by a single processor.
     •   It increases CPU utilization by organizing jobs so that the CPU always has one job to execute.
     •   Multiprogramming operating systems use the mechanism of job scheduling and CPU
         scheduling.
71
                     Time-Sharing Operating Systems .3
     •   Each task is given some time to execute so that all the tasks work smoothly.
     •   These systems are also known as Multi-tasking Systems.
     •   The task can be from a single user or different users also.
     •   The time that each task gets to execute is called quantum.
     •   After this time interval is over OS switches over to the next task.
72
                 Multiprocessor operating systems .4
     • Multiprocessor operating systems are also known as parallel OS or
       tightly coupled OS.
     • Such operating systems have more than one processor in close
       communication that sharing the computer bus, the clock and
       sometimes memory and peripheral devices.
     • It executes multiple jobs at the same time and makes the processing
       faster.
     • It supports large physical address space and larger virtual address
       space.
     • **If one processor fails then other processor should retrieve
       the interrupted process state so execution of process can
       continue.
73
74
                      Distributed Operating System .5
     •   Various autonomous interconnected computers communicate with each other using a shared
         communication network.
     •    Independent systems possess their own memory unit and CPU.
     •   These are referred to as loosely coupled systems.
     •   Examples:- Locus, DYSEAC
75
                   Network Operating System .6
     • These systems run on a server and provide the capability to manage data,
       users, groups, security, applications, and other networking functions.
     • These types of operating systems allow shared access of files, printers,
       security, applications, and other networking functions over a small private
       network.
     • The “ other" computers arc called client computers, and each computer that
       connects to a network server must be running client software designed to
       request a specific service.
76
77
                       Real-Time Operating System .7
     •   These types of OSs serve real-time systems.
     •   The time interval required to process and respond to inputs is very small.
     •   This time interval is called response time.
     •   Real-time systems are used when there are time requirements that are very
         strict like
           missile systems,
           air traffic control systems,
           Train, etc.
78
                               Different Types of RTOS
     •   Deos (DDC-I)
     •   embOS (SEGGER)
     •   FreeRTOS (Amazon)
     •   Integrity (Green Hills Software)
     •   Keil RTX (ARM)
     •   LynxOS (Lynx Software Technologies)
     •   MQX (Philips NXP / Freescale)
     •   Nucleus (Mentor Graphics)
     •   Neutrino (BlackBerry)
     •   PikeOS (Sysgo)
     •   SafeRTOS (Wittenstein)
     •   ThreadX (Microsoft Express Logic)
     •   µC/OS (Micrium)
     •   VxWorks (Wind River)
     •   Zephyr (Linux Foundation)
79
80
                     Embedded Operating System .8
     • An embedded operating system is one that is built into the circuitry of an electronic
       device.
     • Embedded operating systems are now found in automobiles, bar-code scanners, cell
       phones, medical equipment, and personal digital assistants.
     • The most popular embedded operating systems for consumer products, such as PDAs,
       include the following:
         Windows XP Embedded
         Windows CE .NET:- it supports wireless communications, multimedia and Web
            browsing. It also allows for the use of smaller versions of Microsoft Word, Excel,
            and Outlook.
         Palm OS:- It is the standard operating system for Palm-brand PDAs as well as
            other proprietary handheld devices.
         Symbian:- OS found in “ smart” cell phones from Nokia and Sony Ericsson
81
                              Popular types of OS
     •   Desktop Class
           Windows
           OS X
           Unix/Linux
           Chrome OS
     •   Server Class
           Windows Server
           Mac OS X Server
           Unix/Linux
     •   Mobile Class
           Android
           iOS
           Windows Phone
82
                -:Desktop Class Operating Systems
     • Platform: the hardware required to run a particular operating
       system
       – Intel platform (IBM-compatible)
          •   Windows
          •   DOS
          •   UNIX
          •   Linux
       – Macintosh platform
          • Mac OS
       – iPad and iPhone platform
83        • iOS
                                      Ms-DOS
     • Single User Single Tasking OS.
     • It had no built-in support for networking, and users had to manually install
       drivers any time they added a new hardware component to their PC.
     • DOS supports only 16-bit programs.
     • Command line user interface.
     • So, why is DOS still in use? Two reasons are its size and simplicity. It does
       not require much memory or storage space for the system, and it docs not
       require a powerful computer.
84
                                             Microsoft Windows
     • The graphical Microsoft operating system designed for Intel-platform desktop
       and notebook computers.
     • Best known, greatest selection of applications available.
     • Current editions include Windows 7, 8, 8.1 and 10.
85
                                         Mac OS
     • User-friendly, runs on Mac hardware. Many applications available.
     • Current editions include: Sierra, High Sierra, Mojave, Catalina & Big Sur—Version
       XI(Released in Nov 2020)
86
                                       Linux
     • Linux: An open-source, cross-platform operating system that runs on
       desktops, notebooks, tablets, and smartphones.
        – The name Linux is a combination Linus (the first name of
          the first developer) and UNIX (another operating system.
     • Users are free to modify the code, improve it, and redistribute it,
     • Developers are not allowed to charge money for the Linux kernel itself
       (the main part of the operating system), but they can charge money for
       distributions (distros for short).
87
                             Google Chrome OS
     • Chrome OS. Is a popular thin client operating system.
     • Thin client A computer with minimal hardware, designed for a specific task.
       For example, a thin web client is designed for using the Internet.
88
                     Server Operating Systems
     • Windows Server
       – Familiar GUI interface for those experienced with Windows
     • UNIX
       – Very mature server capabilities, time-tested, large user
         community, stable
     • Linux
       – Free, customizable, many free services and utilities available
89
     Windows Server
90
     UNIX
91
               Tablet and Phone Operating Systems
     • System-on-chip (SoC): An operating system that comes preinstalled on a
       chip on a portable device such as a smartphone.
     • Popular SoC operating systems:
         iOS: for iPad, iPhone
         Android: for a variety of tablets and phones
     • Downloadable applications (apps) from an App store, for example:
         Apple App Store
         Google Play Store
92
                    iOS on the iPhone and iPad
     • The Apple-created operating system for Apple tablets and phones.
     • The current stable version, iOS 14, was released to the public on September
       16, 2020.
93
     Android
     • Android, a popular OS for smartphones and tablets, is
       based on Linux Kernel.
       – Developed by Google
     • Current versions include:
       –   Android 8 Oreo
       –   Android 9 Pie
       –   Android 10
       –   Android 11 (released on Sep, 2020)
94
      Advantage of Linux Operating System
     1. Open Source
         As it is open-source, its source code is easily available.
         Anyone having programming knowledge can customize the operating system.
         One can contribute, modify, distribute, and enhance the code for any purpose.
     2. Security
         The Linux security feature is the main reason that it is the most favourable option for developers.
         It is not completely safe, but it is less vulnerable than others.
         Each application needs to authorize by the admin user.
         Linux systems do not require any antivirus program.
     3. Free
         Certainly, the biggest advantage of the Linux system is that it is free to use.
         We can easily download it, and there is no need to buy the license for it.
         It is distributed under GPL (General Public License).
         Comparatively, we have to pay a huge amount for the license of the other OS
95
     Advantage of Linux Operating System
     4. Lightweight
     The requirements for running Linux are much less than other operating system
     In Linux, the memory footprint and disk space are also lower.
     Generally, most of the Linux distributions required as little as 128MB of RAM
         around the same amount for disk space.
     5. Stability
     Linux is more stable than other operating systems.
     Linux does not require to reboot the system to maintain performance levels.
     It rarely hangs up or slow down. It has big up-times.
96
      Advantage of Linux Operating System
     6. Performance
     Linux system provides high performance over different networks.
      It is capable of handling a large number of users simultaneously.
     7. Flexibility
     Linux operating system is very flexible.
     It can be used for desktop applications, embedded systems, and server applications too.
     It also provides various restriction options for specific computers.
     We can install only necessary components for a system.
     8. Software Updates
     In Linux, the software updates are in user control.
     We can select the required updates.
     There a large number of system updates are available.
      These updates are much faster than other operating systems.
      So, the system updates can be installed easily without facing any issue.
97
      Advantage of Linux Operating System
     9. Distributions/ Distros
     There are many Linux distributions available in the market.
     It provides various options and flavors of Linux to the users.
     We can choose any distros according to our needs.
     Some popular distros are Ubuntu, Fedora, Debian, Linux Mint, Arch Linux,
     For the beginners, Ubuntu and Linux Mint would be useful.
     Debian and Fedora would be good choices for proficient programmers.
     10. Live CD/USB
     Almost all Linux distributions have a Live CD/USB option.
     It allows us to try or run the Linux operating system without installing it.
     11. Graphical User Interface
     Linux is a command-line based OS but it provides an interactive user interface like Windows.
98
      Advantage of Linux Operating System
     12. Suitable for programmers
     It supports almost all of the most used programming languages such as C/C++, Java, Python, Ruby,
          and more.
     Further, it offers a vast range of useful applications for development.
     The programmers prefer the Linux terminal over the Windows command line.
     The package manager on Linux system helps programmers to understand how things are done.
     Bash scripting is also a functional feature for the programmers.
      It also provides support for SSH, which helps in managing the servers quickly.
     13. Community Support
     Linux provides large community support.
     We can find support from various sources.
     There are many forums available on the web to assist users.
     Further, developers from the various open source communities are ready to help us.
99
      Advantage of Linux Operating System
     14. Privacy
     Linux always takes care of user privacy as it never takes much private data from the user.
        Comparatively, other operating systems ask for the user's private data.
     15. Networking
     Linux facilitates with powerful support for networking. The client-server systems can be easily set
        to a Linux system. It provides various command-line tools such as ssh, ip, mail, telnet, and more
        for connectivity with the other systems and servers. Tasks such as network backup are much
        faster than others.
     16. Compatibility
     Linux is compatible with a large number of file formats as it supports almost all file formats.
     17. Installation
     Linux installation process takes less time than other operating systems such as Windows. Further,
        its installation process is much easy as it requires less user input. It does not require much more
        system configuration even it can be easily installed on old machines having less configuration.
10
      Advantage of Linux Operating System
     18. Multiple Desktop Support
     Linux system provides multiple desktop environment support for its enhanced use. The desktop
          environment option can be selected during installation. We can select any desktop environment
          such as GNOME (GNU Network Object Model Environment) or KDE (K Desktop
          Environment) as both have their specific environment.
     19. Multitasking
     It is a multitasking operating system as it can run multiple tasks simultaneously without affecting
          the system speed.
     20. Heavily Documented for beginners
     There are many command-line options that provide documentation on commands, libraries,
          standards such as manual pages and info pages. Also, there are plenty of documents available on
          the internet in different formats, such as Linux tutorials, Linux documentation project,
          Serverfault, and more. To help the beginners, several communities are available such as Ask
          Ubuntu, Reddit, and StackOverflow.
10
                             UNIX Shell and Utilities
                                                                  User
     The shell used to be in the
     kernel but now is a utility outside   Utilities              Shell
     of it.
     Easy to change/debug.
                                                        Kernel
     Many of them (sh, bsh, csh,
     ksh, tcsh, wsh, bash)
     Possible to switch between                       Hardware
10   them (chsh)
     A very simplified Shell
10
10