1 1.14 nia $NetBSD: system,v 1.14 2025/05/19 18:02:53 nia Exp $ 2 1.1 agc 3 1.1 agc NetBSD System Roadmap 4 1.2 jmmv ===================== 5 1.1 agc 6 1.13 dholland This is a roadmap document dealing deals with core system aspects of 7 1.13 dholland the operating system. 8 1.1 agc 9 1.13 dholland The following elements, projects, and goals are considered strategic 10 1.13 dholland priorities for the project: 11 1.8 agc 12 1.13 dholland 1. Tickless timing and scheduling (discussed in the mobile roadmap) 13 1.13 dholland 2. Long-term graphics architecture (discussed in the desktop roadmap) 14 1.13 dholland 8. Processor and cache topology aware scheduler 15 1.13 dholland 16 1.13 dholland The following elements, projects, and goals are not strategic 17 1.13 dholland priorities but are still important undertakings worth doing: 18 1.13 dholland 19 1.13 dholland 3. Full kernel preemption for real-time threads on non-x86 20 1.6 agc 4. POSIX shared memory 21 1.6 agc 6. Better resource controls 22 1.6 agc 7. Improved observability: online crashdumps, remote debugging 23 1.1 agc 24 1.13 dholland The following elements, projects, and goals are perhaps less pressing; 25 1.13 dholland this doesn't mean one shouldn't work on them but the expected payoff 26 1.13 dholland is perhaps less than for other things: 27 1.1 agc 28 1.1 agc 29 1.1 agc Some explanations 30 1.1 agc ================= 31 1.1 agc 32 1.7 agc 3. Full kernel preemption for real-time threads on non-x86 33 1.7 agc ---------------------------------------------------------- 34 1.5 agc 35 1.7 agc With the revamp of the kernel concurrency model, much of the kernel is 36 1.7 agc fully multi-threaded and can therefore be preempted at any time. In 37 1.7 agc support of lower context switch and dispatch times for real-time 38 1.7 agc threads, full kernel preemption is being implemented. This has been 39 1.7 agc implemented already for i386 and x86_64 (and is in 5.0), but needs to 40 1.10 agc be extended to support ARM and other ports. MIPS has this, as does 41 1.10 agc PowerPC, but it is not yet enabled. 42 1.7 agc 43 1.7 agc Responsible: rmind 44 1.5 agc 45 1.9 agc 46 1.6 agc 4. POSIX shared memory 47 1.6 agc ---------------------- 48 1.1 agc 49 1.10 agc Implement POSIX shared memory facilities, which can be used to create 50 1.10 agc the shared memory objects and add the memory locations to the address 51 1.10 agc space of a process. Changes were proposed on tech-kern, although 52 1.10 agc there were some concerns with the kernel implementation, and so a 53 1.10 agc different approach using wrapper functions on tmpfs is being aimed at 54 1.10 agc for 6.0. 55 1.1 agc 56 1.13 dholland XXX: what's the current state? 57 1.13 dholland 58 1.1 agc Responsible: rmind 59 1.1 agc 60 1.9 agc 61 1.6 agc 6. Better resource controls 62 1.6 agc --------------------------- 63 1.1 agc 64 1.1 agc A resource provisioning and control framework that extends beyond the 65 1.1 agc traditional Unix process limits. 66 1.1 agc 67 1.9 agc Responsible: TBD 68 1.9 agc 69 1.9 agc 70 1.6 agc 7. Improved observability: online crashdumps, remote debugging 71 1.6 agc -------------------------------------------------------------- 72 1.1 agc 73 1.1 agc XXX crashdumps while the system is running 74 1.1 agc XXX firewire support in libkvm 75 1.1 agc 76 1.9 agc Responsible: TBD 77 1.9 agc 78 1.9 agc 79 1.6 agc 8. Processor and cache topology aware scheduler 80 1.6 agc ----------------------------------------------- 81 1.1 agc 82 1.14 nia Work was done by various people to make the Arm64 port support 83 1.14 nia big.LITTLE well, ad@ did the final bits to improve the scheduler 84 1.14 nia to make it aware of CPU topology and mixtures of slow and fast 85 1.14 nia cores. 86 1.1 agc 87 1.14 nia This made it into NetBSD 10.0. 88 1.9 agc 89 1.5 agc Alistair Crooks 90 1.9 agc Sat Jan 14 11:40:49 PST 2012 91