Versus
    32-bit vs 64-bit
    Annotations vs Decorators
    BigQuery vs Bigtable
    Block Storage vs File Storage vs Object Storage
    C vs C++
    Canvas vs SVG
    Constructor vs Init() vs Factory
    Containers vs Virtual Machines (VMs)
    DOM vs Virtual DOM vs Shadow DOM
    DQL vs DDL vs DCL vs DML
    Dagger vs Guice
    Data Mining vs Machine Learning vs Artificial Intelligence vs Data Science
    Flux vs Redux
    GCP API Gateway vs Cloud Endpoint
    GCP Cloud Run vs Cloud Functions vs App Engine
    GCP DataFlow vs Dataproc
    Google Analytics 4 vs Universal Analytics
    Google Internal vs Open Source
    HEIC vs HEIF vs HEVC vs JPEG
    Java vs C++
    Jetty vs Netty
    Kotlin vs Java
    LLVM vs JVM
    Linux vs BSD
    Microcontroller vs Microprocessor vs Computer
    Node.js vs Erlang
    POSIX vs SUS vs LSB
    Pass-by-value vs Pass-by-reference
    Proto2 vs Proto3
    PubSub vs Message Queue
    REST vs SOAP
    React vs Flutter vs Angular
    Rust vs C++
    SLI vs SLO vs SLA
    SRAM vs DRAM
    SSD vs HDD
    Software Engineer vs Site Reliability Engineer
    Spanner vs Bigtable
    Stack based VM vs Register based VM
    Stateless vs Stateful
    Static Site Generation vs Server-side Rendering vs Client-side Rendering
    Strong Consistency vs Eventual Consistency
    Subroutines vs Coroutines vs Generators
    Symlinks vs Hard Links
    Tensorflow vs PyTorch
    Terminal vs Shell
    Vi vs Vim vs gVim vs Neovim
    WAL vs rollback journal
    gtag vs Tag Manager
    stubs vs mocks vs fakes

POSIX vs SUS vs LSB

Updated: 2021-11-25

TL;DR

SUS extends POSIX; LSB extends POSIX and SUS, with certain conflicts.

Only SUS certified OS can be called "Unix" (because the owner of SUS, the Open Group, owns the Unix trademark); NOT all Linux distros are LSB compliant, e.g. Debian and Ubuntu are not.

POSIX

Portable Operating System Interface (POSIX): a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems.

POSIX is not UNIX officially simply because IEEE does not own the trademark

POSIX standardizes:

  • C headers
  • shell and unitilities: ls, awk, echo, vi, etc.
  • System Interfaces: system calls and library functions

Certification:

  • POSIX-certified (passed the automated conformance tests.): macOS, Oracle Solaris, Huawei EulerOS
  • Mostly POSIX-compliant: Linux, FreeBSD, Android, Darwin

Note that Darwin forms the Unix-based core set of components for macOS. Darwin is mostly POSIX-compatible but has never been certified, macOS is certified.

Zsh is able to emulate POSIX shells, but its default mode is not POSIX compatible

Invoking Bash with the --posix option or stating set -o posix in a script causes Bash to conform very closely to the POSIX

https://en.wikipedia.org/wiki/POSIX

Single UNIX Specification

POSIX standards form the core of the Single UNIX Specification. Sometimes we use "SUS" to refer to the full standard, and "POSIX" to refer to the base standard and possibly the non-Unix-centric option groups. (which means POSIX is a subset of SUS)

Only the compliant operating systems can use the "UNIX" trademark. Very few BSD and Linux-based operating systems are submitted for compliance with the Single UNIX Specification

macOS is compliant.

Now the Open Group certifies both POSIX and SUS. POSIX and SUS started to converge after 2001.

Linux Standard Base (LSB)

https://en.wikipedia.org/wiki/Linux_Standard_Base

Linux is NOT POSIX-certified due to high costs.

LSB is maintained by a working group at the Linux Foundation.

The LSB is based on the POSIX, SUS, and several other open standards, but extends them in certain areas.

The LSB specifies for example: standard libraries, a number of commands and utilities that extend the POSIX standard, the layout of the file system hierarchy, run levels, the printing system, including spoolers such as CUPS and tools like Foomatic and several extensions to the X Window System.

  • ABI: application binary interface (The LSB is designed to be binary-compatible)

In September 2015, the Debian project confirmed that while support for Filesystem Hierarchy Standard (FHS) would continue, support for LSB had been dropped. Ubuntu followed Debian in November 2015.

To get LSB version:

$ lsb_release -a

There are conflicts between the LSB and The POSIX standards