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