I'm gonna be learning Linux!

yujiri8 profile image Ryan Westlund ・1 min read

Although I started my Unix journey with Ubuntu and used Gentoo for some time, I've been a FreeBSD user for most of it. I haven't really used a Linux system in a few years.

The biggest issue with BSD compared to Linux, at least in my experience, is that it has an even worse case of "nothing supports it". Even stuff made for Linux often doesn't work on BSD. Recently I had issues following this Rust OS tutorial; nothing worked for me the way it does for him. I'm really interested though, and at this point, I'm kinda getting fed up with this problem.

So I just spun up a Digital Ocean droplet running Fedora that I'm gonna be using now for this project, and anything else that doesn't work on BSD. I've actually run into a lot of things like that over the last couple years and just gave up on them cause they were never enough to motivate me to just get a Linux system and use it. Now they are.

I'm excited to broaden my experience with this. I often feel out of the loop when everybody else is talking about Linux and I'm like "I'm BSD... does that count?"

Posted on by:

yujiri8 profile

Ryan Westlund


I'm a programmer, writer, and philosopher. My Github account is yujiri8; all my content besides code is at yujiri.xyz.


markdown guide

And then, there are those who don't even know that Linux exists. And among those who do, most don't care. And among those who care, they're often locked down by either lack of vendor support, forced to use windows/Mac by company or lack of software on Linux. And among those who care about Linux and don't face those problems, they've been dual booting or using just plain Linux desktop. Until.... WSL(2) happened. Probably the single worst thing to happen for Linux desktop (not Linux itself though, Linux is just fine). Which leaves with the teeny tiny passionate minority who still use Linux desktop for the sake of it, performance, dislike windows, native Linux experience, whatever. Like me. And then, there are BSD desktop users like you were.

Anyway, welcome to the camp! βœ‹


At least the way I've been taught to see things, there's sort of a series of increasingly tight circles of purity. The farther inward you go, there are operating systems with better architecture, but a smaller userbase. The outermost circle is Windows. Then there's Linux, with a tiny minority of users and better architecture. And then there's BSD, with even fewer users but (presumptively) better architecture. And then there's stuff like Plan 9, with the most mind-blowing enlightened architecture, but no users.

To be clear though, I don't plan to leave FreeBSD as my main operating system. I'm just using Linux for things that don't work on FreeBSD. The judgement about architecture is mostly an inherited opinion from a mentor and a few other people I listen to, since I'm nowhere near knowledgeable enough to make that claim myself. But I do know of a few things I think I'd be missing with Linux, like SIGINFO, ZFS, and jails.

On the other hand, it probably won't be long before I run into something where I want to use Linux software that doesn't work on FreeBSD but isn't CLI, and I put it on a desktop or laptop around here... I don't know. There are some architectural things that interest me about Linux - I'm not a fan of BSD's separation of builtin from user-installed stuff, and I'd like to see procfs in action more as my instinct says it's a better approach.


I'm actually curious about how people get so deep into Linux territory to begin with. What is usually the driver or gateway drug that opens them up? I almost feel like it's those that come from systems, dev-ops, sys-admin backgrounds.

I've ever only used Ubuntu, macOS, and Windows (non-nix). But lately I've been seeing a host of videos on my YouTube feed of those on Gentoo and Arch Linux and even see folks that switch distros as often as I swap wallpapers.

I almost feel like I'm missing out on some of the world's best-kept secrets not having immersed myself into this world and I'm like a total Unix util geek

Well, I'm a developer, and to me it goes like this:

  • The Unix Shell is great to work with plain text
  • Plain text never goes out of trend, and, as a developer, I deal with plain text a lot
  • Many people build tools for the shell (or to work with the shell easily)
  • I love the shell
  • I love Linux

For me, it started in my teen years when I was 15 or 16. My big bro introduced me and my small bro to Ubuntu at the same time. I wasn't much of a developer yet, but I think it was after I'd learned some Python. I stuck with Ubuntu for probably 1 year and then the same big bro led me deeper into the circles with Gentoo and then FreeBSD.

I guess the next logical question is why the distro swaps so often? What specifically are people searching for? I almost think it's entirely rooted in aesthetics, save for Gentoo. I may be lurking too much on r/unixporn

