eolas/zk/Operating_system_API.md

38 lines
1.2 KiB
Markdown
Raw Normal View History

2024-07-17 07:00:04 +01:00
---
title: Operating_system_API
2024-07-17 08:00:04 +01:00
tags: [operating-systems]
2024-07-17 07:00:04 +01:00
created: Wednesday, July 17, 2024
---
# Operating system API
2024-07-17 08:00:04 +01:00
A user can interact with the operating system either via the GUI or the shell.
(The UI is in fact an abstraction for interfacing with the shell.) When
_programs_ interact with the operating system they use the operating system's
API.
Every OS has an API. This specification details how a program should interact
with the OS, exposing functions, properties and data types.
Whether using the GUI or a terminal emulator, the shell translates the user's
commands into API calls. The API the invokes internal operating system code to
perform the action.
![OS API diagram](../img/OS-api.svg)
## Example: opening a file
A user can use a file explorer and the mouse to open a file. However a running
application doesn't have to do this. Instead it can call the OS API.
On a Unix-like system the applicaton would use the `open` API function to open
the file:
```
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.