Solved Why FreeBSD secret tricks?

People get frustrated. I'm sure that lots of us have written to friends, or read emails from friends saying, I HATE computers. How we respond to such frustration might bring in a convert who will later become a developer who finally gets wireless working at Linux's level in FreeBSD.
True enough. However most potential developers will generally cut their teeth on Linux (or be brought up with Solaris, etc) and go on to technical things on those platforms. By the time they do come across FreeBSD, they will likely be quite capable to follow the docs whilst asking a few questions as they go.

An absolute beginner coming to FreeBSD and complaining it is difficult is a little like an absolute beginner complaining that Alpine, Arch, Gentoo are difficult. Generally they will be recommended to start with Ubuntu. I think the same response is fair here too. They should start with any user-friendly Unix-like platform.

I tend to believe that an operating system cannot be technically great *and* user-friendly. In many ways they are mutually exclusive goals unfortunately.
 
I'm coming from Arch Linux and wonder if and how I can make FreeBSD a viable replacement for desktop (actually laptop) use.

Having had a fair amount of experience with Gentoo and Arch Linux, and I'm reading into FreeBSD as much as I can, but it still seems complex to me as it requires quite some adjustment.
It also seems to be quite hard to find up-to-date info and tutorials for certain tasks, and although the amount of available packages is huge, some typical software is still missing (for example like print/pdfarranger, which is in OpenBSD ports, but not in FreeBSD).

But nevertheless, I have always kept an eye on FreeBSD for server AND desktop use, and find it extremely tempting, especially now that everything went downhill with GNU/Linux (just my personal opinion), so I intend to give it a new try as soon as I find some more time. In the meantime, I keep reading, planning and preparing the move.
 
Well, I am happy to be proven otherwise. ;)

I even think the term "user-friendly" is undefinable. However, that is probably a very different topic.
 
Let's say a linux from scratch installation is user friendly. In case there is an issue you know exactly what has been done .
Yeah, that is kind of exactly it. I would call something like sysctl very user-friendly because it is really easy to change kernel tunables. All in one place, simple.

I actually wouldn't know where to even begin changing kernel tunables on Windows. The policy editor? No idea, so I would actively need to read documentation.

So more importantly, the FreeBSD handbook tells me about sysctl. Microsoft's docs don't and their forums are... bizarre robots(?! seriously, does anyone else find the responses on them often really weird?)

And yet, if I did a poll on user-friendlyness, I am fairly sure Windows would rank higher in popular opinion.
 
… I would call something like sysctl very user-friendly because it is really easy to change kernel tunables. All in one place, simple. …

Certainly easy to change, however people do wonder what changes to make.

are there similar thing in bsd like: tuned profiles??

… An absolute beginner coming to FreeBSD … Generally they will be recommended to start with Ubuntu.

Do people find Ubuntu easier to use than e.g. KDE Plasma?

(Plasma seems to be the most popular desktop environment.)

… By the time they do come across FreeBSD, they will likely be quite capable to follow the docs whilst asking a few questions as they go. …

That was me, maybe five years ago when I switched from Mac OS X (after twenty-something years) to PC-BSD.

… I tend to believe that an operating system cannot be technically great *and* user-friendly. In many ways they are mutually exclusive goals unfortunately. …

Mac OS X Mavericks came close, IMHO.

… the simpler problem are well documented. …

True for some things, however (for example) paths to discovery can be obscure. Existence of a good, simple answer is no guarantee that the answer will be found.
 
Certainly easy to change, however people do wonder what changes to make.

are there similar thing in bsd like: tuned profiles??
We have powerd and the ability to set max C-states. Can you tell me exactly what a "tuned profile" is setting? What commands does it run on startup? What files is it munging?

I remember back on RHEL 7 it was pointing people towards tuned. The documentation was greatly lacking. Honestly the following is very convoluted for what it is achieving: https://access.redhat.com/documenta...formance_monitoring_tools-tuned_and_tuned_adm

Do people find Ubuntu easier to use than e.g. KDE Plasma?

