User Interface (UI)
Almost all operating system have these.
The system must be able to load a program into memory and to run that program, end execution, either normally or abnormally (indicating error).
A running program may require.
Programs needed to read and write files and directories, create/delete them, search them, list file information, and permission management.
Process may exchange information, on the same computer or between computers over a network.
OS needs to be constantly aware of possible errors.
When multiple users or multiple jobs running concurrently.
Keep track of which users use how much and what kinds of computer resources.
Ensuring that all access to system resources is controlled.
System from outsiders requires user authentication, extends to defending external I/O devices from invalid access attempts.
Command Line Interpreters(CLI)
Special system program that runs when a users logs in. Executes user commands.
Graphical User Interface(GUI)
Users employ a mouse-based window-and-menu system - desktop metaphor.
Represents files, programs, and actions.
Application Programming Interface(API)
Accessible via high-level programs.
Sequence to copy the contents of one file to another file.
System call interface
Intercepts function calls in the API and invokes the associated system calls within the OS.
Full suite of software to execute application written a programming language.
Determining bugs, single step execution
Managing access to shared data between processes.
Provide a convenient environment for program development and execution.
Used to store and retrieve configuration information.
Special commands to search contents of files or perform transformations of the text.
Compilers, assemblers, debuggers, and interpreters sometimes provided.
Application Binary Interface (ABI)
Architecture equivalent of API, defines how different components of binary code can interface for a given operating system on a given architecture, CPU.
OS written as
A partition the task into smaller components or modules.
Moves things as much from the kernel into the user space.
Communication takes place between user modules.
Best current methodology for OS design.
Loadable Kernel Modules(LKMs)
Set of core components and can add addition services via modules, either at boot ime or at run time.
Combines multiple approaches to address performance, security, and usability needs.