forked from alimon/prex
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
executable file
·332 lines (283 loc) · 14.8 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
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.