(Plasma seems to be the most popular desktop environment.)
https://linux-hardware.org/?view=os_de

I think it is Gnome 3. Quite likely because more distros default to that though. Back when Gnome 2 was still around, KDE4 was doing very badly. KDE has only caught up because Gnome 3 regressed and people started looking elsewhere again.

For BSD, Gnome 3 has very little presence. Console or Others (WMs) are the main ones there.

https://bsd-hardware.info/?view=os_de
Mac OS X Mavericks came close, IMHO.
Hmm I'm not sure I agree. These are the main issues I have noticed. The UI is slow to react (due to zoomy effects) and claustrophobic (and a bit tacky IMO). It can't be started up into a direct command prompt. It supports a tiny fraction of hardware (it doesn't even support the common ThinkPad). It doesn't provide a system compiler or a ports collection making it awkward for development. Loads of tasks can't be automated via scripts (like the keyring manager) making it terrible as a build system.
 
grahamperrin said: Mac OS X Mavericks came close, IMHO.

Hmm I'm not sure I agree. These are the main issues I have noticed. The UI is slow to react (due to zoomy effects) and claustrophobic (and a bit tacky IMO). It can't be started up into a direct command prompt. It supports a tiny fraction of hardware (it doesn't even support the common ThinkPad). It doesn't provide a system compiler or a ports collection making it awkward for development. Loads of tasks can't be automated via scripts (like the keyring manager) making it terrible as a build system.

Doesn't it still provide a direct option for getting XCode? You used to just sign up as a developer and download it? Also MacPorts is still around but I don't know how extensive its coverage is nowadays (it's been years since I used an Apple Mac).
 
Doesn't it still provide a direct option for getting XCode? You used to just sign up as a developer and download it? Also MacPorts is still around but I don't know how extensive its coverage is nowadays (it's been years since I used an Apple Mac).
Because of this area lacking a little, there are a number of unofficial 3rd party "ports-like" collections. Brew, Homebrew, macports and even pkgsrc was ported. However these are not of the same quality of the FreeBSD ports. They also support a fraction of the software unfortunately.

Apple allows you to download a version of clang (either bundled with XCode or standalone). Same with Microsoft and Visual Studio / cl. However you willl notice that FreeBSD has many different versions of Clang. Apple only really provides one and you have to update when they do. This has a knockon effect with things like macports etc. Once Apple says your version of the OS / compiler is obsolete, you get dropped from those 3rd party ports collections too.

With FreeBSD it is all there ready for you out of the box. That is user-friendly right? ;)
 
Code:
port lis|egrep -i '^(clang|gcc)'
gcc-devel                      @12-20210509    lang/gcc-devel
gcc10                          @10.3.0         lang/gcc10
gcc11                          @11.1.0         lang/gcc11
gcc43                          @4.3.6          lang/gcc43
gcc44                          @4.4.7          lang/gcc44
gcc45                          @4.5.4          lang/gcc45
gcc46                          @4.6.4          lang/gcc46
gcc47                          @4.7.4          lang/gcc47
gcc48                          @4.8.5          lang/gcc48
gcc49                          @4.9.4          lang/gcc49
gcc5                           @5.5.0          lang/gcc5
gcc6                           @6.5.0          lang/gcc6
gcc7                           @7.5.0          lang/gcc7
gcc8                           @8.4.0          lang/gcc8
gcc9                           @9.3.0          lang/gcc9
gccxml-devel                   @20150423       lang/gccxml-devel
clang-10                       @10.0.1         lang/llvm-10
clang-11                       @11.1.0         lang/llvm-11
clang-3.3                      @3.3            lang/llvm-3.3
clang-3.4                      @3.4.2          lang/llvm-3.4
clang-3.5                      @3.5.2          lang/llvm-3.5
clang-3.7                      @3.7.1          lang/llvm-3.7
clang-5.0                      @5.0.2          lang/llvm-5.0
clang-6.0                      @6.0.1          lang/llvm-6.0
clang-7.0                      @7.1.0          lang/llvm-7.0
clang-8.0                      @8.0.1          lang/llvm-8.0
clang-9.0                      @9.0.1          lang/llvm-9.0
clang-devel                    @20210401-d1828937 lang/llvm-devel
 
I tend to believe that an operating system cannot be technically great *and* user-friendly. In many ways they are mutually exclusive goals unfortunately.
That depends on what you mean by "technically great". As grahamperrin already said, in my (not at all humble) opinion, MacOS is both. By the way note that many of the great elders of Unix are today using Macs or Chromebooks for their daily drivers.

What does "great" mean? Uses hardware well, meaning the hardware is abstracted (you don't have to bother learning C-states to get both good performance and good battery life), can make use of very high screen resolutions, up-to-date WiFi interfaces, easy to interface (plug and play) for supported accessories. Stable and secure: doesn't crash, the file system doesn't lose data (even when you shut things down wrong), efficient in its use of the bottleneck of the disk, the file system is encrypted, I can trust the hardware to not easily admit hackers. Easy to develop on, supports all common development tools. I think MacOS fits the description well.

Speaking of a Mac ...
It can't be started up into a direct command prompt.
There are unsupported hacks that allow MacOS to come up without the GUI. They are hardly ever used, because: why? Just let it boot normally, bring up a terminal emulator, maximize the terminal emulator so it takes over all the screen (without window decoration). It gives you the same functionality (all pixels are used for the CLI), but with the flexibility of switching to graphical tools at a moment's notice. My office mate many years ago (another Mac user) had a single very large monitor (probably 32 or 37 inch), which he had mounted in portrait mode, and he used to boot his Mac into running a single terminal on that monitor. And then he only ran emacs in it. He would get into emacs in the morning, and not leave it ever (except for a lunch break). I think his terminal window was about 350 lines tall x 250 columns wide, but with emacs' support for breaking up the screen, he got work done very efficiently. And then, on the laptop's screen, he still had a web browser and the corporate e-mail program.

It supports a tiny fraction of hardware (it doesn't even support the common ThinkPad).
Why would it support other hardware? The hardware that Apple sells you is very good. By co-developing hardware, software and backend systems, Apple is capable of greatly improving product quality at still sane development expenses. We all see how difficult it is to remain 100% compatible with multiple systems, in particular if you don't have direct access and control over the people who develop those. Apple's attitude is: they put effort into creating an excellent product, where all the pieces work really well together, but at a high price. And only if the user is willing to remain in the "walled garden" of Apple's ecosystem. They could instead do what the Dell, Lenovo (ex IBM), Oracle, HP, IBM, and Google, Amazon and Microsoft do: develop a mediocre product at a medium price. But they know that the kind of people who want to be Apple users are happier with excellent products, and perfectly willing to pay the high price. Now, is Apple hardware perfect for all uses? No. As a frequent user of ThinkPads: they have their advantages, and in the server and embedded market, Apple doesn't even play (at least not seriously, the MacMini is not really a mainstream server). But Apple knows that trying to serve everyone would ruin their quality, focus and value, so they don't try.

It doesn't provide a system compiler or a ports collection making it awkward for development.
Xcode is free for download. Matter-of-fact, my corporate issued laptops (from multiple employers) have always had Xcode pre-downloaded; the IT people do that when they prepare the laptops for distribution to engineering groups. On my personally owned home laptop, I had to download Xcode myself (which was a bit of a hassle in the days of 144 kBaud ISDN lines).

MacPorts exist. But I honestly find myself installing very little from there. Most applications are either pre-installed (view PDF, simple picture editing), or available on the web (word/excel/powerpoint = office suites). For python tooling (it's my main programming language these days), I use pip.

Loads of tasks can't be automated via scripts (like the keyring manager) making it terrible as a build system.
It's actually amazing how much CAN be automated, if you search the web. A Mac is chock full of command-line tools, but to use them, I always have to find recipes on the web. I've yet to find good documentation for that kind of stuff.
 
I'd revert to Mac OS X, for desktop/notebook computing, in the blink of an eye, if Apple had not spoilt the desktop environment.
 
We all develop habits. I think that user friend is probably something like say, Fedora Workstation, where you can install it, it gets your hardware right, and you have a working desktop. Or Mint or one of those. Yet, FreeBSD and ArchLinux aren't all that difficult, nor do either require that much reading to get a desktop set up. VoidLinux is another.

But while Mac is considered user friendly, I always have trouble with it (and Windows 10). My wife has a Mac, and sometimes asks me to fix an email (English isn't her native language). Then she's asking, why are you typing kkkkk as I, due to habit, use vi keyboard shortcuts. ralphbsz I feel like I've seen a book around, something like Mac for Unix users, but I can't find it now.

Anyway, my main point is (I shouldn't post this early, I ramble even more than usual) is that *I* don't find Mac user friendly, but more people are going to find it normal than they will a FreeBSD box
 
By the way note that many of the great elders of Unix are today using Macs or Chromebooks for their daily drivers.
I am disappointed in the great elders... ;)
I will try to look around for an "opinion post" on why some of them have decided to change. It would be interesting to read their opinions (because these guys will have at least experienced both ways to a good extent).

However at the same time we are seeing a migration the other way too. There was a recent writup from John Carmack (originally a Visual Studio / Win32 fan) about migrating to OpenBSD and even working a little on the OS (last thing I saw was improving the virtual tty framebuffer performance). He also looked at using it for a recent research into AI project.

What does "great" mean?
That is pretty true. "Great", just like "user-friendly" can't really be defined. One is not wrong or right. However Apple's view on what "great" is is almost the polar opposite to mine. It makes easy things easy and hard things impossible.


Xcode is free for download. Matter-of-fact, my corporate issued laptops (from multiple employers) have always had Xcode pre-downloaded; the IT people do that when they prepare the laptops for distribution to engineering groups. On my personally owned home laptop, I had to download Xcode myself (which was a bit of a hassle in the days of 144 kBaud ISDN lines).

Two things here: XCode is the IDE. (Obviously you are very aware of that and I am not trying to be pedantic!). It is more an example of the Apple culture to not use a compiler or standard tools properly but instead to use heavy XCode IDE-like processes which are unweildy and awkward. The "Command Line Tools" package is a 3rd class citizen.
Getting code onto an iPhone for example should be just two commands, build using the cross compiler, upload using the bridge. However Apple has made this embarrassingly awkward. This isn't about the compiler either. This is true for *every* process on an Apple device. And this isn't really just based on my own experiences. I watch macOS / iOS developers going about their work (without knowing an alternative) and I do genuinely feel that their deadline timescales suffer.

The second issue is that XCode's provided compiler is not the system compiler. It isn't the one that built the rest of the software and it changes throughout the lifespan of the release. This makes it potentially problematic for a number of tasks. Yes, Apple doesn't really let us plebs write interesting drivers anyway, but also software we make involving plugins and binary compatibility is a mess with other development teams all end up with different versions.
 
It can't be that user unfriendly if I was able to teach myself to use it without looking at the Handbook. It depends on whether or not you're on good terms with hard work on if you find it user friendly or not so much...

Since I didn't look at the Handbook I've found over time there are number of things I do differently than other people, as in never having used fstab. Yet it still works for me.
 
I wonder if on a mac it is possible to shrink the partion and place freebsd next to it. Would the video card be detected ?
That's because only Apple Macs come with reinforced [ and ] keys. All other keyboards break or wear out those keys because of overuse.
It's an ugly language and, heck, named parameters are just the most stupid concept. Most sensible programmers would agree; but that's just my opinion.;)
 
Objective-C never became popular outside the mac environment.
I imagine it is because only Apple's libraries really provide Objective-C bindings. Otherwise you will just be using C to integrate with things.

That said, I am quite a fan of Objective-C. I think that at this point in time, languages that extend C (rather than attempt to replace it) will have the biggest success.

For this reason, I honestly can see Objective-C coming back and re-replacing Swift. I notice a lot of the underlying (non-consumer facing) code is very much Objective-C and isn't looking to change.
 
Back
Top