system revision 1.9
1$NetBSD: system,v 1.9 2012/01/15 02:49:12 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 will appear in NetBSD 6.0:
101. 64-bit time values supported
112. Better Kernel Modules support
125. namei() tactical changes
139. namei() strategic changes
1410. emap (ephemeral mapping) support for i386 and amd64
1511. support for mDNSResponder
16
17The following projects may make it into future releases:
183. Full kernel preemption for real-time threads
194. POSIX shared memory
206. Better resource controls
217. Improved observability: online crashdumps, remote debugging
228. Processor and cache topology aware scheduler
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. Kernel modules have been moved out of base.tgz and a new
50modules.tgz has been created.
51
52Responsible: ad, lukem
53
543. Full kernel preemption for real-time threads on non-x86
55----------------------------------------------------------
56
57With the revamp of the kernel concurrency model, much of the kernel is
58fully multi-threaded and can therefore be preempted at any time.  In
59support of lower context switch and dispatch times for real-time
60threads, full kernel preemption is being implemented.  This has been
61implemented already for i386 and x86_64 (and is in 5.0), but needs to
62be extended to support the ARM, MIPS and SuperH ports.
63
64Responsible: rmind
65
66
674. POSIX shared memory
68----------------------
69
70Implement POSIX shared memory facilities, which can be used to create the
71shared memory objects and add the memory locations to the address space of
72a process.
73
74Responsible: rmind
75
76
775. Incremental namei improvements, Phase 1
78------------------------------------------
79
80In NetBSD 5.99.15, some changes were made to split the namei() routine
81up into logical parts, so that changes can be made to the constituent
82parts in a less intrusive way. This is in the repository now, and will
83be in 6.0.
84
85Responsible: dholland
86
87
886. Better resource controls
89---------------------------
90
91A resource provisioning and control framework that extends beyond the
92traditional Unix process limits.
93
94Responsible: TBD
95
96
977. Improved observability: online crashdumps, remote debugging
98--------------------------------------------------------------
99
100XXX crashdumps while the system is running
101XXX firewire support in libkvm
102
103Responsible: TBD
104
105
1068. Processor and cache topology aware scheduler
107-----------------------------------------------
108
109Implement the detection of the topology of the processors and caches. 
110Improve the scheduler to make decisions about thread migration
111according to the topology, to get better thread affinity and less
112cache thrashing, and thus improve overall performance in modern SMP
113systems.
114
115Responsible: rmind
116
117
1189. Incremental namei improvements, Phase 2
119------------------------------------------
120
121Building on the namei() split which was introduced in 5.99.15 (see (5)
122above), further changes will be introduced:  see the changes to namei
123outlined in Message-ID:  <20080319053709.GB3951@netbsd.org> for more
124information.  This will simplify the locking and behavior of namei()
125calls within the kernel to resolve path names within file systems.
126
127Responsible: dholland
128
129
13010. Ephemeral Mapping
131---------------------
132
133Responsible: rmind
134
135
13611. Multicast DNS and DNS Service Discovery
137-------------------------------------------
138
139mDNSResponder (also known as mdnsd on some systems) is a daemon invoked
140at boot time to implement Multicast DNS and DNS Service Discovery. On Mac
141OS X 10.6 (Snow Leopard), mDNSResponder is also the system-wide Unicast
142DNS Resolver. Ty Sarna added support for mdnsd to NetBSD-current, and it
143will appear in NetBSD 6.0.
144
145
146Alistair Crooks
147Sat Jan 14 11:40:49 PST 2012
148