New in FreeMiNT 1.15.12 (short list): - enhancements for the memory management, avoid fragmentation - enhancements for the kernel module interface - rewritten module loading, save some memory - more internal consistency checks - new system calls: - Pvalidate()/Maccess() - Ptrace() - Psysctl() - Fpoll()/Fseek64() - emulation() - finalized new cvs development, integrated xdd/xfs/sockets into the main source tree - updates and bugfixes for the kernel modules (see in the right ChangheLog for more details) - and lot of bugfixes and other improvements New in FreeMiNT 1.15.5 (short list): - optional native UTC mode for filesystems - better shutdown, FreeMiNT never returns to TOS now - new INITIALMEM configuration option (config file/run time) INITIALMEM= # set the the initial size of the TPA that a process get - support MagiC style shared libraries - support program header flag F_SMALLTPA (introduced by MagiC) - new system calls: - Slbopen()/Slbclose() - Ffchown()/Ffchmod() - Dchroot() - Dsetkey() - Fstat64() - and lot of bugfixes and other improvements New in FreeMiNT 1.15.1 (short list): - 040/060 MMU (memory protection) support - fix bug in 030 memory protection code (working now) - complete new and much faster kernel internal memory management - new Ssystem information and configuration options - new Dcntl supported (DP_VOLNAMEMAX) - fixes and improvements in the NEWFATFS - fixes and improvements in the buffer cache: - rewritten syscall entry strategie - lot of speed optimizations in periodically tasks - complete new enhanced CNF parser - rewritten Psigintr(), working now much better - own processor detection - automatic cpush adaption - updates for the TOSFS - fix 14 partition problem - fix for CENTEK II users (TOS version detection) - better Milan support - and lot of other minor fixes and cleanups New in FreeMiNT 1.15.0 (short list): - integrated FAT/VFAT/FAT32 filesystem - read TOS & DOS partitions of any size; support FAT32 partitions larger than 2 GB - very fast - support the VFAT extension for easy data exchange - mostly configurable at runtime - integrated block cache - efficient memory optimising LRU algorithm - supported from MinixFS 0.70 and NEWFATFS - features write back mode with drive granularity and runtime configuration - high resolution timer - 26 microseconds granularity - timezone support - improved Ssystem (see Ssystem documentation) (timezone support, sync time and a lot of other things) - improved SecureLevel support (XBIOS is now protected from user calls) - Milan patches (extra kernel) - ESCC patches (extra kernel) - complete 060 patches - internal speed optimizations - many minor patches - new configuration keywords for MiNT.CNF: NEWFATFS= # enable NEWFATFS for specified drives VFAT= # enable VFAT extension # used by NEWFATFS WB_ENABLE= # enable write back cache for specified drives # used by NEWFATFS and MinixFS 0.70 CACHE= # increase filesystem cache # used by NEWFATFS and MinixFS 0.70 HIDE_B= # remove drive B: from drive list - completly resorted source - global headerfiles - a lot of new header files for better programmer support Take a look on Changes.MH for a detailed technical description of all changes. Refer to ssystem.doc, block_IO.doc, fatfs.doc, the included examples and the source distribution for details and exact descriptions. Changes were contributed by the following people (alphabetical order): - Thomas Binder - Katherine L. Ellis - Christian Felsch - Guido Flohr - Konrad M. Kokoszkiewicz - Mikko Larjava , 68060 cache patch (once more) - Daniel Petersson - Julian F. Reschke - Rainer Seitel Frank Naumann Magdeburg, den 8.10.1998 ====================================================================== ====================================================================== ====================================================================== Differences between 1.14.6 and 1.14.7: - pipefs.c fix for bidirectional IPC. - now it is possible to chdir to a directory that is set as unreadable (--x--x--x). - Videl patch for sync errors on Falcons has been applied. Now vcons1d doesn't produce broken display after switching to a virtual console. - TOS 4 bug referring to the FastRAM has been worked around. NOTTRAM.PRG is no longer needed in the AUTO folder. - cache handling has been patched for 68060. Now the 060 is considered a '040-alike', not '030-alike', as it was before. - single mode (no multitasking) has been added. The scheduler can be stopped so that the calling process is not preempted until it unlocks the scheduler back to normal operation. - "live" timeslice control has been added. You can change the number of slices without a reboot (its actually the same value as that set by the SLICES keyword in the MINT.CNF). Refer to changes.mh, ssystem.doc, included examples and the source distribution for details. Several more TOS calls have been restricted to euid root at security level 1, as follows: Call Reaction on a call from an unprivileged process ---- ----------------------------------------------- Midiws() EACCDN Iorec() termination Rsconf() termination Bconmap() EINVFN Dosound() EINVFN Vsetmode() EINVFN Vsetscreen() EINVFN Setscreen() EINVFN Generally, protected calls return an error code wherever it is possible. If the function operates such a way, that calling programs don't check the returned value for an error condition, or the function is intended to return a memory pointer the further program execution may rely on, the caller is terminated. Changes were contributed by the following people (alphabetical order): - Bernd Ebert - Katherine Ellis - Guido Flohr - Maurits van de Kamp - Konrad Kokoszkiewicz (me) - Torsten Lang - Kristoffer Lawson - Martin-Eric Racine I apologize for lack of patches referring to more general problems, like still broken virtual memory manager or memory fragmentation. No warranty, use at your own risk. Draco Warszawa, March 1998. ---------------------------------------------------------------------- Notes for FreeMiNT 1.14.6 beta: Differences between 1.14.6 and the previous 1.14.5: - security levels introduced (actually 0, 1 and 2) - kernel functions Setexc(), Rwabs() and Dwritelabel() are restricted for euid root at level 1. - kernel functions Supexec() and Super() are restricted for euid root at level 2. - the keyword "SECURITY=YES|NO" in MINT.CNF has been replaced with more flexible SECURELEVEL=n (where n is a value of 0, 1 or 2). - new system call, Ssystem() has been introduced to the kernel. Kernel protection is still unfinished, particularly no XBIOS function is protected except Supexec(). Functions restricted for euid root, when called by an unprivileged user while the appropriate security level is set, behave two different ways: - calls like Rwabs() and Dwritelabel() will return status EACCDN ("Access denied"). - calls like Setexc(), Supexec() and Super(), those don't use any status code normally (i.e. there's no way to signalize an error), will terminate (kill) the calling process. Actually you can safely use security level 1 in any configuration. Level 2 however (which restricts Super() and Supexec() for root processes) can't be currently used on multiuser setups because of the way the MiNT Library (which is actually linked to 99.9% Unix programs ported to MiNT) works. That means that to take advantage of full kernel protection, the MiNTLib must be fixed and the whole Unix stuff has to be recompiled. That's a lot of work and it will take some time. However, the kernel now makes it possible. MiNTLibs use supervisor mode to access Cookie Jar and some GEMDOS variables located in the first 32k of address space. The kernel now supports such operations, so there's no more need for user processes to switch to supervisor mode. That was the reason to introduce the Ssystem() call. Its purposes: - read GEMDOS variables from the first 32k of memory - set GEMDOS variables (root only) - get existing Cookie Jar entries - place new Cookie Jar entries (root only) - get some kernel information See system2.c from the source distribution and included examples for details and use. The original code for Ssystem() has been developed by Jerry Geiger. The idea has been redesigned by me. No warranty as ever, use at your own risk. Enjoy, Draco draco@mi.com.pl Warszawa, 7.XII.1997. ---------------------------------------------------------------------- Notes for FreeMiNT 1.14.5 beta: Since FreeMiNT 1.14 has been released, it turned over, that Profesore's VM extension doesn't work stable on many TT computers and doesn't work at all on Falcons. From that time, VM extension has got some dedicated patches and fixes and it started really working. However, before the VM has been gotten to work, I decided to split the 030 kernel into two versions. This left until now, as somebody may prefer non-VM kernel (which is actually more stable than the other with VM enabled). There are three supplied binaries: mint.prg - 68000 version mint030.prg - 68030 version mintvmx.prg - 68030 version with VM extension That last may be used for some experiments which (I hope) would finally lead to fix the VM completely. If you have suggestions, please contact me directly (draco@mi.com.pl) or via MiNT mailing list. Notice: even if you use the VM kernel version, but name it MINTNM.PRG in your AUTO folder, the VM extension will be disabled. OK, here are main differences between 1.14.5 and original 1.14: - VM is fixed so that it can (hopefully) initialize & start on any 030-based computer with any drive and any hard disk driver. Tested on a Falcon030, 14 MB ST RAM, HDD Conner CFS 1621A (IDE) and HDDRIVER (NOTICE: it seems to work *much* better than before, but still isn't 100% stable) - PMMU cookie will be set in the Cookie Jar when VM is active. - the Cookie Jar has been increased and has now 8 free entries more. - serial patch is applied so that data transfers up to 230000 baud via RS-232 seem to be possible. - pexec() patch is applied to avoid possible crashes on 040-based machines while loading filesystems (XFS). - unaligned block memory moves (quickmov.spp) should be now faster on 030. - new command, SECURITY, is introduced to the MINT.CNF. Default is SECURITY=NO. If set to YES, Rwabs() and Dwritelabel() are available for superuser (root) only. - a bug in procfs.c is fixed (function proc_remove()), so that regular users are no longer able to remove processes those aren't their own (it was known as "ftpd /proc bug"). Security oriented stuff has been experimentally introduced as a result of long and sometimes hot discuss on the MiNT mailing list. It is intended to prevent regular users, who don't have root privileges in multiuser configurations, from doing ugly things to the system. For now, only Rwabs() has been protected so that any user but root has no possibility to reformat the drive. Also Dwritelabel() will be denied for user processes. Please test these new features carefully and report any found problems to either MiNT mailing list (mint@atari.archive.umich.edu) or directly to me (draco@mi.com.pl). Note it is planned for the future to fix Super() and all XBIOS functions so that they would be superuser-only, when the SECURITY option is enabled. However, it needs additional kernel functions, those are currently under development. Super() and XBIOS will work traditional way until new MiNTLibs and the complete new MiNT distribution would be prepared. If you run MultiTOS or any other non-multiuser setup, please set SECURITY=NO. Serial patch has been done by Torsten Lang (Torsten.Lang@jung.de). Pexec patch has been done by Harry Eaton (haceaton@aplcomm.jhuapl.edu). The responsibility for all other changes (see changes.mh) and this kernel version is taken by me (draco@mi.com.pl). No warranty as ever, use it at your own risk. Enjoy, Draco, Warszawa, 13.IX.1997. PS. Binaries are compiled with gcc 2.7.2 **************************************************************************** This is FreeMiNT 1.14 BETA: FreeMiNT 1.14 has virtual memory which use a dedicated swappartition. The swappartition is created by the doswap utility included in the distribution. MiNT now also have a new recognised "nameparameter". If you rename mint.prg into mntnm.prg or mintnm.prg and run it from the autofolder then both memory protection and virtual memory will be disabled. Virtual memory is only enabled if memory protection is disabled, you have a swappartion installed,you have enough memory in your computer and have a true 68030 in your computer. Memory protection is turned off by for example renaming mint.prg into mintnp.prg and running it from the autofolder. VM will not work with 040,060 or 020 with 68851 coprocessor. It will only work with a true 030 with mmu. It will not work with a 68EC030 or similar processor. WARNING: The specific type of 030 is not tested. The VM will try to run and will crash on a EC030. If you have such a processor you should always run MiNT with both memory protection and VM turned off! I strongly suggest you to make a backup of your harddisk before experimenting with VM. Bevare that this version is a beta and is not tested on all systems. It is tested on a plain 8 MHz 2.5 meg 520ST and a TT clocked at 32 MHz with 4 meg ST-ram and 4 meg TT-ram using a Quantum 850 meg Trailblazer scsi harddisc fitted to the internal TT scsibus and using AHDI V5.00 as harddisc driver. It is not tested on any other machine and may perhaps not run on other machines. Although that is highly unlikely. VM larger than 64 meg is not supported and doswap will complain if you try to install a larger swappartition than 64 meg. By default all TT-ram and all ST-ram but 4 meg is used as page memory ie only 4 meg ST-ram will be left. This can be changed if the symbol ST_LEFT_AFTER_VM in mem.h are changed to the amount of ST-ram needed. On a TT you can set this as low as 1 or 2 megs if the program flags on your applications are properly set. On a Falcon you might want to have more ST-ram free. Version 1.14 (ie VM extension) was made by Sven 'il Profesore' Karlsson. Patches from 1.12.5 to MiNT 1.12.6 were collected by Charles Briscoe-Smith . Versions of FreeMiNT up to and including 1.12.5 were collected by Michael Hohmuth 21th of September 1996 /* * This file belongs to FreeMiNT. It's not in the original MiNT 1.12 * distribution. */ This is an attempt in helping to re-synchronize the MiNT source tree between the MiNT Mailing List folks. This effort has previously been known as "MH-MiNT". Please note that FreeMiNT is unsupported. There is no warranty. See the file COPYING for details. Please report bugs to the MiNT mailing list The supplied binary is compiled with gcc 2.3.3. WARNING: This is only a beta. There is a binary version in this distribution but it is only meant for people who are willing to risc their harddisc in the quest to find all bugs. The VM extension took 3 days to write. It has been tested only on the machines listed above during 2 weeks. There are probably configurations that will lead to problems. You should backup all your vital data before trying this piece of software. It is stable on my TT but I do not take any responsibility for any lost data or damaged media or hardware. NOTE: The reltime clock in my TT has stopped working. Since I have not fixed it yet a lot of files have strange timestamps. Regards Sven Karlsson, Istari Software