Subversion Repositories HelenOS-doc

Rev

Rev 33 | Rev 42 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 33 Rev 36
Line 1... Line 1...
1
\chapter{Project}
1
\chapter{Project}
2
\label{project}
2
\label{project}
3
 
3
 
4
The HelenOS project was formed in late October 2004, when the six developers grouped and decided to
4
The HelenOS project was formed in late October 2004, when the six
-
 
5
developers grouped and decided to adopt previous work of {\JJ} on the
5
adopt previous work of {\JJ} on the SPARTAN kernel\footnote{The SPARTAN kernel has been developed
6
SPARTAN kernel\footnote{The SPARTAN kernel has been developed by {\JJ}
6
by {\JJ} since 2001.} as a foundation for their new operating system.
7
since 2001.} as a foundation for their new operating system.
7
 
8
 
8
The team had then worked on a specification\cite{helenos-spec} until March 8, 2005. The specification
9
The team had then worked on a specification\cite{helenos-spec} until
-
 
10
March 8, 2005. The specification was based on \MD's draft and
9
was based on \MD's draft and incorporated many suggestions from other members of the team.
11
incorporated many suggestions from other members of the team. The
10
The biggest part of the discussion was concerned about how many and what processor architectures we will support.
12
biggest part of the discussion was concerned about how many and what
-
 
13
processor architectures we will support. At that time, the SPARTAN
11
At that time, the SPARTAN kernel supported ia32 and mips32 to the extent that kernel threads could be scheduled.
14
kernel supported ia32 and mips32 to the extent that kernel threads could
12
The ia32 port could do some very basic virtual memory operations and was capable of SMP
15
be scheduled. The ia32 port could do some very basic virtual memory
-
 
16
operations and was capable of SMP service. Moreover, the mips32 port ran
13
service. Moreover, the mips32 port ran only in the msim simulator. We realized the need to support at least
17
only in the msim simulator. None of them supported userspace threads.
-
 
18
 
-
 
19
We realized the need to support at least one 64-bit architecture and
14
one 64-bit architecture and have long discussed whether it should be amd64 or ia64. We also considered ppc64.
20
have long discussed whether it should be amd64 or ia64. We also considered
15
At the end, we decided to declare support for three new architectures and five architectures in total, including
21
ppc64. At the end, we decided to declare support for three new architectures,
-
 
22
five architectures in total. Both amd64 and ia64 made it to the specifications,
-
 
23
as well as PowerPC. As for PowerPC, the specification didn't say whether ppc32
-
 
24
or ppc64 or both will be supported.\footnote{This has later proven a bit problematic
-
 
25
because it is not very clear what ppc32 should be (i.e. the 32-bit G4 processor is not
16
both amd64 and ia64 and also ppc32.
26
compatible with the 32-bit mode of the G5 processor.}
-
 
27
 
-
 
28
It is worth noting that we wanted to be sure of access to respective hardware
-
 
29
or at least simulator, prior to committing to support particular architecture.
-
 
30
The decision to support almost all suggested architectures\footnote{Namely, we didn't declare
-
 
31
support for sparc64, but it got supported anyway as part of \JJ's master thesis.} came after
-
 
32
we had known for sure the above condition was satisfied.
-
 
33
 
-
 
34
We constructed our specification so that it contained a well defined
-
 
35
set of mandatory features of the kernel and the userspace layer
-
 
36
that had to be implemented. Besides the mandatory features, there
-
 
37
was also an optional part comprising of three research or experimental
-
 
38
topics. We hoped to eventually find time to work on them.
-
 
39
 
-
 
40
After adopting our specification, we started to meet regularily every two weeks
-
 
41
for the sake of consultations. The regular meetings were cancelled only during
-
 
42
the exam periods and summer holiday. The first meeting took place on April 28,
-
 
43
April. There had been twenty project meetings before 1.0.0 release.
-
 
44
 
-
 
45
The Faculty of Mathematics and Physics officially opened our project on June 10,
-
 
46
2005.
17
 
47