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