system revision 1.7
11.7Sagc$NetBSD: system,v 1.7 2009/09/21 19:41:23 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.6SagcThe following projects are expected to be included in NetBSD 6.0
101.1Sagc
111.6Sagc1. 64-bit time values supported
121.6Sagc2. Better Kernel Modules support
131.6Sagc3. Full kernel preemption for real-time threads
141.6Sagc4. POSIX shared memory
151.6Sagc5. namei() tactical changes
161.6Sagc6. Better resource controls
171.6Sagc7. Improved observability: online crashdumps, remote debugging
181.6Sagc8. Processor and cache topology aware scheduler
191.6Sagc9. namei() strategic changes
201.1Sagc
211.6SagcWe currently expect to branch 6.0 in the March 2010 timeframe, with a view
221.6Sagcto a 6.0 release later in 2010.
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.6Sagcusing modules.
501.6Sagc
511.6SagcResponsible: ad, lukem
521.6Sagc
531.7Sagc3. Full kernel preemption for real-time threads on non-x86
541.7Sagc----------------------------------------------------------
551.5Sagc
561.7SagcWith the revamp of the kernel concurrency model, much of the kernel is
571.7Sagcfully multi-threaded and can therefore be preempted at any time.  In
581.7Sagcsupport of lower context switch and dispatch times for real-time
591.7Sagcthreads, full kernel preemption is being implemented.  This has been
601.7Sagcimplemented already for i386 and x86_64 (and is in 5.0), but needs to
611.7Sagcbe extended to support the ARM, MIPS and SuperH ports.
621.7Sagc
631.7SagcResponsible: rmind
641.5Sagc
651.6Sagc4. POSIX shared memory
661.6Sagc----------------------
671.1Sagc
681.1SagcImplement POSIX shared memory facilities, which can be used to create the
691.1Sagcshared memory objects and add the memory locations to the address space of
701.1Sagca process.
711.1Sagc
721.1SagcResponsible: rmind
731.1Sagc
741.6Sagc5. Incremental namei improvements, Phase 1
751.6Sagc------------------------------------------
761.1Sagc
771.6SagcIn NetBSD 5.99.15, some changes were made to split the namei() routine
781.6Sagcup into logical parts, so that changes can be made to the constituent
791.7Sagcparts in a less intrusive way. This is in the repository now, and will
801.7Sagcbe in 6.0.
811.1Sagc
821.1SagcResponsible: dholland
831.1Sagc
841.6Sagc6. Better resource controls
851.6Sagc---------------------------
861.1Sagc
871.1SagcA resource provisioning and control framework that extends beyond the
881.1Sagctraditional Unix process limits.
891.1Sagc
901.6Sagc7. Improved observability: online crashdumps, remote debugging
911.6Sagc--------------------------------------------------------------
921.1Sagc
931.1SagcXXX crashdumps while the system is running
941.1SagcXXX firewire support in libkvm
951.1Sagc
961.6Sagc8. Processor and cache topology aware scheduler
971.6Sagc-----------------------------------------------
981.1Sagc
991.1SagcImplement the detection of the topology of the processors and caches. 
1001.1SagcImprove the scheduler to make decisions about thread migration
1011.1Sagcaccording to the topology, to get better thread affinity and less
1021.1Sagccache thrashing, and thus improve overall performance in modern SMP
1031.1Sagcsystems.
1041.1Sagc
1051.1SagcResponsible: rmind
1061.1Sagc
1071.6Sagc9. Incremental namei improvements, Phase 2
1081.6Sagc------------------------------------------
1091.1Sagc
1101.7SagcBuilding on the namei() split which was introduced in 5.99.15 (see (5)
1111.7Sagcabove), further changes will be introduced:  see the changes to namei
1121.7Sagcoutlined in Message-ID:  <20080319053709.GB3951@netbsd.org> for more
1131.7Sagcinformation.  This will simplify the locking and behavior of namei()
1141.7Sagccalls within the kernel to resolve path names within file systems.
1151.1Sagc
1161.1SagcResponsible: dholland
1171.1Sagc
1181.1Sagc
1191.1Sagc
1201.5SagcAlistair Crooks
1211.7SagcMon 21 Sep 2009 08:39:16 BST
122