Page 21 - DCAP507_SYSTEM_SOFTWARE
P. 21

Unit 2: Evolution of Operating System




          Introduction                                                                          Notes

          If we just build a computer, using physical components, we end up with a lot of assembled
          metal, plastic and silicon. In this state the computer can do nothing useful.  To turn it into one of
          the most versatile tools known to man we need software. We need applications that allow us to
          write letters develop (other) programs and calculate cash flow forecasts. But, if all we have are
          the applications, then each programmer has to deal with the complexities of the hardware. If a
          program requires data from a disc, the programmer would need to know how every type of disc
          worked and then be able to program at a low level in order to extract the data. In addition, the
          programmer would have to deal with all the error conditions that could arise. As an instance, it
          is a lot easier for a programmer to say READ NEXT RECORD than have to worry about moving
          the read/write heads, waiting for the correct sector to come around and then reading the data
          (and this is very simplified view of what actually happens). It was clear, from an early stage in
          the development of computers, that there needed to be a layer of software that sat between the
          hardware and the software. This had led to this view of a computer. The bottom layer of the
          hardware consists of the integrated circuits, the cathode ray tubes, the wire and everything else
          that  electrical  engineers  use  to  build  physical  devices.  The  next  layer  of  hardware
          (microprogramming) is actually software (sometimes called firmware) that provides basic
          operations that allow communication with the physical devices. This software is normally in
          Read Only Memory (and that is why it is called firmware).


          The  machine language layer defines the instruction  set that  are available to the  computer.
          Again, this layer is really software but it is considered as hardware as the machine language will
          be part and parcel of the hardware package supplied by the hardware supplier. The operating
          system  is  a  layer  between this  hardware  and  the  software  that  we  use.  It  allows  us  (as
          programmers) to use the hardware in a user friendly way. Furthermore, it allows a layer of
          abstraction from the hardware.


                 Example: We can issue a print command without having to worry about what printer is
          physically connected to the computer.
          In fact, we can even have different operating systems running on the same hardware (e.g., DOS,
          Windows and UNIX) so that we can use the hardware using an operating system that suits us. On
          top of the operating system, we have the system software. This is the software that allows us to
          do useful things with the computer, but does not directly  allow us to use  the computer for
          anything that is useful in the real world (this is a broad statement which we could argue about
          but system software really only allows us to use the computer more effectively). It is important
          to realize that system software is not part of the operating system. However, much system
          software is supplied by the computer manufacturer that supplied the operating system. But,
          system software can be written by programmers and many large companies  have teams of
          programmers (often called system programmers) who's  main aim is to make the operating
          system easier to use for other people (typically programmers) in the organization.

          The main difference between the operating system and system software is that the operating
          system runs in kernel or supervisor mode where as the system software and applications run in
          user mode. This means that the hardware stops the user programs directly accessing the hardware.

                 Example: Due to the above restriction, you cannot, say, write your own disc interrupt
          handler and replace the one in the operating system. However, you can write your own (say)
          command shell and replace the one supplied with the computer.

          Finally, at the top level we have the application programs that, at last, allow us to do something
          useful.



                                           LOVELY PROFESSIONAL UNIVERSITY                                   15
   16   17   18   19   20   21   22   23   24   25   26