Kernel Errata

Wikis > ArcaOS > Kernel Errata

This page lists the known errata pertaining to the ArcaOS kernel. Some of these issues may be under investigation, while others are simply to be accepted as “won’t fix” items:

CONFIG.SYS Statements

IFS load order requirements in CONFIG.SYS

Installable File System drivers (IFSes) should be loaded before before any MAC (networking) device drivers. This is because IFS drivers are specifically involved in the memory allocation sequence during bootup. In fact, all IFS statements must come before any other driver which opens a file and leaves it open for longer than a single strategy call.

Failure to follow this guideline may cause unpredictable results.

THREADS statement and HPFS CHKDSK

The default number of threads in the ArcaOS kernel is 64, inherited from Warp 4. Unfortunately, this default value is much too low for most systems today, and as an example, HPFS CHKDSK will run into difficulties when checking a volume in excess of 8MB. It is therefor recommended to not remove the THREADS statement from CONFIG.SYS, and to set this to a reasonable value (1024, at a minimum).

Runtime settings

Some kernel parameters may be modified on a per-session basis using certain “pseudo” environment variables. However, some caveats exist, and their behavior may not be as expected.

LIBPATHSTRICT and BEGINLIBPATH

Enabling LIBPATHSTRICT by setting this variable true (T), it is possible to reload a DLL found in BEGINLIBPATH into different virtual and physical memory pages. This is generally useful in cases where the desired DLL is incompatible with an already loaded DLL with the same internal name. There are limitations to this.

If LIBPATHSTRICT is in effect and BEGINLIBPATH is set, the system will fail to load a DLL if it is not in a BEGINLIBPATH directory and its extension is all uppercase. For example, if gbm.dll is in \os2\dll, the gbm plugin will have no problem loading “GBM”, “GBM.dLL”, “GBM.Dll”, etc., but will always fail loading “GBM.DLL”.

Another limitation of LIBPATHSTRICT is that it does not work in the master environment (can’t be set in CONFIG.SYS), but Rich Walsh’s RWL utility (available on Hobbes) can set it in the first instance of PMSHELL.

In REXX programs be sure to use the correct functions, SysQueryExtLibpath() and SysSetExtLibpath(), to work with BEGINLIBPATH and ENDLIBPATH, and not the Value() function. For more information on using this in REXX see RexxUtil Library Reference which is included with ArcaOS.

This entry last updated: by Lewis Rosenthal