Prex Home / Browse Source - Prex Version: 0.9.0

root/doc/ChangeLog

/* [<][>][^][v][top][bottom][index][help] */

Version 0.9.0:

 - New: Enable capability based security by default.
 - New: Support resource limit to prevent DoS attack.
 - New: Add task_chkcap() kernel call to trace the capability violations.
 - New: Support pipe and redirection in shell.
 - New: Support LCD off timer.
 - New: Add some logical drivers with new driver model.
 - New: Move HAL in BSP directory.
 - New: Define compiler options in tool specific makefiles.
 - New: Add test program for POSIX configuration interface.
 - New: Handle PATH variable for exec in shell.
 - New: Add 'spl' interrupt framework derived from BSD.
 - New: Add 'more' command to verify the pipe feature in shell.
 - New: Support SUN studio compiler.
 - New: Change name of real-time task to *.rt to identify it easily.
 - New: Support path based capability mapping.
 - New: Support getenv()/putenv().
 - New: Change irq_attach() to pass data for IST.
 - New: Add power server - 'pow'.
 - New: Define power action for each power event.
 - New: Add test program for POSIX environment variable.
 - New: Add 'fstab' - file system table.
 - New: Add configuration file to customize capability table.
 - New: Run 'rc' script at boot.
 - New: Add 'set', 'unset' and 'export' command in shell.
 - New: Add script loader in exec server.
 - New: Add 'pmctrl' - power management utility.
 - New: Add _SILENT_ switch for build.
 - New: Support protected name for system object.
 - New: Add CAP_PROTSERV capability.
 - New: Add a shutdown routine in the driver structure.
 - New: Add an argument for the private data size in device_create().
 - New: Add device_private() to get the pointer to the private data.
 - New: Add device_control() service to access another driver.
 - New: Add the kernel test program for random parameter attack.
 - New: Add 'diskutil' - disk management utilitiy.
 - New: Add 'install' - software installer.
 - New: Add 'ktrace' - system call tracer.
 - New: Add CAP_USERFILES/CAP_SYSFILES for data caging.
 - New: Add workstation console multiplexer driver - 'wscons'.
 - New: Initial PowerPC support.
 - New: Add _STRICT_ switch for build.
 - New: Add new device flag (D_PROT) for protected devices.
 - New: Support Solaris for host.
 - New: Add audit mode to find defective application.
 - New: Add test program for stack overflow.
 - New: Initial version of kernel debugger.
 - New: Add 'lock' - terminal lock utility.
 - Fix: Page fault in realloc().
 - Fix: Remove the internal 'more' command support.
 - Fix: exception_return() breaks the return value of subsequent syscall.
 - Fix: 'tty' - the new line is not handled properly.
 - Fix: Intermittent hang during task_terminate().
 - Fix: 'lr' register is broken after fork(). (ARM)
 - Fix: Enable interrupts during system call (ARM).
 - Fix: Page fault under sub-shell (NOMMU).
 - Fix: The pipe() system call fails at second call.
 - Fix: Fix to increment the file reference in dup2().
 - Fix: The byte count for writing fifo is always 0.
 - Fix: Memory leak in task_terminate().
 - Fix: Synchronize server initializations to prevent dead lock.
 - Fix: Allow priority change if the target thread belongs to the child task.
 - Fix: Fix to print the file type for device file correctly.
 - Fix: Reduce #ifdef in the kernel.
 - Fix: Remove all magic number from the kernel objects.
 - Fix: Fix the compile error with gcc 2.95. Correct the format of printf.
 - Fix: Fix to reject changing the capability of the kernel task.
 - Fix: Fix system hang when kernel is compiled with PCC.
 - Fix: Remove redundant comments.
 - Fix: Add signal number in the return code of waitpid().
 - Fix: Fix to set correct errno when gettimeofday() is failed.
 - Fix: Change mode_t type to uint32_t.
 - Fix: Remove workaround for ioctl() buffering issue.
 - Fix: Move isatty() service to fs server from the library code.
 - Fix: Remove CAP_IPC capability.
 - Fix: Remove CAP_SEMAPHORE capability.
 - Fix: Prevent format string attack with sys_log().
 - Fix: Fix many codes to prevent buffer overflow caused by strcpy/strcat.
 - Fix: Add PRIO_REALTIME for the default priority of the real-time threads.
 - Fix: Page fault in 'nice'. The first item of the envp is lost.
 - Fix: Add cwd data in exec message to build the full path in exec server.
 - Fix: setpriority() returns error even if it is success.
 - Fix: Change 'fifofs' mount point to /mnt/fifo from /fifo.
 - Fix: Change to generate driver table from configuration file.
 - Fix: 'proc' - some process data are not initialized for fork().
 - Fix: Fix alignment of argv pointers.
 - Fix: 'tty' - fix for big endian.
 - Fix: Modify libc to reduce the size of executable file.

