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