diff --git a/.zk/notebook.db b/.zk/notebook.db index e35e302..0444e4c 100644 Binary files a/.zk/notebook.db and b/.zk/notebook.db differ diff --git a/zk/Operating_system_API.md b/zk/Operating_system_API.md index 08f2e81..3b952dc 100644 --- a/zk/Operating_system_API.md +++ b/zk/Operating_system_API.md @@ -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.