rezgui / fpos

Free Pascal Operating System (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.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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) yacine.rezgui@gmail.com and (Mario Ray Mahardhika) leledumbo_cool@yahoo.co.id.

✔️ Implemented :

  • GDT, IDT ( no problem... I hope )
  • ISR ( currently, only page fault has additional handler )
  • IRQ ( no problem... I hope )
  • Console ( including simple command processing )
  • Keyboard ( try to be US-std, but I don't know the keymap. Just guessing for now )
  • Memory Manager ( needs testing )
  • Speaker ( just for fun :-) )
  • RTC ( seems wrong at PM, also for DayOfWeek )
  • System calls
  • Multitasking
  • Filesystem ( perhaps FAT12 is the most obvious, or should we create one ourselves? )

🔧 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 :

  • Not 📅 planned for now

📝 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

📓 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

About

Free Pascal Operating System (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.

License:GNU General Public License v2.0


Languages

Language:Pascal 99.1%Language:PHP 0.3%Language:Assembly 0.3%Language:Batchfile 0.1%Language:NASL 0.1%Language:Makefile 0.1%Language:BitBake 0.0%Language:Puppet 0.0%