Using FreeBSD as Desktop OS

Yes, I've caught plenty of heat for using ports when there is no actual need as pkg is faster.

For normal users, I don't think ports are very feasible and in my experience it isn't just because of the speed. The main reason being that for a "clean" port to be built, each one needs to be built in a fresh install of FreeBSD (i.e jail / VM) with nothing but it's absolute dependencies installed. This is because build systems such as GNU autotools or CMake will actually build the software differently depending on what software it finds currently installed. This makes your build of the package "non-deterministic" and different to that if you had perhaps installed VLC or LibreOffice before hand. With the fact that software these days drags in so many goddamn dependencies, these slight inconsistencies simply builds up and can cause subtle bugs. You might also get a port failing to build because the build system has detected a library that exists and is trying to build a part of the code that has not yet been supported or ported to FreeBSD.

That is why FreeBSD provides packages built in a "cleanroom" environment using tools like poudriere to create these deterministic builds.
You can of course run poudriere yourself and create a new clean Jail for each package but then it will take much, much longer than ports already do.

Personally I actually prefer the idea of ports compared to packages, but in reality I had to ere onto the side of Packages in the great Ports vs Packages debate (for a typical user) ;)
 
It is only my personal impression, ralphbsz, because EVERY THING that concerns GPU,
GPU support, GPU performance or some essential desktop features like suspend, for example,
just works or works much better, for example, on GNU/Linux, but not on FreeBSD, and the situation is the same for years.
Also it makes sense, because it is the known fact, that many of FreeBSD developers don't use it on their desktops
and work for Apple™. So they use Macos and do not developing desktop features on FreeBSD, because
they don't use it like desktop OS. So no conspiracy, only known facts. Also it is only my personal impressions,
observations and logical thinking, if you don't agree with me, it is OK.

FreeBSD has no interest in becoming "mainstream". FreeBSD is a professional operating system for professionals. Linux main goal is to replace Windows on the desktop. I'm glad FreeBSD's goal is to target our professional operations.
I'm also glad that it is "non-stream", but personally I would be glad to use FULLY WORKING DESKTOP,
with all its essential features, like suspend, and not some semi-working solutions, with support for only few GPU-s.
 
The main reason being that for a "clean" port to be built, each one needs to be built in a fresh install of FreeBSD (i.e jail / VM) with nothing but it's absolute dependencies installed. This is because build systems such as GNU autotools or CMake will actually build the software differently depending on what software it finds currently installed. This makes your build of the package "non-deterministic" and different to that if you had perhaps installed VLC or LibreOffice before hand.

I use ports-mgmt/portmaster if at all possible, have a limited number of 3rd party programs I install on a regular basis, and a fairly routine sequential order to build them when rebuilding my system. I never have to take over during the initial build unless there is a vulnerability in a program or conflict of 2 things wanting to install in the same place, but that does not happen often. A new user might well be confounded as what to do next.

I'm running FreeBSD 11.1-RELEASE-p4 on all my machines since the initial release date without rebuilding. I do build 3rd party programs as needed weeks or months after the build, www/waterfox and www/seamonkey most recently, and very rarely ever have problems.

That's probably why I might have overestimated the ease of using ports-mgmt/portmaster for a beginner. When I put it to work I fully expect it to finish the job and do it right.
 
My my my... Here's my two cents.

Right tool for the job. FreeBSD was designed, first and foremost, as a server operating system. Although lately it has been getting a lot of attention for appliances and embedded applications (including industrial). I tried to run a GUI/Openlook system. It ran quite well, even on my Voodoo3 3000 video card (I have a Voodoo5 laying around here somewhere). Yes, you can use it for desktop, but you will be limited in the specific hardware that you will be able to use.

But the question that people should be asking is this: What are the best desktop/laptop operating systems out there? The top two that come to mind is Windows and Mac OSX.

