All Projects → ibara → Oksh

ibara / Oksh

Portable OpenBSD ksh, based on the Public Domain Korn Shell (pdksh).

Programming Languages

c
50402 projects - #5 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Oksh

bf256
Brainfuck compiler under 256 bytes in size.
Stars: ✭ 21 (-85.21%)
Mutual labels:  unix, openbsd, bsd
Ecominit
eComInit is a free init system and service manager designed to scale from lightweight desktops to web-scale cloud deployments. It aims to offer feature-parity with systemd but with a modular, portable architecture compliant with software engineering best-practice.
Stars: ✭ 352 (+147.89%)
Mutual labels:  unix, openbsd, bsd
InitKit
Neo-InitWare is a modular, cross-platform reimplementation of the systemd init system. It is experimental.
Stars: ✭ 364 (+156.34%)
Mutual labels:  unix, openbsd, bsd
mg
OpenBSD Mg editor. Portable Public Domain Micro Emacs for *BSD, Cygwin, Linux, Mac OS X.
Stars: ✭ 99 (-30.28%)
Mutual labels:  unix, openbsd, bsd
InitWare
The InitWare Suite of Middleware allows you to manage services and system resources as logical entities called units. Its main component is a service management ("init") system.
Stars: ✭ 164 (+15.49%)
Mutual labels:  unix, openbsd, bsd
Mg
Micro (GNU) Emacs-like text editor ❤️ public-domain
Stars: ✭ 117 (-17.61%)
Mutual labels:  unix, openbsd, bsd
Awesome Unix
All the UNIX and UNIX-Like: Linux, BSD, macOS, Illumos, 9front, and more.
Stars: ✭ 973 (+585.21%)
Mutual labels:  unix, openbsd, bsd
osutil
Go library to easily detect current operating system, current Linux distribution, macOS version and more...
Stars: ✭ 22 (-84.51%)
Mutual labels:  openbsd, bsd
OpenBSDFirewall
Simple OpenBSD Home Firewall Config for ALIX Board
Stars: ✭ 41 (-71.13%)
Mutual labels:  unix, openbsd
uapi
Unix API
Stars: ✭ 18 (-87.32%)
Mutual labels:  unix, openbsd
4bsd-uucp
Simulate a UUCP network with 4.3BSD SimH images
Stars: ✭ 28 (-80.28%)
Mutual labels:  unix, bsd
Ngircd
Free, portable and lightweight Internet Relay Chat server
Stars: ✭ 292 (+105.63%)
Mutual labels:  unix, bsd
Bfs
A breadth-first version of the UNIX find command
Stars: ✭ 336 (+136.62%)
Mutual labels:  unix, bsd
ccalendar
Chinese Calendar in calendar(1) for BSD, Linux & macOS
Stars: ✭ 17 (-88.03%)
Mutual labels:  unix, bsd
oxbar
configurable X11 status bar for OpenBSD (and xstatbar successor)
Stars: ✭ 36 (-74.65%)
Mutual labels:  openbsd, bsd
mrouted
The original DVMRP (dynamic multicast routing) implementation for UNIX
Stars: ✭ 58 (-59.15%)
Mutual labels:  unix, bsd
FreeBSD-Ask
FreeBSD 教程——FreeBSD 从入门到跑路。
Stars: ✭ 113 (-20.42%)
Mutual labels:  unix, bsd
Pyroute2
Python Netlink and PF_ROUTE library — network setup and monitoring
Stars: ✭ 658 (+363.38%)
Mutual labels:  openbsd, bsd
Persepolis
Persepolis Download Manager is a GUI for aria2.
Stars: ✭ 5,218 (+3574.65%)
Mutual labels:  openbsd, bsd
Cats
Implementations of cat(1) from various sources.
Stars: ✭ 125 (-11.97%)
Mutual labels:  unix, bsd

oksh

Portable OpenBSD ksh(1). Not an official OpenBSD project.

Why?

Because all operating systems deserve a good shell.

Unlike other ports of OpenBSD ksh, this port is entirely self-contained and aims to be maximally portable across operating systems and C compilers. We are always looking for new combinations to add support for.

Supported systems

oksh is known to run on the following Operating Systems:

  • OpenBSD
  • FreeBSD
  • DragonFly BSD
  • NetBSD
  • HardenedBSD
  • SoloBSD (as the default shell)
  • Mac OS X (port originally by @geoff-nixon)
  • Linux (glibc and musl)
  • Cygwin
  • Android (via Termux)
  • AIX (with major thanks to @tssva and @NattyNarwhal)
  • IBM i PASE
  • Solaris
  • Illumos
  • midipix
  • WSL
  • WSL2
  • Unixware 7
  • Haiku
  • HP-UX (only gcc tested)

Running on a system not listed here? Add it and send a pull request!

Believed working

We believe that oksh will work on the following platforms, but testing is needed. Help is greatly appreciated and encouraged!

  • Irix

Supported compilers

oksh is known to build with the following C compilers:

Building with a compiler not listed here? Add it and send a pull request!

Packages

oksh is included in some package systems.

Packaging status

In addition, there are some unofficial packages:

Using a package not listed here? Add it and send a pull request!

Dependencies

A C99 compiler is the easiest way to ensure that oksh will build correctly. Please see the list of C compilers above for a list of known working compilers.

Though not required, the ncurses library will be used for screen clearing routines if the library is found during the configure stage. This can be turned off by the user by passing the --disable-curses flag to configure.

A configure script that produces a POSIX Makefile is provided to ease building and installation and can be run by:

$ ./configure
$ make && sudo make install

Cross compiling

Cross compiling can be achieved by running configure as follows:

CC=/path/to/cross/cc CFLAGS="any needed cflags" LDFLAGS="any needed ldflags" ./configure --no-thanks

This will skip all configure checks and write out a generic Makefile and pconfig.h with nearly no options turned on. If using a cross gcc or clang, this very well may just work (with all compat compiled in). You can edit these files to reflect your system before running make.

All environment variables and configure flags are respected when using --no-thanks. Further specifying --no-link after --no-thanks will only compile the source files into object files, to be transfered onto the target machine and linked there.

The --no-thanks flag can also be used to compile a native oksh with all the compatibility functions compiled in, rather than relying on the system's version of those functions.

Submitting patches

Patches that add new platforms and improve support for existing platforms are always welcome.

Patches that cause oksh to deviate from upstream OpenBSD ksh behavior are better suited to be sent to the OpenBSD [email protected] mailing list. Please make sure to test your patch on an OpenBSD machine first before submitting it to [email protected] I will sync with the upstream OpenBSD code once your patch is accepted. If you'd like to open an issue here to track progress of your patch on [email protected], that's fine.

License

The main Korn shell files are public domain (see LEGAL). Portability files are BSD or ISC licensed; see individual file headers for details.

Get a tarball

See releases tab. The latest release is oksh-6.8.1, which matches the ksh(1) from OpenBSD 6.8.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].