Skip to content

Releases: Mellvik/TLVC

v0.8.0

29 Jun 11:36
9e4303a
Compare
Choose a tag to compare

TLVC release 0.8 Release Notes

Time flies. It has been almost two and a half years since TLVC forked off from ELKS. And what a journey it has been. Discussions, bug fixes, new features, tools, improvements, deletions - all the elements that most software development projects contains.

The results have been inspiring. When looking back at the endless list of changes, enhancements, additions etc., it became obvious that simply yanking the version number by a decimal wasn't fair. Thus here we have version 0.8. A very different system. More mature, more reliable, more configurable and - as stated in the overall goal for TLVC - BIOS independent. After booting - that is, loading the boot sector - there is minimal if any BIOS access, unless the system is configured to use BIOS IO for floppies and disks. A couple of BIOS calls to inquire about the amount of system RAM during the boot and startup process remain, and may be easily replaced. For AT+ systems the CMOS configuration settings are queried, but hardly part of the BIOS.

Apropos BIOS IO, such support has been kept for reference and enhanced for compatibility with the rest of the system - mostly useful for debugging.

Too many to mention individually, here is a summary of the most important changes/enhancements/fixes:

Kernel

  • Direct hd driver: Works with standard IDE (AT class) controllers and most XTIDE controllers including CF and CF Lite controllers.
  • Direct FD driver - the floppy driver uses DMA and is completely interrupt driven
  • MFM disk driver for XT class systems, uses DMA and interrupts
  • Raw (aka 'character') access to all storage devices, including BIOS IO
  • Reorganized and optimized low memory
  • Configurable support for UMB as part of main memory
  • Configurable: The kernel can now be run in HMA. Alternatively, file systems buffers may reside in this area.
  • The floppy track buffer has been removed, replaced by a configurable size cache which - if only partly used or not at all - is returned to main memory
  • XMS support has been enhanced with HMA support and is now fully supported on 80286 based systems, either via the loadall instruction or via BIOS XMS block transfers.
  • Floppies may now read/write (DMA) from/to XMS memory
  • The new xtflpy= bootopts setting allows XT class systems to boot and run off of 720k floppies.
  • The number of tasks supported by the kernel has been fully parameterized, specified via bootopts.
  • Working with @ghaerr from ELKS, the kernel buffer system got a complete revamp which eliminated a number of bugs and is now completely configurable via bootopts. A system may even be configured without L2 buffers, running on L1 cache only if necessary.
  • unreal mode - for xms memory access - was fixed to work with any 386+ system, loadall support added for 286 systems
  • Enhanced kernel tracing tools

Boot & configuration

  • System configuration has been significantly enhanced by adding a number of new bootopts settings, like
    • mac=
    • fdcache=
    • cache=
    • bufs=
    • tasks=
    • files=
    • inodes=
    • heap=
    • netbufs=
    • mem=
    • umb=
    • xms=
    • xmsbufs=
    • hma=kernel
    • hdparms= (formerly idechs=)
    • xtflpy=
  • The system configuration file (bootopts) may now be of any size
  • The MBR boot now allows booting from the B (floppy) drive

Networking

  • Driver for the Intel EtherExpress 16 NIC
  • Framework for driver level network buffers, implemented in the ne2k driver
  • Driver for AMD Lance based NICs is in the works, not completed
  • The ethernet interface MAC address may be configured in bootopts (ne2k only for now)
  • A major enhancement of ktcp - including several bugfixes.
  • A major update of the ftp-daemon ftpd
  • The wd ethernet driver has been enhanced to work with many more variants of the WD/SMC 8 and 16 bit cards

Applications/tools

  • meminfo: Countless enhancements and improvements
  • All system disk utilities, like fsck, frisk, make boot etc., now require raw device access to do their work directly on the divice, bypassing the buffer system.
  • ash has command line history, rudimentary history editing
  • Support for both variants of the AST system clock (XT systems)
  • fdtest program rewritten and expanded for the new floppy driver
  • New version of tar which among other improvements supports storing/retrieving devices
  • The mv command now supports moving of directories
  • disasm x86 disassembler, from ELKS, thanks @ghaerr
  • High res timer service (library)

Upcoming projects

