11.14Snia$NetBSD: system,v 1.14 2025/05/19 18:02:53 nia Exp $
21.1Sagc
31.1SagcNetBSD System Roadmap
41.2Sjmmv=====================
51.1Sagc
61.13SdhollandThis is a roadmap document dealing deals with core system aspects of
71.13Sdhollandthe operating system.
81.1Sagc
91.13SdhollandThe following elements, projects, and goals are considered strategic
101.13Sdhollandpriorities for the project:
111.8Sagc
121.13Sdholland1. Tickless timing and scheduling (discussed in the mobile roadmap)
131.13Sdholland2. Long-term graphics architecture (discussed in the desktop roadmap)
141.13Sdholland8. Processor and cache topology aware scheduler
151.13Sdholland
161.13SdhollandThe following elements, projects, and goals are not strategic
171.13Sdhollandpriorities but are still important undertakings worth doing:
181.13Sdholland
191.13Sdholland3. Full kernel preemption for real-time threads on non-x86
201.6Sagc4. POSIX shared memory
211.6Sagc6. Better resource controls
221.6Sagc7. Improved observability: online crashdumps, remote debugging
231.1Sagc
241.13SdhollandThe following elements, projects, and goals are perhaps less pressing;
251.13Sdhollandthis doesn't mean one shouldn't work on them but the expected payoff
261.13Sdhollandis perhaps less than for other things:
271.1Sagc
281.1Sagc
291.1SagcSome explanations
301.1Sagc=================
311.1Sagc
321.7Sagc3. Full kernel preemption for real-time threads on non-x86
331.7Sagc----------------------------------------------------------
341.5Sagc
351.7SagcWith the revamp of the kernel concurrency model, much of the kernel is
361.7Sagcfully multi-threaded and can therefore be preempted at any time.  In
371.7Sagcsupport of lower context switch and dispatch times for real-time
381.7Sagcthreads, full kernel preemption is being implemented.  This has been
391.7Sagcimplemented already for i386 and x86_64 (and is in 5.0), but needs to
401.10Sagcbe extended to support ARM and other ports.  MIPS has this, as does
411.10SagcPowerPC, but it is not yet enabled.
421.7Sagc
431.7SagcResponsible: rmind
441.5Sagc
451.9Sagc
461.6Sagc4. POSIX shared memory
471.6Sagc----------------------
481.1Sagc
491.10SagcImplement POSIX shared memory facilities, which can be used to create
501.10Sagcthe shared memory objects and add the memory locations to the address
511.10Sagcspace of a process.  Changes were proposed on tech-kern, although
521.10Sagcthere were some concerns with the kernel implementation, and so a
531.10Sagcdifferent approach using wrapper functions on tmpfs is being aimed at
541.10Sagcfor 6.0.
551.1Sagc
561.13SdhollandXXX: what's the current state?
571.13Sdholland
581.1SagcResponsible: rmind
591.1Sagc
601.9Sagc
611.6Sagc6. Better resource controls
621.6Sagc---------------------------
631.1Sagc
641.1SagcA resource provisioning and control framework that extends beyond the
651.1Sagctraditional Unix process limits.
661.1Sagc
671.9SagcResponsible: TBD
681.9Sagc
691.9Sagc
701.6Sagc7. Improved observability: online crashdumps, remote debugging
711.6Sagc--------------------------------------------------------------
721.1Sagc
731.1SagcXXX crashdumps while the system is running
741.1SagcXXX firewire support in libkvm
751.1Sagc
761.9SagcResponsible: TBD
771.9Sagc
781.9Sagc
791.6Sagc8. Processor and cache topology aware scheduler
801.6Sagc-----------------------------------------------
811.1Sagc
821.14SniaWork was done by various people to make the Arm64 port support
831.14Sniabig.LITTLE well, ad@ did the final bits to improve the scheduler
841.14Sniato make it aware of CPU topology and mixtures of slow and fast
851.14Sniacores.
861.1Sagc
871.14SniaThis made it into NetBSD 10.0.
881.9Sagc
891.5SagcAlistair Crooks
901.9SagcSat Jan 14 11:40:49 PST 2012
91