Home | History | Annotate | Line # | Download | only in roadmaps
system revision 1.7
      1 $NetBSD: system,v 1.7 2009/09/21 19:41:23 agc Exp $
      2 
      3 NetBSD System Roadmap
      4 =====================
      5 
      6 This is a small roadmap document, and deals with the main system
      7 aspects of the operating system.
      8 
      9 The following projects are expected to be included in NetBSD 6.0
     10 
     11 1. 64-bit time values supported
     12 2. Better Kernel Modules support
     13 3. Full kernel preemption for real-time threads
     14 4. POSIX shared memory
     15 5. namei() tactical changes
     16 6. Better resource controls
     17 7. Improved observability: online crashdumps, remote debugging
     18 8. Processor and cache topology aware scheduler
     19 9. namei() strategic changes
     20 
     21 We currently expect to branch 6.0 in the March 2010 timeframe, with a view
     22 to a 6.0 release later in 2010.
     23 
     24 We'll continue to update this roadmap as features and dates get firmed up.
     25 
     26 
     27 Some explanations
     28 =================
     29 
     30 1. 64-bit time_t support
     31 -------------------------
     32 
     33 The Unix 32-bit time_t value will overflow in 2037 - any mortgage calculations
     34 which use a time_t value are in danger of overflowing at the present time -
     35 and to address this, 64-bit time_t values will be used to contain the number
     36 of seconds since 1970. This was completed in 5.99.7 by Christos (with no libc
     37 major bump - kudos and respect), and will be in 6.0.
     38 
     39 Responsible: christos
     40 
     41 2. Better Kernel Module Support
     42 -------------------------------
     43 
     44 Starting with 5.99.2, the kernel support for modules was enhanced by
     45 ad, and GENERIC was switched over to be a MODULAR kernel.  Support
     46 from booting from modules, like ffs, was introduced at the same time. 
     47 Some work has been done by Luke Mewburn in this area to define module
     48 locations and paths so that effective kernel development can be done
     49 using modules.
     50 
     51 Responsible: ad, lukem
     52 
     53 3. Full kernel preemption for real-time threads on non-x86
     54 ----------------------------------------------------------
     55 
     56 With the revamp of the kernel concurrency model, much of the kernel is
     57 fully multi-threaded and can therefore be preempted at any time.  In
     58 support of lower context switch and dispatch times for real-time
     59 threads, full kernel preemption is being implemented.  This has been
     60 implemented already for i386 and x86_64 (and is in 5.0), but needs to
     61 be extended to support the ARM, MIPS and SuperH ports.
     62 
     63 Responsible: rmind
     64 
     65 4. POSIX shared memory
     66 ----------------------
     67 
     68 Implement POSIX shared memory facilities, which can be used to create the
     69 shared memory objects and add the memory locations to the address space of
     70 a process.
     71 
     72 Responsible: rmind
     73 
     74 5. Incremental namei improvements, Phase 1
     75 ------------------------------------------
     76 
     77 In NetBSD 5.99.15, some changes were made to split the namei() routine
     78 up into logical parts, so that changes can be made to the constituent
     79 parts in a less intrusive way. This is in the repository now, and will
     80 be in 6.0.
     81 
     82 Responsible: dholland
     83 
     84 6. Better resource controls
     85 ---------------------------
     86 
     87 A resource provisioning and control framework that extends beyond the
     88 traditional Unix process limits.
     89 
     90 7. Improved observability: online crashdumps, remote debugging
     91 --------------------------------------------------------------
     92 
     93 XXX crashdumps while the system is running
     94 XXX firewire support in libkvm
     95 
     96 8. Processor and cache topology aware scheduler
     97 -----------------------------------------------
     98 
     99 Implement the detection of the topology of the processors and caches. 
    100 Improve the scheduler to make decisions about thread migration
    101 according to the topology, to get better thread affinity and less
    102 cache thrashing, and thus improve overall performance in modern SMP
    103 systems.
    104 
    105 Responsible: rmind
    106 
    107 9. Incremental namei improvements, Phase 2
    108 ------------------------------------------
    109 
    110 Building on the namei() split which was introduced in 5.99.15 (see (5)
    111 above), further changes will be introduced:  see the changes to namei
    112 outlined in Message-ID:  <20080319053709.GB3951 (a] netbsd.org> for more
    113 information.  This will simplify the locking and behavior of namei()
    114 calls within the kernel to resolve path names within file systems.
    115 
    116 Responsible: dholland
    117 
    118 
    119 
    120 Alistair Crooks
    121 Mon 21 Sep 2009 08:39:16 BST
    122