Short list of differences between 2.0.0 and 2.0.2: - The ability to run Minix under DOS. - New and improved network task. More stable then the old inet, and allows for user-space serial IP (PPP). (No PPP supplied, hoping others will. Please disregard halfbaked manual pages on this subject.) - Console driver lines/columns is no longer fixed at 80x25. (See boot monitor's 'console' variable.) - Network configuration needs a netmask setting, see boot(8). Short list of changes in commands: - pc, m2: Pascal and Modula-2 compilers. - readclock -w: Write the current time into the CMOS clock. readclock -2: Add 20 years to compensate for a clock with a Y2K bug. - netdefault: Set default network device. - Several old, useless or minix-only commands removed. Short list of changes in manual pages: - New: pc(1), m2(1), env(1), uptime(1), xargs(1), dosd(4), ACK(7), config(8), dosminix(8), serial-ip(8), slip(8). - Changed: cc(1), monitor(8). Contributions: - G. Falzoni 3C503 ethernet driver. - Al Woodhull, Will Rose and Philip Homburg for the usual support, especially the first two for answering so many questions in comp.os.minix, something I should do more myself. Long list of differences between 2.0.0 and 2.0.2: (Warning: This list is riddled with lame jokes and other silly things that happen to sneak in when doing something as boring as compiling this list.) 2.0.2/include/ibm/cmos.h 2.0.2/include/ibm/portio.h Definitions for the CMOS clock and IBM port I/O routines. 2.0.2/include/minix/com.h Appearance of the DOSDSK task. 2.0.2/include/minix/config.h Cosmetic change of "ADAPTEC" in "AHA1540" in this and several other files. Added ENABLE_DOSFAT and ENABLE_DOSFILE for the two faces of the DOSDSK driver. (Analogous to the *_WINI switches.) Added ENABLE_WDETH, ENABLE_NE2000, and ENABLE_3C503 for the three subdrivers of the ethernet task. 2.0.2/include/minix/const.h Copyright date changed from 1995 to 1998. Not a very noteworthy change, but I keep getting disturbing images of "Minix 95" and "Minix 98" in my head. (Minix 2.0 was released in 1996, by the way, the copyright date in const.h was wrong...) 2.0.2/include/net/ Complete overhaul for the new network task. 2.0.2/include/sys/ioctl.h Some new calls for the network task. 2.0.2/src/boot/ Edparams command merged into boot.c, block caching removed to reduce complexity, simply "one command" functions don't need {}, 'memsize' and 'emssize' removed in favour of 'memory', new 'leader' and 'trailer' functions to print greeting messages. A20 enable/disable code in boothead.s has special code for PS/2 machines. Bootblock no longer fiddles with the floppy parameters. Really old crates that expect this no longer boot. New systems that do not expect this now work. Code now really small... 2.0.2/src/commands/i386/asmconv/ GNU assembly parser added by R. Veldema, but still buggy. Fixes by Will Rose not yet incorporated. 2.0.2/src/commands/i86/cc.c ASCII EM parser added to translation tables. "What's that?", you say? ACK translates from high level to an abstract machine, named EM, which in turn is translated to the target machine. The ability to compile ASCII EM code is nice for machine independent libary files written in EM assembly. 2.0.2/src/commands/ibm/loadfont.c Changed to be able to load the appropriate font from a combined font file, a file that contains 8x8, 8x14, and 8x16 dot fonts. Font files in /usr/lib/fonts/ replaced by combined fonts. 2.0.2/src/commands/ibm/readclock.c Revamped to properly set the clock (Philip read a data sheet), and a Y2K kludge to add 20 years to a clock set 20 years back because it can't run in 2000. (Options -w and -2.) 2.0.2/src/commands/make/ An "include" command added to the syntax. Timing problem on fast machines fixed. 2.0.2/src/commands/scripts/DESCRIBE.sh 2.0.2/src/commands/scripts/MAKEDEV.sh Code to describe/create new ethernet or dosdisk devices added. 2.0.2/src/commands/scripts/netdefault.sh New command to select the default network interface. 2.0.2/src/commands/simple/env.c New environment manipulation command. Not very useful, but POSIX mandates it. 2.0.2/src/commands/simple/fsck.c "Huge directory" warnings removed. Directories really can get big. 2.0.2/src/commands/simple/isoread.c Fixed by Al Woodhull so that it now actually works. 2.0.2/src/commands/simple/last.c Show time since boot if called as "uptime". 2.0.2/src/commands/simple/ls.c The -T option shows time to the second. -D (formerly -T) sorts by file type. This is a halfbaked ls, whole alfabet still far from fully used as option letters. 2.0.2/src/commands/simple/rarpd.c Changed to dynamically query the netmask. 2.0.2/src/commands/simple/slip.c Implementation of the SLIP protocol, but no header compression. Expected to be replaced by better code. Anyone got a PPP program? 2.0.2/src/commands/simple/stty.c Taught about pixel sizes, mostly useful to guess the console font size. 2.0.2/src/commands/simple/xargs.c New xargs command obtained from BSD. Alas it still seemed to be unhappy about the limitations of Minix, because a bug was observed, but not repaired when this distribution was created. (Very useful command, if it works...) 2.0.2/src/etc/profile Timezone now by default GMT instead of CET. (I happen to be in The Netherlands, i.e. the CET timezone. My test system now runs in GMT always to avoid making such a mistake again.) 2.0.2/src/etc/rc Small changes in how readclock is called, and in the initialization of the network and network services. 2.0.2/src/fs/device.c Nonblocking I/O to the network task fixed. If the network task blocks a request then cancel it if nonblocking. 2.0.2/src/fs/open.c Pipe administration moved to two different zone number slots in the in-core inode. Leave last zone number free. (Used at the VU for an "implement access control lists" assignment.) 2.0.2/src/fs/table.c Dosdisk table entry added. 2.0.2/src/inet/ Replaced by a much newer version. Stable, two ethernets and two pseudo IP networks for serial IP for instance. 2.0.2/src/kernel/3c503.[ch] Code and definitions for the 3C503 network adapter by G. Falzoni 2.0.0/src/kernel/aha1540.c The file aha_scsi.c is renamed to aha1540.c to better reflect the type of card. Useful if someone with lots of time writes a 2940 driver. 2.0.2/src/kernel/*_wini.c Task number no longer hard coded. It is now possible to say 'sd=at' and 'hd=a1540' to confuse the hell out of everything. Needless to say you shouldn't do that. 2.0.2/src/kernel/bios_wini.c Old bios13 calls removed in favour of the newer, more generic, int86 call. (Drivers can now make any BIOS call they can think of.) 2.0.2/src/kernel/clock.c Old timer value returned by alarm(2) rounded up to the nearest second. Alarm should never return 0 if the timer is still running. 2.0.2/src/kernel/console.c Screen dimensions (rows/columns) now variable and obtained from the BIOS tables. This makes it possible to run the console in 132x43 if the video card permits. Reverse video bug fixed. Report screen pixel sizes in termios struct. 2.0.2/src/kernel/const.h IRQ vectors renumbered to 0x50 (more or less free) and 0x70 (same as BIOS). This does not upset DOS. 2.0.2/src/kernel/dosfat.c 2.0.2/src/kernel/dosfile.c New drivers to see a big DOS file as a Minix disk, either using direct interpretation of FAT filesystem structures, or by using DOS file I/O. 2.0.2/src/kernel/driver.c Changes to allow one task to make I/O calls to another task, like dosdisk to at_wini. 2.0.2/src/kernel/keymaps/italian.src Replaced by keymap supplied by Ernesto Del Prete . 2.0.2/src/kernel/klib386.s 2.0.2/src/kernel/klib88.s BIOS disk I/O function bios13 replaced by more generic int86 interrupt call. A20 enable/disable code in klib88 has special code for PS/2 machines. 2.0.2/src/kernel/main.c Kernel, MM, FS, etc. information now comes from an array of a.out headers supplied by the boot monitor. Available memory comes from the new 'memory' boot variable. This allows Minix to start in an arbitrary location in memory, for instance in the memory that DOS offers as "free". 2.0.2/src/kernel/memory.c "RAM disk is too big" message changed into "Not enough memory for RAM disk". Let's see how much confusion that causes instead. 2.0.2/src/kernel/misc.c Get free memory list from the 'memory' boot variable. 2.0.2/src/kernel/mpx386.s 2.0.2/src/kernel/mpx88.s Sizes array removed, aout array introduced. 2.0.2/src/kernel/protect.c Small interrupt vector / segment descriptor initialization changes. 2.0.2/src/kernel/start.c Changes to allow for the variable placement of the kernel in memory. 2.0.2/src/kernel/table.c Changes in the driver choice code, i.e. 'hd=bios'. Mapdrivers() function added to make those choices. 2.0.2/src/kernel/type.h Interface declarations for the int86 routine using a big fat union to be able to access 8086/386 registers in many different ways, i.e. reg86.b.al, reg86.w.al, reg86.l.eax. 2.0.2/src/lib/ansi/malloc.c Malloc changed so that it no longer sets errno to ENOMEM if it succeeds. Should be no problem, except that a common bug in the use of perror() causes "Not enough core" errors to appear instead of the proper error message. 2.0.2/src/lib/ansi/misc.c Fixed list of (outdated) time zone information removed. One should use a proper TZ definition. 2.0.2/src/lib/i386/rts/crtso.s 2.0.2/src/lib/i86/rts/ncrtso.s The variable '_penviron' is initialized to point to either 'environ' or a hidden variable '_penvp'. *_penviron is then used throughout the library as the environment pointer. Applications can now use (and change) 'environ' as the environment pointer, or stupidly use 'environ' for other things without ill effect. 2.0.2/src/lib/i386/rts/m2rtso.s 2.0.2/src/lib/i386/rts/prtso.s 2.0.2/src/lib/i86/rts/nm2rtso.s 2.0.2/src/lib/i86/rts/nprtso.s New Pascal and Modula-2 runtime startoffs. 2.0.2/src/lib/ip/ Several new and updated network libary routines. 2.0.2/src/lib/libm2 2.0.2/src/lib/libp New Pascal and Modula-2 library. 2.0.2/src/lib/rts New machine independent runtime system stuff, currently containing only setjmp.e moved here from the i386 directory. An old i86/setjmp.s has been removed. Hopefully this code will end the spurious "longj err" seen on some old XTs. Make sure you're seated properly before attempting to read setjmp.e. 2.0.2/src/mm/main.c Changes in the memory summary code to accomodate the no longer fixed position of the Minix kernel in memory and the memory list. 2.0.2/src/tools/ps.c Changed to allow 'ps -ef' to do the same as 'ps alx'. (System V vs. BSD syntax.) Kees J. Bot