From ffc00cc614cd10e106389fba21a952b5c5fe7c62 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Sun, 2 Mar 2025 03:43:50 -0500 Subject: OAP: Add OAP-0002-DRAFT (OUSI) Signed-off-by: Ian Moffett --- kd/oap-0002.md | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 kd/oap-0002.md (limited to 'kd') diff --git a/kd/oap-0002.md b/kd/oap-0002.md new file mode 100644 index 0000000..e8b8fef --- /dev/null +++ b/kd/oap-0002.md @@ -0,0 +1,73 @@ +--- +stand_alone: true +ipr: none +cat: info +area: Systems Engineering +wg: OSMORA Standards Group + +docname: OAP-0002-DRAFT + +title: OSMORA Uniform System Interface +abbrev: OUSI +lang: en +kw: + - oap + - amelioration +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} + +# Compatability + +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 +#else +#include +#endif +... +#endif /* !_STDIO_BRIDGE_H_ */ +~~~~~~~~~~~ -- cgit v1.2.3