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