FreeBSD, Arch Linux, and Debian get tossed around a lot. If someone asked me to distinguish them, I could not tell you. I've briefly looked at Gentoo and understand why some people go that route -- its level of control for the resulting build is exceptionally customizable, but may also be a hurdle for some. If you were to explain to someone, like myself, the novice, what seems to be the functional/operational differences between them?

Well, I'm not a specialist for every distro, but let's take Arch Linux:

  • Arch has a rolling release system, which means that the repositories have the most updated software. The downside: you need to update your systems and the software often (every week is good).

  • With Arch / Gentoo, you can customize your system much more because it comes only with a minimal based system.

  • The Arch Wiki is crazy good. You can find everything in there. If you have another distro you can use it too, though.

  • The AUR (Arch User Repository) are non official packages. You can find really everything you need in there without compiling stuff yourself.

There are other differences you can find here, like the package manager which are different, or the software presents in the repository.

With something like Arch Linux you can really customize as much as you want, and it's easy to go into a "config addiction" where you try everything and anything. The same is true when you try every distro out there. I mean why not, it can be a hobby for some.

Trying to be more productive with the tools adapted to your workflow is a good goal I think.

Ah, yes! I've heard about people always directing people to the Arch Wiki whenever questions arise. It's almost a running joke at this point and that with Gentoo, you have to build everything yourself in comparison with AUR and its pre-built binaries/distributions

That link is useful! Thanks for sharing that! I can now see a lot of the differences at a glance.

Trying to be more productive with the tools adapted to your workflow is a good goal I think.

When I was younger and gaming on Windows, I tried to customize EVERYTHING, and mostly for aesthetic reasons. I see some of the bells and whistles that Arch Linux, for example, offers, and I have some feature envy, because I certainly spend almost all my time between my web browser and my terminal with a very keyboard-centric/mouseless workflow. I do try to strike a balance and have never had someone present to me a compelling reason to switch away from macOS (yet), but still lurking :)

Most of my work is in web-programs and services, but have been messing around both Go and Rust for CLIs, but don't see a compelling reason to switch from macOS to some Linux distro to enhance this experience or am I missing something?

Thanks for sharing all that πŸ‘

