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