đź’»

Evolution and Functionality of Operating Systems

Sep 7, 2024

Crash Course Computer Science: Operating Systems

Introduction

  • Lecture by Carrie Anne
  • Overview of the evolution of computers and operating systems (OS)

Early Computers (1940s-1950s)

  • Ran one program at a time, using punch cards.
  • Manual process: Programmers wrote code, handed it to operators.
  • Slow computers led to the need for self-operating systems.

Birth of Operating Systems

  • OS as a program with special privileges on hardware.
  • First introduced in the 1950s as computers became more affordable and powerful.
  • Early OSes allowed batch processing of programs, reducing downtime.

Batch Processing

  • Computers could automatically load and execute batches of programs.

Challenges for Programmers

  • Programmers needed to interface with various hardware peripherals.
  • Writing low-level code was time-consuming and complex.
  • Operating Systems introduced device drivers to simplify this process.
    • Example: Function calls like "print highscore" handled by the OS.

Resource Management in OS

Multitasking

  • Developed in the late 1950s with the Atlas supercomputer.
  • Atlas Supervisor (1962) used scheduling to run multiple programs.
  • Allowed programs to continue running while waiting for I/O operations.

Memory Management

  • Programs allocated distinct memory blocks; each program had its own memory space.
  • Virtual Memory allowed programs to assume memory starts at address 0.
  • OS managed memory allocation, providing dynamic memory allocation.
  • Memory Protection ensured one program couldn't overwrite another's memory.

Significant Developments by 1970s

  • Institutions had access to computers with multiple users via terminals.
  • Time-sharing systems developed to allocate resources among users.
  • Multics (1969): Influential time-sharing OS, but overly complex.

Unix

  • Developed by Dennis Ritchie and Ken Thompson after Multics.
  • Separated OS into kernel (core functionality) and tools.
  • Simplicity led to Unix's popularity and support for diverse hardware.

Personal Computers and Operating Systems in the 1980s

  • Rise of personal/home computers led to simpler OS designs.
  • MS-DOS (1981): Popular but lacked multitasking and memory protection.
  • Early versions of Windows (1985) had similar limitations.

Modern Operating Systems

  • Current OS: Mac OS X, Windows 10, Linux, iOS, Android.
  • All support multitasking, virtual memory, and memory protection.
  • Ability to run multiple applications simultaneously due to advancements in OS development.

Conclusion

  • Importance of decades of research in OS for modern computing capabilities.