The Programmer's Handbook by Michael Wilson
  • Introduction
  • Data Structures
    • Introduction
    • Arrays
    • Lists
    • Stacks and Queues
    • Hash Tables
    • Trees
    • Tries
    • Graphs
  • Algorithms
    • Introduction
    • Sorting
    • Graph
    • Greedy
    • Dynamic Programming
    • Backtracking
    • Branch and Bound
    • Divide and Conquer
  • Web Systems
    • Introduction
  • Computer Organization
    • Introduction
    • Combinational Logic
    • Assembly Instruction Sets
    • Floating Point Representation
    • Finite State Machines and CPUs
    • Pipelining
    • Caching
  • Operating Systems
    • Introduction
    • Concurrency
    • Synchronization
    • Virtual Memory
    • File Systems
  • Computing Theory
    • Introduction
  • Languages
    • Introduction
    • C++
    • Python
    • Go
  • *nix Systems
    • Introduction
    • Commands
    • Directories
Powered by GitBook
On this page
  • Why have an Operating System?
  • What is an Operating System?
  1. Operating Systems

Introduction

PreviousCachingNextConcurrency

Last updated 5 years ago

Why have an Operating System?

While we can run applications directly on hardware without an operating system (think of ), as computers have become more powerful we have wanted to run more and more complicated software on our machines, often alongside other applications. If we wanted to run more than one application on an Arduino, not only would there be no mechanism for the applications to share resources but if you wanted to run the same applications on different hardware you would need to rewrite a lot of code. Operating systems provide an abstraction for hardware, allowing both and the efficient sharing of resources.

What is an Operating System?

The operating system is the software layer between user applications and computer hardware.

Arduino
portability