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).