Rev 30 | Rev 42 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 30 | Rev 31 | ||
---|---|---|---|
1 | \chapter{Developers} |
1 | \chapter{Developers} |
2 | \label{developers} |
2 | \label{developers} |
3 | 3 | ||
4 | \section{\JJ} |
4 | \section{\JJ} |
5 | {\JJ} is the original author of the SPARTAN kernel and the initiator of the |
5 | {\JJ} is the original author of the SPARTAN kernel and the initiator of the |
6 | idea to start the HelenOS project. During the works on the system, he has |
6 | idea to start the HelenOS project. During the works on the system, he has |
7 | been the most active developer. He also took on the project agenda |
7 | been the most active developer. He also took on the project agenda |
8 | and administration and became the project leader. |
8 | and administration and became the project leader. |
9 | 9 | ||
10 | Before the project officially started, {\JJ} created the SPARTAN kernel |
10 | Before the project officially started, {\JJ} created the SPARTAN kernel |
11 | for ia32 and mips32 along with SMP support, scheduler and synchronization\footnote{The |
11 | for ia32 and mips32 along with SMP support, scheduler and synchronization\footnote{The |
12 | initial SPARTAN kernel did not reach userspace.}. |
12 | initial SPARTAN kernel did not reach userspace.}. |
13 | 13 | ||
14 | In the project time proper, he implemented considerable parts |
14 | In the project time proper, he implemented considerable parts |
15 | of ia64 code and worked also on mips32 memory management. |
15 | of ia64 code and worked also on mips32 memory management. |
16 | On the generic front, {\JJ} designed generic the virtual address |
16 | On the generic front, {\JJ} designed generic the virtual address |
17 | translation interface for the 4-level hierarchical page table translation mechanism |
17 | translation interface for the 4-level hierarchical page table translation mechanism |
18 | as well as for the global page hash table translation mechanism. He has been involved |
18 | as well as for the global page hash table translation mechanism. He has been involved |
19 | in address space management functions and userspace synchronization through futexes. |
19 | in address space management functions and userspace synchronization through futexes. |
20 | Other areas of his contribution include the kernel console and the kernel ELF loader. |
20 | Other areas of his contribution include the kernel console and the kernel ELF loader. |
21 | {\JJ} is also the author of the generic buddy system framework and B+tree implementation. |
21 | {\JJ} is also the author of the generic buddy system framework and B+tree implementation. |
22 | 22 | ||
23 | \section{\OP} |
23 | \section{\OP} |
24 | {\OP} has been very agile HelenOS developer. He is responsible for large areas of the |
24 | {\OP} has been very agile HelenOS developer. He is responsible for large areas of the |
25 | kernel and userspace and has completely created the amd64 port and completed the mips32 |
25 | kernel and userspace and has completely created the amd64 port and completed the mips32 |
26 | port to the extent that it runs on a real MIPS machine\footnote{SGI Indy}. |
26 | port to the extent that it runs on a real MIPS machine\footnote{SGI Indy}. |
27 | Besides the architecture specific involvement, {\OP} programmed the slab allocator |
27 | Besides the architecture specific involvement, {\OP} programmed the slab allocator |
28 | and modified the frame allocator to be self-contained which in turn let the old |
28 | and modified the frame allocator to be self-contained which in turn let the old |
29 | and very limited heap manager be removed from the kernel entirely. He also created |
29 | and very limited heap manager be removed from the kernel entirely. He also created |
30 | architecture independent FPU lazy switching framework. Other example of his |
30 | architecture independent FPU lazy switching framework. Other example of his |
31 | activity is the IPC subsystem and partial TLS\footnote{Thread local storage.} support. |
31 | activity is the IPC subsystem and partial TLS\footnote{Thread local storage.} support. |
32 | Lastly, {\OP} equipped the kernel console with features found in userspace command shells |
32 | Lastly, {\OP} equipped the kernel console with features found in userspace command shells |
33 | (e.g. tab completion of commands and command history through keyboard arrows) and wrote |
33 | (e.g. tab completion of commands and command history through keyboard arrows) and wrote |
34 | the kernel configuration software. |
34 | the kernel configuration software. |
35 | 35 | ||
36 | Apart from the self development, other members of the team appreciated \OP's excellent |
36 | Apart from the self development, other members of the team appreciated \OP's excellent |
37 | debugging and troubleshooting skills. He has been the person behind discovery of |
37 | debugging and troubleshooting skills. He has been the person behind discovery of |
38 | majority of the compiler and simulator bugs. |
38 | majority of the compiler and simulator bugs. |
39 | 39 | ||
40 | \section{\MD} |
40 | \section{\MD} |
41 | {\MD} is a very dedicated HelenOS developer. Right from the beginning, Martin |
41 | {\MD} is a very dedicated HelenOS developer. Right from the beginning, Martin |
42 | has cared about project's code purity and readibility. He was the first developer to |
42 | has cared about project's code purity and readibility. He was the first developer to |
43 | start writing Doxygen-style comments. He has promoted the proper use of C language |
43 | start writing Doxygen-style comments. He has promoted the proper use of C language |
44 | {\tt const} keywords and extensive typedefing. On the tools front, he has rewritten |
44 | {\tt const} keywords and extensive typedefing. On the tools front, he has rewritten |
45 | the initial build system and created all our toolchain build scripts. |
45 | the initial build system and created all our toolchain build scripts. |
46 | 46 | ||
47 | Martin worked and much improved the ia32 and amd64 kernel booting using the Grub bootloader |
47 | Martin worked and much improved the ia32 and amd64 kernel booting using the Grub bootloader |
48 | and Multiboot specification. He also created specialized boot loaders for mips32 and ppc32 --- architectures |
48 | and Multiboot specification. He also created specialized boot loaders for mips32 and ppc32 --- architectures |
49 | that don't provide many other ways to load userspace init tasks. Finally, |
49 | that don't provide many other ways to load userspace init tasks. Finally, |
50 | {\MD} bacame the sole author of the entire ppc32 port and has encountered |
50 | {\MD} bacame the sole author of the entire ppc32 port and has encountered |
51 | partial success in booting ppc64 port to real hardware\footnote{Apple G5.}. |
51 | partial success in booting ppc64 port to real hardware\footnote{Apple G5.}. |
52 | 52 | ||
53 | \section{\JV} |
53 | \section{\JV} |
54 | {\JV} has worked on ia32 and ia64 FPU context switching and passive ia32 |
54 | {\JV} has worked on ia32 and ia64 FPU context switching and passive ia32 |
55 | and active and passive ia64 console. He has relocated the ia64 kernel to |
55 | and active and passive ia64 console. He has relocated the ia64 kernel to |
56 | region 7 (i.e. to the highest addresses) and has first coped with ia64 |
56 | region 7 (i.e. to the highest addresses) and has first coped with ia64 |
57 | interrupts. {\JV} has been always prepared to discuss different kernel |
57 | interrupts. {\JV} has been always prepared to discuss different kernel |
58 | issues. His expertise in ia32 is well recognized. |
58 | issues. His expertise in ia32 is well recognized. |
59 | 59 | ||
60 | \section{\JC} |
60 | \section{\JC} |
61 | {\JC} has worked on ia32 memory map detection, softfloat and softint libraries |
61 | {\JC} has worked on ia32 memory map detection, softfloat and softint libraries |
62 | and printf() standards comformance. He also ported several kernel libraries to userspace. |
62 | and printf() standards comformance. He also ported several kernel libraries to userspace. |
63 | 63 | ||
64 | \section{\SB} |
64 | \section{\SB} |
65 | {\SB} implemented sorting library functions and implemented the buddy allocator |
65 | {\SB} implemented sorting library functions and implemented the buddy allocator |
66 | interface for the frame allocator. He edited project documentation. |
66 | interface for the frame allocator. He edited project documentation. |
67 | 67 |