Well I think your use-case is precisely why you should switch to Linux. Let me break it down:

  1. Performance. Linux desktop is just so much more faster (affects battery life though, even with TLP power optimizations). You don't have all the bloated crap that macOS and windows come up with. Especially when you don't use them. My first distro was Arch (yes, took me an entire weekend to install, especially as a first distro, but was worth it) on a MacBook. The speed and responsiveness was just amazing. This was a mid-2013 MacBook that I still use today, though I'm now running Intel's own clear Linux distribution, which is probably the most performant ouf-of-the-box distro around.
  2. Same reason, bloat-free. You install only what you want. Even rhe more bloated distros like Ubuntu are considered significantly bloat-free compared to macOS. And then there are distros like Arch, which is even more minimal.
  3. Web development. Web servers are in Linux, you should run Linux on desktop. Just not the same experience ssh-ing into Linux servers and having that as the only point of contact with Linux shell.
  4. Since you only use browsers and terminal, you're not really making use of macOS at all. The strength of macOS is really the mac-only apps. Or at least the apps that can run on windows and macOS but now Linux. You don't have that problem. So why shouldn't you switch? If anything, you're doing a disservice to Mac.
  5. You're entirely keyboard driven. Linux desktop is really the best place for a keyboard driven workflow. macOS is very touchpad/magic mouse gestures driven OS. O do love macOS touchpad and it's gestures, there's not substitute in Linux. But keyboard bindings in Linux is great, and extremely customisable. Heck, you can have vim keybindings for everything that you do. Which brings me to the next point:
  6. i3 tiling manager. You should definitely check this out. This would be perfect for you. Especially for your keyboard driven workflow, and using only limited number of apps. Check it out!
  7. Superiority. Linux is not perfect, and arguably lesser than BSD (I don't know enough to defend one against the other). But Linux is just plain superior in terms of OS/kernel design, compared to windows and Mac. There's a reason why Linux dominates every platform out there, especially servers, except for the desktop/laptop user space. And the reason why windows/Mac dominate desktop computing is for entirely different reasons. Most people don't care about the underlying differences between kernels/OSes as long as their OS comes pre-installed, just works, easy to use, has the software they need. Otherwise, Linux is just the more superior, faster, purer, more reliable, more secure OS. So if your device is Linux compatible (i.e. no driver issues), you don't need any software that is not available on Linux, your company doesn't tie you down to windows/Mac, why shouldn't you?
  8. Which brings to my last point, philosophy. Linux is all about open source and collaboration. It's the reason why Linux dominates in most platforms. It's not because of Linus torvalds. He should be credited, but the real credit goes to the hundreds of thousands of developers contributing to the Linux project. The source code is open, and you are free to do whatever you want and distribute however you please (still has software restrictions though, not as free as the MIT or BSD licence, but GPL 2/3 licence is still as free as you can get). And if you're lurking in the terminal often, most tools out there for the terminal are really only developed with Linux in mind. Linux is first class citizen there. And the things, and the speed you can get them for, using Linux package managers is just superior to whatever homebrew is. And about packages, every once in a whole, you may have to compile something from source. And compiling from source is just so fun, you should have a go!

Wow! Thank you for this detailed response! I super appreciate it!

Yeah, everything that I deploy is to some cloud provider running Linux. I totally forgot about the power consumption part of the equation. I may have spoken too early, but I forgot that some of what I do is tied to the Apple ecosystem -- iMessage, iPhone, Apple Watch which matters in addition to a lot of macOS/iOS-specific applications. When I'm working, I honestly don't need any of those distractions, so dual-booting a Linux distro to get my feet wet again, all I need is a good term emulator with tmux and Neovim.

I've certainly made my keyboard-centric workflow work well in the context of macOS. That reminds me though, are there are macOS Spotlight/Alfred-like application in all or a few of these distros? I rely on access to documentation quite a bit not restricted to programming languages where I'm using an LSP plugin (e.g., HTTP status codes, headers)

Ah! You had to mention the window tiling managers. LOL. i3wm is name-dropped quite a bit. It's one thing I've not yet taken a dive into, but macOS has a really good one now, called Yabai.

I used Ubuntu then when I was not on MacBooks and it was really the only real way to do programming before WSL -- Powershell just didn't cut it.

Oh, I've no doubt about the point you made with regard to running servers or on other hardware. And as you've noted, desktop/laptop/user space, is the only place it isn't commonplace.

I think the philosophy of open-source that you cite is good -- I hesitate to swing completely in one direction or the other. I'm willing to pay for close-sourced and well-developed hardware and software as well. Being an OSS contributor myself, I get that, but I certainly don't treat it as a religion. One of the last points that you mention with regard to tools developed with Linux in mind is true, but I've not yet come across a tool that doesn't have a port or similar analog yet. The one that everyone mentions that I've not used heavily is strace. Homebrew is interesting to say the least, but the only comparison I can make is with apt and to a lesser extent -- nix, so I'm not sure what the world really looks like with regard to package managers, but I know there are many flavors of them as well.

I'd love to see the speed difference, because I've recently switched from the most popular terminal emulator on macOS, iTerm2, to Alacritty and the speed is noticeable. I do wonder how much I could gain from having less background bloat, cuz I do hate having services with cryptic names running in the background that I care little about running when I do work or am out and need to reduce battery consumption. Much of what you've mentioned has certainly piqued my curiosity! I've an old desktop machine laying around and had plan to reboot it a one of these weekends and I may have a reason to now :D


Well I haven't really used any other desktop environments extensively, Gnome looks nice and unique. Though consumes more RAM, it's also quite complete out of the box. Others may disagree though. There's a passionate group out there who strongly hate gnome as much as they support KDE. I'm not getting into that. But point being, if you're using Gnome, you can just hit the super key and start typing. It would search through the system like how spotlight searches. Don't know about other DEs though.

And yeah, if you're using apple services like iCloud Integration, it makes sense to use macOS. Just that for me, even when I was using macOS and iPhone, I found that I haven't really been using anything Apple related. I didn't even use iMessage or iCloud. I used Google photos, Google maps, and chrome. And didn't use anything Apple on Mac either. So I didn't have much to lose. Anything that I do on a computer outside of work is really only web browsing, so I'm not tied down to any platform. Made it easier to switch to Linux.

But just to point out, just to let you know about this feature, there is some android integration when using Linux desktop also. Though I accept not the same level of integration as Apple, there's a feature called KDE connect (or GSConnect for Gnome), that allows file and photo transfers between android phone and Linux desktop.

Haha, yeah I'm not really religious about OSS either. I really don't mind paid, proprietary software too much. Just that I also don't like anyone else telling me what to do and how I use my system. But macOS is still one of my favourite OSes overall.

Also, just my 2 cents on performance on distros, I would really recommend at least considering Intel's Clear Linux, and Arch Linux. These 2 are probably the most performant distros. Clear Linux because Intel heavily tweaks kernel, OS and key packages settings in favour of significantly boosting performance, especially on Intel hardware. Arch Linux, not because it's inherently faster but because it's very minimalistic. But there are significant downsides as well, particularly with regards to user friendliness. Arch because of its infamous manual installation setup, though I find that after its setup, it's actually easier to maintain than so-called beginner-friendly distros like Ubuntu. Clear Linux is difficult because of its non-standard packaging system. While RPM based, it doesn't use dnf/yum, but uses swupd package manager. While it works very well for those packages that it officially supports, it can be quite troublesome getting other packages to work. This includes chrome. Just putting them out there! Otherwise, have fun poking around your system!

It's funny, I really don't use much of Apple's proprietary software -- not Safari, not Music, but my entire family that's non-technical is on Apple and we share seamlessly on Apple's platforms through iCloud. Although I could probably make this work with Google-warez, I'm much too lazy to expend effort doing that, and I honestly don't hate Apple products at all. The form factor of the MacBook is still hard to beat IMO and I am excited about Apple Silicon.

I'd not even heard of Clear Linux. Arch Linux and Mint were tossed around a bit, but Arch Linux seems to have a wide following and I've seen murmurs of of Manjaro which extends from Arch as an option as well. I've been poking around reading about them and watching some YouTube videos on different distros for parts of the day. LOL. I wasn't sure this was what I wanted my weekend to turn into.

You just reminded me of someone after mentioning those issues. Are you familiar with Jess Frazzelle? She was a core Docker maintainer which I believe is a part of your toolchain. She wrote a blog post about how she uses Docker in a non-typical fashion (to sandbox): blog.jessfraz.com/post/docker-cont....

Yes, docker is part of my toolchain. This is very interesting, I'll try Jess's methods in using docker to run desktop apps, Chrome especially. I am curious how it'll work. Thank you for suggesting the article!

Check out her crazy Dockerfiles and dotfiles as well. Her other blog posts are pretty neat, too. I believe that she’s presently a Gentoo user and very critical of performance, carbon footprint, and security

You're welcome :)

I've worked a couple of months with macOS and here's what I think:

  • The OS itself doesn't let you mess with the every settings. That's great not to crash your system, but when you need it (and I did), it's bad.

  • They are pretty aggressive on vendor lock-in. So many stuff on macOS is only on macOS, if you want to switch... you can't.

  • I don't see any compelling reasons why to use it. I often heard that "it's more stable", but my experience is different.

Of course it's only my personal opinion. We should use whatever makes sense for our own worfklow. But at least I know that I tried a bit everything (Windows (for decades!), macOS, and Linux) and I can decide what's better for me.

... I'm sorry for the plug but I'm writing a book and ...

disappear in a cloud of shame

Good stuff! Would it be available to read online, or printed, or both?

@Matthieu you speak to me with this book, man! I'm all about the mouseless and keyboard-centric workflow and it looks like I've got my bases covered save for a window tiling manager.

Yeah, I'm sort of a minimalist so the Linux way speaks to me in this way as well. I have only a dozen plugins in Neovim as I try not to be plugin-dependent, but I double your session count in tmux (I've a lot of projects that also include my blog and dotfiles that I'm constantly updating), and refuse to adopt several monitors because it commits me to a workflow that can't be replicated when I'm at a coffee shop w/o a mouse and multiple physical displays -- there's something liberating about being able to pack everything that I do, pick it up, and go :)

