An operating system (OS) is software that manages computer hardware and software resources, providing a layer between applications and the hardware.
It handles memory allocation, process scheduling, file systems, and device I/O, so that programs can run without directly interacting with hardware.
Linux is an open-source operating system commonly used for servers and virtual machines.
See Linux for more details.
macOS is Apple's proprietary operating system for Mac computers.
It is based on Unix, so many command-line tools and workflows that work on Linux also work on macOS.
iOS is Apple's proprietary operating system for iPhones and iPads.
Like macOS, it is based on Darwin (a Unix-like core), but it is designed for mobile devices with touchscreens rather than desktop computers.
Windows is Microsoft's proprietary operating system widely used on personal computers.
It uses a different file system structure and command-line environment from Linux and macOS.
Students on Windows can use WSL to run a Linux environment.
WSL (Windows Subsystem for Linux) is a feature of Windows that lets you run a Linux environment directly on Windows, without a virtual machine.
Docs:
Tip
To use WSL with VS Code, see (Windows only) Set up running VS Code in WSL.
A process is an instance of a running program.
When you execute a program, the operating system creates a process that contains the program's code, memory space, variables, and system resources. Each process has a unique process ID (PID) and runs independently of other processes.
Processes can be created, managed, and terminated using various shell commands.
They form the basis of multitasking in the operating system.
A background process is a process that runs without holding the terminal — the shell prompt returns immediately and the process continues running while it is not attached to any terminal session.
You can start a background process in the shell by appending & to a command:
<command> &
A PID (Process ID) is a unique numerical identifier assigned by the operating system to each running process. PIDs help the operating system to track and manage individual processes.
PIDs are used by various system commands to interact with specific processes, such as terminating them, checking their status, or monitoring their resource usage.
PIDs let the operating system handle multitasking.
A service is a long-running process that performs specific system functions or provides functionality to other processes and applications.
Services typically start automatically during system boot and run in the background without direct user interaction. They can be managed using system service managers like systemd, init, or service scripts.
Common examples include web servers, database servers (MySQL/PostgreSQL), SSH daemons, and network services.
Services often listen on specific ports to handle incoming requests.
They form the backbone of system functionality and network communications.
A user is an account on the operating system that can run processes and own files.
Each user has a username and a set of permissions that determine what resources they can access or modify.
A username is the unique name that identifies a user account on the operating system. It is used when logging in to the system.
The username (without < and >).
Replace this placeholder with admin.
A group is a collection of users that share the same access permissions to files and directories.
Groups allow an administrator to manage permissions for multiple users at once: adding a user to a group grants them all the group's permissions.
Each user has a primary group and can belong to additional supplementary groups.
A group name is the unique name that identifies a group on the operating system. It is used when managing group membership and permissions.
The group name (without < and >) that coincides with the <user>.
The user <user> is in the group <user-group>.
A permission is a rule that controls whether a user or group can read, modify, or execute a resource such as a file or directory.
Permissions determine what actions each user can perform on the system, preventing unauthorized access and protecting shared resources.
See Linux permissions for how permissions work on Linux.