I run Windows on my desktop. It's hard to get a Unix style operating system to run on the desktop these days because of the myriad of hardware and software out there. Unless hardware manufacturers actually develop drivers for their hardware that runs on FreeBSD, there is not going to be much support. I'm not talking about core functionality like disk drives, networking, console, etc..., I'm talking about some user who is trying to download photos from his camera and edit them using Adobe Illustrator or CorelDRAW Photopaint. Or what about a musician who wants to play his music? Or record the keys he pressed on his keyboard through the MIDI interface on his sound card?

The main things that are holding FreeBSD back from the desktop is GPU and audio support. Get support for those and it can work. The only problem is the software portability issues because lets face it, virtually all software written today is written for Windows. So for the future, I see FreeBSD becoming more entrenched into the server, appliance, and embedded applications. Maybe if manufacturers used FreeBSD for IoT, we wouldn't be having some of the security problems that we are having today.

All of my FreeBSD software development is focused on libraries and multi-threaded server software. I do all my development using vim. My build environment uses gmake. It works quite well for me.
 
I'm also glad that it is "non-stream", but personally I would be glad to use FULLY WORKING DESKTOP, with all its essential features, like suspend, and not some semi-working solutions, with support for only few GPU-s.

The problem is that on FreeBSD, features that are essential for desktop/laptop are not going to work unless you have explicit support (GPU and Sound comes to mind), and probably will never work fully. This is why FreeBSD is not really suitable for the desktop. If you want to run FreeBSD on your desktop, that's your prerogative.

But it's the right tool for the job, and for desktop/laptop use, FreeBSD is not it.

Back in 2012, I offered to start a project to get a working suspend, resume, and full power management capabilities working on FreeBSD. I was going to do the timer portion in software, but I needed assistance from the core developers to modify the device drivers to add some functionality to drivers to support power down and power up functions. Unfortunately, there were no takers so the project was canceled before it even got off the ground. My implementation was instead of using hardware to manage events, I was going to use software to do it, which is much more compatible and independent of any hardware anomalies.
 
This is why FreeBSD is not really suitable for the desktop. If you want to run FreeBSD on your desktop, that's your prerogative.
Yes, it is true, but it is very sad, that such great operating system, which I liked and started to use it as my
only OS on all my machines (with hope for the better future), is really able to be much better than GNU/Linux,
in every aspect, with its great code quality, performance and stable work, but will never become "better".
IMHO FreeBSD will die when it will become a "sandbox" for Apple™ employees only.
 
The main things that are holding FreeBSD back from the desktop is GPU and audio support.

That and the need for fundamentally different APIs, possibly a different init system, in-depth changes to device drivers to accommodate mobile device specific events, suspend, resume, different power management, throttling background applications... As I have written earlier, today's desktop is a laptop. If you look at all the optimizations Apple made to macOS over time, to squeeze out power savings and battery run time — those are deep, low-level changes that affect the system as a whole. Consequently, macOS sucks as a server platform which is reflected in the recent announcement of neutering and stripping down macOS Server to what amounts to little more than a glorified Samba server with device management bits sprinkled in. Calendar, Contacts, DHCP, DNS, Mail, Messages, NetInstall, VPN, Web Server and Wiki services will be deprecated. Sure, you could set all those up all by yourself and deal with countless headaches but why would you? This used to be a passable SMB server setup, now they have gone full desktop. I wouldn't want anything like that to happen to FreeBSD. FreeBSD is positioned squarely in the opposing corner: a somewhat passable desktop but a great server OS. The more I think about it, the more sense it makes. Why spend your energy on something you couldn't possibly hope to meaningfully improve upon (desktop) when you can meaningfully improve a clean foundation (server).

Linux main goal is to replace Windows on the desktop. I'm glad FreeBSD's goal is to target our professional operations.

You've got to have your priorities straight. The main goal of FreeBSD is not the desktop, not mobile devices — and after this discussion and some introspection I'm surprised that I'm actually glad it isn't. The fact that you can run a full desktop on it if you so choose (and some clearly do, for various reasons) is testament to its flexibility if nothing else. Even if I can't shake the sneaking suspicion that it's often used to re-purpose older hardware. Which is fine of course, just not a very common use-case for people with just one machine.
 
The problem is that on FreeBSD, features that are essential for desktop/laptop are not going to work unless you have explicit support (GPU and Sound comes to mind), and probably will never work fully. This is why FreeBSD is not really suitable for the desktop. If you want to run FreeBSD on your desktop, that's your prerogative.

But it's the right tool for the job, and for desktop/laptop use, FreeBSD is not it..

Respectfully, I beg to differ.

Although they are older, I have Nvidia, Intel and ATI Radeon chipsets on my FreeBSD boxen and they all work well, with the exception of my Gateway ATI box breaking x11/eterm native transparency if you use Force Psudeo Transparency in x11-wm/fluxbox.

I have a Thinkpad X61 that serves as my dedicated .mp3 player and music source to my vintage stereo. The wiki states it has Intel HD audio and I couldn't be happier with it. If it wasn't up to the job I wouldn't use it a such, and it shines.

I use multimedia/xmms with it, never turn it off {78.5 days uptime), and listen to it for hours each day. It is fully capable as any other of my machines as far as internet, manipulating images, watching videos, etc., but I only take it online if there is an important update. It's position and role as a FreeBSD box is secure even if I were to swear off FreeBSD forever.

When I'm online I listen to music on the one I happen to be using, I get sound out of them all, and if I'm online its a safe bet I'm listening to headphones.
 
I'm surprised that I'm actually glad it isn't
That's because you use Macos as your desktop,
you see FreeBSD in VMware window only,
that's because you don't care about its desktop functionality
and some other similar features.

If I was using FreeBSD in some virtual machines only, I even never wrote here nothing.
 
Respectfully, I beg to differ.

Although they are older, I have Nvidia, Intel and ATI Radeon chipsets on my FreeBSD boxen and they all work well, with the exception of my Gateway ATI box breaking x11/eterm native transparency if you use Force Psudeo Transparency in x11-wm/fluxbox.

I have a Thinkpad X61 that serves as my dedicated .mp3 player and music source to my vintage stereo. The wiki states it has Intel HD audio and I couldn't be happier with it. If it wasn't up to the job I wouldn't use it a such, and it shines.

I use multimedia/xmms with it, never turn it off {78.5 days uptime), and listen to it for hours each day. It is fully capable as any other of my machines as far as internet, manipulating images, watching videos, etc., but I only take it online if there is an important update. It's position and role as a FreeBSD box is secure even if I were to swear off FreeBSD forever.

When I'm online I listen to music on the one I happen to be using, I get sound out of them all, and if I'm online its a safe bet I'm listening to headphones.

Difference of opinion sparks a healthy debate. If it works for you, then it works for you. Who am I to try to tell you otherwise? But as I said, explicit support. If the hardware is explicitly supported, then by all means. But that support will not be for cutting edge hardware.
 
Also, if FreeBSD will never be fully suitable for desktop,
because it is not FreeBSD "goal", "desktop" inscription from here should be removed IMHO.
2F2eiEM.png

They should write something like "Use MacOS as your desktop instead", it will be a good advt :D
 
IMHO FreeBSD will die when it will become a "sandbox" for Apple™ employees only.

I don't really see that happening anytime soon. FreeBSD will live on as long as people are willing to develop it.

Consequently, macOS sucks as a server platform which is reflected in the recent announcement of neutering and stripping down macOS Server to what amounts to little more than a glorified Samba server with device management bits sprinkled in. Calendar, Contacts, DHCP, DNS, Mail, Messages, NetInstall, VPN, Web Server and Wiki services will be deprecated. Sure, you could set all those up all by yourself and deal with countless headaches but why would you? This used to be a passable SMB server setup, now they have gone full desktop. I wouldn't want anything like that to happen to FreeBSD. FreeBSD is positioned squarely in the opposing corner: a somewhat passable desktop but a great server OS.

