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