1.5 - Systems Software

Operating Systems

- An operating system (OS) is a piece of software that provides an interface (I/O) between the use and the hardware in a computer system.
- An OS deliberately hides the inner workings of a computer from the user, in order to make it easier to use. For example, the user doesn't need to know the memory address of a running program, so it won't show that unless explicitly requested.
- An OS has 5 main functions: Providing a user interface (UI), managing memory and the CPU, managing peripherals and the device drivers (drivers let the OS interact with hardware), managing users (user accounts), and managing files.


Memory and CPU management

- Memory management is the process where the OS allocates (sections off) RAM between different programs that are open at the same time.
- The RAM is allocated based on priority and usage. A program with higher RAM usage will be allocated more RAM (as programs can have significantly different resource requirements), and a program actively in use by the user will get higher RAM allocation priority than a background application, who may have its data demoted to virtual memory.
- The OS dynamically manages the memory, so no program is allocated lots more memory than it needs.
- Memory management makes multitasking possible.

How multitasking is made possible

- 'Multitasking', in the computational sense, is when the OS is simultaneously managing system resources to make the user feel like they are using multiple programs at the same time.
- The OS splits tasks and allocates system resources to achieve this.
- Since a CPU can only execute one instruction at a time, but it can execute many instructions at high speed, the system is able to constantly switch between programs in order to maintain responsiveness.


User Interfaces

- A user interface, or UI, is how a user interacts with the operating system.
- The most common UIs include a Command Line Interface (CLI), a Graphical User Interface (GUI), or a Mobile UI.

Command Line Interfaces

A CLI uses text-based commands to interact with the user. advanced users are a lot more likely to use a CLI (like me writing this lmao) and examples of CLIs are MS-DOS (officially Microsoft Disk Operating System, but the original DOS was QDOS, or.. uh... 'Quick and Dirty Operating System'), and Windows Command Processor (cmd.exe).

Graphical User Interfaces

A GUI uses Windows, Icons, Menus and Pointers (WIMP) to interact with the user. You're probably using one right now, and examples include the Desktop Environments of Windows, MacOS, Ubuntu, and many more.

Mobile User Interfaces

Mobile UIs are basically GUIs but optimised for mobile. They respond to touch input, rather than needing a mouse to use them.


Peripherals

Peripheral management is defined as the process (carried out by the Operating System) which manages the way peripherals (like a mouse or speaker) interacts with software. It allocates resources to them, and manages them (which makes plug-and-play) possible, so your computer automatically detects peripherals and configures them without (much) user input.


Device Drivers

A device driver is a piece of software that is used to control a piece of hardware. Peripherals (and any hardware) require device drivers in order to be used with the OS, but the OS will have generic device drivers built in which are designed to enable basic compatibility with as many devices as possible of that type and enables PnP (plug-and-play). If a device requires specific features not present in the generic driver, a separate driver must be installed, which can usually be downloaded from the manufacturer. Drivers are OS specific, and receive updates for as long as the device is supported.


User Management

- User management is the process that an OS carries out to allow different users to log onto a computer (user accounts).
- The OS will let each user have different settings, and permissions (access rights) to access resources.
- A user can have administrator rights, which gives them the ability to manage other users and permissions.


File Management

- File management is where the OS creates, organises, manipulates and accesses files and folders on a computer system.
- The OS manages the physical location of data on both primary and secondary storage.
- File management gives the user the ability to create, name, rename, copy, move, and delete files and folders.
- Permissions is also a part of file management, so based on user permissions they may not be able to do (any number) of those tasks with files/folders (see image below).
- The OS may provide a search function to find files (tags, folders, file types, file content, etc.)

Permissions for this file in Windows


Utility Software

- Utility software is software designed to help maintain, troubleshoot (or repair), or enhance operation of, a computer system.
- Utility software is designed top perform specific tasks, and interacts with hardware, for example an SSD (for a disk cleanup utility or something).
- Utility software comes installed with the operating system and is often crucial to its functioning.
- There are three types of utility software you need to know about: defragmentation, compression and encryption, but since you also need something for troubleshooting task managers also come up a bit.


Defragmentation

- Defragmentation is part of the maintain category of utility software, and its purpose is to group fragmented files (where files are spread out all over the physical spinning platter of a magnetic drive), back together to speed up access times.
- As data is deleted over time, gaps are left on a drive and as new data fills these gaps data gets fragmented.
- It's important to note that defragmentation does not help an SSD.
- Honestly I'm not sure how well I can explain this so go watch this video if you're stuck.


Compression

- This is explained in 1.2_2, so I'll keep it brief, but compression (enhance) reduces the amount of secondary storage space required by performing an algorithm on the original data.
- Lossy compression removes data from the original data, so the original file cannot be recovered from the compressed version, but lossless compression just represents data more efficiently, so the original files can be recreated.


Encryption

- Encryption (enhance) is where data is scrambled, using an algorithm from plain text into cipher text, so that only someone with the 'key' can access it.
- Encryption software enhances security and keeps data safe from attackers.
- For example, encryption is used to store passwords.
- As an example of what it looks like, by using the AES-256 encryption standard 'AQA's Basement' becomes 'Iba1CyzG+i7g+kZxOVpnvw==' when using the key 'cs'.


Task Manager

- A task manager is a software that is built into the OS to allow a user to monitor system resources and start/kill programs 'tasks' for troubleshooting.
- A task manager gives the user info such as processes, performance, startup apps, users, system services, resource utilisation, and more.
- In Windows, the Task Manager is accessible by searching for taskmgr.exe, or in Linux (or MacOS) you can run top from the terminal (CLI).