blob: 1da2d6607fe51e3e5295a34d5cea68c6c20a23b1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
---
stand_alone: true
ipr: none
cat: std
status: draft
area: Systems Engineering
wg: OSMORA Standards Group
docname: OAP-0002-DRAFT
title: OSMORA Uniform System Interface
abbrev: OUSI
lang: en
kw:
- ousi
- posix
author:
- role: editor
name: Ian M. Moffett
org: OSMORA
city: Washington, DC
region: Southeast
code: 20020
email: ian@osmora.org
--- abstract
OSMORA Uniform System Interface is a POSIX replacement for modern computing.
--- middle
# Introduction
POSIX is a foundational standard and has evolved alongside the rapidly changing world of
computing. However as things increasingly advance, it is becoming growingly reasonable to
consider POSIX outdated. Despite its inherent challenges and limitations, the POSIX standard
is still an essential component within many operating systems today. The OUSI standard aims to
replace POSIX while still mantaining compatibility with legacy POSIX applications.
## Purpose
The goal of OUSI is to replace POSIX by being more flexible, intuitive and simplified while
still supporting legacy POSIX applications through compatibility mechanisms such as _POSIXSHIM.
# Requirements Language
{::boilerplate bcp14-tagged}
# Compatibility
OUSI maintains compatibility through its _POSIXSHIM layer. In order for legacy
POSIX applications to work with OUSI, they MUST link with the necessary compatibility
libraries and expose legacy POSIX mechanisms by defining "_POSIXSHIM" globally.
# Standard C library headers
Standard C library headers SHOULD be written with OUSI in mind while exposing
legacy POSIX mechanisms if requested.
## Example of stdio.h
~~~~~~~~~~~
#ifndef _STDIO_BRIDGE_H_
#define _STDIO_BRIDGE_H_ 1
#if !defined(_POSIXSHIM)
#include <ousi/stdio.h>
#else
#include <posixshim/stdio.h>
#endif
...
#endif /* !_STDIO_BRIDGE_H_ */
~~~~~~~~~~~
|