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