Skip to content

rdos314/rdos-kernel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rdos-kernel

RDOS operating system kernel

Purpose

A multicore, multi-process and multi-threaded protected mode OS for 386+ CPUs. Written mostly in assembly. Use segment protection and paging to provide a stable and secure system. Configurable using a single image file so it can be ported to embedded environments that don't have a keyboard and / or screen. The source code is offered WITHOUT WARRANTY.

Related repositories

Supported platforms

Hardware with 386 or higher processor, including multicore support. 2MB RAM. Specific board support packages are included in the board directory of the source.

Hardware abstractions

  • Drive and partition access (os/drive.rdv)
  • Graphics, including mouse and keyboard support (os/guidev.rdv)
  • Audio (os/audio.rdv)
  • Com port (os/com.rdv)
  • Printer (os/printer.rdv)
  • Network (os/net.rdv)
  • Lon (os/lon.rdv)
  • USB (usbdev/usb.rdv)
  • Kernel and crash debugger (debug/kdebug.rdv)

Software abstractions

  • Legacy file system (os/fs.rdv)
  • Executable loader (os/exec.rdv)
  • Big number support (os/bignum.rdv)
  • Inter process communication, including network support (os/ipc.rdv)
  • 64-bit support (os/longmode.bin)
  • PC BIOS access (bios/pcbios.rdv)
  • Emulator for V86 mode (dosemu/emulate.rdv)

Hardware drivers

  • Real time CMOS clock (pcdev/rtc.rdv)
  • VBE based graphics driver (bios/vga.rdv)
  • PS/2 keyboard and mouse driver (pcdev/ps2keym.rdv)
  • AC97 codec (pcdev/ac97.rdv)
  • Floppy driver (pcdev/floppy.rdv)
  • IDE and EIDE driver (pcdev/ide.rdv)
  • AHCI disc driver (pcdev/ahci.rdv)
  • SD card driver (pcdev/sdcard.rdv)
  • Standard PC-platform com driver (pcdev/stcom.rdv)
  • Realtek RTL8139 and compatible network driver (netdev/rtl8139.rdv)
  • Realtek RTL8169 and compatible network driver (netdev/rtl8169.rdv)
  • Intel 8255x and compatible network driver (netdev/8255x.rdv)
  • Intel i2xx and compatible network driver (netdev/i2xx.rdv)
  • CS5536 audio driver (audiodev/cs5536a.rdv)
  • VIA82 audio driver (audiodev/via82a.rdv)
  • HD audio driver (audiodev/hda.rdv)
  • PCI CAN bus driver (pcdev/can.rdv)
  • Plug and Play driver (pcdev/pnp.rdv)
  • TS2003 driver (touchdev/ts2003.rdv)
  • E-galax driver (touchdev/egalax.rdv)
  • Pen mount 6000 driver (touchdev/dmc6000.rdv)
  • Pen mount 9000 driver (touchdev/dmc9000.rdv)
  • UHCI USB 1.0 driver (usbdev/uhci.rdv)
  • OHCI USB 1.1 driver (usbdev/ohci.rdv)
  • EHCI USB 2 driver (usbdev/ehci.rdv)
  • XHCI USB 3 driver (usbdev/xhci.rdv)
  • USB HUB driver (usbdev/hub.rdv)
  • USB HID driver with support for touch, keyboard and mouse (usbdev/hid.rdv)
  • USB com driver (usbdev/usbcom.rdv)
  • USB disc driver (usbdev/usbdisc.rdv)

Software drivers

  • 32-bit flat memory model (PE) executable loader (os/pe.rdv)
  • TCP, UDP, SMP, DHCP, DNS, ICMP, IP and ARP driver (os/ip.rdv)
  • FAT12, FAT16 and FAT32 driver (os/fat.rdv)
  • TrueType font driver (freetype/freetype.rdv)
  • Ini file support (os/inifile.rdv)
  • Thread list (os/tlist.rdv)
  • DOS emulator (dosemu/dos.rdv)
  • DPMI server (dosemu/dpmi.rdv)

Device driver API

To be able to link different device-drivers with each other, RDOS has a device driver API. Invalid far calls are built into the calling code. At run-time, these are patched to a far call to the registered destination procedure by the general protection fault handler. RegisterOsGate is used to register a handler. Currently supported APIs are in the kernel/os.inc file in the source distribution. There is also a C include file (kernel/rdosdev.h)

Application API

To be able to link application calls with an defined server procedure, RDOS has a device driver API. Invalid far calls are built into the calling code. At run-time, these are patched to call gates pointing to the registered destination procedure by the general protection fault handler. Device drivers can also call the application API, and when this happens, far calls are patched just as with the device driver API. RegisterUserGate is used to register a bimodal handler, RegisterUserGate16 is used for 16-bit handlers and RegisterUserGate32 is used for 32-bit handlers. Currently supported procedures are in the kernel/user.inc file in the source distribution. There is also a C/C++ include file (kernel/rdos.h)

About

RDOS operating system kernel

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages