“Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled.”
Eoin Woods
Incorrect open source software architecture decisions may cause your project to fail.
Greg Kroah-Hartman came to my Open Source Software Engineering class today. Here are a couple of interesting thoughts that I’ve been able to gather from his presentation:
- New patches are tested with Andrew’s mm kernel, and if they work out, then they are sent to Linus’ kernel.
- Time between kernel versions should be about two months.
- 1475 unique contributors in one year alone
- Grew kernel 6% in one year
- 2.6.18.y kernels are bugfixes only
- Powerful to have a set list of rules so it is easy to say no to people
- Day job: in charge of all SuSE kernel developers. All work remotely around the world.
- Distros like to maintain an enterprise kernel for up to 7 years, which is crazy
- E*Trade uses Gentoo because they can control it.
- Modular kernel which little interconnectedness which makes it easy to have module maintainers who don’t
- Tools: git, quilt, sparse
- Linus’ main job: say no
- Linux isn’t developed, it evolves. This means that there really isn’t a firm development plan.
- Can’t go by time anymore with git
- Signed-off-by is a blame path which create a reputation based system for submitting patches
- The IDE module guy three times has gone crazy
- Contributors have to defend their code
- No development tree makes the engineering process more careful. Things have to evolve gradually with small changesets.
- All the drivers are in the tree. This means that if you change an API function, then you can go and change all the drivers that use that API just like that.
- People who work on open source projects are much more likely to get jobs, because you have currently shipping code.
- Learn about licenses, they are very important.
- Xen is a good example of running an open source project the wrong way. There are political and social reasons why.
I don’t know why I think this is interesting, but I do. It just goes to show that if you go to design something for a computer program, things are bound to get a little messy. Don’t try to make sense of it at all. Just admire the beauty of computer software chalkboard design.

Recent Comments