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