GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ghaerr/elks: Embeddable Linux Kernel Subset - Linux for 8086

BranchesTags
Open more actions menu

Latest commit

 

History

7,385 Commits
7,385 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
Documentation
Documentation
 
 
Screenshots
Screenshots
 
 
bootblocks
bootblocks
 
 
config
config
 
 
elks
elks
 
 
elkscmd
elkscmd
 
 
elksemu
elksemu
 
 
image
image
 
 
include
include
 
 
libc
libc
 
 
tools
tools
 
 
.dockerignore
.dockerignore
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
8018x.config
8018x.config
 
 
BUILD.md
BUILD.md
 
 
Dockerfile
Dockerfile
 
 
LICENSE
LICENSE
 
 
Make.defs
Make.defs
 
 
Makefile
Makefile
 
 
PMODE-TODO.md
PMODE-TODO.md
 
 
README.md
README.md
 
 
blink16.config
blink16.config
 
 
bochs.rc
bochs.rc
 
 
bochs.sh
bochs.sh
 
 
build.sh
build.sh
 
 
buildc86.sh
buildc86.sh
 
 
buildext.sh
buildext.sh
 
 
buildimages.sh
buildimages.sh
 
 
coding-style.txt
coding-style.txt
 
 
config.in
config.in
 
 
copyc86.sh
copyc86.sh
 
 
dosbox.sh
dosbox.sh
 
 
emu86-disk.config
emu86-disk.config
 
 
emu86-rom-full.config
emu86-rom-full.config
 
 
emu86-rom.config
emu86-rom.config
 
 
emu86.sh
emu86.sh
 
 
emuswan.sh
emuswan.sh
 
 
env.sh
env.sh
 
 
ibmpc-1440-nc.config
ibmpc-1440-nc.config
 
 
ibmpc-1440.config
ibmpc-1440.config
 
 
ibmpc-pmode.config
ibmpc-pmode.config
 
 
necv25.config
necv25.config
 
 
pc98-1200.config
pc98-1200.config
 
 
pc98-1232-nc.config
pc98-1232-nc.config
 
 
pc98-1232.config
pc98-1232.config
 
 
pc98-1440.config
pc98-1440.config
 
 
philips-yes.config
philips-yes.config
 
 
qemu.sh
qemu.sh
 
 
slattach.sh
slattach.sh
 
 
solo86-rom-full.config
solo86-rom-full.config
 
 
swan.config
swan.config
 
 

Repository files navigation

logo

cross main

What is ELKS?

ELKS is a project providing an early fork of the Linux OS for systems based on the Intel IA16 architecture (16-bit processors: 8086, 8088, 80188, 80186, 80286, NEC V20, V30 and compatibles). Such systems can be ancient computers (IBM-PC XT / AT and clones) as well as more recent SBCs, SoCs, FPGAs, as well as modern 80386+ x86 desktops. ELKS supports networking, graphics, ia16-elf-gcc, OpenWatcom C and its own native C compiler, and installation to HDD using both MINIX and MSDOS FAT filesystems.

Memory requirements

  • Stock images require 512k RAM
  • ELKS requires 256k RAM to run, 512k to be really useful
  • No hardware MMU required
  • ROM-based systems can run in 128k RAM

Try ELKS online

You can play with ELKS online thanks to the v86 emulator. Login with "root" and no password. Go to the bin folder and try the different commands available. Try nxtetris. Start the game by pressing "n".

Watch ELKS in action

  • Can an IBM PC Portable Run Linux with Ethernet? (thanks The Phintage Collector)
  • ELKS 0.9.1 and Nano-X on a 286 (thanks Clean Retro Tech)
  • This Floppy Disk is a WEB SERVER (thanks Action Retro)
  • ELKS, a 16-bit no-MMU Linux on Amstrad PC 2086 (thanks @pawoswm-arm)
  • Booting ELKS on an old 286 MB from 1,44MB floppy (thanks @xrayer)
  • Epson PC Portable Q150A / Equity LT (Nec V30 8086 - 1989) (thanks Alejandro)
  • ELKS on ESP32 through IBM PC emulator (thanks @fdivitto)

Screenshots

ELKS running on QEMU ss1

Nano-X running on ELKS ss8

Olivetti M24 8086 CPU ss2

ELKS Networking showing netstat and process list ss3

Running ELKS Basic on PC-9801UV21 (NEC V30 CPU) ss4

Running Matrix and vi on multiple consoles ss5

Of course Doom ss6

Telnet to an old BBS ss7

Downloads

A full set of disk images are available for download, for you to try out ELKS: Downloads.

How to build

Full build instructions are here.

Wiki

Help on how to use ELKS, as well as technical tutorials, are available on our Wiki.

Documentation

More information is in the Documentation folder: Index of ELKS Documentation.

Resources

Other projects and resources interesting to ELKS and our programming community:

  • 8086 toolchain A full C toolchain capable of running on Linux, macOS and natively on ELKS, featuring C compiler and preprocessor, as86 assembler, ld86 linker, disassembler, make, and a complete C library.
  • blink16 A visual 8086 emulator and debugger capable of booting the ELKS kernel for symbolic debugging, as well as an emulator for ELKS executables.
  • Size Optimization Tricks A great article from Justine Tunney's blog showing how big things can be done without bloat.
  • gcc-ia16 TK Chia's gcc compiler targeted for 8086, maintained and used for the ELKS kernel and all its applications.

More information

Questions? Problems? Patches? Open an issue on the ELKS GitHub project!

About

Embeddable Linux Kernel Subset - Linux for 8086

Topics

8018680868086-architecture8088elksembeddableembeddedembedded-linuxia-16kernellinuxx86-16

Resources

Readme
License
Activity

Stars

1.7k stars

Watchers

45 watching

Forks

174 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.