system revision 1.8
1$NetBSD: system,v 1.8 2009/11/17 21:09:54 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 already in NetBSD-current and will appear
10in NetBSD 6.0:
11
121. 64-bit time values supported
132. Better Kernel Modules support
145. namei() tactical changes
1510. emap (ephemeral mapping) support for i386 and amd64
1611. support for mDNSResponder
17
18The following projects are expected to be included in NetBSD 6.0
19
203. Full kernel preemption for real-time threads
214. POSIX shared memory
226. Better resource controls
237. Improved observability: online crashdumps, remote debugging
248. Processor and cache topology aware scheduler
259. namei() strategic changes
26
27We currently expect to branch 6.0 in the March 2010 timeframe, with a view
28to a 6.0 release later in 2010.
29
30We'll continue to update this roadmap as features and dates get firmed up.
31
32
33Some explanations
34=================
35
361. 64-bit time_t support
37-------------------------
38
39The Unix 32-bit time_t value will overflow in 2037 - any mortgage calculations
40which use a time_t value are in danger of overflowing at the present time -
41and to address this, 64-bit time_t values will be used to contain the number
42of seconds since 1970. This was completed in 5.99.7 by Christos (with no libc
43major bump - kudos and respect), and will be in 6.0.
44
45Responsible: christos
46
472. Better Kernel Module Support
48-------------------------------
49
50Starting with 5.99.2, the kernel support for modules was enhanced by
51ad, and GENERIC was switched over to be a MODULAR kernel.  Support
52from booting from modules, like ffs, was introduced at the same time. 
53Some work has been done by Luke Mewburn in this area to define module
54locations and paths so that effective kernel development can be done
55using modules. Kernel modules have been moved out of base.tgz and a new
56modules.tgz has been created.
57
58Responsible: ad, lukem
59
603. Full kernel preemption for real-time threads on non-x86
61----------------------------------------------------------
62
63With the revamp of the kernel concurrency model, much of the kernel is
64fully multi-threaded and can therefore be preempted at any time.  In
65support of lower context switch and dispatch times for real-time
66threads, full kernel preemption is being implemented.  This has been
67implemented already for i386 and x86_64 (and is in 5.0), but needs to
68be extended to support the ARM, MIPS and SuperH ports.
69
70Responsible: rmind
71
724. POSIX shared memory
73----------------------
74
75Implement POSIX shared memory facilities, which can be used to create the
76shared memory objects and add the memory locations to the address space of
77a process.
78
79Responsible: rmind
80
815. Incremental namei improvements, Phase 1
82------------------------------------------
83
84In NetBSD 5.99.15, some changes were made to split the namei() routine
85up into logical parts, so that changes can be made to the constituent
86parts in a less intrusive way. This is in the repository now, and will
87be in 6.0.
88
89Responsible: dholland
90
916. Better resource controls
92---------------------------
93
94A resource provisioning and control framework that extends beyond the
95traditional Unix process limits.
96
977. Improved observability: online crashdumps, remote debugging
98--------------------------------------------------------------
99
100XXX crashdumps while the system is running
101XXX firewire support in libkvm
102
1038. Processor and cache topology aware scheduler
104-----------------------------------------------
105
106Implement the detection of the topology of the processors and caches. 
107Improve the scheduler to make decisions about thread migration
108according to the topology, to get better thread affinity and less
109cache thrashing, and thus improve overall performance in modern SMP
110systems.
111
112Responsible: rmind
113
1149. Incremental namei improvements, Phase 2
115------------------------------------------
116
117Building on the namei() split which was introduced in 5.99.15 (see (5)
118above), further changes will be introduced:  see the changes to namei
119outlined in Message-ID:  <20080319053709.GB3951@netbsd.org> for more
120information.  This will simplify the locking and behavior of namei()
121calls within the kernel to resolve path names within file systems.
122
123Responsible: dholland
124
125
12610. Ephemeral Mapping
127---------------------
128
129Responsible: rmind
130
131
13211. Multicast DNS and DNS Service Discovery
133-------------------------------------------
134
135mDNSResponder (also known as mdnsd on some systems) is a daemon invoked
136at boot time to implement Multicast DNS and DNS Service Discovery. On Mac
137OS X 10.6 (Snow Leopard), mDNSResponder is also the system-wide Unicast
138DNS Resolver. Ty Sarna added support for mdnsd to NetBSD-current, and it
139will appear in NetBSD 6.0.
140
141
142Alistair Crooks
143Thu Nov  5 07:47:34 PST 2009
144