Changes between version 1.1 and 1.2 ----------------------------------- Generic changes: * Lots of bug fixes * Experimental V4 version available in a branch in CVS (tag name 'v4_branch') * The in-kernel debugger jdb has been greatly improved see the jdb manual at http://os.inf.tu-dresden.de/fiasco/doc/jdb.pdf * Scheduling extensions especially usable for real-time applications have been added * Absolute timeouts have been added * Minimal required gcc version increased to 3.3 * gcc 4.0 is also supported * A one-shot timer mode has been added * User thread can now have access to their execution times * Several extensions have been added: * Exception IPC * UTCBs * The ex-regs system call now supports a "no-cancel" flag to not abort ongoing IPC operations * Local IPC * User accessible kernel feature flags and version information * 'Alien' threads IA32: * The IO protection has been greatly improved * The amount of memory handled by Fiasco has been increased and is currently limited to 1GB RAM * Added extensions specifically for IA32 * LDT/GDT segment support for user land * The kernel is now compiled with regparm=3 (can be switched off) ARM: * The ARM variant is now as stable as the IA32 variant * The jdb support has been improved UX: * Added extensions * LDT/GDT segment support for user land - GDT support is only available with Linux-2.6 or later host kernels Changes between version 1.0 and 1.1 ----------------------------------- Generic changes: * gcc up to version 3.3 is now fully supported * Bochs support has been improved * System call dispatching is faster due to less indirection levels * Some Long-IPC bugs that could lead to endless pagefaults have been fixed * Long-IPC to short-flexpage transfers now work correctly * A race condition in the destruction of threads has been eliminated * An uncaught exception on an ex_regs'd thread now properly terminates it * The kernel debugger now displays symbol and line information in backtraces * Support for absolute IPC timeouts has been implemented * Support for multiple per-thread timeslices has been added * Experimental Preemption-IPC support is now available * Multiple scheduler bugs have been ironed out * JDB's logging macros are now gcc-3.x-proof IA32: * JDB's performance counter support has been greatly improved * The IPC fastpath is even faster now * The tagged TLB emulation (small address spaces) has been revised and can now use the IPC fastpath and sysenter. * Fast kernel entries via sysenter now properly guard against set NT flag and singlestep debug interrupt tricks from malicious users. * A double-fault handler has been added for better debugging * You can now play tetris in the kernel debugger ARM: * The ARM processor architecture is now supported * Support for Intel SA1110 CPUs, with debugging via serial port * Preliminary JDB support has been added * A preliminary GDB stub has been integrated * Fiasco supports the SA1110 UART, the SA1110 interrupt controller, and the SA1110 timer * X.0 (32-Bit Thread IDs) ABI is fully supported but not well tested UX: * The Fiasco kernel debugger (JDB) has been ported to Fiasco-UX * Hardware-assisted breakpoint support in JDB under UX is experimental * Kernel shutdown is now faster * Support for hybrid Linux/L4 programs using native host system calls has been added * Revoking page access rights no longer unmaps the whole page * Multiple interrupts are now supported * Fiasco-UX now provides an SDL framebuffer console * Loading of ELF binaries is now left to rmgr * Some bugs in the handling of interrupts on iret have been fixed