Skip to content

Releases: FDOS/kernel

Version 2044

25 Jan 20:38
8535ddb

Choose a tag to compare

FreeDOS Kernel 2044 (version 2.44)

FreeDOS Kernel is the core part of FreeDOS that provides DOS services (program loading, file and device I/O, memory management, and the INT 21h API most DOS software calls). Kernel 2044 is an incremental maintenance release with a mix of build fixes, boot/runtime edge‑case fixes, and compatibility updates.

Release: 2026-01-25
Build: 2044

Please review git history for full change log.

Highlights (what changed)

Build and project maintenance

  • Build fixes and cleanups for different compilers and build environments (GCC-ia16, Open Watcom, Borland compilers (Turbo C 2.x), and related tooling).
  • CI updates (build/test workflow tweaks, runner updates, tool setup fixes).
  • Country and Share components moved/managed as submodules; corresponding build updates.

Boot / initialization

  • Boot sector and loader changes aimed at reducing boot failures on some systems.
  • Reduced duplicate output while scanning/processing partitions (messages printed once).
  • Improved handling of boot media with large clusters:
    • allow bpbSectorsPerCluster == 0 to represent 256
    • enable loading from file systems with 256 sectors per cluster
  • Abort handling and error paths tightened for “file not found” cases during boot.

Environment and CONFIG.SYS handling

  • Environment initialization tightened so the master environment starts empty and is built consistently during config processing.
  • SET handling updated so an empty SET can delete a variable.
  • Fixed a few environment/layout edge cases (e.g., marker/trailing word handling).
  • Fix for cases where the 2nd parameter of a DOS= statement did not take effect.

File system, disk I/O, and large‑file edge cases

  • Safer behavior around writes past the 4 GB boundary (error out rather than wrap and corrupt; plus a compile‑time alternative behavior option).
  • INT 25h/26h path hardening (tests added; fixes for edge cases that could corrupt state).
  • Fixes related to BPB/DPB handling (including cases where values could be uninitialized).
  • SYS and FAT detection fixes for specific FAT32 edge cases (e.g., “small FAT32” detection when a word field is zero).

FCB compatibility (older DOS APIs)

  • INT 21h FCB parsing fixes (function 29h):
    • do not treat field separators as a drive letter
    • continue parsing the name even if the drive letter is invalid
  • FCB rename improvements (including support for * wildcards) and added tests.
  • Fix for FCB FindFirst/FindNext behavior (tracked as issue #40).

Redirector / networking interactions

  • DosGetExtFree updated to use redirector function 11A3.
  • Redirector‑related fixes around delete/rename behavior when SHARE semantics apply.
  • Added INT 2Fh support used by some redirector/compat paths (e.g., building a CDS entry).

Path handling / TRUENAME

  • TRUENAME fix for an array overrun (picked from fdpp).
  • Additional path/character‑device handling fixes:
    • allow character devices prefixed with an invalid drive letter (e.g. @:\NUL) while still rejecting invalid paths

Windows 3.x Enhanced Mode

  • Updates aimed at improving Windows 3.x Enhanced Mode compatibility.
  • Related fixes include critical patch table handling and minor IOCTL behavior adjustments

Utilities / tooling

  • exeflat updates (usage text, compression handling, documentation/comments; response‑file support).
  • fdkrncfg fix: version info checks no longer include the signature bytes.

Credits / acknowledgements

This build includes changes and/or contributions from:

Andrew Bird, Böckmann (boeckmann), Jeremy Davis, C. Masloch (ecm), Tee-Kiah Chia (tkchia), Sava (lpproj), Stas Sergeev (stsp), Jiri Malak (jmalak), Bernd and Tom Ehlert, among others.

Reporting issues

  • Current kernel bug tracking: GitHub (FDOS/kernel).
  • General FreeDOS bug tracking (kernel reports also accepted): GitLab FreeDOS project.

Files

Source, 8086+ (_86), and 80386+ (_386) compatible builds provided
f16 only supports FAT12/FAT16, while f32 also supports FAT32 formatted disks (both 8086).

  • [ kernel.zip ] provides a FreeDOS package, 8086 version with FAT12/FAT16 and 386 version with FAT12/FAT16/FAT32
  • [ ke2044s.zip ] source for kernel
  • [ ke2044_86f16.zip ] 8086, FAT12/16
  • [ ke2044_86f32.zip ] 8086, FAT12/16/32
  • [ ke2044_386f16.zip ] 80386, FAT12/16
  • [ ke2044_386f32.zip ] 80386, FAT12/16/32

version 2.43

14 May 03:48

Choose a tag to compare

FreeDOS kernel version 2.43

Please review git history for full change log.
Some changes include now support building with GCC-ia16, CHAIN command in config.sys, various fixes, new setver capabilities

Source and 8086 compatible builds provided, f16 only supports FAT12/FAT16, while f32 also supports FAT32 formatted disks (both 8086).

kernel.zip provides a FreeDOS package, 8086 version with FAT12/FAT16 and 386 version with FAT12/FAT16/FAT32

ke2043_rufus is a 386 compiled version with FAT12/16/32 support and FORCELBA enabled