Git Product home page Git Product logo

fpos's Introduction

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 :

  • 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

fpos's People

Contributors

rezgui avatar renderedideas-lab avatar lebao3105 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.