All Projects → rezgui → fpos

rezgui / fpos

Licence: GPL-2.0 License
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 h…

Programming Languages

pascal
1382 projects
C++
36643 projects - #6 most used programming language
assembly
5116 projects
Batchfile
5799 projects
PHP
23972 projects - #3 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to fpos

poplar
Microkernel and userspace written in Rust exploring modern ideas
Stars: ✭ 217 (+502.78%)
Mutual labels:  kernel, os, operating-system, microkernel
OpenHarmony
华为鸿蒙分布式操作系统(Huawei OpenHarmony)开发技术交流,鸿蒙技术资料,手册,指南,共建国产操作系统万物互联新生态。
Stars: ✭ 373 (+936.11%)
Mutual labels:  kernel, os, operating-system, microkernel
phoenix-rtos-kernel
Phoenix-RTOS microkernel repository
Stars: ✭ 77 (+113.89%)
Mutual labels:  kernel, operating-system, microkernel
SimpleOS
Operating System Coded in Assembly and C
Stars: ✭ 72 (+100%)
Mutual labels:  kernel, os, operating-system
GENADEV OS
An AArch64 hobbyist OS for the Raspberry Pi 3 B+
Stars: ✭ 14 (-61.11%)
Mutual labels:  kernel, os, operating-system
Methylenix
The operating system written in Rust
Stars: ✭ 32 (-11.11%)
Mutual labels:  kernel, os, operating-system
MandelbrotOS
A community driven OS by the youth
Stars: ✭ 172 (+377.78%)
Mutual labels:  kernel, os, operating-system
DentOS
Experimental Stand-alone 32-bit Kernel with Bootloader written in AT&T Assembly and Freestanding C
Stars: ✭ 32 (-11.11%)
Mutual labels:  kernel, os, operating-system
KnutOS
An x86_64 hobbyist OS written in C and Assembly
Stars: ✭ 16 (-55.56%)
Mutual labels:  kernel, os, operating-system
rxinu
Rust implementation of Xinu educational operating system
Stars: ✭ 26 (-27.78%)
Mutual labels:  kernel, operating-system, microkernel
oneiric
A small kernel + OS based on how dreams work
Stars: ✭ 11 (-69.44%)
Mutual labels:  kernel, os, operating-system
nightingale
A small operating system where I experiment and learn osdev.
Stars: ✭ 86 (+138.89%)
Mutual labels:  kernel, os, operating-system
beeos
A simple "Unix-like" kernel trying to be POSIX compliant
Stars: ✭ 103 (+186.11%)
Mutual labels:  kernel, os, operating-system
ByteOS
A simple hobby operating system for the x86-64 architecture, written in C.
Stars: ✭ 47 (+30.56%)
Mutual labels:  kernel, os, operating-system
nautilus
Nautilus Aerokernel
Stars: ✭ 30 (-16.67%)
Mutual labels:  kernel, os, operating-system
LudOS
A toy monolithic kernel written in C++
Stars: ✭ 38 (+5.56%)
Mutual labels:  kernel, os, operating-system
mcube
Mcube Kernel: Operating System Supporting Dynamically Switchable Kernel Models
Stars: ✭ 42 (+16.67%)
Mutual labels:  kernel, os, microkernel
duckOS
Yet another hobby x86 UNIX-like operating system written in C and C++. Features a dynamically linked userspace, an in-house c standard library, and more! And yes, it runs DOOM.
Stars: ✭ 250 (+594.44%)
Mutual labels:  kernel, os, operating-system
TravorOS
A simple OS running on Intel x86 architecture | No longer updating
Stars: ✭ 24 (-33.33%)
Mutual labels:  kernel, os, operating-system
Sigma
Abandoned overcomplicated Microkernel using modern x86_64 features
Stars: ✭ 36 (+0%)
Mutual labels:  kernel, os, microkernel

FPOS - Free Pascal Operating System




Project started in 01-01-2010 and coded with ❤️

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].