Introduction
Objectives
We would like to :
- Define operating systems.
- Discuss, at a high level, what operating systems do.
Notes
- This is chapter 1 of the book.
- The first real sentences of the book
An operating system is the software that manages a computer's hardware. It also provides a basis for application programs and acts as an intermediary between the computer user and the computer hardware.
- Operating systems, like most other aspects of computing are a human creation
- There have been many different ideas on how to do this.
- They have evolved over time,
- In response to hardware changes
- In response to usage changes
- And other pressures
- And different operating systems have different goals.
- So there is no single "right" way to do things.
- Like many other high level cs courses, OS is a sub-topic of computer science that can lead to a PhD.
- Quick exercise: Name all of the operating systems you know, their goal and the hardware they run on.
- What do operating systems do?
- Look at the figure from page 4
- Hardware
- OS
- Applications
- User
- What are each of these?
- I would debate this somewhat, as the user interacts with the OS?
- The authors state the the OS provides the environment where other software can do useful work.
- The user thinks
- They "own" all of the hardware
- This might be true on your laptop or cell phone.
- But it is not in a shared environment.
- The OS is there to provide
- maximum utilization of this hardware
- and make it easy to use.
- Interaction ranges from
- a cell phone, where the user is the entire raison d'être.
- To an embedded device such as the computer in your car, where the user is far removed from the os/hardware.
- The system (hardware)
- The system consists of:
- a small number of processors (CPU/Cores)
- a limited amount of memory
- a set of special devices
- ...
- Who should be allowed to use these, for how long and in what capacity?
- What happens when there is a conflict? What about an error?
- In the human world, we have laws, protocols, customs and such that control the use/access/control of physical and not so physical resources.
- The diversity of uses/hardware makes it hard to precisely define what an operating system is.
- A Keurig probably is not a computer, just preprogrammed logic.
- An Arduino nano
- probably doesn't run an OS, just a single application.
- But it looks like someone is trying to develop ArduinoOS.
- Mostly focused on tasks, no file system, no shell, no external devices
- This might not work on the nano, I didn't mess with it.
- There appear to be others under development.
- Modern cars might run Android Automotive on their infotainment system.
- My truck apparently runs Chevy Infotainment 2 system.
- But actual truck might be controlled by a Chevy proprietary ECM/ECU.
- Take a look at this video.
- They connected via an exposed network port to the infotainment system.
- They then bridged to the car's internal network
- And issued commands on this network.
- So the book resorts to a laundry list of items
- The kernel is the "single program" that runs.
- We will see that this is a bad definition
- It has a number of supporting systems programs that interact with the OS to perform OS like tasks
- And application programs or applications/apps that provide actions the users want to perform.
- We will probably spend the rest of the semester on this definition.