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. |