

- How the two main interaction models work: Graphical User Interface (GUI) and Command Line Interface (CLI).
- How apps are installed, launched, monitored, and removed.
- How applications communicate with the OS via APIs and system calls.
- How the OS handles input/output and provides accessibility features.
Understanding both GUI and CLI workflows helps you pick the right tool for the job: GUI for discoverability and ease, CLI for automation and precision.
GUI vs. CLI: two ways to tell the OS what to do
Most people use a Graphical User Interface (GUI): icons, windows, menus, and touch gestures. GUIs are visual and designed to be intuitive. If you’ve opened a browser, dragged a file, or scrolled settings, you’re using a GUI. The Command Line Interface (CLI) is a text-based interaction model. You type exact instructions into a terminal. The CLI is extremely powerful for repetitive tasks and automation. Example of an interactive CLI tool that lists settings and offers actions:- Windows: PowerShell — https://learn.microsoft.com/powershell/
- Linux/macOS: Bash — https://www.gnu.org/software/bash/
- Many macOS users now use Z shell (zsh) — https://www.zsh.org/
| Interface Type | Best for | Example |
|---|---|---|
| GUI | Discoverability, casual users, touch-based workflows | Open a browser, drag files |
| CLI | Automation, precision, bulk operations | for i in {1..5}; do echo "..." > note_$i.txt; done |
| Shell | Command interpretation and scripting | bash, zsh, PowerShell |


Application lifecycle: install, launch, run, quit, and uninstall
The OS controls an app’s lifecycle from installation to removal, managing resources and permissions along the way. Installing apps- Mobile (Android/iOS): typically via an app store.
- Desktop (Windows/macOS/Linux): download an installer, use a system store, or use a package manager such as Homebrew on macOS or Linux.
- Tap an icon, select from a menu, or run the app from a terminal.
- Open a file and the OS uses file associations to pick the right app.
- The OS manages memory, CPU scheduling, and resource limits.
- Foreground apps usually get higher scheduling priority; background apps may be paused, limited, or throttled.
- Background services often continue running (downloads, syncs, music).
- Completely quitting or swiping an app away typically frees memory and resources.
- Minimizing or switching away often just hides the UI; the OS decides whether to keep the process running or to pause/terminate it to reclaim resources.
- Mobile platforms often pause apps and resume them later; the OS handles lifecycle transitions and resource cleanup.
- Mobile: press and hold an icon and select remove.
- Desktop: use an uninstaller, drag to Trash/Recycle Bin, or remove via a package manager.


- GUI = visual, intuitive, and discoverable.
- CLI = typed, precise, and scriptable (great for automation).
- The OS is the intermediary: receiving input, running apps, managing resources, and enforcing security and accessibility.
- App lifecycle includes install → launch → run → quit → uninstall, and the OS orchestrates each step.
- Graphical User Interface concepts: https://en.wikipedia.org/wiki/Graphical_user_interface
- Command Line basics and shells: https://en.wikipedia.org/wiki/Command-line_interface
- Homebrew package manager: https://brew.sh
- htop system monitor: https://htop.dev
Tip: Don’t assume swiping an app away always stops background activity. Many systems pause apps rather than fully quit them. Check your OS documentation for app lifecycle specifics and battery/resource implications.