Releases: FDOS/kernel
Version 2044
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 == 0to represent 256 - enable loading from file systems with 256 sectors per cluster
- allow
- 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.
SEThandling updated so an emptySETcan 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 21hFCB parsing fixes (function29h):- 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
DosGetExtFreeupdated to use redirector function11A3.- Redirector‑related fixes around delete/rename behavior when SHARE semantics apply.
- Added
INT 2Fhsupport used by some redirector/compat paths (e.g., building a CDS entry).
Path handling / TRUENAME
TRUENAMEfix 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
- allow character devices prefixed with an invalid drive letter (e.g.
Windows 3.x Enhanced Mode
- Updates aimed at improving Windows 3.x Enhanced Mode compatibility.
- Related fixes include critical patch table handling and minor
IOCTLbehavior adjustments
Utilities / tooling
exeflatupdates (usage text, compression handling, documentation/comments; response‑file support).fdkrncfgfix: 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
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