I'm not one to support Apple because I do not want to be beholden to Steve Jobs' ghost...but that's a topic for a different discussion. So Apple has left the server market? They weren't really suited for it to begin with when they are competing with giants like Microsoft, IBM, and Dell. I wouldn't be surprised if Apple fully adopted FreeBSD for their servers. But I have never even heard of an Apple server before, let alone seen one. Although I have seen desktops running servers though....
 
An analogy might be cooks that do not eat themselves what they make.

The core FreeBSD staff seem to be not voluntarians, but instead paid employees. So external offers competing with that what they do for $$$ have little chance.
For example, the suspend/resume stuff Maelstorm mentioned ended up being done by jkim, and was not fully finished when the FreeBSD Foundation which sponsored the work accepted it in.
This is in my impression the reason why it suffers and the issues do not get fixed (it would need only a bit code in the vesa kernel module to make it Nvidia suspend-compatible, for example).

Another indicator is the poor Wifi support, and its poor performance compared to Linux. For embedded things the Wifi throughput is not really important, a clean init system instead of a cancerous systemd is preferable there, for example.

Insofar ILUXA's suggestion is sensible imho, to point out the audience which FreeBSD aims at.
 
I wouldn't be surprised if Apple fully adopted FreeBSD for their servers.

I think they will quit the server market entirely except for a very minimal footprint with a Mac mini-like machine and the aforementioned neutered "server" add-on ($19.99 in the app store, no joke) as not to completely alienate creative professionals. Apple enterprise services are handled by IBM already.

But I have never even heard of an Apple server before, let alone seen one.

I used to service many a customer's Xserve back in the day. Nice machines, very reliable. There once even was a FibreChannel Xserve RAID. Apple used to sell Mac OS X Server Unlimited for $999, no kidding. PowerPC FreeBSD runs splendid on those comparably ancient machines, by the way. :)
 
Also, if FreeBSD will never be fully suitable for desktop,
because it is not FreeBSD "goal", "desktop" inscription from here should be removed IMHO.
It says it's used for that and it is.

To be clear, my company had 10 developers. All of us used FreeBSD as our desktop workstation with all the browsers, editors, graphics and so on you could want for a web dev company and we did so without issue now in our 14th year.
 
If "some" GUI doesn't work then don't use it. There are lots to chose from that run very well on FreeBSD.
Sorry, when I used to word "GUI", I didn't mean the window manager. Instead I meant the whole package, from the rendering and communications layer (X), the initialization/shutdown (login support, sleeping, screen saver), the window manager and desktop environment (KDE, Gnome, ...), the basic graphical applications (clock, document previewer, terminal emulation), basic communication apps (mail, IM), and most importantly the office application suite. You interpret "GUI" to mean just the window manager and environment.

Firefox 58 is very fast and totally solid now so any browser based interaction (and that's a lot of it these days) is taken care of.

And Firefox has bugs. As does Chrome, as does Safari. All browsers have bugs. Even today, we still have to switch between browsers to get all forms of browser-based interaction to work. At my previous employer, Firefox was officially the "supported" browser for all GUI platforms, and preinstalled on all corporate-owned machines. In spite of it, there were company forms (like paperwork you had to do for payroll or the human resources department) that only worked with IE and Safari and not with Firefox. No browser is perfect, and you need a collection of them.

Libre Office works very well, so unless you're a Microsoft shill there is no excuse for not using it - other than you just don't want to, which of course is legitimate. :)
See below for more discussion of why LibreOffice and friends are not compatible enough. And matter-of-fact, I have tried to heavily use various free *Office solutions myself (still have OpenOffice installed on my Mac), and I installed several hundred copies of NeoOffice on all machines at our elementary school. Claiming that I am a Microsoft shill is laughable. But in spite of having a large bias against using Microsoft's products, I still do use them when they are the best solution available.