Yeah, I've almost committed to test-driving Arch Linux. Every platform has its strengths. Some of the folks that I work with have dedicated PCs with Windows for games, Linux for personal software work, and macOS on their MacBooks for work-work. I like to keep things simple on a single machine, so going the route of dual-booting seems to make the most sense for me at the moment :)

I also noticed that we use the same blog theme (with Hugo). Funny! Cheers!

Nice! What's your blog?

I'm kind of a minimalist too. I used Windows for years, mainly because of Photoshop, some software to process photos, and games. Two months ago I decided to go full Linux... many things to learn (Gimp) but I think on the long run it's the good decision.


Wow! Were we separated at birth? Because I started writing code to build websites as a teenager hand-rolling HTML, CSS, and JavaScript, and spent uncountable amounts of time doing graphics for them in Photoshop and eventually Illustrator....

BTW just putting it out there, last year I did come up with a small wiki for Arch installation, amidst tons of other arch installation guides out there. And of course, the instructions on the Arch Wiki. Also, some of it's slightly outdated (for example, now instead of just pacman -S base as mentioned in the wiki, you'll need to pacman -S base linux linux-firmware). And it might be a little confusing cos it shows methods to install arch from within manjaro. I did that cos my install iso didn't have WiFi drivers for my 2013 Mac, and I had an iPhone so couldn't use it to tether connection either. I was able to install manjaro however, and both being pacman, I figured you could just change manjaro pacman mirrors to arch pacman mirrors, create and chroot into new arch partition, and install packages using manjaro's pacman.

