User
Depends on | What is an OS |
---|
Rather than taking a bottom-up view at operating systems mechanisms, we can also summarize operating system facilities from the user's perspective - a top-down view, so to speak. Some parts of an operating system are buried under many layers of abstraction, while other parts are directly exposed to users, whether they are an application developer, or an end-user.
An example would be a filing system: a user might want to open (and close!) files, read and write data, or keep track of attributes such as file permissions; the user does not necessarily care about the particular implementation.
Here are several lists covering different ways of interacting with the operating system. Look through them, and if you come across something you've seen before, it might be a good idea to start there.
Command level
Operations exposed via the command-line interface.
- Environment Variables
- Everything is a File
- Errors
- man
&
and process spawning- Pipes
- Search Paths
- Shell
- Superuser
- Streams
Filing
Concepts about files a user is likely to run into when using an operating system.
- Disk Partition
- File Attributes
- File Locking
- File Permissions
- Links
- Memory Mapped Files
- Journalling File System
- SETUID
IO
Concepts a user might run into when having their computer communicate with others.
Programming interface
Useful facilities provided to a programmer by the operating system.
- Application Binary Interface (ABI) (Not API!)
- Containers
- Dynamic Memory Allocation
- Emulator Trap
- Errors
- Exceptions
- Instruction Set Architecture (ISA)
- Locks
- Pipes
- Reentrancy
- Shared Memory
- Unix Signals
- Streams
- System Calls
OS Components
Essential parts of the operating system often exposed to the user or a devloper.
Not strictly OS topics
Basic concepts that are often encountered, but are not strictly related to OS.
- Arrays
- Buffer Overflow
- Extra:Pointer Arithmetic
- Pointers
- Relocatable Code
- Spooling and Buffering
- Structures