Changes between Version 295 and Version 296 of Developer/OpenProjects


Ignore:
Timestamp:
02/07/13 22:16:14 (11 years ago)
Author:
Gedare
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Developer/OpenProjects

    v295 v296  
    66If you are looking to get your feet wet with RTEMS then check out our [wiki:Small_Projects_  small projects page] where you can find projects that require little coding skill and are appropriate for those new to RTEMS or open source software projects. If you are interested in one of these projects but are not able to code and test it yourself, consider sponsoring one of the core RTEMS developers to do it for you. Volunteering or sponsoring is how things get done -- users keep RTEMS development alive!
    77
    8 
    9 [[TOC(Developer/OpenProjects, depth=2)]]
    10 
    11 
    12 <!-- Comment out SOCIS material until next SOCIS= ESA SOCIS 2012 =
    13 
    14 
    15 If you are looking for project ideas for [http://sophia.estec.esa.int/socis2012 ESA SOCIS], then we would like to highlight some projects which we believe are particularly relevant to the space community.
    16 
    17  *  [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.
    18  *  Simulator Updates - This is a new idea for a project and has not been described beyond what is here. Ask on the rtems-devel mailing list for more advice. The RTEMS Project relies heavily on multiple FOSS simulators including qemu and skyeye. We have multiple BSPs which are tested on simulators. Each BSP will need to be tested against the current release and development version of each simulator. If there is a problem, then the issue will have to be identified (possibly using something like git bisect) and the student will have to fix it in the simulator. As an example of this, we believe some ARM BSPs which worked on older versions of Skyeye no longer work on the current version. In some cases, the RTEMS Project is carrying unmerged patches for a simulator (at least qemu m68k and arm) which need to be updated to their development head and submitted. You will try to get the simulator developers to include RTEMS hello world and ticker executables for BSPs their simulator supports in their simulator tests to avoid future breakage. And you will ensure that the scripts in rtems-testing/sim-scripts are working for the latest version of the simulator. We would also like instructions on running the leon BSPs on qemu. Please ask questions. This is a broad project.
    19 
    20 There may be other projects on this page which are of interest to the space community. If you are interested in one that is properly sized, email us and ask.
    21 
    22 SMP improvements are important to the space community but, to the best of our knowledge, there is no free simulator for the LEON3 which is the primary target for this community.
    23 -->
    24 = Overview =
    25 
    26 
    278Most of these projects will take between a few weeks and a few months of effort by a person who is familiar with the general use of GNU/Linux
    289and GNU tools.  Many RTEMS projects are done as student or volunteer efforts, so we try to define small projects or subtasks that can be completed and committed individually.
    2910Most 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.
    3011
     12
     13[[TOC(Developer/OpenProjects, depth=2)]]
     14
     15= Overview =
     16
     17
    3118The 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.
    3219
    33 '''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.'''
     20Projects in '''Bold text''' are '''higher priority''' simply meaning that users or developers have expressed a lot of interest in such projects. Projects in ''Italic text'' have ''had some work done'' and may need an updated description, might be complete already, and may or may not have sufficient work remaining.
     21
     22If 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.
    3423= Testing =
    3524
     
    3827Some of the identified activities which would augment our testing capabilities are listed here:
    3928 *  [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.
    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.
     29 *  '''[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.
    4130 *  Test the [wiki:Projects/POSIXFIFOs  POSIX FIFO Implementation].
    4231 *  [wiki:RTEMSgprof_  Add support for gprof output to covoar]
    4332 *  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]
     33 *  ''[wiki:Testing/Filesystem  File System Test Suite]''
     34 *  ''[wiki:TBR/Delete/POSIXTimingTests  POSIX Timing Tests]''
     35 *  ''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])''
     36 *  ''[wiki:Projects/POSIXComplianceTestSuite  POSIX Compliance Test Suite]''
     37 *  Simulator Updates - This is a new idea for a project and has not been described beyond what is here. Ask on the rtems-devel mailing list for more advice. The RTEMS Project relies heavily on multiple FOSS simulators including qemu and skyeye. We have multiple BSPs which are tested on simulators. Each BSP will need to be tested against the current release and development version of each simulator. If there is a problem, then the issue will have to be identified (possibly using something like git bisect) and the student will have to fix it in the simulator. As an example of this, we believe some ARM BSPs which worked on older versions of Skyeye no longer work on the current version. In some cases, the RTEMS Project is carrying unmerged patches for a simulator (at least qemu m68k and arm) which need to be updated to their development head and submitted. You will try to get the simulator developers to include RTEMS hello world and ticker executables for BSPs their simulator supports in their simulator tests to avoid future breakage. And you will ensure that the scripts in rtems-testing/sim-scripts are working for the latest version of the simulator. We would also like instructions on running the leon BSPs on qemu. Please ask questions. This is a broad project.
    4838= Development Environment Oriented =
    4939
     
    7262
    7363 *  [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.
     64  *  Implement or integrate ''[wiki:Projects/GSoC/Atomic_Operations Atomic Operations]''. SMP code requires additional synchronization primitives that are not available currently in RTEMS.
    7565 *  Unified Interrupt and PCI APIs -- [wiki:UnifiedAPIs UnifiedAPIs]
    7666 *  [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.
     
    7868 *  Add cache manager support for architectures not having it.
    7969 *  [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.
    80  *  Improve the RTEMS [wiki:SuperCore_Scheduler_  SuperCore Scheduler] - near complete
    81  *  [wiki:Projects/GSoC/Bdbuf_improvements Bdbuf improvements]. The current block device buffer implementation can benefit from a number of improvements.
    82  *  [wiki:RTEMS_Paravirtualization_  Paravirtualization] of RTEMS to make it suitable to be run as a guest OS in a hypervisor.
    83  *  [wiki:MMU_Support_  MMU Support] for RTEMS.
    84  *  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]
     70 *  Improve the RTEMS ''[wiki:SuperCore_Scheduler_  SuperCore Scheduler]''
     71 *  ''[wiki:Projects/GSoC/Bdbuf_improvements Bdbuf improvements].'' The current block device buffer implementation can benefit from a number of improvements.
     72 *  ''[wiki:RTEMS_Paravirtualization_  Paravirtualization]'' of RTEMS to make it suitable to be run as a guest OS in a hypervisor.
     73 *  ''[wiki:MMU_Support_  MMU Support]'' for RTEMS.
     74 *  Use ''[wiki:UseHashOrMapInNotepadsAndKeys_  Maps or Hashes]'' in the implementation of Classic API Notepads and POSIX API Keys.
     75 *  ''[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.
     76 *  ''[wiki:GSoC/2011/ISO9660_Filesystem  ISO9660 file system]''
    8777= Board Support Package (BSP) =
    8878
     
    9282 *  Implement OSEK Support [http://portal.osek-vdx.org/]
    9383 *  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]
    95  *  Implement [wiki:POSIX_Asynchronous_IO_  POSIX Asynchronous and List IO]
     84 *  ''ARINC653 API support within RTEMS [wiki:Projects/GSoC/ARINC653API ARINC653API]''
     85 *  ''Implement [wiki:POSIX_Asynchronous_IO_  POSIX Asynchronous and List IO]''
    9686= rtems-libbsd =
    9787
    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]
     88 *  ''[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.
     89 *  ''[wiki:TBR/UserManual/USBStack  port BSD USB stack]''
    10090= Languages =
    10191
    10292 *  [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)]
     93 *  ''[wiki:Projects/Parrot Parrot On RTEMS]''
     94 *  ''[wiki:Projects/GCCGoRTEMS  GNU GCC Go]''
     95 *  RTEMS port of the ''[wiki:Projects/GNUJavaCompiler  GNU Java Compiler (gjc)]''
    10696= Libraries, Languages, and Applications =
    10797
    108  *  Identify and implement the functionality currently missing in ''dup()''
     98 *  Identify and implement the functionality currently missing in dup()
    10999 *  Port Transparent IPC (http://tipc.sourceforge.net/index.html) to RTEMS
    110100 *  Implement a [wiki:Projects/Open/LineEditor  Simple Line Editor].  Existing code can be refactored for starting point.
    111  *  [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.
     101 *  ''[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.
    112102 *  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:
    113103  *  [wiki:Projects/BenchmarkKit RTEMS BenchKit] - benchmark programs for RTEMS
     
    130120Some projects have been proposed that are viewed as being of minor use. This list is meant to provide a way to avoid wasted effort on projects that are not widely desired. However, projects on this list might still be useful to someone, given a motivated individual to work on them.
    131121
    132  *  Various ideas have been proposed related to using RTEMS as a [[RTEMSHyperVisor | hypervisor]]. The lack of protected (kernel mode) execution precludes any feasible implementations.
     122 *  Various ideas have been proposed related to using RTEMS as a [wiki:RTEMSHyperVisor_  hypervisor]. The lack of protected (kernel mode) execution precludes any feasible implementations.
    133123 *  Merge [[SimpleScalar | BSP for Simplescalar simulator]]. The BSP is heavily bit-rotted and the simulator is a dead project.
    134124 *  [http://code.google.com/p/rosetta-os Rosetta OS] [[RosettaOSDeviceDriverAPI| OS Independent Device Driver API]]