Project

General

Profile

Statistics
| Branch: | Revision:

root / prex-0.9.0 / doc / ChangeLog @ 03e9c04a

History | View | Annotate | Download (14.8 KB)

1

    
2
Version 0.9.0:
3

    
4
 - New: Enable capability based security by default.
5
 - New: Support resource limit to prevent DoS attack.
6
 - New: Add task_chkcap() kernel call to trace the capability violations.
7
 - New: Support pipe and redirection in shell.
8
 - New: Support LCD off timer.
9
 - New: Add some logical drivers with new driver model.
10
 - New: Move HAL in BSP directory.
11
 - New: Define compiler options in tool specific makefiles.
12
 - New: Add test program for POSIX configuration interface.
13
 - New: Handle PATH variable for exec in shell.
14
 - New: Add 'spl' interrupt framework derived from BSD.
15
 - New: Add 'more' command to verify the pipe feature in shell.
16
 - New: Support SUN studio compiler.
17
 - New: Change name of real-time task to *.rt to identify it easily.
18
 - New: Support path based capability mapping.
19
 - New: Support getenv()/putenv().
20
 - New: Change irq_attach() to pass data for IST.
21
 - New: Add power server - 'pow'.
22
 - New: Define power action for each power event.
23
 - New: Add test program for POSIX environment variable.
24
 - New: Add 'fstab' - file system table.
25
 - New: Add configuration file to customize capability table.
26
 - New: Run 'rc' script at boot.
27
 - New: Add 'set', 'unset' and 'export' command in shell.
28
 - New: Add script loader in exec server.
29
 - New: Add 'pmctrl' - power management utility.
30
 - New: Add _SILENT_ switch for build.
31
 - New: Support protected name for system object.
32
 - New: Add CAP_PROTSERV capability.
33
 - New: Add a shutdown routine in the driver structure.
34
 - New: Add an argument for the private data size in device_create().
35
 - New: Add device_private() to get the pointer to the private data.
36
 - New: Add device_control() service to access another driver.
37
 - New: Add the kernel test program for random parameter attack.
38
 - New: Add 'diskutil' - disk management utilitiy.
39
 - New: Add 'install' - software installer.
40
 - New: Add 'ktrace' - system call tracer.
41
 - New: Add CAP_USERFILES/CAP_SYSFILES for data caging.
42
 - New: Add workstation console multiplexer driver - 'wscons'.
43
 - New: Initial PowerPC support.
44
 - New: Add _STRICT_ switch for build.
45
 - New: Add new device flag (D_PROT) for protected devices.
46
 - New: Support Solaris for host.
47
 - New: Add audit mode to find defective application.
48
 - New: Add test program for stack overflow.
49
 - New: Initial version of kernel debugger.
50
 - New: Add 'lock' - terminal lock utility.
51
 - Fix: Page fault in realloc().
52
 - Fix: Remove the internal 'more' command support.
53
 - Fix: exception_return() breaks the return value of subsequent syscall.
54
 - Fix: 'tty' - the new line is not handled properly.
55
 - Fix: Intermittent hang during task_terminate().
56
 - Fix: 'lr' register is broken after fork(). (ARM)
57
 - Fix: Enable interrupts during system call (ARM).
58
 - Fix: Page fault under sub-shell (NOMMU).
59
 - Fix: The pipe() system call fails at second call.
60
 - Fix: Fix to increment the file reference in dup2().
61
 - Fix: The byte count for writing fifo is always 0.
62
 - Fix: Memory leak in task_terminate().
63
 - Fix: Synchronize server initializations to prevent dead lock.
64
 - Fix: Allow priority change if the target thread belongs to the child task.
65
 - Fix: Fix to print the file type for device file correctly.
66
 - Fix: Reduce #ifdef in the kernel.
67
 - Fix: Remove all magic number from the kernel objects.
68
 - Fix: Fix the compile error with gcc 2.95. Correct the format of printf.
69
 - Fix: Fix to reject changing the capability of the kernel task.
70
 - Fix: Fix system hang when kernel is compiled with PCC.
71
 - Fix: Remove redundant comments.
72
 - Fix: Add signal number in the return code of waitpid().
73
 - Fix: Fix to set correct errno when gettimeofday() is failed.
74
 - Fix: Change mode_t type to uint32_t.
75
 - Fix: Remove workaround for ioctl() buffering issue.
76
 - Fix: Move isatty() service to fs server from the library code.
77
 - Fix: Remove CAP_IPC capability.
78
 - Fix: Remove CAP_SEMAPHORE capability.
79
 - Fix: Prevent format string attack with sys_log().
80
 - Fix: Fix many codes to prevent buffer overflow caused by strcpy/strcat.
81
 - Fix: Add PRIO_REALTIME for the default priority of the real-time threads.
82
 - Fix: Page fault in 'nice'. The first item of the envp is lost.
83
 - Fix: Add cwd data in exec message to build the full path in exec server.
84
 - Fix: setpriority() returns error even if it is success.
85
 - Fix: Change 'fifofs' mount point to /mnt/fifo from /fifo.
86
 - Fix: Change to generate driver table from configuration file.
87
 - Fix: 'proc' - some process data are not initialized for fork().
88
 - Fix: Fix alignment of argv pointers.
89
 - Fix: 'tty' - fix for big endian.
90
 - Fix: Modify libc to reduce the size of executable file.
91

    
92
Version 0.8.1:
93

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

    
113

    
114
Version 0.8.0:
115

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

    
137

    
138
Version 0.7.0:
139

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

    
174

    
175
Version 0.5.0:
176

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

    
188

    
189
Version 0.4.3:
190

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

    
209

    
210
Version 0.4.2:
211

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

    
230

    
231
Version 0.4.1:
232

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

    
241

    
242
Version 0.4.0:
243

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

    
253

    
254
Version 0.3.1:
255

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

    
263

    
264
Version 0.3.0:
265

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

    
278

    
279
Version 0.2.2:
280

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

    
290

    
291
Version 0.2.1:
292

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

    
299

    
300
Version 0.2.0:
301

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

    
309

    
310
Version 0.1.2:
311

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

    
317

    
318
Version 0.1.1:
319

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

    
329

    
330
Version 0.1:
331

    
332
 - Initial public release.