Changes between Version 294 and Version 295 of Developer/OpenProjects


Ignore:
Timestamp:
Feb 7, 2013, 10:06:12 PM (7 years ago)
Author:
Gedare
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Developer/OpenProjects

    v294 v295  
    2929Most of the projects are feasible as a [wiki:GSoC  Summer of Code] project.  Since some projects have multiple steps, students should work with prospective mentors to define the scope of work in their proposal.  Similarly, some projects might be a starting point for a class project or graduate thesis.
    3030
    31 The order of projects in the list does not reflect their importance, difficulty, or feasibility. Our project list is not exclusive: if you have an idea, solicit feedback from the project's [wiki:TBR/Website/RTEMSMailingLists mailing list] or [wiki:Developer/IRC IRC channel]; many developers sit in IRC and check it (and their email) infrequently throughout the day, so be patient!
     31The order of projects in the list does not reflect their importance, difficulty, or feasibility. Our project list is not exclusive: if you have an idea, solicit feedback from the project's [wiki:TBR/Website/RTEMSMailingLists mailing list] or [wiki:Developer/IRC IRC channel]; many developers sit in IRC and check it (and their email) infrequently throughout the day, so be patient!  There may or may not be enough work on a project to constitute an SOC project, and some of these are past SOC projects.  If you are interested in one of these, please ask on the mailing list or IRC.
    3232
    3333'''If you have a new project add it to the appropriate list below, link to a wiki page that follows the recommended [wiki:TBR/Review/OpenProjectTemplate  Open Project Template], and briefly (1-2 sentences) summarize the project and how it will improve RTEMS.'''
    34 = High Priority Projects =
    35 
    36 These projects have generated a lot of interest from users and are greatly desired. These are large or ongoing projects, so definitely ask for help defining the scope of work before proposing to do any of these projects.
    37 
    38  *  [wiki:SMP_  Improvements to SMP support] - Multiprocessing is of increasing importance in modern systems and we want RTEMS to remain competitive and useful. This is a large project and subtasks should be identified before writing any proposal.
    39   *  Implement or integrate [wiki:Projects/GSoC/Atomic_Operations Atomic Operations]. SMP code requires additional synchronization primitives that are not available currently in RTEMS.
    40  *  [wiki:RTEMS_Test_Coverage  Test Coverage Analysis] - Improve coverage by adding more test cases. Eliminating dead code and reaching 100% coverage helps reduce the likelihood of new and recurrent bugs.
    41  *  [wiki:Projects/TCP/IP_update  Update the RTEMS TCP/IP stack] - The networking stack is old and showing it. This project actively underway.  At a high level, this effort requires porting the TCP/IP stack and providing support functional equivalents of multiple BSD kernel constructs.  This project has many subprojects many of which are appropriate for SOC. It would be of great usefulness to the community to get as many of these does as an SOC project as possible.
    42  *  RTEMS Toolkits - We are defining collections of libraries and support programs which make it easier to get started for certain types of applications.  We haven't identified all potential toolkits or components.  Each potential component must be evaluated for license and appropriateness for use in an embedded environment like RTEMS.  We also should define some guidelines about creating and maintaining these kits. Here are the toolkits areas identified so far:
    43   *  [wiki:Projects/BenchmarkKit RTEMS BenchKit] - benchmark programs for RTEMS
    44   *  [wiki:Projects/ApplicationConfigurationKit RTEMS ConfigKit] - configuration file parsing libraries
    45   *  [wiki:Projects/DatabaseKit RTEMS DBKit] - database packages
    46   *  [wiki:Projects/GraphicsToolkit RTEMSGraphicsToolkit] - various graphics and video processing. This kit has had some work done on it.
    47   *  [wiki:Projects/ScienceKit RTEMS SciKit] - libraries of general use to the scientific community RTEMS users
    48   *  [wiki:Projects/ScriptKit RTEMS ScriptKit] - packages for scripting languages such as Python and Lua
    49   *  [wiki:Projects/WebKit RTEMS WebKit] - packages for networked devices.
    5034= Testing =
    51 
    5235
    5336Testing a large body of software like RTEMS is in a continual state of improvement.  There is always a need for more test cases and easier ways to run them all and decode the results.  In addition, we want to be  able to run all tests on as many hardware and simulator configurations as possible.  Testing doesn't sound exciting to most people but when you combine the breadth of what we need to test with our desire for 100% instruction and branch path coverage, you get some very interesting and challenging work.
    5437
    5538Some of the identified activities which would augment our testing capabilities are listed here:
    56 
    5739 *  [wiki:Projects/TestingImprovements RTEMS Testing]. Testing for RTEMS, including Unit, Regression operational and building a custom test harness.  No prior knowledge of software testing is required.
    5840 *  [wiki:RTEMS_Test_Coverage  Test Coverage Analysis] - Improve coverage by adding more test cases. Eliminating dead code and reaching 100% coverage helps reduce the likelihood of new and recurrent bugs.
     
    6042 *  [wiki:RTEMSgprof_  Add support for gprof output to covoar]
    6143 *  Improve [wiki:Projects/GNUToolsTesting  Testing of the GNU Tools] on RTEMS targets
     44 *  [wiki:Testing/Filesystem  File System Test Suite]
     45 *  [wiki:TBR/Delete/POSIXTimingTests  POSIX Timing Tests]
     46 *  Add [wiki:RTEMSgcov_  support for gcov output] to covoar so tools like gcov and lcov can be used with RTEMS ([wiki:Projects/GCOVSupport another page here])
     47 *  [wiki:Projects/POSIXComplianceTestSuite  POSIX Compliance Test Suite]
    6248= Development Environment Oriented =
    63 
    6449
    6550RTEMS applications are cross-compiled on a development host to produce executables that are transferred to and executed on target systems.  The projects in this section focus on the host side of that equation.  This means they will run on a developer's computer and possibly communicate with embedded hardware.
    6651
    6752The following areas have been identified for projects related to improving RTEMS development:
    68  *  Improvements in the [wiki:Developer/Eclipse/Information RTEMS Eclipse Integration]
     53 *  Improvements in the [wiki:Developer/Eclipse/Information RTEMS Eclipse Integration].
     54 *  Compiling RTEMS with [wiki:Projects/CLANG CLANG].
     55 *  Integrate [wiki:Projects/CEXP CEXP] into main RTEMS distribution.
    6956 *  Implement a cross-platform [wiki:Projects/GSoC/ApplicationConfigurationGUI  Application Configuration GUI].
    7057 *  Integration of RTEMS cross development environment into [wiki:Projects/EVisualStudio  eVisual Studio]
    7158 *  [wiki:Projects/ArgoUML  ArgoUML RTEMS Support]
     59 *  [wiki:RTEMS_Trace_Tool_  Run-Time Tracing] - includes gathering, capturing, and displaying information to the user.
    7260 *  [wiki:Projects/GDB_Python GDB Python] Script support for RTEMS
    7361 *  Scripts and documentation for creating and installing prebuilt tool packages:
     
    8068= RTEMS Run-Time Oriented =
    8169
     70The projects in this category are more focused on the development of software that runs on RTEMS on target hardware.
     71= Kernel (SuperCore, SuperCoreCPU, libcpu) =
    8272
    83 The projects in this category are more focused on the development of software that runs on RTEMS on target hardware.
    84 = Run-Time Projects Not Initiated =
    85 
    86 
    87 The following projects have no work on them.
    88 
     73 *  [wiki:SMP_  Improvements to SMP support] - Multiprocessing is of increasing importance in modern systems and we want RTEMS to remain competitive and useful. This is a large project and subtasks should be identified before writing any proposal.
     74  *  Implement or integrate [wiki:Projects/GSoC/Atomic_Operations Atomic Operations]. SMP code requires additional synchronization primitives that are not available currently in RTEMS.
    8975 *  Unified Interrupt and PCI APIs -- [wiki:UnifiedAPIs UnifiedAPIs]
    90  *  RTEMS can always use [wiki:TBR/Delete/MoreBSPsForSimulators  more BSPs for Simulators].  Being able to test, debug, and perform coverage analysis on simulators is critical to the ongoing success of the project.
    91  *  Identify and implement the functionality currently missing in ''dup()''
    92  *  Implement a [wiki:Projects/Open/LineEditor  Simple Line Editor].  Existing code can be refactored for starting point.
    9376 *  [wiki:Projects/SystemEvents  RTEMS System Events] is a project to add a first class object for events.  Currently all event sets are tied to a specific thread.
    94  *  Implement OSEK Support [http://portal.osek-vdx.org/]
    95  *  Port Transparent IPC (http://tipc.sourceforge.net/index.html) to RTEMS
    9677 *  Support for new Processor Families - Xtensa, Microblaze
    9778 *  Add cache manager support for architectures not having it.
    98  *  Investigate the feasibility of implementing applicable sections of the [http://en.wikipedia.org/wiki/IEC_61131 IEC 61131] standard to enable RTEMS-enabled hardware to act as a [http://en.wikipedia.org/wiki/Programmable_logic_controller Programmable Logic Controller].  More information on the IEC 61131 standard can be found at http://www.plcopen.org/ .  [http://www.beremiz.org/] is an open source framework for automation that may be a useful starting point.
    99  *  [wiki:Projects/GSoC/Bdbuf_improvements Bdbuf improvements]. The current block device buffer implementation can benefit from a number of improvements.
    100  *  ARINC653 API support within RTEMS [wiki:Projects/GSoC/ARINC653API ARINC653API]
    101 = Run-Time Projects With Some Work =
    102 
    103 
    104 The following projects have had some work on them but are not complete. Ask about the current progress on the mailing list.  The remaining activities could be large or small:
    105 
    10679 *  [wiki:Projects/TinyRTEMS TinyRTEMS] is an umbrella term that corresponds to any activities or ideas that could shrink the code and data space requirements for RTEMS.  The goal is to progressively lower the minimum CPU requirements.
    10780 *  Improve the RTEMS [wiki:SuperCore_Scheduler_  SuperCore Scheduler] - near complete
    108  *  more [wiki:TBR/Delete/Libbsd-port  NIC device drivers]
    109 = Third Party Packages =
    110 
    111 
    112 This is a list of projects related to third party free and open source software and its support for RTEMS.  The following project areas have been identified:
    113 
    114  *  Compiling RTEMS with [wiki:Projects/CLANG CLANG].
    115  *  Integrate [wiki:Projects/CEXP CEXP] into main RTEMS distribution.
    116  *  [wiki:Projects/Mono Mono On RTEMS]
    117  *  Turn the current port of [wiki:Packages/LWIP LWIP] into a first class citizen.  Submit port, make target independent, etc.
    118  *  [wiki:TBR/Delete/IDL_COM  IDL/COM] Support for RTEMS.
    119 = Projects Whose Page Need Updating =
    120 
    121 
    122 The following projects have been worked on and the pages require updating.  There may or may not be enough work remaining to constitute an SOC project; many of these are past SOC projects.  If you are interested in one of these, please ask on the mailing list or IRC.
    123 
     81 *  [wiki:Projects/GSoC/Bdbuf_improvements Bdbuf improvements]. The current block device buffer implementation can benefit from a number of improvements.
    12482 *  [wiki:RTEMS_Paravirtualization_  Paravirtualization] of RTEMS to make it suitable to be run as a guest OS in a hypervisor.
    12583 *  [wiki:MMU_Support_  MMU Support] for RTEMS.
    12684 *  Use [wiki:UseHashOrMapInNotepadsAndKeys_  Maps or Hashes] in the implementation of Classic API Notepads and POSIX API Keys.
     85 *  [wiki:Projects/SequencedInitialization  RTEMS Sequenced Initialization] is a project to allow RTEMS initialization to be dynamically constructed based upon user requirements.  It would be like C++ global constructors conceptually.
     86 *  [wiki:GSoC/2011/ISO9660_Filesystem  ISO9660 file system]
     87= Board Support Package (BSP) =
     88
     89 *  RTEMS can always use [wiki:TBR/Delete/MoreBSPsForSimulators  more BSPs for Simulators].  Being able to test, debug, and perform coverage analysis on simulators is critical to the ongoing success of the project.
     90= API Layers (POSIX, Classic, SAPI) =
     91
     92 *  Implement OSEK Support [http://portal.osek-vdx.org/]
     93 *  Investigate the feasibility of implementing applicable sections of the [http://en.wikipedia.org/wiki/IEC_61131 IEC 61131] standard to enable RTEMS-enabled hardware to act as a [http://en.wikipedia.org/wiki/Programmable_logic_controller Programmable Logic Controller].  More information on the IEC 61131 standard can be found at http://www.plcopen.org/ .  [http://www.beremiz.org/] is an open source framework for automation that may be a useful starting point.
     94 *  ARINC653 API support within RTEMS [wiki:Projects/GSoC/ARINC653API ARINC653API]
    12795 *  Implement [wiki:POSIX_Asynchronous_IO_  POSIX Asynchronous and List IO]
    128  *  [wiki:RTEMS_Trace_Tool_  Run-Time Tracing] - includes gathering, capturing, and displaying information to the user.
    129  *  [wiki:Projects/SequencedInitialization  RTEMS Sequenced Initialization] is a project to allow RTEMS initialization to be dynamically constructed based upon user requirements.  It would be like C++ global constructors conceptually.
     96= rtems-libbsd =
     97
     98 *  [wiki:Projects/TCP/IP_update  Update the RTEMS TCP/IP stack] - The networking stack is old and showing it. This project actively underway.  At a high level, this effort requires porting the TCP/IP stack and providing support functional equivalents of multiple BSD kernel constructs.  This project has many subprojects many of which are appropriate for SOC. It would be of great usefulness to the community to get as many of these does as an SOC project as possible.
     99 *  [wiki:TBR/UserManual/USBStack  port BSD USB stack]
     100= Languages =
     101
     102 *  [wiki:Projects/Mono Mono On RTEMS]
     103 *  [wiki:Projects/Parrot Parrot On RTEMS]
     104 *  [wiki:Projects/GCCGoRTEMS  GNU GCC Go]
     105 *  RTEMS port of the [wiki:Projects/GNUJavaCompiler  GNU Java Compiler (gjc)]
     106= Libraries, Languages, and Applications =
     107
     108 *  Identify and implement the functionality currently missing in ''dup()''
     109 *  Port Transparent IPC (http://tipc.sourceforge.net/index.html) to RTEMS
     110 *  Implement a [wiki:Projects/Open/LineEditor  Simple Line Editor].  Existing code can be refactored for starting point.
    130111 *  [wiki:Projects/libdl Dynamic Object File Loading] lets a base application with RTEMS dynamically load the rest of the application. The dynamic parts can be optional features and never loaded, or upgraded replacements for parts of the application.
    131  *  [wiki:TBR/UserManual/USBStack  port BSD USB stack]
    132  *  [wiki:Projects/Parrot Parrot On RTEMS]
    133  *  RTEMS port of [wiki:Projects/GCCGoRTEMS  GNU GCC Go]
    134  *  [wiki:Testing/Filesystem  File System Test Suite]
    135  *  [wiki:TBR/Delete/POSIXTimingTests  POSIX Timing Tests]
    136  *  [wiki:GSoC/2011/ISO9660_Filesystem  ISO9660 file system]
    137  *  RTEMS port of the [wiki:Projects/GNUJavaCompiler  GNU Java Compiler (gjc)]
    138  *  Add [wiki:RTEMSgcov_  support for gcov output] to covoar so tools like gcov and lcov can be used with RTEMS ([wiki:Projects/GCOVSupport another page here])
    139  *  [wiki:Projects/POSIXComplianceTestSuite  POSIX Compliance Test Suite]
     112 *  RTEMS Toolkits - We are defining collections of libraries and support programs which make it easier to get started for certain types of applications.  We haven't identified all potential toolkits or components.  Each potential component must be evaluated for license and appropriateness for use in an embedded environment like RTEMS.  We also should define some guidelines about creating and maintaining these kits. Here are the toolkits areas identified so far:
     113  *  [wiki:Projects/BenchmarkKit RTEMS BenchKit] - benchmark programs for RTEMS
     114  *  [wiki:Projects/ApplicationConfigurationKit RTEMS ConfigKit] - configuration file parsing libraries
     115  *  [wiki:Projects/DatabaseKit RTEMS DBKit] - database packages
     116  *  [wiki:Projects/GraphicsToolkit RTEMSGraphicsToolkit] - various graphics and video processing. This kit has had some work done on it.
     117  *  [wiki:Projects/ScienceKit RTEMS SciKit] - libraries of general use to the scientific community RTEMS users
     118  *  [wiki:Projects/ScriptKit RTEMS ScriptKit] - packages for scripting languages such as Python and Lua
     119  *  [wiki:Projects/WebKit RTEMS WebKit] - packages for networked devices.
     120 *  Turn the current port of [wiki:Packages/LWIP LWIP] into a first class citizen.  Submit port, make target independent, create maintenance plan.
     121 *  [wiki:TBR/Delete/IDL_COM  IDL/COM] Support for RTEMS.
     122= Retired Projects =
     123
     124
     125The following projects are considered complete.
    140126 *  [wiki:Projects/SixtyFourBitTimestamps  Sixty-Four Bit Timestamps]
    141127 *  [wiki:Projects/Refactor_the_filesystem_infrastructure Refactor the filesystem infrastructure]
     
    148134 *  [http://code.google.com/p/rosetta-os Rosetta OS] [[RosettaOSDeviceDriverAPI| OS Independent Device Driver API]]
    149135 *  Implement current version of µITRON Interface [http://www.www.tron.org/index-e.html]. itron support was removed from RTEMS due to lack of interest.
     136 *  More [[libbsd-port| NIC device drivers]]. See instead [wiki:Projects/TCP/IP_update TCP/IP update].