Thanks to visit codestin.com
Credit goes to github.com

Skip to content
/ free86 Public

An operating system for 80386 vintage computers developed from scratch.

License

Notifications You must be signed in to change notification settings

mjugit/free86

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

238 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The free86 Operating System

Welcome to the free86 Project repository! free86 is a handcrafted open source operating system for the x86 architecture. This is a hobby project of mine; I primarily target my vintage PC (specs below), but all x86 CPUs after the 80286 should work fine. You can build a bootable floppy image of the system and try it in a VM or on physical hardware.

Target machine

The system is tested on a vintage PC (1990) with the following specs:

  • 30386SX CPU (1988, @16 MHz, 16 MiB address range)
  • 640KiB low memory + 4MiB extended memory
  • 1 Floppy Drive 3.5", 1.44MiB per disk
  • IDE HDD 128MiB

Minimum system requirements

  • A 80286 CPU, since it is the first x86 CPU, that supports protected mode.
  • The 640KiB onboard memory are enough at the moment.
  • VGA support; we use the 640x480 planar mode with 16 active colors and a 256 color palette.

Getting Started

To build the bootable floppy (kickstart image), you first need to compile the custom toolchain.
A Makefile in the Tools directory automates this process. Increasing the number of parallel build jobs can drastically reduce the time needed to build the toolchain, so I highly recommend it. The GNU toolchain is not particularly small, and this tiny tweak can mean a difference between a cigarette break and a leisurely dinner. However, it is not strictly necessary.

# File: Tools/Makefile

# Configure the amount of parallel jobs here
export MAKEFLAGS += -j4

# For example:
# export MAKEFLAGS += -j12

To start building, fire up a terminal, switch to the Tools directory and run make.

cd Tools
make

This will take a while, so feel free to grab a coffee. After the toolchain is built, you can create and run the floppy image with QEMU from within the Source directory.

cd Source
make run-qemu

Documentation

If you want to tinker with system yourself, I strongly recommended you give the handbook a try. It's not always 100% complete, but I do my best to keep it up to date.

Contributors

  • Special thanks to Damien Guard who generously allowed me to use some of his handmade bitmap fonts. Check out his website, where he provides lots of cool resources.
  • David Siñuela Pastor and the other contributors of the MinUnit project, a simple C unit testing framework in a single header file.

About

An operating system for 80386 vintage computers developed from scratch.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published