There is an endless supply of ideas for enhancements and improvements. The big ones - planned for the next release are

  • Add interrupts to the `directhd driver. This sill increase the asynchronicity and thus the general response of the system. It is worth noting though that many recent day XT_IDE controller don't support interrupts, so the update driver must be able to support both types concurrently.
  • Add serial output interrupts. This will have even more impact on perceived performance on systems with significant serial activity.
  • Complete the AMD Lance ethernet driver
  • Add pending improvements to ktcp (see #189)

Thanks…

… to @ghaerr of ELKS in particular for sometimes endless, sometimes slightly heated, always interesting and most of the time useful discussions and contributions.

The details: What's Changed

  • Updates to man, ftpd and config setup by @Mellvik in #4
  • [ash] Added csh type (simple) history processing (in linenoise) by @Mellvik in #5
  • [ash] Expanded csh-type history manipulation commands by @Mellvik in #6
  • [net] Networking fixes and enhancements by @Mellvik in #7
  • [net] fixed lingering zombie problem in net daemons. by @Mellvik in #8
  • [net] Cleanups + ktcp update by @Mellvik in #10
  • [ash] Added missing history.c file by @Mellvik in #11
  • [net, ftp] Add speed info to ftp client, reverted change in tcpdev, more by @Mellvik in #12
  • [kernel] Direct floppy driver by @Mellvik in #13
  • [kernel, directhd] Add direct (non-BIOS) HD driver til TLVC, plus lots of related fixes by @Mellvik in #14
  • [kernel] Direct driver related cleanups & fixes by @Mellvik in #15
  • [kernel] Another megaupdate - focus on direct block IO drivers by @Mellvik in #16
  • [kernel] XMS support in direct HD/FD drivers by @Mellvik in #17
  • [kernel] Direct driver updates, RAW disk driver by @Mellvik in #19
  • [cmd] More optimizations of the ps command by @Mellvik in #23
  • [kernel, directfd] Fixes and enhancements by @Mellvik in #24
  • [kernel] Another major update - direct drivers and buffer system by @Mellvik in #25
  • [kernel] Fixes and cleanups by @Mellvik in #26
  • [cmd] Added medium size check to mkfs by @Mellvik in #27
  • [kernel] Direct floppy driver enhancements by @Mellvik in #29
  • [kernel, raw IO] Cleanup in the raw HD driver. by @Mellvik in #30
  • [kernel, directfd] Added raw access to direct floppy, cleanups and fixes by @Mellvik in #31
  • [kernel] Added IDE drive CHS override to bootopts, fixed sys command by @Mellvik in #32
  • [kernel] Experimental - trampoline interrupt vectors removed from heap by @Mellvik in #33
  • [cmd] Misc bugfixes in commands ps, sum, file, sum by @Mellvik in #34
  • [net] Experimental - the ne2k driver now uses heap_alloc() for buffers by @Mellvik in #35
  • [kernel] experimental: move SEG descriptors to high end of heap by @Mellvik in #36
  • [net] Add bootopts config option netbufs= for net buffers by @Mellvik in #37
  • [kernel, directhd] Add 8bit ISA support (+ minor network update) by @Mellvik in #38
  • [kernel, directhd] Added 8bit (PC/XT) support for AT/IDE, supports XT/IDE controllers (CF) by @Mellvik in #39
  • [kernel, serial console] Serial console losing chars at slow speed - fix by @Mellvik in #43
  • [kernel, ne2k] Fix probe and buffer problems by @Mellvik in #44
  • [kernel, directhd] XT/IDE support cleanups by @Mellvik in #45
  • [kernel, directfd] A major cleanup + fix for raw IO + check_media_change + more by @Mellvik in #46
  • [kernel, BIOS IO] BIOS block IO now compiles and works (+ other fixes) by @Mellvik in #48
  • [misc] Cleanups - fix compilation problems by @Mellvik in #50
  • [kernel] Fix elusive scheduler bug by @Mellvik in #51
  • [kernel] fix FATfs mv not releasing blocks by @Mellvik in #52
  • [kernel] Alternate fix for scheduler bug #51 by @Mellvik in #53
  • [kernel] Change bootopts chs0 option in preparation for MFM driver by @Mellvik in #54
  • [kernel, directfd] Misc cleanups, adjustments in floppy...
Read more