A portable, self-contained implementation of the OpenBSD Korn Shell (ksh) that runs across many operating systems and compilers.
oksh is a portable implementation of the OpenBSD Korn Shell (ksh) that brings the reliable OpenBSD shell experience to many other operating systems. It solves the problem of shell inconsistency across platforms by providing a single, well-tested ksh that works everywhere from traditional Unix systems to modern environments like Android and WSL.
System administrators, developers, and users who need a consistent Korn Shell experience across multiple operating systems, particularly those managing heterogeneous environments or working on less common platforms.
Developers choose oksh because it offers genuine OpenBSD ksh functionality with exceptional portability, supporting more platforms and compilers than other ksh ports while maintaining upstream compatibility and a self-contained, dependency-minimal design.
Portable OpenBSD ksh, based on the Public Domain Korn Shell (pdksh).
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports over 20 operating systems, from Linux and BSD variants to niche platforms like Haiku and SerenityOS, as listed in the README, ensuring a consistent shell experience across diverse environments.
Builds with a wide range of C compilers including clang, gcc, pcc, and even specialized ones like CompCert, enhancing flexibility in development and cross-compilation scenarios.
Includes all necessary portability code, eliminating dependencies on external ksh implementations and simplifying deployment, as emphasized in the project philosophy.
Provides configure flags like --no-thanks for easy cross-compilation, useful for targeting embedded or specialized systems, though it requires manual tweaks.
Patches that change behavior must first be submitted to OpenBSD, as noted in the README, potentially slowing the adoption of non-portability enhancements and new features.
Using --no-thanks for cross-compiling requires manual adjustments to Makefile and pconfig.h, which can be error-prone and less user-friendly compared to automated tools.
Focuses on compatibility over conveniences, lacking built-in advanced features like autocompletion or theming found in shells like zsh, which might require additional configuration.