Home > Architecture of Open Source Applications > Coming Up Next (We Hope)

Coming Up Next (We Hope)

May 29th, 2011

The Architecture of Open Source Applications was always meant to be the start of something, not the end. We’d really like to collect more descriptions of complex systems’ architectures and the lessons to be learned from them, but to do that, we need your help. If you are, or know, the key designers or developers associated with the projects listed below, please let them know that we’d like to hear from them. Where we don’t have an application, just a category, please suggest a particular project and make an introduction, and if there’s something missing that you think would teach people a lesson that would otherwise go untaught, please let us know that too.

  1. GDB (or any other industrial-strength debugger).
  2. Gecko, WebKit, or another HTML rendering engine.
  3. A JITting JavaScript implementation.
  4. BZFlag or some other real-time multiplayer game (we have two turn-based games in vol 1).
  5. The Thunderbird desktop email client.
  6. Moodle.
  7. Inkscape and/or The Gimp.
  8. OpenOffice Calc or Gnumeric (i.e., a spreadsheet).
  9. Vim or Emacs (old-school text editor).
  10. The Arduino IDE (which is written in Processing).
  11. Something (anything) for small-memory/small-power devices.
  12. Puppet.
  13. A penetration testing toolkit.
  14. OpenSSH (please please please oh please).
  15. OpenStreetMap.
  16. GnuPlot or matplotlib.
  17. nginx (or another modern lightweight web server).

What are we missing? What would be an opportunity to describe and explain design principles that we haven’t already covered? Remember, it doesn’t have to be a beautiful architecture to be instructive… But please note, we’re looking for things whose designs can be described in essays—there are entire books on the Linux kernel.

Later: as per another post, the best way to get something included in volume 2 is to offer to write a chapter yourself. If you don’t know enough to do that, please take a few moments to collect the names and email addresses of people who could and forward them to me.

Architecture of Open Source Applications

  1. May 30th, 2011 at 02:12 | #1

    Perhaps Dave Humphrey might know someone who could do a chapter on the Audio API in Firefox… I know I saw a few blog posts, and heard a couple of stories from him about it.

  2. Jakub Narębski
    May 31st, 2011 at 06:50 | #2

    Perhaps Eric S. Raymond (or someone else) could write chapter on GPSd. I think it might at least partially fit “Something (anything) for small-memory/small-power devices.”

    I know that there is chapter on Mercurial (distributed version control system), but it would be nice to have chapter on Git, which made some different choices wrt. design descisions and goals.

  3. Olivier Castan
    May 31st, 2011 at 09:59 | #3

    Here are a few suggestions :
    11. : dalvik
    13. : nmap, Nessus or Sleuthkit
    14. : other security oriented designs like postfix, dovecot, vsftpd
    18. : ffmpeg
    19. : qemu or Xen

  4. Pietro Braione
    June 1st, 2011 at 11:07 | #4

    I would suggest:
    - Squeak
    - Lively Kernel
    - Maxine VM
    - Ian Piumarta’s COLA
    - L4
    - Haiku OS

  5. June 4th, 2011 at 16:07 | #5

    How About
    A Relational Database such as MySQL or Postgresql
    A compiler (GCC)
    A web server (Apache or Nginx)
    Some popular CMS’s (WordPress or Drupal)

    • Greg Wilson
      June 4th, 2011 at 16:18 | #6

      Thanks for the suggestions: as per the footnote to the article, the best way to make this happen is to volunteer to write it yourself, or introduce me to specific people who could.

  6. June 5th, 2011 at 03:34 | #7

    zeroMQ is quite an interesting architecture: take a message queuing middleware, remove the constraint of the central broker server, and put this behind a BSD sockets API so that it can be integrate in an OS kernel and you already have something interesting from the outside. Now, make it multithreaded, lock-free and multi-transport, and you have quite some challenge from the inside too. More than that, the guys there has already some very well written and entertaining(!) whitepapers on the subject so that writing a chapter would be more an editing job than anything else.

    I also really love to see something on ffmpeg which was a pleasure to work with and extending it compared to other media libraries I work with in the past.

    • Greg Wilson
      June 5th, 2011 at 11:14 | #8

      Thanks for the suggestion, Fabien — as per the footnote in the article, and previous replies to comments, the best way to make this happen is to volunteer to write the chapter yourself, or introduce me to someone who can.

Comments are closed.