Following my past article entitled A short word about Linux, ideas were tossed on the Mauritius Internet Users mailing list about BSD having different approaches compared to Linux. The need for a BSD user group was voiced-out as well as raising the awareness on BSD and its advantages. Following that, a little chat with Logan again, who is also a BSD developer, brought out some fruitful information about BSD. Following is what I could extract from Logan 😛
What is BSD? How did it come into existence?
BSD is short for Berkeley Software Distribution and is a Free/Open Source Operating System. It started before Linux by Berkeley students as part of the Computer Science Research Group. Many key technologies were developed on BSD: TCP/IP was developed as part of early releases of BSD back in the 1980s. CSRG disbanded in 1994. Various groups took over the development of BSD. One group decided to focus on Intel-based PCs, and they call their version FreeBSD. Another group decided to focus on running BSD on as many platforms as possible, and they called it NetBSD. An argument erupted on NetBSD, and Theo de Raadt decided to start his own version of BSD. He called it OpenBSD, and its focus was security. Matthew Dillon had a different view of how FreeBSD should evolve for multi-CPU support, and he started DragonflyBSD.
What is the difference between BSD and other ‘OpenSource’ Operating Systems?
- Evolutionary approach: Instead of integrating any feature blindly, BSD tend to develop features over time, and peer-review codes among developers.
- Integrated documentation: You don’t need to go through many websites for documentation.
- Strong engineering culture: Lots of focus on technical matters, rather than marketing.
- Liberal license: The BSD license has little restrictions. Consequently, you can find various companies who have integrated pieces of BSD technologies inside their products: Apple MAC OS X, Apple iPhone, Juniper routers, and quite a few others.
How do the different flavours of BSD (OpenBSD, NetBSD, FreeBSD, etc..) distinct from each other and what are their specific uses?
OpenBSD is focused on security. NetBSD focuses on running on all kinds of exotic hardware: It has even been ported to a toaster. FreeBSD is focused on performance on Intel PCs. DragonflyBSD takes a different approach than FreeBSD for running on multiple CPUs.
I am a Raspberry Pi fan and use Raspian as running OS for my RPi. I heard that BSD can be used on RPi’s too. What are the advantages I will get from jumping to BSD and anything great I can do with BSD specifically with RPi?
Easier to build the latest BSD on RPi. You can find the latest FreeBSD 10.1 and NetBSD 7.0 BETA releases to run on your RPi. It takes less memory. NetBSD can run on 16MB of RAM. This allows you to use more memory for your custom applications. You also have a huge selection of packages from FreeBSD ports or NetBSD pkgsrc repositories.
In Linux‘s case, you still need to run a 3.12 kernel, whereas the latest version is 3.18.
How is BSD known in Mauritius among the general public and technical-guys too? And it’s development?
Well, Mauritians are users of BSD without knowing it 🙂 Android contains a number of BSD components. Same goes for the iPhone. Apple Macbook owners also rely on BSD for the Mac OS X.
For technical people, I would argue that OpenSSH is the most widely deployed BSD software that they interact with. Perhaps we can say the same thing for ISC BIND for DNS.
Development of BSD; I understand you develop under BSD too, how is development on BSD different from developing on other platforms?
It’s an evolutionary methodology. People exchange ideas, and make sure that the code which is integrated into a release is correct. Often, this happens over a series of releases. This is different from other Open Source projects which try to include as many features as possible.
Before ending our conversation, any advice on how to dive into BSD as a user and then, as a developer?
For a BSD user, you can try PCBSD as a desktop operating system on your laptop. Apple Macbooks are nice too 🙂
For developers, I would recommend reading the official documentation, and see how the various features of the BSDs can help them.
For example if you want a web server platform, you might consider FreeBSD due to its strong performance, and also the ports system which allow you to build a FreeBSD, Apache, and MySQL/PostgreSQL.
Any final word?
I’m happy to have joined the BSD developer group. I have learned a lot in terms of improving the security of my code, and learned to polish my code after receiving good peer review from senior developers.
I would warmly recommend a student to learn about how to engineer software the right way by looking at how BSD is built, and assimilating as much as they can so that they can deliver good projects for their clients.
If you want to take BSD and build a whole service on top of it, you’re welcome to. Whatsapp did that by using FreeBSD as their foundation.
There is no attempt at forcing you to give back any improvement. You choose what you think can be sent to the project, and what you would prefer to give you an edge over your competitors.
Thank You for your time Logan.
Well, another of our conversations that turned into an article. Thank you Logan.
Have an Open Mind; Be Open-Source – A.M.I