--- 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 #else #include #endif ... #endif /* !_STDIO_BRIDGE_H_ */ ~~~~~~~~~~~