Something a little different?
More of a unikernel than an OS, you write your application and the compiler includes the required parts of the RTL into a bootable kernel image that doesn't need an OS to run.
Targeting Raspberry Pi initially but designed to be portable to other boards and platforms, the architecture is intended to be highly modular and gives users direct hardware access while still providing a degree of system protection via page table permissions.
Based on a single address space model with no kernel to user mode separation the thread is the primary unit of execution and allows application code to be scheduled independently from kernel code to produce a highly usable multitasking environment.
The feature list is quite comprehensive already and continues to grow with each release.
- Supports all models of Raspberry Pi (32 bit only at present)
- Pre-emptive threading
- Multicore support with all cores sharing workload
- Thread priority, affinity and migration
- Full range of locking and synchronization primitives
- USB support with drivers for Hub, Keyboard, Mouse, Storage and Network
- MMC/SD device support
- IPv4 stack including TCP, UDP, ICMP and raw sockets as well as DNS and DHCP protocols
- FAT12/16/32, NTFS and CDFS filesystem implementations
- Winsock 1.1 and Winsock 2 compatible sockets API
- Interrupt handling and hardware exception handling
- Drivers for common peripherals like GPIO, UART, Watchdog and Random
- Full RTL supporting all of the Free Pascal language features including strings, classes, objects, threadvars and exceptions
- Clock and timezone support
- Console and framebuffer support including bitmap fonts
- Basic shell (Console or Telnet) with file system commands and many others
- HTTP/SMTP/POP3/NTP/Syslog client and server modules included
- Includes example projects plus a demo image
- Available as a Windows installer with full IDE or as source only
Intended to be suitable for a wide range of uses including creation of standalone devices, interfacing with existing systems or experimenting with OS design and theory.
If you are interested in embedded development using the pascal language you can find more information, downloads and full source code at https://ultibo.org/