A Grand Experiment

The latest debacle over the "forced" upgrade to Windows 10 and Apple's increasingly locked-in ecosystem has got me thinking. Do I really need to use a proprietary operating system to get work done? And while I'm at it, do I need to use commercial cloud services to store my data?

I've always used Linux since the first time I tried installing Slackware in the mid-90s. In 1998 we were the first national TV show to install Linux live (Red Hat). And I've often advocated Ubuntu to people with older computers. I usually have at least one computer running Linux around, in the past couple of years Dell XPS laptops have been great choices. And a couple of months ago I bought a 17" Oryx laptop from System76, an Ubuntu system integrator, for use in studio. 

But as time went by, even Ubuntu began to seem too commercial to me, and I've migrated to community supported Debian testing and the Arch-based Antergos distros for everything. (i use Antergos on my Oryx on the shows.)

Using these Linux systems and the Chromebook Pixel have convinced me I don't really need to use commercial operating systems for anything I do. And for almost everything Linux is faster, better, and more reliable. At this point the only reason I can see for NOT using an open-source OS is a lack of software for something you need to do, like video or photo editing, music making, and rocket launching. But in the 20 years I've been using Linux, great alternative libre software has evolved to replace those commercial solutions. I think the time is right to make the switch.

So now for the grand experiment. Is it possible, I wonder, to do everything I need to do on an even more venerable, more robust system: a true UNIX OS, FreeBSD? Here are my requirements:

1. Stability - everything works even after updates
2. Security - no viruses, no exploits, no snoops or spooks
3. Usability - the UI has to look good and not get in my way
4. Speedy - I don't like to wait

And the tasks I need to do:

1. Browsing
2. Email with PGP signing and encryption
3. Coding - I'm a hobbyist programmer requiring support for lisp/scheme/racket, rust, and python (and maybe forth and clojure and meteor and whatever else is cool and new)
4. Writing
5. A password vault. I currently use Lastpass because it syncs with mobile but eventually I'll need to find a FOSS replacement for that, too
6. Photo editing - this is the toughest to replace. I love Photoshop and Lightroom. Can I get by with, say, GIMP and Darktable?

Why not Linux? After reading an excellent article on the differences between Linux and FreeBSD by Matthew D. Fuller and playing with both over the past few months I've come to believe BSD would be the better choice for me. In Matthew's words:

BSD is what you get when a bunch of Unix hackers sit down to try to port a Unix system to the PC. Linux is what you get when a bunch of PC hackers sit down and try to write a Unix system for the PC.
— https://www.over-yonder.net/~fullermd/rants/bsd4linux/01

I love Linux and will continue to use it on my laptops, but for my main workhorse desktop I think FreeBSD will be a better choice. I also look forward to learning and administering a true UNIX system. All the userland apps I currently rely on with Linux are also readily available on FreeBSD. Why FreeBSD not OpenBSD, or NetBSD, or PC-BSD, etc? FreeBSD has the largest community of all the BSDs and the FreeBSD handbook is quite impressive. That said, I think any BSD would suit just as well, but I had to choose one. 

I do have a contingency plan. I'm not throwing away my Windows and Mac laptops, in fact, I'll probably buy a new Macbook Pro the second it comes out, so if need be I can use them when I need commercial software. I'm also stuck using proprietary mobile devices for the moment. And for that reason, a good cloud architecture is important. Can I, for example, replace Lastpass and Evernote with a self-hosted, open source alternative? More on my planned self-hosted cloud later. 

There's another reason for this experiment, it's going to be fun! 

I've ordered a beast of a machine from ABMX.com, a FreeBSD system integrator. That way I know all the hardware will work with my shiny new OS. 

Based on their W19S11T Whisper Quiet Workstation case:

• Supermicro X11SAT-F Motherboard (Socket 1151)
• Intel Xeon E3-1275V5 4-Core 3.60 GHz
• 32GB DDR4 ECC Un-buffered Memory
• 1 512GB Samsung 950 Pro NVMe m.2 boot drive
• 2 x 1.0 TB Samsung EVO 850 SSDs (supplemented with two I already have for a total of 4)
• DVD burner (I've ordered the FreeBSD DVDs to support them even though you can download everything from freebsd.org.)

(I'm planning on using ZFS with two pools - one OS pool on the m.2 and a data pool using ZRAID on the 4TB of SSD storage, giving me 3.5GB total storage. ZFS is one very strong reason to use FreeBSD.)

• NVIDIA GeForce GTX 960 GPU

(Timing is not great here, I'd prefer the new GTX 1060 but it's not available yet. I'm not gaming on this - that's what the Xbox and PS4 are for - but I will be driving several high res displays and I don't want any lag or tearing when I scroll.)

• 450Mbps Wireless N Dual Band PCI-e Adapter w/ 3x 2dBi Antennas

(Yes, sad to say, unless I rewire my house I'll have to use Wi-Fi with this beast. I'll probably rewire my house.)

Dell UltraSharp U3415W 34-Inch Curved Monitor
dasKeyboard 4 Professional
Some old Microsoft mouse I have lying around.

I shall dub this system, The Beast. Nothing flashy here, it's more yak than gazelle, but that's what I want for my desktop. Total cost is, well I'd prefer not to dwell on it. But to quote Steve Gibson, I'm hoping this will be the last computer I'll buy in my lifetime. (hah!)

I've also ordered a small NUC-style box from System76 to act as a server for my self-hosted cloud. I'm planning to run sandstorm.io on Debian stable behind a Ubiquiti EdgeRouterX on my Comcast Business Class cable modem. More on that next time.

And I'll continue to chronicle my journey into the land of FOSS here when The Beast arrives. But in the meantime, please excuse me, I've got some reading to do. 

I welcome your thoughts below!