Operating system
An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs. All computer programs, excluding firmware, require an operating system to function.[1]
Explain the role of an operating system[edit]
Task | What is the role of the OS? |
---|---|
Managing memory | The memory management function keeps track of the status of each memory location, either allocated or free. It determines how memory is allocated among competing processes, deciding which gets memory, when they receive it, and how much they are allowed[2]. An operating system must also keep track of programs in memory. |
Manage peripherals | Usually OS manages peripherals via a device driver:
|
Manage hardware interfaces | This is related to peripherals, above. A hardware interface is the wires, plugs and sockets that hardware devices use to communicate with each other.[3] |
Allocating storage | This is not only reading, storing and writing data to a disk, but also attaching ownership and permissions to storage AND how and where on the disk the data is stored. |
Swapping between programs or time-slicing | With a multi-user system, a time-slice is the set amount of processing time each user gets. With a single-user system, a time-slice is the set amount of processing time each program gets. Slices (also called threads) are alternately processed to give the illusion of many tasks happening at once[4] |
Different operating systems[edit]
- Linux
- OS X
- Windows
- iOS
- Android OS
- Google chrome OS (Based on Linux)
- Playstation OS (Orbis)
- Blackberry
- Nokia
A good video about operating systems[edit]
An excellent video about operating systems[edit]
Virtual memory[edit]
As we discuss the ways in which an operating system manages resources, we start to learn about virtual memory. A superb video can be found below to help you understand this:
Tools to view internal management of resources[edit]
An operating system also provides tools for managing the operating system. These are often called utilities or system tools. Click here for a brilliant graphic showing the different types of tools you can use to view inside the Linux operating system. These tools give you insight and information for how the operating system is managing different resources. Below is a table with resources and tools to help you view how the OS is managing a particular resource.
The OS manages | Linux tools you can use | OS X tools you can use |
---|---|---|
Memory | top, htop, free, vmstat | top, vm_stat, (gui) Activity monitor |
Processes | top | top, (gui) activity monitor |
Files | File system, df, du, mount, lsof | lsof, (gui) activity monitor, mount, df -h |
Security | fstab, last, who, /var/log/auth.log | last, who, (gui) console, ls -altr, groups |
CPU Scheduling | perf | (gui) Activity monitor |
Devices, Device I/O | iotop, iostat | (gui) activity monitor |
Interrupts | perf | ?? |
Networks | netstat, top, tcpdump, iptraf, iftop, nmon | netstat, lsof -i 4tcp |
Standards[edit]
- I can explain the role of the operating system in terms of managing memory, peripherals and hardware interfaces.