From 5e0b8d508ed51004bd836384293be00950ee62c9 Mon Sep 17 00:00:00 2001 From: Pasha Date: Tue, 20 Feb 2024 18:49:50 +0000 Subject: init gnumach copy --- NEWS | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 NEWS (limited to 'NEWS') diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..8349550 --- /dev/null +++ b/NEWS @@ -0,0 +1,161 @@ +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 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. -- cgit v1.2.1