Version 0.8.1:

 - New: Add MMU support for ARM.
 - New: Support Integrator/CP platform.
 - New: Add the function to relocate ARM exception vectors.
 - New: Add exception handling for ARM architecture.
 - New: Add machine_setpower() interface in DKI.
 - New: Define 'syspage' which holds architecture specific data.
 - New: Change architecture interface to common definition in all platforms.
 - New: Add physical/virtual address mapping table.
 - New: Support multiple RAM regions.
 - New: Add the serial console driver for PC.
 - New: Add tetris game ported from BSD.
 - New: Add '--profile' option in the configure script.
 - New: Support static driver to debug with fixed symbol address.
 - Fix: Change all external function declarations as BSD style.
 - Fix: Remove time data from the kernel banner string.
 - Fix: Improve build and configuration system.
 - Fix: Add tty_done() to notify the completion of the TTY output interrupt.
 - Fix: Fix the broken output of 'mem' command in 'kmon'.


Version 0.8.0:

 - New: Add 'fatfs' - FAT file system.
 - New: Add 'fifofs' - FIFO file system.
 - New: Support pipe().
 - New: Support compiling with PCC (Portable C Compiler).
 - New: Add 'head' command.
 - New: Add 'cal' command.
 - Fix: Fix object_create() for no object name.
 - Fix: Remove all variadic macros for C90 compilers.
 - Fix: The semaphore count is not set properly for re-initialization.
 - Fix: Change the argument type for timer_callout().
 - Fix: Fix page fault if an alarm exception is invoked after task termination.
 - Fix: thread_suspend() returns a success code for error case.
 - Fix: Fix to return an appropriate error code in thread_load().
 - Fix: Remove the register data from the argument of an exception handler.
 - Fix: Change the data types of ioctl() parameters.
 - Fix: Fix a page fault by waitpid().
 - Fix: Add wait after enabling gate A20 for some real hardwares.
 - Fix: Fix vnode lookup routine to prevent a deadlock in a fs server.
 - Fix: Fix a process server to handle exit() properly.
 - Fix: Fix the system hang on the actual GBA flash cart.


