Don't be an NPC - use lEEt/OS!
(c) Sami Tikkanen 2020 - 2023
Try it online!
The kernel can be compiled and linked using Open Watcom compiler.
The kernel does not make other assumptions about the bootloader than
that in the memory address 0xFC15 there must be the BIOS drive number of
the system drive, and in the memory address 0xFC1C the 32-bit index of the first logical sector
of the boot partition.
The kernel can be loaded to anywhere in the memory (as long as the
starting point is the beginning of a paragraph) and must be started
by doing a far jump to the beginning of the code with offset 0.
New 10. 11. 2023: The ATAPI CD-ROM code should now work with physical hardware without BIOS support for CD-ROMs.
New 23. 10. 2023: Symbolic links.
New 10. 10. 2023: Experimental CD-ROM support.
New 4. 10. 2023: The filesystem mounter now supports MS-DOS logical partitions.
New 15. 8. 2023: Write buffer optimizations.
New 15. 7. 2023: Wildcards for COPY and DEL commands.
New 8. 7. 2023: The kernel now supports BIOS int 13h enhanced disk drive extensions and
hard drives that have a size of 2^64 sectors (which is 8589934592 terabytes when the sector size is 512 bytes).
The standard build of the kernel also now works with the original IBM PC and XT.
New 16. 6. 2023: Bug fixes...
New 27. 5. 2023: It runs DOOM!
Source for the kernel & userland
Last updated: 18. 11. 2023
Source for the boot loader (can be assembled with NASM)
The bootloader searches for a file named KERNEL.BIN from the root directory of a FAT12/16 filesystem
and loads it to memory.
Bootable 1,44 MB floppy image
Bootable USB storage image
Bootable "El Torito" CD image
Bootable 360 kB floppy image for IBM PC and XT
- Support for large disks and 2 GB FAT filesystems
- Dynamic disk caching
- Dynamic file buffering
- Mostly MS-DOS-compatible API - most DOS programs should work
- Can create and mount disk images
- Calls DOS idle handler (int 28h) also during disk I/O
- Symbolic links