system revision 1.7
1$NetBSD: system,v 1.7 2009/09/21 19:41:23 agc Exp $
2
3NetBSD System Roadmap
4=====================
5
6This is a small roadmap document, and deals with the main system
7aspects of the operating system.
8
9The following projects are expected to be included in NetBSD 6.0
10
111. 64-bit time values supported
122. Better Kernel Modules support
133. Full kernel preemption for real-time threads
144. POSIX shared memory
155. namei() tactical changes
166. Better resource controls
177. Improved observability: online crashdumps, remote debugging
188. Processor and cache topology aware scheduler
199. namei() strategic changes
20
21We currently expect to branch 6.0 in the March 2010 timeframe, with a view
22to a 6.0 release later in 2010.
23
24We'll continue to update this roadmap as features and dates get firmed up.
25
26
27Some explanations
28=================
29
301. 64-bit time_t support
31-------------------------
32
33The Unix 32-bit time_t value will overflow in 2037 - any mortgage calculations
34which use a time_t value are in danger of overflowing at the present time -
35and to address this, 64-bit time_t values will be used to contain the number
36of seconds since 1970. This was completed in 5.99.7 by Christos (with no libc
37major bump - kudos and respect), and will be in 6.0.
38
39Responsible: christos
40
412. Better Kernel Module Support
42-------------------------------
43
44Starting with 5.99.2, the kernel support for modules was enhanced by
45ad, and GENERIC was switched over to be a MODULAR kernel.  Support
46from booting from modules, like ffs, was introduced at the same time. 
47Some work has been done by Luke Mewburn in this area to define module
48locations and paths so that effective kernel development can be done
49using modules.
50
51Responsible: ad, lukem
52
533. Full kernel preemption for real-time threads on non-x86
54----------------------------------------------------------
55
56With the revamp of the kernel concurrency model, much of the kernel is
57fully multi-threaded and can therefore be preempted at any time.  In
58support of lower context switch and dispatch times for real-time
59threads, full kernel preemption is being implemented.  This has been
60implemented already for i386 and x86_64 (and is in 5.0), but needs to
61be extended to support the ARM, MIPS and SuperH ports.
62
63Responsible: rmind
64
654. POSIX shared memory
66----------------------
67
68Implement POSIX shared memory facilities, which can be used to create the
69shared memory objects and add the memory locations to the address space of
70a process.
71
72Responsible: rmind
73
745. Incremental namei improvements, Phase 1
75------------------------------------------
76
77In NetBSD 5.99.15, some changes were made to split the namei() routine
78up into logical parts, so that changes can be made to the constituent
79parts in a less intrusive way. This is in the repository now, and will
80be in 6.0.
81
82Responsible: dholland
83
846. Better resource controls
85---------------------------
86
87A resource provisioning and control framework that extends beyond the
88traditional Unix process limits.
89
907. Improved observability: online crashdumps, remote debugging
91--------------------------------------------------------------
92
93XXX crashdumps while the system is running
94XXX firewire support in libkvm
95
968. Processor and cache topology aware scheduler
97-----------------------------------------------
98
99Implement the detection of the topology of the processors and caches. 
100Improve the scheduler to make decisions about thread migration
101according to the topology, to get better thread affinity and less
102cache thrashing, and thus improve overall performance in modern SMP
103systems.
104
105Responsible: rmind
106
1079. Incremental namei improvements, Phase 2
108------------------------------------------
109
110Building on the namei() split which was introduced in 5.99.15 (see (5)
111above), further changes will be introduced:  see the changes to namei
112outlined in Message-ID:  <20080319053709.GB3951@netbsd.org> for more
113information.  This will simplify the locking and behavior of namei()
114calls within the kernel to resolve path names within file systems.
115
116Responsible: dholland
117
118
119
120Alistair Crooks
121Mon 21 Sep 2009 08:39:16 BST
122