FPOS - Free Pascal Operating System

Project started in 01-01-2010 and coded with ❤️
‼️ Attention :
This project is far from dead, but it requires revision...
A new bootloader will be utilized for execution on 64-bit architecture. Additionally, new functionalities will be implemented:
- An integrated file system implementation supporting FAT32, NTFS, ext-versions, and much more.
- Multitasking extension for running many subprograms simultaneously.
- Extendable hardware driver slots for multitasking capability.
- An API for accessing all public kernel functionalities.
- A graphical user interface (possibly as a separate threading application).
Many modern features will follow, but please be patient...
Introduction :
FPOS is a operating system consists of a minimal kernel built on FreePascal. It contains a Scheme implementation of a hard drive (ATA) driver, keyboard (PS2), serial (8250 UART), FAT32 filesystem and a small real time clock manager. The project was built to experiment with developement of operating system using a high level functional language to study the developement process and the use of Scheme to build a fairly complex system.
| Boot |
Shell (CLI) |
Command (Help) |
 |
 |
 |
? Bugs and help / improvements will be appreciated, please send them to (Yacine REZGUI) [email protected] and (Mario Ray Mahardhika) [email protected].
✔️ Implemented :
? Fixed :
- Successive Write(Ln) fails due to 103 IOResult
- Some inline assembler and assembler routines are missing register list, causing it to crash randomly (please test)
? Changed :
- Updated to FPC RTL revision 14499
➕ Added :
Note :
- Some files are not used due to unusability ( multitasking & filesystem )
How to compile :
- Make sure you have working FPC installation ( try using latest 2.5.x snapshot if your version fails )
- Copy executables** under tools to a directory listed in your PATH ( or Path )
- Open Command Prompt ( start->run->cmd ), cd to fpos top directory, then type 'make'
⚗️ How to test :
- Adapt (Qemu or Bochs).bat to your Qemu / Bochs installation
- On Linux, you must change 'i386-linux-ld' in make.rules to 'ld'
❤️ Contributing
Contributions, issues and feature requests are welcome!
Thanks to
- @achief-ws
- @Sio
- @James T. Sprinkle
- @Steve Jenson
- and Other here
? License
The GPL-2.0 License. Please see License File for more information.
? Treeware
This Operating System is a Treeware. If you use it in production, then we ask that you buy the world a tree to thank us for our work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats. Read more about Treeware at treeware.earth