Moving away from Ubuntu: peeking at FreeBSD (Part 3)
Tags: unix, experimenting, freebsd, shell
Published: 2019-12-30 16:24:13

So, in the previous two parts of this *post* (if they can be considered so instead of two posts), I was playing around with FreeBSD in a virtual machine in order to determine how different it is from using Ubuntu or some other Debian-based Linux distributions. For the moment, I've been using that as a server (more or less), accessing it via SSH and installing a FAMP, or Apache along with PHP and MySQL under FreeBSD. But I'm not done yet, as I also want to check how hard it will be to install a desktop environment and test it like that.

# Installing GNOME

So, first of all, I should try using pkg in order to try to find some packages related. I'll try searching popular Linux desktops, such as GNOME, KDE, etc.

![Searching "gnome" with pkg](https://thepracticaldev.s3.amazonaws.com/i/ekpj3l7s8km0hgtosb4x.png)

I don't know whether I should be surprised by having found actual results related to GNOME, but it's pretty good news, regardless, as this tells us FreeBSD may have really similar desktop experiences to what Linux users have. Now, I'm not sure which is the correct package to install GNOME 3. It seems like "gnome3-3.28_2" is the good one, but I still want to search what's available for KDE.

![Searching "kde" with pkg](https://thepracticaldev.s3.amazonaws.com/i/n8zik6fkmjnqaxm2ofae.png)

And it looks like Plasma is here, too! After looking around in the results, I see that "kde5-5.16.5.19.08.1" looks like the most likely package to install KDE Plasma as a whole. Regardless, I'm going to proceed with GNOME, and maybe I'll try Plasma next, just to see whether the default configuration can handle two desktops installed at the same time or additional steps are required.

![pkg install gnome3-3.28_2](https://thepracticaldev.s3.amazonaws.com/i/c4t93f48wsumblumwhy8.png)

And this, ladies and gentlemen, is the fattest part of any desktop Linux installation: the desktop itself. Oh well, I'll go ahead and check the VM's screen while the installation goes on, just to see whether something funny happens.

![GNOME is installed](https://thepracticaldev.s3.amazonaws.com/i/sbu1b1xld58u4cxrvkyh.png)

Around 10-15 minutes later, the scrolling stops and I get what follows. Well, this is just the end of it, as there's a bunch of messages from the other packages that have been installed along with GNOME. I'll just restart the machine and see if any magic happens, hoping that the installation has taken care of everything.

![This is everything the screen shows](https://thepracticaldev.s3.amazonaws.com/i/jy37qknve6qmr44v8wx6.png)

Unlucky me, I guess it doesn't start it right away by default, not even after I log in as any of the users. I guess I'll have to check [GNOME's page on FreeBSD's website](https://www.freebsd.org/gnome/). Apparently, the final step that was required for GNOME to load after rebooting is [right here](https://www.freebsd.org/gnome/docs/faq2.html#full-gnome), which is just another line in /etc/rc.conf:

![Altering rc.conf to make GNOME load on boot](https://thepracticaldev.s3.amazonaws.com/i/hrtopw8camrie2trjxzu.png)

After doing that, I reboot the machine yet again and... Nothing, I'm still getting just the text mode. I check the manual page again... And I see the "startx" command, which I'm apparently missing since there's no manual page for that, and the command isn't recognized, either. I prefer to check "X11" in pkg, as I think that's the environment related to that command.

![pkg search x11](https://thepracticaldev.s3.amazonaws.com/i/8lac3y99wwy4x7ngy5am.png)

Interesting, there are some packages for virtual machines. I guess I'll have to try some of those.

![Trying to install one of the packages](https://thepracticaldev.s3.amazonaws.com/i/czwz1xmop2gfd84yjpc1.png)

Well, it doesn't seem to be what I need, so I'll just cancel that and try that test program instead, just to see whether things change in there.

![The test program](https://thepracticaldev.s3.amazonaws.com/i/ozcb4kxm9iuy8gmf2v18.png)

Nothing, it looks like whatever that I thought I'm missing is already installed, and I can't find something related to X11 in the manual, either, so I try listing the statuses for the services the manual page lists for starting GNOME without requiring a system restart, and this is what I get:

![GNOME's services](https://thepracticaldev.s3.amazonaws.com/i/vedzd3my94d3qhi76wmw.png)

So "gdm" is not running and "dbus" needs to be added to the rc.conf file. I'm pretty sure that's the piece of the puzzle I'm missing, so I'll add that and try again. One reboot later... Nothing, still out of luck, so I'll try checking GNOME's service itself.

![Another failed attempt](https://thepracticaldev.s3.amazonaws.com/i/45efp0xpvlxz3q3015yw.png)

It looks like GDM is still not running. I try starting it manually, and the only response I get is "Starting gdm". However, while trying to log in to see whether something changes, I see there's "service -e", which will list all services that will start on boot, I try it and...

![Services started on boot](https://thepracticaldev.s3.amazonaws.com/i/z0ntp7nac0x5cs71jmqg.png)

Sure enough, there's no GNOME to be seen anywhere. I guess I should look for "gnome" in /usr/local/etc/, just to see if there's something that I'm missing.

![GNOME files in /usr/local/etc](https://thepracticaldev.s3.amazonaws.com/i/owyhg81cb9olepf55ucd.png)

There is, indeed, something, but probably not what I need to start GNOME up. Just as a final attempt, I'll try to install X.Org, since I think that's the server lots of desktops use as their basis.

![Installing X.Org](https://thepracticaldev.s3.amazonaws.com/i/d69tf6u0mmkyhustb9y2.png)

It seems that the package was missing, so I'll go ahead and install it. As long as I don't have to deal with the older desktop environments...

![X.Org is installed](https://thepracticaldev.s3.amazonaws.com/i/0y2mqeh89zmlonyq2oh3.png)

Well, that's done, even though that package doesn't seem too happy about having been installed. Oh well, I'll just reboot and see if, this time, the magic does happen.

![GNOME in all its glory](https://thepracticaldev.s3.amazonaws.com/i/ln97df7tlngc9la1xmli.png)

And it does! Finally, I can use a more graphical environment to use this UNIX computer. Luckily, I can log in to my user just as if I were using a Linux machine.

![The volume control](https://thepracticaldev.s3.amazonaws.com/i/rqnipg0iq6aoqrkq90tl.png)

The first thing I try is playing around with the volume control, and sure enough, I can hear some sound, so probably the web browser can load regular pages as well.

![Using the web browser](https://thepracticaldev.s3.amazonaws.com/i/yywd1be73hpk9zo8drw3.png)

Well, I can enter YouTube and sort of watch videos, even though the pre-installed web browser (which isn't Firefox, by the way) isn't capable of handling it properly. I also notice that the environment itself, just upon opening a few windows, gets very laggy, most likely due to the little amount of VRAM that VirtualBox assigns to a FreeBSD's machine by default. So I increase it to the maximum to see whether that gets better or not and that works... even though the web browser still glitches a lot while trying to play the video, so I guess it's just not working properly.

Also worthy of mention is the fact that logging in with GNOME won't automatically create the folder system Linux desktops are known for, such as Documents, Images, Desktop, etc. And of course, there's no app store to be found, so this is far from ideal for the average person to use who isn't willing to learn how to use pkg to search and install any software. Oh, and did I mention there's no option to add icons or files to the desktop? That's likely due to the fact the "Desktop" folder is missing, but that's probably annoying as well.

# Installing KDE

So now that GNOME is more or less *usable*, I'll try installing KDE directly from the desktop's terminal, just so that you can see how it looks by default.

![Installing KDE](https://thepracticaldev.s3.amazonaws.com/i/e2zlsalwue0qdm93jws6.png)

Yeah, it's not pretty, but I do guess it could be worse than that. It's pretty much just the same GNOME terminal you'd find in your default Ubuntu installation, even though the color scheme is a lot uglier and simpler. In fact, csh behaves just as badly with that terminal as the one I'm using, ~~which is MATE's default terminal, by the way. It's good enough for me.~~

![KDE is installed](https://thepracticaldev.s3.amazonaws.com/i/ft0ld7x7in5dg5b8w3vo.png)

So this one obviously takes longer to install, around 20-25 minutes, but it's already done, so I'll try rebooting in order to see whether something is different or, even better, KDE is also listed when logging in.

![Available desktops](https://thepracticaldev.s3.amazonaws.com/i/pbfjmvcz1dpnh2nvyq76.png)

Well, it looks like this one is going to be a lot simpler than installing GNOME, probably because I already did the hardest work before. So I try entering my password while having selected "Plasma" and...

![Running KDE in FreeBSD](https://thepracticaldev.s3.amazonaws.com/i/ytkygtl60yx8lf7e7uwc.png)

This looks pretty similar to what I would have found after installing Kubuntu or any KDE-based distro. Oddly enough, it seems like Plasma has created the Desktop folder in order to place icons and whatnot inside. Also, there's also Discover, KDE's app store, but it doesn't seem to work at all. Again, not ideal for someone who isn't very experienced with computers.

![Discover isn't working](https://thepracticaldev.s3.amazonaws.com/i/o1hg6twaqswtgqsu8dhm.png)

Since I don't hear any sound when playing around with the volume control, I navigate through KDE's configuration and manage to find an audio test, which does seem to work, even though it sounds a bit choppy at times.

Once again, I test the pre-installed web browser by making it play a YouTube video and...

![Konqueror playing a video](https://thepracticaldev.s3.amazonaws.com/i/qq77k70ahfrunqm2owuf.png)

Well, it seems to work a lot better than GNOME's browser, but this one can't really play the video at full speed, probably because of the fact that either it doesn't have proper drivers to handle the VM's *graphics card*, or the VM itself can't really do a lot in terms of performance as KDE isn't likely that well optimized for FreeBSD.

Overall, by just taking a quick look at both KDE and GNOME, I'd say KDE would manage to give a better experience to the user without having to touch a lot of things, especially when it comes to the configuration panel since KDE itself looks a bit more polished and less bare than GNOME by default. Maybe I'm a bit biased, as I prefer KDE over GNOME, but both are usable while not ideal when compared to Linux desktop distributions or even desktops by themselves.

# My thoughts on FreeBSD

Well, after spending almost three posts doing some basic things with FreeBSD, I think I can point out some thoughts about actually using it, both from the terminal and from a desktop. I'm aware of the fact I might be wrong since, just in case someone didn't notice, I'm a lot closer to having a first impression about it than having actual experience with it and being able to speak with authority on the subject.

* On the surface, **FreeBSD and Linux are very similar to each other when it comes to the user experience,** which makes sense, as FreeBSD comes from a derived version of Unix and Linux is just a Unix clone. If you access a service such as a website or an (S)FTP server, it would be really difficult to notice something different while being hosted under any of them unless developer information was visible (such as a phpinfo() call in PHP under Apache) to the user or some hidden files could be noticed.

* Even though this is likely due to something I haven't configured properly (or maybe my hard drive isn't all that capable of handling it), I've been noticing some *delay* between pressing Return after typing a command and seeing the shell react when working on Linux machines, particularly on Ubuntu Server. On FreeBSD, however, those *delays* are a lot less likely to happen, at least when it's a fresh installation. I don't think Ubuntu has worse performance than FreeBSD if a fair benchmark was made, but the fact that **the Unix clone has a lot less enabled services by default,** thus making it faster to run.

* When it comes to the directory structure and naming conventions (like the one for the HDDs), and especially commands for performing more specific tasks, such as formatting partitions or handling them, **things change quite a bit, so get ready for having to search how to do stuff** upon seeing a command isn't found or produces a very different output from what you'd expect on Ubuntu or where the files you need are located (if you're looking for files installed by a package, I found that "pkg info -l \<packageyouneed\>" will do the trick).

* The service enabling procedure is particularly irritating, as you usually have to add lines manually to a text file in order for a service to start on boot. Sometimes it goes even further than that, requiring you to add those lines so that the service can run at all. Still, unless FreeBSD is using SystemV or some clone/fork/relative, I might have found out why people are still using "service" on Ubuntu: so that everyone can quickly understand one service is being managed upon seeing a "service" command.

* Even though it doesn't always look too polished on the output, "pkg" is probably just as pleasing to use as "apt", but I will say the lookup commands for packages might be quite confusing, as some are just for installed packages. Regardless, the messages some packages spit out to the console upon finishing the installation are quite useful when we're talking about a server or some package that isn't likely to work on the first try.

* The documentation provided by the manual is just as useful as what you'd find in any Linux distribution, although I couldn't help looking FreeBSD's online manual, which I'd dare say is a bit better and more comprehensive. Anyway, I should point out that a good chunk of the manual pages, probably a lot more what you'd find on Ubuntu, for example, is aimed at developers, which is probably quite handy for them, but it may scare some users away. Plus, it's a bit irritating to find some C header info when searching how to format a partition.

* Speaking of documentation, when you enter a terminal, you are greeted by a default message, then a random tip about moving around the system or performing some task. That's quite useful, to be honest, and has in fact helped me in some of the situations.

* When talking about using FreeBSD in a desktop computer, I'd say it doesn't work quite as well as when using Linux distributions. GNOME is a good example of that, even though I can't really say for sure since I was just playing around with the two more demanding Linux desktops in a virtual machine. Regardless, I can say the experience wouldn't be quite ideal for the average computer user since there's no option to install software other than using "pkg" in the terminal and it got a bit glitchy upon opening a few windows.

* And obviously, even though I can't really test it, the compatibility isn't probably all that great for regular computers. The fact that some packages have messages about compatibility issues tells me that using FreeBSD on real hardware, compared to even not that popular Linux distributions can be a bit worse, especially when using less generic hardware. It might be really similar to running Linux on a server, but I can't say for sure. Oh, and the binaries: I doubt Linux binaries will work all that well in FreeBSD, so you should try to compile from source if you can't find the software you need through pkg.

In conclusion, FreeBSD is a quite interesting operating system, even though I wouldn't recommend it in general except for a few rare scenarios. One would be on a desktop, where you could try some of the lighter environments such as MATE or Xfce, in order to check whether they run any better than in Ubuntu or Debian, provided that you're lucky enough to have support for your hardware. I could advise to give it try a lot more confidently on an older server since it is a bit lighter by default than most Linux distributions. Obviously, I wouldn't recommend it by any means to anyone that doesn't have a lot of experience moving around the terminal or even with computers, as things are harder to achieve in FreeBSD than in Linux.