Difference between revisions of "Operating Systems written in FPC"

From Lazarus wiki
Jump to navigationJump to search
(22 intermediate revisions by 11 users not shown)
Line 1: Line 1:
== [http://code.google.com/p/fpos/ fpos] ==
+
{{Operating Systems written in FPC}}
  
An Operating System written from scratch with Free Pascal compiler.  
+
There is a rich tradition of operating systems written in [[Pascal]]. The probably best-known example is [http://en.wikipedia.org/wiki/History_of_Mac_OS classical Mac OS], a very influential historic operating system, that was nearly entirely written in Pascal (not to be confused with macOS that is written in Objective C). Other operating systems written in Pascal include [http://en.wikipedia.org/wiki/Apple_Lisa Lisa OS] and the [http://en.wikipedia.org/wiki/Lilith_(computer) Lillith] system software. The operating system for the famous [http://en.wikipedia.org/wiki/Xerox_Star Xerox Star] was written in the [[Mesa (programming language)|Mesa]] programming language, a modular language of the Pascal family. Today there are several attempts to write a Pascal-based operating system from scratch. The following, probably incomplete, list contains some approaches to use Free Pascal for creating an OS.
  
== [http://postfactum.pl.ua/streamos/ StreamOS] ==
+
== [https://github.com/rezgui/fpos fpos] ==
 +
 
 +
An Operating System written from scratch with Free Pascal compiler.
 +
Interested in developing an OS with Free Pascal? This project can be used as a starting point (though incomplete and YOU ARE WELCOME to complete it :-)).
 +
 
 +
 
 +
== [http://code.google.com/p/streamos/ StreamOS] ==
  
 
StreamOS is 32-bit operating system written in Object Pascal using Free Pascal Compiler. It’s designed for:
 
StreamOS is 32-bit operating system written in Object Pascal using Free Pascal Compiler. It’s designed for:
Line 18: Line 24:
 
* Unix-likeness.
 
* Unix-likeness.
  
== [http://www.torokernel.org/ TORO Kernel] ==
+
== [http://www.torokernel.io// TORO Kernel] ==
  
 
Toro is a kernel created in Pascal using FreePascal compiler. The project was started in  the year 2003 by Matias E. Vara using a monolithic kernel.The whole kernel is included in a RTL compliant with FreePascal for i386 and AMD x86-64 processors. The user program is compiled within the kernel and is executed in kernel mode. The intrinsic OS design select strict model in data workflow and pipeline of execution in order to avoid concurrent execution on the same shared memory region. The kernel was optimized for Multicore system and that is the principal objective of the project ,fix the current problems of Modern O.S. in Multicore environment. The main features are:
 
Toro is a kernel created in Pascal using FreePascal compiler. The project was started in  the year 2003 by Matias E. Vara using a monolithic kernel.The whole kernel is included in a RTL compliant with FreePascal for i386 and AMD x86-64 processors. The user program is compiled within the kernel and is executed in kernel mode. The intrinsic OS design select strict model in data workflow and pipeline of execution in order to avoid concurrent execution on the same shared memory region. The kernel was optimized for Multicore system and that is the principal objective of the project ,fix the current problems of Modern O.S. in Multicore environment. The main features are:
Line 29: Line 35:
 
* Virtual Filesystem.
 
* Virtual Filesystem.
 
* Independent of architecture.
 
* Independent of architecture.
 +
 +
== [http://j-software.dk/rtos.php FP-RTOS] ==
 +
A realtime kernel for embedded development. Primarily developed for ARM devices. Written entirely in Pascal and inline assembler.
 +
 +
* Preemptive multitasking
 +
* Synchronization primitives(Mutex, Critical section, spinlock, and signals)
 +
* Threadsafe queue and delays
 +
* Optional safety features: Deadlock detection, priority inheritance, etc
 +
 +
== [https://ultibo.org/ Ultibo core] ==
 +
 +
[[Ultibo core]] is a kernel in an RTL first released in 2016, much more than just another OS example it is a complete platform for creating modern full featured embedded applications which run without any operating system. Written 100% in Free Pascal and initially targeting Raspberry Pi, the modular design allows including only the features required for any given project. Packaged in a simple installer download for Windows or as an install script for Linux customized versions of both Free Pascal and Lazarus IDE are included along with full source and a collection of examples to get started quickly.
 +
 +
Features include:
 +
* Support for all models of Raspberry Pi (A/B/A+/B+/2B/3B/3B+/Zero/ZeroW) plus QEMU ARM emulation
 +
* Pre-emptive threading
 +
* Full range of locking and synchronization primitives
 +
* Multicore support on Raspberry Pi 2B, 3B and 3B+ with all cores sharing workload
 +
* Thread priority, affinity and migration
 +
* Complete IPv4 stack including TCP, UDP, ICMP and raw sockets as well as DNS and DHCP protocols
 +
* USB support with drivers for Hub, Keyboard, Mouse, Storage and Network
 +
* MMC/SD device support
 +
* Full support for FAT12/16/32, NTFS and CDFS filesystems
 +
* Interrupt and fast interrupt handling
 +
* Hardware exception handling
 +
* Complete RTL with strings, code pages, Unicode, classes, objects and exceptions
 +
* Full Winsock 1.1 and Winsock 2 implementation
 +
* Standard C library support including POSIX threads
 +
* Prebuilt libraries for Freetype2, SQLite, Zlib, Libpng and more included
 +
* Support for many common FPC packages
 +
* Hardware accelerated OpenGL ES and OpenVG graphics and support for the official Pi camera
 +
* Many included extras like HTTP, SMTP, NTP, SysLog, Telnet and Shell
 +
 +
== [https://bitbucket.org/elera0/elerais ELERA] ==
 +
 +
ELERA is 32 bit operating system that written free pascal / lazarus from stratch. Operating System is:
 +
 +
* Pre-emptive multitasking
 +
* Vesa 2.0+ GUI interface (up to 1024 x 768 resolution support)
 +
* PS/2 mouse, keyboard, pcnet32 network, floppy, ide disk hardware support
 +
* FAT12, FAT16, FAT32 file system support
 +
* ARP, UDP, IP socket layer
  
 
=External links=
 
=External links=
  
 
* [http://wiki.osdev.org/Pascal_Bare_Bones wiki.osdev.org Pascal Bare Bones]
 
* [http://wiki.osdev.org/Pascal_Bare_Bones wiki.osdev.org Pascal Bare Bones]
 +
* [https://github.com/nickelsworth/paskernel GRUB-bootable "Hello World" OS written by nicksyn]
 +
 +
[[Category:Operating Systems and Platforms]]
 +
[[Category:FPC]]

Revision as of 14:22, 28 July 2020

English (en) español (es)

There is a rich tradition of operating systems written in Pascal. The probably best-known example is classical Mac OS, a very influential historic operating system, that was nearly entirely written in Pascal (not to be confused with macOS that is written in Objective C). Other operating systems written in Pascal include Lisa OS and the Lillith system software. The operating system for the famous Xerox Star was written in the Mesa programming language, a modular language of the Pascal family. Today there are several attempts to write a Pascal-based operating system from scratch. The following, probably incomplete, list contains some approaches to use Free Pascal for creating an OS.

fpos

An Operating System written from scratch with Free Pascal compiler. Interested in developing an OS with Free Pascal? This project can be used as a starting point (though incomplete and YOU ARE WELCOME to complete it :-)).


StreamOS

StreamOS is 32-bit operating system written in Object Pascal using Free Pascal Compiler. It’s designed for:

  • scientific tasks such as long calculations;
  • finding the best architecture of mixed kernel;
  • academic interests.

The main advantages are:

  • 32-bit fast kernel;
  • no global kernel locks;
  • full parallel threading model;
  • easy API;
  • integrated Virtual Filesystem support called StreamFS;
  • Unix-likeness.

TORO Kernel

Toro is a kernel created in Pascal using FreePascal compiler. The project was started in the year 2003 by Matias E. Vara using a monolithic kernel.The whole kernel is included in a RTL compliant with FreePascal for i386 and AMD x86-64 processors. The user program is compiled within the kernel and is executed in kernel mode. The intrinsic OS design select strict model in data workflow and pipeline of execution in order to avoid concurrent execution on the same shared memory region. The kernel was optimized for Multicore system and that is the principal objective of the project ,fix the current problems of Modern O.S. in Multicore environment. The main features are:

  • Supports Multithreading with SMP(Symmetric MultiProcessing).
  • Simple interface with Lazarus IDE for programmers.
  • Supports AMD x86-64 and Intel EMT64 architecture.
  • Designed to optimize the use of AMD HyperTransport technology and Intel Quick Path Interconnect technology.
  • NUMA Memory Model (Non Uniform Memory Access).
  • Stack TCP-IP.
  • Virtual Filesystem.
  • Independent of architecture.

FP-RTOS

A realtime kernel for embedded development. Primarily developed for ARM devices. Written entirely in Pascal and inline assembler.

  • Preemptive multitasking
  • Synchronization primitives(Mutex, Critical section, spinlock, and signals)
  • Threadsafe queue and delays
  • Optional safety features: Deadlock detection, priority inheritance, etc

Ultibo core

Ultibo core is a kernel in an RTL first released in 2016, much more than just another OS example it is a complete platform for creating modern full featured embedded applications which run without any operating system. Written 100% in Free Pascal and initially targeting Raspberry Pi, the modular design allows including only the features required for any given project. Packaged in a simple installer download for Windows or as an install script for Linux customized versions of both Free Pascal and Lazarus IDE are included along with full source and a collection of examples to get started quickly.

Features include:

  • Support for all models of Raspberry Pi (A/B/A+/B+/2B/3B/3B+/Zero/ZeroW) plus QEMU ARM emulation
  • Pre-emptive threading
  • Full range of locking and synchronization primitives
  • Multicore support on Raspberry Pi 2B, 3B and 3B+ with all cores sharing workload
  • Thread priority, affinity and migration
  • Complete IPv4 stack including TCP, UDP, ICMP and raw sockets as well as DNS and DHCP protocols
  • USB support with drivers for Hub, Keyboard, Mouse, Storage and Network
  • MMC/SD device support
  • Full support for FAT12/16/32, NTFS and CDFS filesystems
  • Interrupt and fast interrupt handling
  • Hardware exception handling
  • Complete RTL with strings, code pages, Unicode, classes, objects and exceptions
  • Full Winsock 1.1 and Winsock 2 implementation
  • Standard C library support including POSIX threads
  • Prebuilt libraries for Freetype2, SQLite, Zlib, Libpng and more included
  • Support for many common FPC packages
  • Hardware accelerated OpenGL ES and OpenVG graphics and support for the official Pi camera
  • Many included extras like HTTP, SMTP, NTP, SysLog, Telnet and Shell

ELERA

ELERA is 32 bit operating system that written free pascal / lazarus from stratch. Operating System is:

  • Pre-emptive multitasking
  • Vesa 2.0+ GUI interface (up to 1024 x 768 resolution support)
  • PS/2 mouse, keyboard, pcnet32 network, floppy, ide disk hardware support
  • FAT12, FAT16, FAT32 file system support
  • ARP, UDP, IP socket layer

External links