scoutos / prex-0.9.0 / doc / ChangeLog @ 03e9c04a
History | View | Annotate | Download (14.8 KB)
1 | 03e9c04a | Brad Neuman | |
---|---|---|---|
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. |