But nowadays I just install arch straightaway if I want, but instill use my wiki. So just putting it out there if you might find it useful. Definitely still use the arch wiki though!


Thanks! Only PDF / epub I think. Not sure yet :)

I don't have any data, but i3 + urxvt (if you use the daemon / client) + Neovim (if you don't have 20312 plugins) is fast as heck. I can have 5 / 6 tmux sessions and Neovim running everywhere, plus stuff in the background, and I don't have a slow down. I have a Thinkpad X220 with 4Gb or RAM.

You do need a SSD though.



I love Debian - used in production deployments since 1999 - server rather than desktop. Looked at a raft of others over the years. In the early days they were way behind bleeding edge - but we needed rock solid. These days they only lag a little, and apt is improving. Love unattended-upgrades. I run 11 servers for family and friends - VPS in UK and Australia. About 40 physical servers for work. There is a Debian foo - they are mad strict about Linux FHS... which is often different from all the opinions out there about where to put files, and they are obsessive about keeping your tweaks and changes out of upstream so that you don't lose them when new/upgraded config etc. is released. It's a good obsession :)


Glad to hear it! For me, it's been a path of always learning something new.

Ever since I learned about and began using tiling window management as opposed to a traditional GUI, I have been hooked. Highly recommend looking into them once your comfy with your desktop linux setup.

My main take away from learning a new operating system was to always test a new configuration in a VM


Yeah, I was introduced to tiling window management around the same time as FreeBSD, I think. Before that I'd been an XFCE user, but now I'm an extremely happy user of DWM. It's definitely made me more efficient.

I didn't really think about just using a VM. It was an option, but my past (sparse) experience with VMs is that they tend to have a lot of obstacles to setting them up, all sorts of confusing configuration pitfalls. I figured it'd be nicer to just have a VPS.


Oh yeah dwm seems awesome, never tried it though. I also favored Xfce for the longest time. What is FreeBSD even like from your experience? I know like nothing about it.

I have very limited experience with hosting VPS. Are you able to nuke and reset the server from scratch on the fly? I bet there's a decent youtube tutorial out there that will get you up and running ANY distro (another perk of running VMs) in less than 45 mins! If you're running a linux VM just for fun the default configurations tend to work in my experience, whether its VMWare or VirtualBox. Basically, my philosophy with that is if you don't know what something does don't change it haha.

I wrote a bit about the technical differences I'm aware of between FreeBSD and Linux here. Daniel in the comments mentions another.

