Autosave: 2024-07-20 12:00:03

This commit is contained in:
thomasabishop 2024-07-20 12:00:03 +01:00
parent db306627dd
commit 6bc6643696
2 changed files with 22 additions and 3 deletions

Binary file not shown.

View file

@ -7,9 +7,12 @@ created: Wednesday, July 17, 2024
# Operating system API
A user can interact with the operating system either via the GUI or the
[shell](Intro_to_the_Unix_shell.md). Both ultimately access the OS via the shell
since the UI is an abstraction layer of the shell. When _programs_ interact with
the operating system they use the **operating system's API**.
[shell](Intro_to_the_Unix_shell.md). (Both ultimately access the OS via the
shell since the UI is an abstraction layer of the shell.)
When _programs_ interact with the operating system they use the **operating
system's API** directly. The GUI and shell also invoke the OS API but the access
is mediated.
Every OS has an API. This specification details how a program should interact
with the OS, exposing functions, properties and data types.
@ -38,3 +41,19 @@ open("foo.txt", 0_WRONLY|0_CREAT)
This command makes the action write-only and creates the file because it does
not yet exist. When the user opens a file in their File Explorer, the
application translates their graphical actions into this API call.
## Different OSs have different APIs
Unix-like and Linux operating systems use variations on the **Portable Operating
System Interface** (POSIX) standard. This defines the OS API and also the rules
for the shell's behaviour and its included utilities.
Variations on this include _Cocoa_, macOS's API and Android's _Android Platform_
API.
Windows has its own API called _The Windows API_. The original version was
16-bit called _Win16_, then when it moved to 32-bits it became _Win32_. When it
moved to an x86 [instruction_set_architecture](Instruction_set_architectures.md)
it became _Win64_. Starting with Windows 10, it introduced the _Universal
Windows Platform_ which aims to make app development consistent accross
different devices that run Windows.