Is that a bad strawman argument, or have you really not kept up in the last decade? I don't reboot my FreeBSD desktop system and there is no difficulty with the quality of my GUI.
Sorry, I have never run FreeBSD on the desktop. The story about having to reboot the desktop machine multiple times a day referred to Windows. I gave the example to explain that forcing any person (whether they are an OS developer or not) to use a desktop environment that isn't good for them will lower productivity.

This one used to actually be a big issue for me and unfortunately LibreOffice (or OpenOffice at the time) did not quite solve it. It isn't the fact that I wanted to run Microsoft Office, it is more the fact that everyone else in the office had an obsessive need to use it. I could not guarantee that my LibreOffice documents would display with the correct format when opened up by someone else in Microsoft Office.
Exactly. The sad fact is that a vast majority of all office documents in the world today come from MS Office, and to be productive, you have to be 100% compatible with them, and be able to read, modify and write them. That forces any person who interacts heavily with the outside world to use MS Office. The problem isn't terribly big for Word, because other than minor changes in formatting, the various OpenOffice/NeoOffice/Libreoffice variants are pretty compatible. But where it falls apart is spreadsheets (where many complex Excel spreadsheets won't work in anything else), presentations (where formatting is screwed up when leaving the PowerPoint universe), and database integration (you can't just take an Access database and move it to OpenOffice, it just doesn't work). And even within MS Office, the versions are not compatible enough. Example: For a while, I worked for as startup, and as we were all tired of using Windows laptops, we decided to standardize on Macs instead. So we bought a handful of them. Then we discovered that presentations didn't quite work perfectly when developed on PowerPoint for Mac but displayed on PowerPoint for Windows: the formatting was changed enough (due to font rendering differences) that sometimes words or sentences vanished. Given that our CEO and CTO still had Windows laptops, and given that we were using these PowerPoint presentations to raise dozen of M$ from venture capitalists, we quickly gave up on Mac, and switched back over to Windows laptops. By the way, this was a startup whose goal was to sell Linux-based systems!

I think if Linux ever does become a big player in mainstream computing,
Linux is the dominant operating system in internet servers and on the cloud. In the "top500" list of supercomputers, it has 100% market share: Of the 500 largest computers that are publicly known, every single one runs Linux. I would think that Linux is the 400 lbs gorilla of mainstream computing - except on the desktop (the situation in Mobile is confusing, and the answer depends on whether you count Android as a version of Linux or not, which can be argued either way).

Linux main goal is to replace Windows on the desktop.
When you say "Linux main goal...", who do you mean? Linus? RedHat? Suse? I think "Linux" as a whole does not have a main goal, as it doesn't have a central decision making authority.


See above. X is one part of it, the environment/window manager is another part of it, and then there are plenty of other parts. Fluxbox is just a little part of the overall solution.

... many of FreeBSD developers don't use it on their desktops
and work for Apple™. So they use Macos and do not developing desktop features on FreeBSD,
Two comments. To begin with, I do not believe that the bulk of FreeBSD developers work for Apple (meaning: get a paycheck from Apple), and even less that they work on FreeBSD as part of their Apple jobs and under Apple's direction. I think that statement is flat out wrong.

Second, the bulk of FreeBSD developers are not desktop / GUI developers. For example, take someone who works on file systems in the kernel, or on ethernet drivers. They do not modify the desktop, and probably don't have the wish to do so. They may not even have the skills for that job. What you are espousing here is that you want all FreeBSD developers to work on desktop/GUI features. Sorry, but that's not going to happen.

But I have never even heard of an Apple server before, let alone seen one.
Apple used to sell rackmount servers, which had PowerPC chips in them, and ran the MacOS operating system. They were actually quite price-competitive with Intel-based servers.

Inside IBM, many AIX, DB2 and RS-6000 development departments used these rackmount Apple servers as development machines, because they were much cheaper than IBM's own Power hardware. They were also used for a lot of the early development of Linux on PowerPC, because early on the IBM hardware had a hard time booting anything other than AIX and the "i" operating system (no, not iOS from the cell phone, but IBM's branding of the former AS-400 operating system).