As for less technical aspects of the experience...

  • The install is pretty straightforward, but leaves you with an Arch or Gentoo-like minimal system where you set everything up manually. As far as I know, there are no active BSDs distributions that come with a desktop environment and all (there was PC-BSD which became TrueOS which became Trident which is now based on Void Linux, or at least that's my understanding). Setting up X in my experience usually requires manually finding out what graphics driver you need and installing it.

  • The daily use experience is quite good. The system feels as customizable as Gentoo, but without having to install everything from source.

  • It uses Open Sound System (OSS), which is a frequent source of compatibility issues with Linux software that expects Pulse/ALSA/Jack (though you can install those things on FreeBSD, it's not necessarily easy to get them working). I personally know next to nothing about sound system architecture but the prevailing opinion seems to be that OSS has a better architecture than others. Only major issue I've had with OSS is that it doesn't easily support recording speaker output. There's only a kludgy workaround with a loopback device or something. I've got it to work before, but not in a way that OBS could detect it, so I had to start the speaker recording separately from CLI...

As for VPS: Yes, I can nuke and reset easily. And a low-end digital ocean droplet only costs $5/month. When I tried to do virtualization though, I ended up using bhyve (I was given the impression that VirtualBox wasn't really meant for FreeBSD and bhyve was, maybe that was a bad take lol). But I had to mess with stuff I didn't understand cause it didn't work out of the box. Networking was a huge obstacle.


I have used Ubuntu my whole life (only for 2 years πŸ˜…). but in my experience, ubuntu LTS is the best, Especially the latest Ubuntu LTS 20.04. it is really fast. you should try Ubuntu LTS at least once in your lifetime. Thank me later.😁


I have used Ubuntu my whole life (only for 2 years πŸ˜…).

You are 2 years old? Congratulations on your fluent English and Linux experience :D


Lol. Sarcasm come at a cost I guessπŸ˜‚πŸ˜‚


If you want to learn some stuff, nothing better than to install Arch.

That's why I'm writing that (shameless plug ahead): Building your Mouseless Development Environment.


Why did you decide on fedora rather than, say:

  • Debian
  • Ubuntu
  • Arch
  • ...

What do you like about it?


Well, I was making a Digital Ocean droplet, so my options were basically limited to Ubuntu, Debian, Fedora, or CentOS (I'm sure there's a way to get a Droplet with a different one, but I wanted to stick with their supported options for simplicity). I don't like Ubuntu, especially the horrendous default desktop it comes with, but even without that, it just seems bloated and pretty everyone I know hates it.

So it was between Debian, Fedora and CentOS. Basically I did a little bit of research and the prevailing assessment was that Debian and CentOS both favor stability while Fedora favors cutting-edge-ness. Since my first purpose for the system was development that involved a lot of experimental Rust features, I chose Fedora to minimize my odds of having to install Rust nightly builds from source or something.

I'd have gone with a systemd-less option if there was one, but there wasn't.


I haven't seen a lot of agreement with this, but in my nearly two decades of Linux experience - I was using Mandrake (which merged with Aptiva to become Mandriva) and the free version of Red Hat (long before Fedora or CentOS came along) as my desktop daily driver when XP was just getting started - nothing has compared to Ubuntu LTS (Long Term Support, released every four versions or two years, and supported with security updates for five years, such as the current 20.04) in terms of server stability.

I'm talking WAY more stable than Debian or RedHat/CentOS (which is more stable, but much further behind in software versions, than Fedora). As Ubuntu is based on Debian (but way more up to date and with the backing of Canonical), you can install the unattended-upgrades package as well (and unless you're doing something pretty nonstandard, I'd recommend it for security).

Even without boiling it down to a specific distro, I've seen far worse package collisions in RPM-based distros (RedHat/CentOS, Fedora, [Open]Suse, etc), than in DEB-based distros (Debian, Ubuntu, Mint, Parrot) with the exception of Kali Linux (which is not recommended for permanent install and, being a pentest distro, definitely shouldn't be a server install).

Interesting. Doesn't Ubuntu need regular reboots though?

Depends on what you're referring to. You can live patch the kernel like other distros, but it still doesn't replace rebooting to an updated kernel. So in that sense, every distro should have some sort of fairly regular periodic reboot. This will vary based on your high-ability requirements, but if they're that high you should have some form of load balancing/failover anyway.

While this is a promotional piece (I have no affiliation), it does cover its own and other options in lieu of a full reboot: blog.kernelcare.com/avoid-death-ta...


I'm all for minimalism, but if you can't run programs that you need then an OS isn't really useful unless you are ready to pull your hair, and build things from scratch. Pick an OS that has good repositories and good package manager. You can still learn a great deal without going through the pain of using bsd.


LinuxFromScratch is a good tutorial in building your own distro from scratch


Sounds neat, but I'm not really planning to build Linux from source in the near future :)