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