Apple's fibre channel based RAID storage boxes were already mentioned; at some point, you could build a pretty good server cluster using all Apple hardware.
 
developers are not desktop / GUI developers.
You didn't understand me correct. I wasn't talking about "GUI"-s, FreeBSD comes without any GUI and it is not bad IMO,
I was talking about essential basic features on system level, like GPU support and suspend/resume, also some people,
like Snurg, got some Wi-Fi issues, etc. Such features are not supported well on FreeBSD, because such features got nothing to do with servers.
 
Sorry, but GPU support and suspend/resume are not basic system features. They are completely unneeded for a server, and not even very needed for a desktop if one doesn't need massive graphics performance. They are closely related to running a GUI and portable system.

And yes, I know about wireless issues in FreeBSD. They are the #1 reason that my Raspberry Pi's are (unfortunately) back to running Linux (there are also other #2 and #3 issues). But again, embedded or boutique systems (like Raspberry Pi) are not mainstream computer use, and I don't fault FreeBSD for not supporting it as well as I would like.
 
Sorry, but GPU support and suspend/resume are not basic system features.
IMO it is very basic system features, that in 2018, every OS, that somehow related to desktop should have.
If it will be impossible to use suspend on FreeBSD, it will be impossible to use FreeBSD laptops efficiently,
if Wi-Fi won't work well, it will be impossible to use FreeBSD as desktop at all, etc…
IMO it is the obvious things.
 
If it will be impossible to use suspend on FreeBSD, it will be impossible to use FreeBSD laptops efficiently,
Do you mean "suspend to RAM" or "suspend to disk"? I guess, suspend to RAM works on most laptops. I used to use it every day in ThinkPad's and Dell's.
Suspend to disk is not really important for most users.
 
On my laptop it works as well (intel integrated graphics), but it does not work at all for example with Nvidia cards (my PC with Nvidia GPU
is suspend free since 10.3 :)), and Nvidia is the most popular GPU provider nowadays, and it is a big problem IMO. See this thread, it was already discussed.
 
See above. X is one part of it, the environment/window manager is another part of it, and then there are plenty of other parts. Fluxbox is just a little part of the overall solution.

I've always considered X to be the base of the GUI and build everything dependant on a GUI after I build x11/xorg.
 
(talking about GPU support and suspend/resume)
IMO it is very basic system features, that in 2018, every OS, that somehow related to desktop should have.
And that are unnecessary on a server. Actually worse than unnecessary: they are superfluous, and their mere presence causes complexity, which gets in the way if the mission of a particular install is to run a server. One of the big advantages of FreeBSD over Linux (and even more so for OpenBSD) is the simplicity and clean organization.

WiFi on a server is sometimes needed; today WiFi networks can be reliable and performant enough to run some servers on them, it can make setup easier (build the server with just a power cable, then move it to the deployment location and plug in the ethernet), and some people use small servers as WiFi access points, which requires a very sturdy WiFi software stack. But overall, for most servers, WiFi is also irrelevant.

Matter-of-fact, one of the major criticisms of systemd in the Linux world is that Lennart is completely focused on desktop use, deliberately ignores server use, and makes design decisions that make server use harder. Like everything in life, one has to make compromises, and Lennart isn't the kind of person who recognize a compromise if it floated in his coffee, which makes him rather unsuitable for the task as the architect and chief developer of a major system component.

I am not advocating that FreeBSD should ignore GPUs, suspend/resume and WiFi completely. But one has to consider that every second of work invested into those tasks is a second less that's available for other tasks, and that every bit of complexity added for them detracts from other uses.
 
Sorry, but GPU support and suspend/resume are not basic system features. They are completely unneeded for a server, and not even very needed for a desktop if one doesn't need massive graphics performance. They are closely related to running a GUI and portable system.

I dunno about that. GPU support can be critical for a compute server. I actually plan on building one once I get the funds together. A 4 CPU 16-core each AMD with 4 GPU cards for high performance number crunching. It just depends on what the server is doing and what it's being used for.
 
Back
Top