system revision 1.9
11.9Sagc$NetBSD: system,v 1.9 2012/01/15 02:49:12 agc Exp $
21.1Sagc
31.1SagcNetBSD System Roadmap
41.2Sjmmv=====================
51.1Sagc
61.1SagcThis is a small roadmap document, and deals with the main system
71.1Sagcaspects of the operating system.
81.1Sagc
91.9SagcThe following projects will appear in NetBSD 6.0:
101.6Sagc1. 64-bit time values supported
111.6Sagc2. Better Kernel Modules support
121.8Sagc5. namei() tactical changes
131.9Sagc9. namei() strategic changes
141.8Sagc10. emap (ephemeral mapping) support for i386 and amd64
151.8Sagc11. support for mDNSResponder
161.8Sagc
171.9SagcThe following projects may make it into future releases:
181.6Sagc3. Full kernel preemption for real-time threads
191.6Sagc4. POSIX shared memory
201.6Sagc6. Better resource controls
211.6Sagc7. Improved observability: online crashdumps, remote debugging
221.6Sagc8. Processor and cache topology aware scheduler
231.1Sagc
241.1SagcWe'll continue to update this roadmap as features and dates get firmed up.
251.1Sagc
261.1Sagc
271.1SagcSome explanations
281.1Sagc=================
291.1Sagc
301.6Sagc1. 64-bit time_t support
311.1Sagc-------------------------
321.1Sagc
331.1SagcThe Unix 32-bit time_t value will overflow in 2037 - any mortgage calculations
341.1Sagcwhich use a time_t value are in danger of overflowing at the present time -
351.1Sagcand to address this, 64-bit time_t values will be used to contain the number
361.7Sagcof seconds since 1970. This was completed in 5.99.7 by Christos (with no libc
371.7Sagcmajor bump - kudos and respect), and will be in 6.0.
381.1Sagc
391.1SagcResponsible: christos
401.1Sagc
411.6Sagc2. Better Kernel Module Support
421.6Sagc-------------------------------
431.6Sagc
441.6SagcStarting with 5.99.2, the kernel support for modules was enhanced by
451.6Sagcad, and GENERIC was switched over to be a MODULAR kernel.  Support
461.6Sagcfrom booting from modules, like ffs, was introduced at the same time. 
471.6SagcSome work has been done by Luke Mewburn in this area to define module
481.6Sagclocations and paths so that effective kernel development can be done
491.8Sagcusing modules. Kernel modules have been moved out of base.tgz and a new
501.8Sagcmodules.tgz has been created.
511.6Sagc
521.6SagcResponsible: ad, lukem
531.6Sagc
541.7Sagc3. Full kernel preemption for real-time threads on non-x86
551.7Sagc----------------------------------------------------------
561.5Sagc
571.7SagcWith the revamp of the kernel concurrency model, much of the kernel is
581.7Sagcfully multi-threaded and can therefore be preempted at any time.  In
591.7Sagcsupport of lower context switch and dispatch times for real-time
601.7Sagcthreads, full kernel preemption is being implemented.  This has been
611.7Sagcimplemented already for i386 and x86_64 (and is in 5.0), but needs to
621.7Sagcbe extended to support the ARM, MIPS and SuperH ports.
631.7Sagc
641.7SagcResponsible: rmind
651.5Sagc
661.9Sagc
671.6Sagc4. POSIX shared memory
681.6Sagc----------------------
691.1Sagc
701.1SagcImplement POSIX shared memory facilities, which can be used to create the
711.1Sagcshared memory objects and add the memory locations to the address space of
721.1Sagca process.
731.1Sagc
741.1SagcResponsible: rmind
751.1Sagc
761.9Sagc
771.6Sagc5. Incremental namei improvements, Phase 1
781.6Sagc------------------------------------------
791.1Sagc
801.6SagcIn NetBSD 5.99.15, some changes were made to split the namei() routine
811.6Sagcup into logical parts, so that changes can be made to the constituent
821.7Sagcparts in a less intrusive way. This is in the repository now, and will
831.7Sagcbe in 6.0.
841.1Sagc
851.1SagcResponsible: dholland
861.1Sagc
871.9Sagc
881.6Sagc6. Better resource controls
891.6Sagc---------------------------
901.1Sagc
911.1SagcA resource provisioning and control framework that extends beyond the
921.1Sagctraditional Unix process limits.
931.1Sagc
941.9SagcResponsible: TBD
951.9Sagc
961.9Sagc
971.6Sagc7. Improved observability: online crashdumps, remote debugging
981.6Sagc--------------------------------------------------------------
991.1Sagc
1001.1SagcXXX crashdumps while the system is running
1011.1SagcXXX firewire support in libkvm
1021.1Sagc
1031.9SagcResponsible: TBD
1041.9Sagc
1051.9Sagc
1061.6Sagc8. Processor and cache topology aware scheduler
1071.6Sagc-----------------------------------------------
1081.1Sagc
1091.1SagcImplement the detection of the topology of the processors and caches. 
1101.1SagcImprove the scheduler to make decisions about thread migration
1111.1Sagcaccording to the topology, to get better thread affinity and less
1121.1Sagccache thrashing, and thus improve overall performance in modern SMP
1131.1Sagcsystems.
1141.1Sagc
1151.1SagcResponsible: rmind
1161.1Sagc
1171.9Sagc
1181.6Sagc9. Incremental namei improvements, Phase 2
1191.6Sagc------------------------------------------
1201.1Sagc
1211.7SagcBuilding on the namei() split which was introduced in 5.99.15 (see (5)
1221.7Sagcabove), further changes will be introduced:  see the changes to namei
1231.7Sagcoutlined in Message-ID:  <20080319053709.GB3951@netbsd.org> for more
1241.7Sagcinformation.  This will simplify the locking and behavior of namei()
1251.7Sagccalls within the kernel to resolve path names within file systems.
1261.1Sagc
1271.1SagcResponsible: dholland
1281.1Sagc
1291.1Sagc
1301.8Sagc10. Ephemeral Mapping
1311.8Sagc---------------------
1321.8Sagc
1331.8SagcResponsible: rmind
1341.8Sagc
1351.8Sagc
1361.8Sagc11. Multicast DNS and DNS Service Discovery
1371.8Sagc-------------------------------------------
1381.8Sagc
1391.8SagcmDNSResponder (also known as mdnsd on some systems) is a daemon invoked
1401.8Sagcat boot time to implement Multicast DNS and DNS Service Discovery. On Mac
1411.8SagcOS X 10.6 (Snow Leopard), mDNSResponder is also the system-wide Unicast
1421.8SagcDNS Resolver. Ty Sarna added support for mdnsd to NetBSD-current, and it
1431.8Sagcwill appear in NetBSD 6.0.
1441.8Sagc
1451.1Sagc
1461.5SagcAlistair Crooks
1471.9SagcSat Jan 14 11:40:49 PST 2012
148