EDOS Objectives

Problems raised by software packages

Software packages are files in the RPM or Debian packaging format that contain executable programs or libraries, their files, along with metadata describing what's in the package and what conditions are needed to use it.

  • Dependencies Software packages may need other software packages to run, and often they don't tell exactly what other packages they need but leave a large room for choice. Also, some software packages cannot be installed at the same time. This makes the job of tools that automatically download required software packages difficult. Distribution maintainers want to make sure that there is always a way of selecting available packages to correctly install every piece of software they include, and that users can upgrade their systems without loosing functionality. (Work package 2 handles these issues).
  • Downloading Users need to download software packages from somewhere. That requires a lots of bandwidth and puts strains on mirrors that host those packages. This problem would be better solved with peer-to-peer methods. (Work package 4 handles these issues).
  • Quality assurance The complexity of the quality assurance process increases exponentialy with the number of packages and the number of platforms. To maintain the workload manageable, Linux distribution developers are forced to reduce system quality, reduce the number of packages, or accept long delays before final releases of high quality system. (Work package 3 handles these issues).
  • Metrics Following the ``release early, release often'' philosophy, free and open source software is always in constant development and any serious project has many versions floating around : older but stable versions, and newer versions with new features but with more bugs. Free software can be of wildly varying quality. We are defining quality metrics, assessing their relevance and implementing them. (Work package 5 handles these issues).

How EDOS helps solving these problems

We use formal methods coming from the academic research groups in the project, to address in a novel way three outstanding problems:

  • dependency management among large, heterogeneous collections of software packages,
  • testing and QA for large, complex software systems,
  • and the efficient distribution of large software systems, using peer-to-peer and distributed data-base technology.
We have studied these problems and produced various technical reports explaining their importance and giving ways of mathematically expressing them, algorithms for solving associated problems and real-world statistics.

We are also producing a certain amount of software which is, of course, free and open source :

  • Java software for the peer-to-peer distribution of software packages.
  • debcheck/rpmcheck is a very efficient piece of Ocaml software for verifying that a Debian or RPM collection of packages does not contain non-installable packages.
  • The day-to-day evolution of the Debian packages, that is, its detailed history, can be browsed using anla. This also gives, for every day, reports on installable software packages and a global installability index for every day (Debian weather).
  • That history can be queried in the EDOS-designed Debian Query Language using the command-line tool history or the AJAX-based EDOS Console.
  • ara is a search engine for Debian packages that allows arbitrary boolean combinations of field-limited regular-expressions, and that ranks results by popularity (again in Ocaml)
The Open Source and Free Software movement now touches a very large and growing community of users. The GNU/Linux operating system for instance has an estimated 18 million users worldwide. The number of contributing developers can vary between several hundred and several thousand. Open Source and Free Software has a critical mass of developers to choose from.

This has helped to ensure high quality for open source software, and has given end-users a real alternative to using proprietary software. The Open Source community will continue to grow over the coming years.

However, despite this success, there are important problems in the production of Open Source operating systems on a large scale that will become even more significant as the number of users grows.

How are these problems solved today

Open source distribution editors package and assemble a large number of programs and applications into a single tested distribution, together with a set of tools to install and administer the system.

They have to perform the following two key functions:

  • Producing a new version of a distribution: starting from a complete version of the distribution, the editor adds, deletes, reconfigure, and updates packages with respect to the external sources, etc.
  • Customizing a distribution for a specific user: this includes adding, deleting, updating and configuring packages.
Currently, distribution editors (Mandriva, Debian, Red Hat, Caixa Magica...) use collections of ad hoc scripts and a lot of manual intervention. This becomes increasingly inadequate as the number of packages grows very quickly. The main objective of this project is to develop technology and tools to support and improve these two processes.

More information

  • The project is divided into work packages, so you may find it useful to browse our wiki in the same way.
    • Wp2: Formal management of software dependencies
    • Wp3: EDOS testing framework and quality assurance portal
    • Wp4: Novel distribution of code over the internet
    • Wp5: EDOS metrics
    • Wp6: Dissemination
We also have a transversal task: API for OSS development and distribution, specifically tailored to the production of a GNU/Linux distribution. There are more topics here.
Version 1.2 last modified by slauriere on 21/08/2007 at 00:14

Comments 0

No comments for this document

Attachments 0

No attachments for this document

Creator: slauriere on 2007/08/21 00:14
Copyright EDOS Consortium
1.1.1