My journey from macOS to FreeBSD

World of Apple Link to heading

I would like to share my personal experience with my recent move to the PC world. My journey started on MS DOS and then Windows, as it’s common for many people. Later on I moved to Linux, but only on desktop. When the time came and I needed a laptop, I was fascinated by the hardware and software quality of Macintosh. Back then, it was an era of PowerPC, that was coming slowly to an end. I bought my first MacBook Pro around 2007 and I was really satisfied with it. I loved the Unix roots of Mac OS X. It was a combination of Mach kernel and FreeBSD user land that gave it it’s unique strength and architecture. I absolutely fell in love with Aqua interface of Mac OS X Tiger. All those glossy, beautiful buttons and scrollbars really captured my heart.

During the years, Apple started turning away from this beautiful UI into a world of plain, soulless and minimalistic UI. They also gradually abandoned their original focus on nurturing various 3rd party languages and integrations, like their own Java implementation. Their Java was not only well integrated into the desktop, but also more performant than the standard implementation from Sun. Those days are gone though. Desktop experience became so dull and lost it’s focus on users that it’s just a ghost of its former glory. New releases are not shipped when they are ready (back then it took couple of years to do so), but rather on schedule every year, no matter if it brings value or not. The hardware itself also got worse. Removal of all but 2 USB-C ports from MacBook Pro was a last nail to the coffin for me.

Into FreeBSD Link to heading

Not everything in the world is doom and gloom though. During a difficult part of my life last spring, I took a few weeks off to recover and to overcome many shackles in my life. Curiously, maybe as a part of me regaining my inner freedom, I decided to install FreeBSD in VMware on my Mac. I was immediately fascinated by the OS architecture and the clean distinction between the base system and 3rd party packages. I explored the potential of ZFS file system, learned how beautifully it integrates with the system itself. I appreciated that the FreeBSD team made such thoughtful effort to integrate ZFS into the existing ecosystem. I became increasingly intrigued by the FreeBSD system philosophy and its UNIX heritage. And I started dreaming again.

FreeBSD desktop sporting bspwm and polybar

At some point I couldn’t stand my Mac anymore and I started looking for a hardware that could become my laptop. I soon realised that I knew nothing about the PC hardware. I started pestering my friends and colleagues about what kind of hardware I should choose, but frankly none of them had experience with FreeBSD on laptop. Originally, I wanted to go for a Framework laptop, because I loved the idea of a repairable machine. But the problem was that Framework didn’t ship to the UK. That was in 2021, before they started accepting pre-orders for the UK market. I found that Lenovo still makes pretty good hardware, so I decided that I would buy a Lenovo ThinkPad T470. I realised that I didn’t want to pay the full price of a new laptop. If I bought a refurbished laptop instead, I would not only save 2/3 of the price, but I would also get almost the same hardware as I had on my Mac. Not exactly though, as the display is not as good as Apple provides.

At this point, I found a local UK seller of refurbished hardware, did the laptop configuration and then in couple of days I had my PC laptop delivered. I had a lot of experience already from many VMware installations I did before and I had also all my configuration and script files meticulously prepared. The installation went well, without any hick-ups and roughly after 20 minutes, I had my new system up and running. I didn’t feel so happy for a long time like that day. I was really proud not only of myself, but also of the FreeBSD system and the laptop itself.

Present times Link to heading

Couple of months passed since I installed FreeBSD. I have upgraded the system with several patches, always using Boot Environments (provided by ZFS) to be on the safe side. I have never had to reboot and rollback any system upgrade. I’m using a quarterly package branch rather than the latest one, because I prefer stability and security over new features. Also, what kind of new features would I get from, bspwm or vim? I installed number of minimalistic apps and started playing around with Jails. I love the idea of very lightweight containers that FreeBSD provides out-of-the-box. Because of this, I learned how to install a DNS server, proxy, how to work with private IP address space and also how to assign jails human-friendly host names.

FreeBSD gave me a stable, clean system that works as I expect it to. It’s predictable, reliable and stable. I can configure it exactly the way I like. It brings me joy, inspiration and provides a never ending source of learning experience. I’m happy to see that again, after so many years, the computer serves me and not the other way around. I still would not recommend it to non-technical people, because it requires quite good knowledge of Unix systems work. But whoever seeks to learn and would love to regain the freedom of truly owning their system and data, I recommend it from the bottom of my heart.

Note: This blog post has been rewritten at least 3 times. I started with describing how I configured the system, then I went to bragging about how I love bspwm, how I set up all my jails, etc. I might still write about it at some point, but not this time. Every time I started writing the post, I realised that I was missing a point. I can say now that I know what I really wanted to say: that I love FreeBSD and I find joy in using it.