Kernel /

Notes

Main.SideBar

FreeDOS Sections (components)

PmWiki

Notes

FreeDOS Kernel Notes

On this page...

Todo

  • look through dev kernel for more changes to merge into stable kernel
  • see Blog.Jerm
Reminder
Finish my SFT work. [on hold/cancelled]
Reminder
Check on Turbo C++ v3.
Reminder
Check on Emm386 incompatibility with Watcom 386 kernel. [fixed]

Released kernels:

  • 2035, by last official maintainer Bart Oldeman
  • 2035A, by interim maintainer Jeremy Davis
  • 2036, compiled 2006/07/26 or later, this one will be the FreeDOS 1.0 kernel
  • 2037, the latest unstable kernel revision

These kernels have the following features:

  • FreeDOS specific menu system in config file
  • 8086 support (succesfully verified on PicoXT emulator)
  • FAT12 and FAT16 support
  • FAT32 support, may be compiled out if desired
  • DOS version (faked M$-DOS version) numbering support:
    • fat32: 7.10
    • fat12/16: 5.00

Development kernels:

  • 2035B-CVS, daily builds by Jeremy Davis. Much like 2035A
  • 2035W-CVS, daily builds by Jeremy Davis
  • 2037, uploaded on ibiblio

Currently has the following additional features:

  • Improved support for l10n (country, NLSFUNC, MODE, CHCP)
  • Windows 3.1 support
  • More stuff.

Just to remember:
l10n = localization (country-specific settings such as how to represent numbers, dates, money, ...). Specific to kernel, drivers and applications that support it.
i18n = internationalization (translations), application / distribution specific instead of something kernel specific

How I do I build the kernel?

If you want to have a custom script, just make a custom.bat with below mentioned parameters and a CALL command: @CALL BUILD.BAT LIST 186 FAT32 /D WIN31SUPPORT On Windows, it's wise to end this custom.bat file with a PAUSE command.

I build the kernel a lot (sometimes several dozen times in a row when testing), but most of the time I use the Dev kernel and the command line of:

build list 186 fat32 /D WIN31SUPPORT

  • where build of course initiates the compiling and other steps to generate a working kernel (compile, link, optionally compress, statically relocate)
  • list causes the assembly files to generate a listing (output file that shows original source, line #s, and generated bytes)
  • 186 causes the compiler to generate code for 80186 or newer computers (slightly smaller code but still runs on my 286 based computers)
  • fat32 enables support for FAT32 filesystem (all kernels have FAT12 and FAT16 support)
  • /D WIN31SUPPORT enables windows 3.x to run (really need to add win option to build.bat)

What I am currently working on

  • Windows 3.1 enhanced and DOS boxes support
  • currently my dev kernel has fnodes removed and uses SFTs, but it has some bugs I need to work out before committing

Future plans

  • create an IFS (Installable File System) kit based on RIFS
  • use the IFS kit to support Lean filesystem - http://freedos-32.sourceforge.net/showdoc.php?page=leanfs
  • NTFS support
    • use IFS kit for general support, based on Linux NTFS project
    • add boot time support - add hook to kernel so can use boot sector(s) NTFS load support to load IFS NTFS version
    • resources: Linux NTFS project, Reactos NTFS (relsoft.net)

other probably non FreeDOS stuff on my todo list

  • czar
    • fix multiple processor support for syscall redirector
    • work on syscall implementations

  • AbiWord
    • native win32 libs
    • new msvc makefiles to avoid breaking MinGW build or change to use build
    • update plugin API to use COM-like api (use pure virtual base classes and similar layout so any Win32 C++ compiler can be used to create plugins and perhaps other programming environments)

  • fdos
    • commit something
    • finish updating ...

  • atapicdd
    • finish cdrom driver portion
    • write ASPI over ATA / ATASPI portion

  • pdtree
    • rewrite so doesn't use so much memory

  • win32 on DOS
    • play with WDOSX and HXDOSX, see about using for Abi, etc. on DOS

Recent Changes (All) | Edit SideBar Page last modified on December 14, 2006, at 10:24 PM Edit Page | Page History
Powered by PmWiki