For some time now I have been steadily working on a Very Cool(tm) programming project. I want to do some commercial things with it later, so I can’t really say what it is or what it does, but what I can say is that it works with network packets and it requires kernel-level adjustments to fulfill its potential.
Since starting it, I have been developing on Linux, specifically Ubuntu (though that’s not really important) because Linux is:
- Easy to install
- Comes with any number of graphical interfaces which can be selected with the click of a button
- Has a massive amount of software support (editors, IDEs etc).
However, I recently determined that FreeBSD (an old love of mine) is required for my project, not due to technical reasons, but for licensing ones. If I was to modify the Linux kernel such that it served the purposes I need it to, then the GPL (GNU Public Licence) under which Linux is distributed would force me to release my software under GPL as well, and at this point in time I simply don’t want to do that.
I therefore recently took the plunge and spent a couple of days getting a nice 64-bit FreeBSD system set up. It took some tinkering and messing about with various configurations and drivers, but I now have KDE running at HD resolution, with Geany (my IDE of choice) and the various other packages I use, all running fine.
The final step was to tweak my code to compile cleanly under Clang (as opposed to GCC) and I couldn’t be happier with the result, so now I’m in FreeBSD heaven again (I always did love it) and working towards getting my project to the point where it can take on some commercial viability.