123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- Version 1.8 (2016-12-18)
- The memory management system was extensively reworked. A new type for
- physical addresses is now used where appropriate, and the system can
- make use of the high memory segment. Many paging issues have been
- addressed, and as a result the system handles low memory situations
- more gracefully now.
- The virtual memory system now uses a red-black tree for allocations,
- and as a result it now supports tasks with tens of thousands of
- mappings.
- Debugging and error reporting has been improved. Among other things
- the VM maps are now augmented with names that are used in error
- messages, panics and assertions point to their locations, the lock
- debugging mechanism has been fixed, and the kernel debugger can now
- inspect stack traces reaching into the machine-dependent bits
- implemented in assembler.
- As usual, bugs have been fixed throughout the code, including minor
- issues with the gsync synchronization mechanism which is now used for
- the internal locks in the GNU C Library (glibc).
- The deprecated external memory management interface has been removed.
- The partial ACPI support has been removed.
- Version 1.7 (2016-05-18)
- The code has been updated to work with newer versions of GCC, and numerous bugs
- have been fixed throughout the code, including a pageout deadlock. The code
- uses integer types from <stdint.h> now instead of the old Mach types.
- The VM cache policy change has been merged. The kernel now caches
- unreferenced VM objects unconditionally instead of using a fixed
- limit.
- The physical page allocator of the X15 kernel has been integrated, and
- is now used directly by the slab allocator. This increases the kernel
- heap addressing important scalability issues.
- The gsync synchronization mechanism was added, similar to the Linux kernel's
- futexes, to allow efficient and powerful userland synchronization.
- Support for profiling kernel code from userland through sampling was added.
- Version 1.6 (2015-10-31)
- The code has been updated to work with newer versions of the compiler,
- and numerous bugs have been fixed throughout the code.
- The lock debugging infrastructure has been revived and improved, and
- many locking issues have been fixed.
- The IPC tables and the hash table mapping objects to IPC entries have
- been replaced by radix trees. This addresses a scalability issue, as
- IPC tables required huge amounts of continuous virtual kernel memory.
- The kernel now allows non-privileged users to wire a small amount of
- memory.
- A bug hindering the eviction of inactive pages by the pageout daemon
- has been identified and fixed.
- The kernel now keeps timestamps relative to the system boot time.
- Among other things this fixes bogus uptime readings if the system time
- is altered.
- A reference leak in the exception handling mechanism has been
- identified and fixed.
- ANSI escape sequences are now handled when using `printf'. This fixes
- the formatting of messages printed by various Linux drivers.
- Version 1.5 (2015-04-10)
- Numerous cleanups and stylistic fixes of the code base. Several
- problems have been identified using static analysis tools and
- subsequently been fixed.
- A protected payload can now be associated with capabilities. This
- payload is attached by the kernel to delivered messages and can be
- used to speed up the object lookup in the receiving task.
- The kernel debugger can now parse ELF symbol tables, can be invoked
- over serial lines, gained two new commands and has received usability
- improvements.
- The VM pageout policy has been tuned to accommodate modern hardware.
- The kernel gained partial ACPI support on x86, enough to power down
- the system.
- Version 1.4 (2013-09-27)
- Really too many to list them individually. Highlight include numerous bug and
- stability fixes, a Xen port for 32-bit x86 including basic support for Physical
- Address Extension (PAE), an initial AHCI driver (SATA hard disks), a new SLAB
- memory allocator to replace the previous zone allocator, support for memory
- object proxies, access restrictions for x86 I/O ports, support for some PCMCIA
- devices based on the pcmcia-cs package.
- Version 1.3
- The kernel now directly supports "boot scripts" in the form of multiboot
- module names with the same syntax as the Hurd's `serverboot' program.
- That is, instead of telling GRUB "module /boot/serverboot", you can give
- GRUB a series of command like "module /hurd/ext2fs ${...}" where the
- syntax after "module" is the same as in boot scripts for Hurd's `serverboot'.
- The kernel message device `kmsg' is now enabled by default.
- --disable-kmsg turns it off.
- Large disks (>= 10GB) are now correctly supported, the new get_status
- call DEV_GET_RECORDS can return the number of records of a device.
- Lots of tweaks have been done to the virtual memory management to make
- it perform better on today's machines.
- The console supports ANSI escape sequences for colors and attributes.
- Support for the terminal speeds B57600 and B115200 has been added.
- Version 1.2
- Many bug fixes.
- The task_basic_info RPC now has an additional field, holding the
- creation time of the task. Likewise for thread_basic_info.
- The interface generator `MiG' has been split out.
- Partition names for disks are now printed in the correct way.
- Linux drivers are updated to 2.0.36. Many thanks to Okuji Yoshinori
- for great work here. The Linux emulation support is much improved.
- The kernel message device `kmsg' is supported. --enable-kmsg turns on
- the device.
- The parallel driver is enabled by --enable-lpr.
- New make targets, install-kernel and install-headers are added. The
- former will install only the kernel, and the latter will install only
- the header files.
- Print out Mach device names instead of Linux ones.
- Version 1.1
- Cross-compilation support is much improved. Any of various popular
- libc's is now sufficient for building clib-routines.o.
- New configure option --enable-kdb asks for kernel debugger to be
- compiled in.
- Bug in --enable-ncr53c7xx has been fixed.
- Many thanks go to Marcus G. Daniels (marcus@cathcart.sysc.pdx.edu) for
- his very helpful testing of the 1.0 release and for his many
- improvements to the cross-compilation support.
|