xref: /netbsd-src/doc/roadmaps/system (revision 6a493d6bc668897c91594964a732d38505b70cbb)
1$NetBSD: system,v 1.11 2012/01/15 06:53:23 dholland 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
41
422. Better Kernel Module Support
43-------------------------------
44
45Starting with 5.99.2, the kernel support for modules was enhanced by
46ad, and GENERIC was switched over to be a MODULAR kernel.  Support
47from booting from modules, like ffs, was introduced at the same time.
48Some work has been done by Luke Mewburn in this area to define module
49locations and paths so that effective kernel development can be done
50using modules. Kernel modules have been moved out of base.tgz and a new
51modules.tgz has been created.
52
53Responsible: ad, lukem
54
55
563. Full kernel preemption for real-time threads on non-x86
57----------------------------------------------------------
58
59With the revamp of the kernel concurrency model, much of the kernel is
60fully multi-threaded and can therefore be preempted at any time.  In
61support of lower context switch and dispatch times for real-time
62threads, full kernel preemption is being implemented.  This has been
63implemented already for i386 and x86_64 (and is in 5.0), but needs to
64be extended to support ARM and other ports.  MIPS has this, as does
65PowerPC, but it is not yet enabled.
66
67Responsible: rmind
68
69
704. POSIX shared memory
71----------------------
72
73Implement POSIX shared memory facilities, which can be used to create
74the shared memory objects and add the memory locations to the address
75space of a process.  Changes were proposed on tech-kern, although
76there were some concerns with the kernel implementation, and so a
77different approach using wrapper functions on tmpfs is being aimed at
78for 6.0.
79
80Responsible: rmind
81
82
835. Incremental namei improvements, Phase 1
84------------------------------------------
85
86In NetBSD 5.99.15, some changes were made to split the namei() routine
87up into logical parts, so that changes can be made to the constituent
88parts in a less intrusive way. This is in the repository now, and will
89be in 6.0.
90
91Responsible: dholland
92
93
946. Better resource controls
95---------------------------
96
97A resource provisioning and control framework that extends beyond the
98traditional Unix process limits.
99
100Responsible: TBD
101
102
1037. Improved observability: online crashdumps, remote debugging
104--------------------------------------------------------------
105
106XXX crashdumps while the system is running
107XXX firewire support in libkvm
108
109Responsible: TBD
110
111
1128. Processor and cache topology aware scheduler
113-----------------------------------------------
114
115Implement the detection of the topology of the processors and caches.
116Improve the scheduler to make decisions about thread migration
117according to the topology, to get better thread affinity and less
118cache thrashing, and thus improve overall performance in modern SMP
119systems. Code has been written, but did not show any performance
120improvement. We will continue to monitor this area.
121
122Responsible: rmind
123
124
1259. Incremental namei improvements, Phase 2
126------------------------------------------
127
128Building on the namei() split which was introduced in 5.99.15 (see (5)
129above), further changes will be introduced:  see the changes to namei
130outlined in Message-ID:  <20080319053709.GB3951@netbsd.org> for more
131information.  This will simplify the locking and behavior of namei()
132calls within the kernel to resolve path names within file systems.
133
134Responsible: dholland
135
136
13710. Ephemeral Mapping
138---------------------
139
140Responsible: rmind
141
142
14311. Multicast DNS and DNS Service Discovery
144-------------------------------------------
145
146mDNSResponder (also known as mdnsd on some systems) is a daemon invoked
147at boot time to implement Multicast DNS and DNS Service Discovery. On Mac
148OS X 10.6 (Snow Leopard), mDNSResponder is also the system-wide Unicast
149DNS Resolver. Ty Sarna added support for mdnsd to NetBSD-current, and it
150will appear in NetBSD 6.0.
151
152
153Alistair Crooks
154Sat Jan 14 11:40:49 PST 2012
155