Version 0.7.0:

 - New: Add process server which manages process state and pid.
 - New: Add exec server which executes an ELF program.
 - New: Add boot server.
 - New: Initial release of TTY driver. Minimum set of termios is also added.
 - New: 'cmdbox' - tiny versions of many UNIX utilities.
 - New: Add init process.
 - New: Add stdio to libc, which is optimized for low-footprint systems.
 - New: Add UNIX emulation for fork(), exec(), pid, file I/O, signal, etc.
 - New: Support realloc().
 - New: Change gcc optimization option to -Os from -O2.
 - New: Enable gcc '-ansi' and '-pedantic' options for portability.
 - Fix: Fix the scheduler to switch a thread properly for priority change.
 - Fix: Fix the kernel hang when a thread terminates while it holds a mutex.
 - Fix: Boot failure when a boot task does not have any data or bss sections.
 - Fix: The reference count is not incremented after dup().
 - Fix: Fix to support processing an exception by drivers at interrupt level.
 - Fix: Fix a file lookup routine in devfs.
 - Fix: The scheduler is kept locked with some exception conditions.
 - Fix: kmem_alloc() cause a hang when kernel memory allocation is failed.
 - Fix: Change the scheduling policy of a timer thread to SCHED_FIFO.
 - Fix: Page fault during mkdir() when "foo/bar" style path is specified.
 - Fix: Fix a bug in recursive mutex lock.
 - Fix: A mutex for buffer cache is not initialized.
 - Fix: Fix a page fault while writing ramfs.
 - Fix: Fix a build error with old version (2.95) of gcc.
 - Fix: Design change of timer_hook().
 - Fix: Reduce interrupt latency when interrupt occurs in thread switching.
 - Fix: Rescheduling flag is kept pending in some rare cases.
 - Fix: Remove a kernel function trace feature that depends on gcc.
 - Fix: Add checking CAP_NICE for the priority boost.
 - Fix: Fix a page fault after task termination by an exception.
 - Fix: Mutex is locked even if cond_wait() fails due to exception.
 - Fix: Fix memory leak when a periodic thread is terminated.


Version 0.5.0:

 - New: Add file system server including VFS framework.
 - New: Support buffer cache and mount function.
 - New: Add 'devfs' - device file system.
 - New: Add 'ramfs' - RAM file system.
 - New: Add 'arfs' - archive file system.
 - New: Add file system test tool.
 - New: Add 'configure' script for build.
 - New: Support BSD style makefile for POSIX applications.
 - Fix: Fix crash in irq_detach().
 - Fix: Fix makefile to optimize build speed with cygwin.


Version 0.4.3:

 - New: Support DPC - deferred procedure call.
 - New: Add 'dmesg' function to dump kernel messages.
 - New: Reduce the timer jitters of periodic thread.
 - New: Change the name of sys_stat() to sys_info().
 - New: Add handling of reference count for the device objects.
 - New: Add 'force' option to device_broadcast().
 - New: Make the kernel information as same with POSIX utsname.
 - New: Remove the quantum adjustment feature.
 - New: Add IPC test tool for multi-threaded servers.
 - New: Add timer hooking service to reduce the driver's callout.
 - New: Improve DVS algorithm of CPUfreq driver.
 - Fix: System hang when periodic timer is stopped for an invalid timer object.
 - Fix: Replace a delay driver as generic driver service.
 - Fix: Fix a system call trap code (ARM).
 - Fix: Fix a compile error when it built with SSP enabled gcc.
 - Fix: Fix data corruption in malloc() library.
 - Fix: A thread could not hold semaphore in some case.


Version 0.4.2:

 - New: Support RAM disk driver.
 - New: Change an argument type of device_read()/device_write().
 - New: Add kernel release name in the kernel statistics data.
 - New: Update vm_inherit option of task_create().
 - New: Change the data type of the message length of IPC related API.
 - New: The vm_attrib() API is renamed to vm_attribute().
 - New: Add kernel debugging API.
 - New: Code size reduction for GBA port.
 - New: Support recursive locking of mutex.
 - New: Code clean up and system tuning.
 - Fix: Fix page fault during kernel memory dump.
 - Fix: Fix a bug in removing free node for VM region (NOMMU).
 - Fix: System hang by accessing ARM bank register after STM^ instruction.
 - Fix: Fix an alignment bug in the page reserve routine.
 - Fix: Fix memory leak when vm_map() is called two or more times (NOMMU).
 - Fix: The end address of the page extraction is not correct (i386).
 - Fix: Interrupt is kept disabled when DMA buffer allocation is failed (i386).


Version 0.4.1:

 - New: Add ELF task relocation with NOMMU system.
 - New: Replace all strncpy() by strlcpy() in kernel for security reason.
 - Fix: There are some mutex hang conditions that cause system hang.
 - Fix: Fix a deadlock problem of FDD driver.
 - Fix: Rewrite the periodic timer routine in kernel.
 - Fix: The highest priority thread is not selected in sched_wakeone().
 - Fix: Drop vm_inherit option for task_create() on NOMMU system.


Version 0.4.0:

 - New: Add sys_capget()/sys_capset() kernel API for the task capability.
 - New: Define the standard message header for IPC.
 - New: Add vm_inherit argument in task_create() to improve exec() emulation.
 - New: Add /sample directory and sample applications.
 - New: Remove /img directory.
 - Fix: Fix the memory leak caused when task_create() is failed.
 - Fix: Incorrect I/O read size of FDD driver.
 - Fix: Fix the console driver to lock a scheduler during I/O operations.


Version 0.3.1:

 - New: Add null/zero device driver.
 - New: Support MUTEX_INITIALIZER for the static initialization of mutexes.
 - New: Merge all configuration files into one single 'config.h'.
 - New: libc and headers are updated with BSD derived code.
 - New: Add 'make lint' as make option.
 - Fix: object_lookup() does not return correct object ID.


Version 0.3.0:

 - New: Integrate configuration files and makefiles.
 - New: Change the name of sync APIs for POSIX compatibility.
 - New: Support re-initialize of the semaphore.
 - New: Change the driver ioctl code to BSD style.
 - New: Add test programs for mutex, semaphore and deadlock detection.
 - New: Add malloc() in the user mode library.
 - Fix: Fix the incorrect kernel handling of umem_strnlen().
 - Fix: Modify the thread test program for long-run test.
 - Fix: sem_post() can not unblock the waiting thread.
 - Fix: vm_allocate() does not zero-fill the allocated memory.
 - Fix: Fix compile error with gcc4.


Version 0.2.2:

 - New: Add the kernel function tracer which can dump the run-time call tree.
 - New: Add a benchmark tool to create/terminate 100000 threads at once.
 - New: Add code to detect above 64M of RAM. (i386)
 - Fix: Kernel page fault in accessing the highest physical page. (i386)
 - Fix: sys_reboot() is replaced by ioctl of the power management driver.
 - Fix: There is a time window that lost an IST trigger from ISR.
 - Fix: Change not to restart the system by sys_panic().
 - Fix: Clean up comments in kernel sources.


Version 0.2.1:

 - New: Add ARM processor support. (ATM7TDMI)
 - New: Add BSP for Game Boy Advance including on-screen keyboard.
 - Fix: The irq lock count is not 0 after switching to the new thread.
 - Fix: Improve the kernel callout timer for the small timeout value.
 - Fix: Remove the error check of max scheduling quantum in sched_setparam().


Version 0.2.0:

 - New: Add new VM code for No-MMU platform.
 - New: Change the structure of the driver I/O table.
 - New: Add minimum libc.
 - Fix: Fix panic() if the active condition variable is destroyed.
 - Fix: Semaphore causes an unconditional wakeup of the blocked threads.
 - Fix: Update structure of the source tree.


Version 0.1.2:

 - New: Add Pentium-M support for i386 processor driver.
 - New: Add CPU voltage monitoring tool 'cpuvolt'.
 - New: Add DVS test program which changes the CPU load periodically.
 - Fix: Improve the build method for cross platform portability.


Version 0.1.1:

 - New: Add an initial version of kernel monitor 'kmon'.
 - New: Add some user mode test programs to check kernel functions.
 - New: Move time_get()/time_set() functions to the driver layer.
 - New: Add sys_time() kernel interface to return system ticks.
 - New: Improve the device I/O dispatcher to verify user buffer automatically.
 - Fix: Timer overflow issue after 49.7 days of continuous operation.
 - Fix: Unexpected page fault in the exception handler.
 - Fix: Page fault after returning from main() routine.


Version 0.1:

 - Initial public release.

/* [<][>][^][v][top][bottom][index][help] */