# Which BSD system choose?



## pirmat (Jul 17, 2020)

Good morning, I'm using Linux on my main PC, but now I have a second cheap pc that I don't use anymore, and I want to install a BSD system because I'm very curious.
I found two main operating system: FreeBSD and NetBSD.
FreeBSD seems like the more supported, but I like the high clean code-stability of NetBSD.
What are the main differences, and what system could be a better choice?
Thanks


----------



## SirDice (Jul 17, 2020)

pirmat said:


> I found two main operating system: FreeBSD and NetBSD.


What about OpenBSD? Did  you miss that one?



pirmat said:


> FreeBSD seems like the more supported, but I like the high clean code-stability of NetBSD.


Only when you look at x86 as that's the primary focus of FreeBSD. NetBSD runs on everything but the kitchen sink. NetBSD definitely supports more architectures and systems. 



pirmat said:


> What are the main differences








						Comparison of BSD operating systems - Wikipedia
					






					en.wikipedia.org
				






pirmat said:


> and what system could be a better choice?


You're on a FreeBSD forum, what kind of answer do you expect to get here?


----------



## George (Jul 17, 2020)

The latest issue of BSDJournal has a short introduction of some BSD Desktop distributions (FuryBSD, MidnightBSD, GhostBSD, NomadBSD).









						FreeBSD Journal DE May/June 2020 31
					





					issue.freebsdfoundation.org
				




And Yeah, there is FreeBSD, OpenBSD and NetBSD.


----------



## zirias@ (Jul 17, 2020)

I would say all BSDs have some focus on code quality. But the one putting it as a "primary goal" and advertising that is OpenBSD, not NetBSD. AFAIK, NetBSD is the one with the portability focus (as already said) while FreeBSD aims to provide the most "functional" BSD on widespread hardware.

If you want to try a Desktop installation somehow quickly, yes, one of the FreeBSD-based Distributions might be a good choice. You can of course have "vanilla" FreeBSD work on a Desktop just as well, it just needs quite a lot of configuration, requiring you to learn a few things about how the system works before having a Desktop ready to use.


----------



## olli@ (Jul 17, 2020)

It’s really a matter of personal opinion and who you ask.

Personally I use FreeBSD and DragonFly BSD. Actually I like DragonFly BSD very much because it runs more efficient on modern processors with many cores (Ryzen, Threadripper). It also has a few unique features that can be extremely useful, like virtual kernels (run kernels as userland processes), variant symlinks and process checkpointing (very cool! You can “freeze” a process into a file and “thaw” it on a different machine). Also, its “HAMMER2” file system is very interesting, it supports fine-grained history (without having to create snapshots), point-in-time recovery, live remote mirroring and a few other things (and of course standard features like checksums, deduplication, snapshots, encryption, instant recovery without fsck, and so on).

However, the development team of DragonFly BSD is much smaller than FreeBSD’s, so it’s not quite as quick to support new hardware and such. This is the main reason I'm still running FreeBSD on my home server and on my main workstation, while DragonFly BSD runs on a machine reserved for playing around and experimentation, and inside a VM on my FreeBSD workstation.

But – as SirDice has noted – this is a FreeBSD forum, so it should be clear what the bias is here.


----------



## 20-100-2fe (Jul 17, 2020)

I've tested the main BSDs and my opinion on them is:

- FreeBSD : very good base OS, very good documentation, wide choice of well maintained applications (as up-to-date as on Linux)
- NetBSD : good documentation, very interesting philosophy, problematic quality (e.g. package repositories, UTF-8 support)
- OpenBSD : very good hardware support, but: no user-centricity at all, poor performance, poor documentation, restricted and poorly maintained application offer
- DragonflyBSD : Was initially focusing on performance. However, FreeBSD has improved a lot since that time and I can't imagine any compelling reason to use DragonflyBSD over FreeBSD.

In short, the only reason I can imagine for not using FreeBSD is that you get on so well with people using another BSD that you choose to use the same system as them to have an occasion to spend more time with them.  Which is a very good reason, as people are much more important than computers. 

As a conclusion, I'd recommend you try them all to see where you feel the best.


----------



## zirias@ (Jul 17, 2020)

And there you have the (well expected) bias  From what I read in olli's answer, there _are_ reasons to give Dragonfly a try -- this process checkpointing thing seems like something that could come handy from time to time, although it creates a lot of questions in my mind (what if the process has open file descriptors, what if it is in the middle of writing a file, what if it is communicating with a device, socket, or even on the network, etc...).

Anyways, it looks to me as DragonflyBSD shares the same "primary goals" with FreeBSD (whereas NetBSD and OpenBSD have very different ones that probably wouldn't work too well in combination), so, also reading that Dragonfly has a much smaller team, I'm getting doubts that it was a good idea to "fork" in the first place ... but maybe I'm mistaken here.


----------



## Cthulhux (Jul 17, 2020)

OpenBSD is easier to use on a  desktop than NetBSD, _in my opinion_. Of all BSDs, FreeBSD and its distributions GhostBSD, MidnightBSD, FuryBSD _et cetera_ are probably the most _comfortable_ though. (I like to call FreeBSD "the linuxiest BSD" for various reasons.)


----------



## 20-100-2fe (Jul 17, 2020)

Zirias said:


> there _are_ reasons to give Dragonfly a try



I'm glad Olli@ mentioned them, I'll surely give Dragonfly a closer look.


----------



## olli@ (Jul 17, 2020)

Zirias said:


> this process checkpointing thing seems like something that could come handy from time to time, although it creates a lot of questions in my mind (what if the process has open file descriptors, what if it is in the middle of writing a file, what if it is communicating with a device, socket, or even on the network, etc...).


Yes, of course, the process checkpointing has some limitations. Open file descriptors are not a problem, provided they are connected to plain files. However, network sockets don’t work. You cannot, for example, checkpoint a web server process and then resume it on a different machine. However, the DragonFly developers do plan to enable such things at some point in the future, in order to migrate processes between nodes within an SSI cluster – at least that’s the long-term goal. It’s also interesting to know that a program that is being checkpointed can intercept this (if it’s aware of the feature), close its network connections, and upon resume re-open them again, for example.

But anyway, the process checkpointing feature can be very useful for developers for debugging software under controlled conditions. Unlike when creating a core dump, creating a checkpoint file does not terminate the process, i.e. it continues to run, so you can make multiple checkpoints of the process during its lifetime. You can also resume a process from the same checkpoint several times. This can be useful to debug problems that are difficult to reproduce.

Sorry, that’s probably off-topic here. Unless a FreeBSD developer becomes interested to implement such a feature for FreeBSD … But then again, I’d rather prefer to have variant symlinks implemented for FreeBSD because it’s much more useful in practice. I use it a lot on DragonFly, for example for per-user /tmp. Would be cool if FreeBSD supported that, too.


----------



## Mjölnir (Jul 17, 2020)

olli@ said:


> Yes, of course, the process checkpointing has some limitations. Open file descriptors are not a problem, provided they are connected to plain files. However, network sockets don’t work. [...] It’s also interesting to know that a program that is being checkpointed can intercept this (if it’s aware of the feature), close its network connections, and upon resume re-open them again, for example.


You don't know every f*g detail until you try, and they did.  That deserves all respect, esp. since they are a rather small team.


> [...] I’d rather prefer to have variant symlinks implemented for FreeBSD because it’s much more useful in practice. I use it a lot on DragonFly, for example for per-user /tmp. Would be cool if FreeBSD supported that, too.


+1


----------



## diego (Jul 17, 2020)

hi


pirmat said:


> I want to install a BSD system because I'm very curious.


I love this kind of open question 
You should answer yourself, what is the meaning of "curiosity" for you. There are different scenarios.....

1) I am Linux user and would like to try BSD with Desktop
Go for GhostBSD, Nomad, Dragonfly

2) Linux user , trying BSD server --> NO Desktop
Easier FreeBSD, NetBSD. OpenBSD  ---> I would recommend to play a lot within VM's before 

3) Linux user  "professional" --> migration to BSD as main OS
If you want full control of your system.......this is a learning curve.
Be ready to install from scratch and learning the differences between Linux and BSD's.
Remember ""In Unix every is a file"....don't assume "magic" auto configuration (in general)
Desktop and Xorg might be no easy as Linux to set up...........
Check hardware compatibility
Find real alternatives from Linux to BSD--> example: docker, virtualization, dropbox, cam programs, etc.
Documentation, documentation and documentation ...)
*FreeBSD* is my answer

I am a Devops Engineer, using 100% Linux about 10 years (in my personal and professional life). Using FreeBSD less than a year, I would like to share my migration.
- Tested a lot in virtualbox "everything" (system, programs, etc)
- Real Hardware is another world (graphics cards, audio, etc..)
- Tried GhostBSD and Dragonfly but they are based on FreeBSD
- Using FreeBSD 100% (best documentation and community ever seen before   )

If you are Linux user you already know there are hundreds of distros.....but at the end of the day, probably you are using one the main ones: debian (ubuntu, mint) , suse, redhat (centos), arch or gentoo


----------



## Cthulhux (Jul 17, 2020)

diego said:


> Remember ""In Unix every is a file"



Let me remind you that this is _not_ as true as it should be.


----------



## diego (Jul 17, 2020)

Cthulhux said:


> Let me remind you that this is _not_ as true as it should be.


Agreed, that is the reason I put them in "double quotes"





						Everything is a file - Wikipedia
					






					en.wikipedia.org
				



It should be part of another post for this discussion


----------



## diego (Jul 17, 2020)

gpb said:


> FreeBSD documentation is not great, and in many cases it is outdated.If you use it to build a port, good luck, because I did that and was told they won't accept it.


I am sure that "everyone" here has had difficulties with some ports, driver or packages........but I would never say that "documentation is not great" just based on one particular problem.
You are missing the point of the post----> Which BSD system would you recommend?


----------



## zirias@ (Jul 17, 2020)

gpb said:


> FreeBSD documentation is not great, and in many cases it is outdated.  If you use it to build a port, good luck, because I did that and was told they won't accept it.  Even though other ports do the same thing I was doing and I had to wait 2 months to be told no.  But I moved on long before I received the email telling me to redo the port that followed other ports and documentation.


Do you start this bullshit again?  You were asked in a different thread to show proof that a new port in shar-format was rejected _for being in shar format_ which you couldn't deliver. You showed how you were asked to improve a very sensible thing, which you could have done with very little work (and which is of course documented as well), but you refused and preferred to complain about FreeBSD. Well, go back to that other thread and actually *show proof* for your claims or STFU.


diego said:


> - Tried GhostBSD and Dragonfly but the are distros based on FreeBSD


Although there is no entirely clear and well-defined distinction, I'm pretty sure DragonflyBSD can't be considered a "distribution based on FreeBSD" but rather a complete fork.


----------



## Sevendogsbsd (Jul 17, 2020)

My experiences mirror those of *20-100-2fe* with the exception that I have used FreeBSD for a couple. of years very successfully and OpenBSD for about 30 minutes, very unsuccessfully. OpenBSD performance was terrible and the installer is very difficult and unintuitive to use. Yes, it does set up a desktop for you but at what cost. FreeBSD is fast, simple to configure and for me, worked very well, albeit you have to configure everything yourself, which takes a little bit of time but is quite easy.


----------



## shkhln (Jul 17, 2020)

Zirias said:


> Do you start this bullshit again?


Nothing new here.


----------



## diego (Jul 17, 2020)

Zirias said:


> I'm pretty sure DragonflyBSD can't be considered a "distribution based on FreeBSD" but rather a complete fork.


Agreed. It meant that DragonFly BSD is based on FreeBSD
For the eye of a Linux guy  "everything" is a distro


----------



## olli@ (Jul 17, 2020)

gpb said:


> FreeBSD documentation is not great


FreeBSD is – by far – the system with the most complete, accurate and up-to-date set of manual pages.


----------



## Mjölnir (Jul 17, 2020)

Show me one single system beyond a certain size that is 100% perfect.  There is _none_.  So if this single topic is the only one you think is a flaw in the documentation, what do you call a 99% great documentation?  The FreeBSD docs are very complete, more or less understandable for newbies while still providing a good reference even for advanced gurus.  I'd call that _great_.  I've seen many worse on other OSs.  Now this goes off-topic... :/ Sorry.


----------



## zirias@ (Jul 17, 2020)

gpb said:


> Which I did provide even though I didn't have to.  And if they won't accept a shar, which they wouldn't in my case, then why is it listed?  That makes the "great" documentation incorrect.


Your submission was in shar format and it was not committed. There was no relation. The reason is you refused your port to use "dos2unix" instead of hand-crafted sed. So, really, shut up for good.


----------



## decuser (Jul 17, 2020)

gpb said:


> FreeBSD documentation is not great, and in many cases it is outdated.



Oh brother. Seriously. The documentation is fine. It's far better than most... maybe Arch Linux is better, but then again, curating content for currency is hugely problematic - Arch documentation is starting to show its age, too. No, FreeBSD documentation is exceptional. It is well written and maintained. Sometimes, in the outer reaches, it's a bit stale, but oftentimes, it's just written for a different situation than what a user might have. 

In terms of other BSD's documentation, FreeBSD's is best in class. Want to make it better? Read and follow the submission rules and have at. If your submissions are rejected - maybe the flaw is with your submission, or your belief in what's better.


----------



## decuser (Jul 17, 2020)

Similar to the OP, I've been in the position of changing (more like distrohopping) from Linux to BSD. When I first made the attempt, things didn't go well. I tried NetBSD, OpenBSD, DragonflyBSD, and FreeBSD. I couldn't understand why command options were different from every other linux I had used and each had very impactful issues during installation, or during the move to a graphical user interface (video wouldn't cooperate, partitioning was vastly different, etc). After a number of (failed) attempts at installing and configuring according to some "How to Install XXXBSD" document that looked promising, I eventually set BSD aside and went merrily on my Linux way. But, I persisted. In 2006 or 2007, FreeBSD 6.2 came out and I gave it another  shot. It 'worked', well, sort of. It worked better than the last time, anyway. I figured things out and got it to serve my source code repos. A couple of years later and I remembered that my repo wasn't running linux and my uptime was six hundred someodd days. Impressive to me, for sure. 

It was in 2010 that I decided to really figure things out and settle in with BSD. I wasn't going to be beat by something that claimed to be a variant of unix. It was then that I found the handbook - best documentation around, by far. I read it from cover to cover (lulu gladly printed me a perfect bound edition of the pdf), twice. Heck, I refer to it anytime I can't figure something out, even today. 

Anyway, for what it's worth, my experience is that FreeBSD is great. Is it great for newb BSD'ers? I'm not sure. One of those newfangled GUI Desktop BSD's might be easier to start with (some are actually FreeBSD derivatives), but then again, FreeBSD is mature, the forums, mailing lists, and whatnot are very helpful and generally happy hangouts. Response time on questions is reasonable. FreeBSD is super stable, yet has pretty recent software packages (if not cutting edge). My experiences with NetBSD and OpenBSD were less than satisfactory - mostly because of NIC issues and package installs. I'm not knocking them though, I really like OpenBSD, in particular, and recognize that NetBSD will run on pretty much anything with an electronic pulse. But, I'd recommend FreeBSD for anyone willing to put in a few hours of reading before installing.

One way I think about FreeBSD and the other BSD's is as follows. FreeBSD is to Fury and Ghost as Debian is to Mint and MX Linux. Dragonfly is to FreeBSD what Devuan is to Debian. FreeBSD is to NetBSD what Debian is to RedHat. It's not a perfect analogy, but it's mine .


----------



## a6h (Jul 17, 2020)

Go off-grid, fire up a terminal and start with a `man man`. It ignites a storm of miracles.


----------



## zirias@ (Jul 17, 2020)

decuser said:


> [BSDs] different from every other linux


Don't take this as an attack, as I assume you of course know that now, but just to emphasize: That's where the problems start  The only thing BSDs have in common with GNU/Linux systems is that both are "Unix-like" and attempt to comply to POSIX. And it's at times surprising how much of the behavior of some command line tools (IMHO especially with GNU, but also with BSD) goes way beyond POSIX


----------



## decuser (Jul 17, 2020)

Zirias said:


> Don't take this as an attack, as I assume you of course know that now, but just to emphasize: That's where the problems start


No worries. Linux is a great gateway to unix, but it definitely takes some adjustment to move to BSD. Thankfully, most of the crowd who resented (looked down on?) LXers have been crowded out by more helpful, and almost tolerant folks who'll gently nudge these folks onto the correct path, so long as they're willing to learn and work at understanding. That said, there's no hope for the 'How come my nVidia MonsterStrobe 9000.x453, rev 29 2000 core GPU works fine with Arch, but won't composite properly in KDE 6 on FreeBSD" folks.


----------



## 20-100-2fe (Jul 17, 2020)

Zirias said:


> That's where the problems start



Definitely. I experienced that twice with FreeBSD.
First time was last century, I had no clue as to what to do once in the installer and couldn't go further. Second time was last year, but in the meantime, I had learned and practiced self-observation and it greatly helped.

I realized how conditioned to using Windows and Linux I had been, and also that I could use all I had learned with those systems to deal with FreeBSD instead of complaining or just feeling lost.

However, not everyone can do this. The pressure we have to live with nowadays is so strong that most people just try and get to the end of the day with what they are familiar with. They see the unfamiliar as yet another burden rather than as a positive experience.


----------



## zirias@ (Jul 17, 2020)

So, all you guys have more experience than me  I was always pragmatic, GNU/Linux (in Debian's flavor) worked fine for me for a very long time and I wasn't interested in anything BSD at all, cause there was no need. I hate to say it, but it was the introduction of more and more poetterware that changed that ... pulseaudio was already a PITA, but when Debian introduced systemd, I really hit some annoying problems, and only then I started to look for alternatives ... so, the first FreeBSD version I ever looked at was 11-CURRENT (yep, I ignored the warnings about running -CURRENT, cause FreeBSD 10-RELEASE didn't support my graphics card back then) and just had a go.

Anyways, just wanted to point out that much frustration can be caused by FreeBSD command line tools (and, if you're a programmer, APIs) can work _slightly_ different than on GNU/Linux. If you try it with the "just another (Linux) distro" mindset, you will fail. You have to be willing to try out something really different


----------



## Hakaba (Jul 17, 2020)

I choose FreeBSD for the ZFS support and jails (server side).
I install FreeBSD on a laptop with unsupported hardware because I was curious. Now this is my main computer. As you said you are curious, there is no bad choice, just enjoy to discover a new world.


----------



## diego (Jul 17, 2020)

decuser said:


> FreeBSD is to Fury and Ghost as Debian is to Mint and MX Linux.
> Dragonfly is to FreeBSD what Devuan is to Debian.
> FreeBSD is to NetBSD what Debian is to RedHat. It's not a perfect analogy, but it's mine .


I love this analogy !!

First time I tried Linux years ago was just impossible ( a nightmare)
Second time years later was "bearable"
Third time, it became my main system until  2019  + professional IT working 100% in Linux Environments

First time I tried FreeBSD: since 2019 ----> till today 

Plenty of feed-backs in this forums from people with a lot of experience on FreeBSD and beginners (as me)
Go for it. How much curious  you are?


----------



## mark_j (Jul 18, 2020)

20-100-2fe said:


> I've tested the main BSDs and my opinion on them is:
> [...]
> - NetBSD : good documentation, very interesting philosophy, problematic quality (e.g. package repositories, UTF-8 support)



I know it's your opinion, but I have been using netbsd (professionally ) for a long time and I've never had issues with pkgsrc (or fore-runners). The use of WIP repositories is another thing I like.

I would also add that NetBSD packages support many more architectures than FreeBSD. I cannot comment on OpenBSD.
Not all the packages available for x86/amd64 are available for Sparc (none?) or all Arm versions, on FreeBSD.

But, there's always a downside. It's a small OS, developer wise, and doesn't support the number of ports/packages FreeBSD does, but then again, who knows if anyone other than the porter actually uses half the stuff in the ports tree? 

But, overall, I agree with your assessment, FreeBSD is the better balanced OS [for Intel/AMD].


----------



## mark_j (Jul 18, 2020)

Zirias said:


> Don't take this as an attack, as I assume you of course know that now, but just to emphasize: That's where the problems start  The only thing BSDs have in common with GNU/Linux systems is that both are "Unix-like" and attempt to comply to POSIX. And it's at times surprising how much of the behavior of some command line tools (IMHO especially with GNU, but also with BSD) goes way beyond POSIX


GNU is Not Unix...


----------



## mark_j (Jul 18, 2020)

Cthulhux said:


> OpenBSD is easier to use on a  desktop than NetBSD, _in my opinion_. Of all BSDs, FreeBSD and its distributions GhostBSD, MidnightBSD, FuryBSD _et cetera_ are probably the most _comfortable_ though. (I like to call FreeBSD "the linuxiest BSD" for various reasons.)


I don't mind GhostBSD but the truly bizarre solution of choosing openRC as their init system defies logic.


----------



## mark_j (Jul 18, 2020)

Sevendogsbsd said:


> My experiences mirror those of *20-100-2fe* with the exception that I have used FreeBSD for a couple. of years very successfully and OpenBSD for about 30 minutes, very unsuccessfully. OpenBSD performance was terrible and the installer is very difficult and unintuitive to use. Yes, it does set up a desktop for you but at what cost. FreeBSD is fast, simple to configure and for me, worked very well, albeit you have to configure everything yourself, which takes a little bit of time but is quite easy.



I'm a bit like you. I only tried OpenBSD for the first time last week. My comments on it:
It uses a basic installer, not much better than the old FreeBSD sysinstall, but still functional.
It uses good-old disklabels for sectioning disks. Ah, brings back memories.
It uses device tree similar to FreeBSD.
Overall, it's a bit like the FreeBSD of the late '90s. That's not a bad thing, IMHO.


----------



## memreflect (Jul 18, 2020)

Hakaba said:


> I choose FreeBSD for the ZFS support and jails


Same here, plus bhyve means I don't need to deal with VirtualBox or QEMU wasting space on my drive.  It's not that I dislike them, but considering all I need is a small-ish Linux VM to be able to run docker and some other things, bhyve with sysutils/vm-bhyve is more than adequate.


----------



## olli@ (Jul 18, 2020)

memreflect said:


> Same here, plus bhyve means I don't need to deal with VirtualBox or QEMU wasting space on my drive.  It's not that I dislike them, but considering all I need is a small-ish Linux VM to be able to run docker and some other things, bhyve with sysutils/vm-bhyve is more than adequate.


I wish I could use bhyve, too … But I need to be able to pass raw devices (in particular, a BD drive) to the guest. VirtualBox supports that, but bhyve doesn’t.


----------



## Lamia (Jul 18, 2020)

olli@ said:


> I wish I could use bhyve, too … But I need to be able to pass raw devices (in particular, a BD drive) to the guest. VirtualBox supports that, but bhyve doesn’t.


I was under the impression that most , if not all, devices would passthru. One only needs to collect the desired PCI code/numbers (e.g. via dmesg) and enter into loader.conf and the specific VM conf.


----------



## olli@ (Jul 18, 2020)

Lamia said:


> I was under the impression that most , if not all, devices would passthru. One only needs to collect the desired PCI code/numbers (e.g. via dmesg) and enter into loader.conf and the specific VM conf.


You _can_ pass through a PCI device, but that doesn’t help me because I don’t want to pass through the SATA controller. That would be a bad idea. I only want to pass through the BD drive. VirtualBox lets me do that.


----------



## diego (Jul 18, 2020)

memreflect said:


> Same here, plus bhyve means I don't need to deal with VirtualBox or QEMU wasting space on my drive.  It's not that I dislike them, but considering all I need is a small-ish Linux VM to be able to run docker and some other things, bhyve with sysutils/vm-bhyve is more than adequate.


Agreed.
I have been using bhyve for docker and docker swarm with much better the performance than virtualbox

We have missed the point of this post --> Which BSD system choose?


----------



## hitest (Jul 18, 2020)

pirmat said:


> Good morning, I'm using Linux on my main PC, but now I have a second cheap pc that I don't use anymore, and I want to install a BSD system because I'm very curious.



I'm running OpenBSD 6.7 on an older T420 Thinkpad; it has a 2.5 GHz CPU, 8 GB RAM, and an 111 GB SSD.  It runs XFCE 4.14 well enough for my needs.  FreeBSD is also an excellent choice.  Check hardware compatibility before the installation.


----------



## teo (Jul 21, 2020)

hitest said:


> I'm running OpenBSD 6.7 on an older T420 Thinkpad; it has a 2.5 GHz CPU, 8 GB RAM, and an 111 GB SSD.  It runs XFCE 4.14 well enough for my needs.  FreeBSD is also an excellent choice.  Check hardware compatibility before the installation.


Interesting your comment, I would like a portable machine that recognizes BSD all the drivers and take full advantage of performance, for the reputation of failures that has the ThinkPad from a few years ago to the present would prefer one of the brand DELL with 500 GB or 1 TB of SSD or HDD.


----------



## decuser (Jul 21, 2020)

I heart my T430 w/FreeBSD 12.1 and Plasma as the desktop. No problems that I know of, but it's not that recent either. Dell's fine, too. In terms of performance, it's not a huge concern of mine, but I don't play games on it and I don't do video editing, YMMV.


----------



## pirmat (Jul 22, 2020)

Thanks to everyone for the replies.
I think I will try FreeBSD. For now, I don't install it in my main PC, but I can try the operating system, the program that I usually use and so on.
Just a curiosity: in wikipedia, I read this:

_Some BSD operating systems can run much native software of several other operating systems on the same architecture, using a binary compatibility layer. Much simpler and faster than emulation, this allows, for instance, applications intended for Linux to be run at effectively full speed.

https://en.wikipedia.org/wiki/Berkeley_Software_Distribution#Binary_compatibility _

FreeBSD have this functionality? how it works? If this is true, it means that I can run software for all operating system in a BSD?


----------



## SirDice (Jul 22, 2020)

pirmat said:


> FreeBSD have this functionality?


Read  the handbook: Chapter 10. Linux® Binary Compatibility



pirmat said:


> If this is true, it means that I can run software for all operating system in a BSD?


No, you can't. Although you can run various Linux binaries on FreeBSD the compatibility layer is far from perfect. Besides the kernel there are also various other considerations, like libraries. This is only for Linux. There's also an OpenSolaris compatibility layer, it's mainly used for ZFS. There used to be a System-V  R4 layer too but it was removed with 12.0. With regards to Windows software you're limited to what emulators/wine is capable of. There is no OS-X/MacOS compatibility.


----------



## olli@ (Jul 22, 2020)

pirmat said:


> _https://en.wikipedia.org/wiki/Berkeley_Software_Distribution#Binary_compatibility _
> FreeBSD have this functionality?


Basically, yes.


> how it works?


When a binary is executed, the kernel detects for which platform it was built (FreeBSD, Linux, …). If it is a non-native binary – i.e. not FreeBSD – two things happen: First, the kernel switches to an alternative set of system calls that implements the system calls of the binary’s target platform. Second, the location of file system paths is changed so that files are searched under /compat/_<platform>_ first. If it doesn’t exist there, it is searched in the usual place, i.e. rooted at “/”.

The above is a somewhat simplified explanation, but basically that’s how it works. And in fact it works surprisingly well. I'm using several Linux programs on FreeBSD that are closed-source or cannot be compiled on FreeBSD for other reasons. There are even some Linux programs in FreeBSD’s ports collection.

Note that you can even install a complete Linux system inside a jail(8) environment. FreeBSD provides special linprocfs(5) and linsysfs(5) file systems that can be mounted on /proc and /sys, respectively – They're not 100 % complete, but it’s enough to make most Linux programs happy.


> If this is true, it means that I can run software for all operating system in a BSD?


Not, not all. Currently, compatibility layers exist for Linux 32bit and 64bit binaries. In the past there existed several others to execute SysV and BSD/OS binaries, but those have been removed because nobody used them anymore.

To execute Windows programs, there is WINE, which works about as good as it does on Linux.

For everything else you need to run a guest OS inside a VM. FreeBSD has a native hypervisor named bhyve(4), but it also supports several 3rd-party hypervisors like VirtualBox (emulators/virtualbox-ose). Qemu (emulators/qemu) is an option, too.


----------



## wolffnx (Jul 22, 2020)

pirmat said:


> Thanks to everyone for the replies.
> I think I will try FreeBSD



good,go for the original
I am trying OpenBSD because of my work,and not feels so clean,fast than FreeBSD
maybe I have to learn,but my heart allways will be with beastie 
great performance,good documentation, good comunity, ZFS , jails,and you can tunning everything
great for the desktop and server(in my case need a L7 firewall ,for that I am trying OpenBSD) but the

```
PF
```
 ported in FreeBSD is more that enough,if 
	
	



```
PF
```
 is your choice of course


----------



## mark_j (Jul 23, 2020)

olli@ said:


> [...]
> 
> Not, not all. Currently, compatibility layers exist for Linux 32bit and 64bit binaries. In the past there existed several others to execute SysV and BSD/OS binaries, but those have been removed because nobody used them anymore.



Funny you should mention that as someone on one of the NetBSD mailing lists rued the "recent" loss of the bsd/os layer.


----------



## olli@ (Jul 23, 2020)

mark_j said:


> Funny you should mention that as someone on one of the NetBSD mailing lists rued the "recent" loss of the bsd/os layer.


Well, at some point, very old things need to be removed that get into the way of developing new features. This is especially true for things that don’t have a maintainer anymore, or that are difficult to maintain because none of the developers has hardware or software old enough to test the code in question. As a consequence, the code will rot and fail to work properly.

For those reasons, for example, FreeBSD removed SVR4 binary support, IBCS2 and COFF support, MCA bus support, and so on. FreeBSD used to support Xenix system calls, too (yes, really). FreeBSD 12 still has it, but 13 doesn’t. But actually I’m not sure if it still works, even on FreeBSD 12 or 11, because it’s not really easy to get your hands on some Xenix binaries for testing. Note that the last version of Xenix was released in 1991, that’s 29 years ago.

By the way, BSD/OS ended relatively “recently”, 17 years ago (in October 2003), but still that’s an eternity in OS history. In the same month, FreeBSD 4.9 was released.


----------



## donallen (Mar 3, 2021)

20-100-2fe said:


> I've tested the main BSDs and my opinion on them is:
> 
> - OpenBSD : very good hardware support, but: no user-centricity at all, poor performance, poor documentation, restricted and poorly maintained application offer


I disagree with some of this. The documentation is excellent, in my opinion (the FAQ and man pages are very comprehensive and accurate), and if you run Current, the application repository is pretty up-to-date and quite extensive. I am not a Theo de Raadt fan -- quite the opposite. I think that while he's clearly a major talent, he's a nasty piece of work. I've had my own run-ins with him and lost interest in the system because of him. But the system is undeniably good, in service of correctness and its security focus. It is definitely slower than Linux or any of the other BSDs, especially when you care about multi-core performance. But how fast is fast enough? Today's hardware is so fast that even a slow OS is often fast enough. Look at the prevalence of Python code in today's computing landscape. It's interpreted code, of course, but in a lot of situations it does the job.


20-100-2fe said:


> - DragonflyBSD : Was initially focusing on performance. However, FreeBSD has improved a lot since that time and I can't imagine any compelling reason to use DragonflyBSD over FreeBSD.


You are raising a legitimate issue. I'm a DragonflyBSD fan, but when I look at the benchmarks vs FreeBSD and Linux, I wonder whether the project still makes sense.


20-100-2fe said:


> In short, the only reason I can imagine for not using FreeBSD is that you get on so well with people using another BSD that you choose to use the same system as them to have an occasion to spend more time with them.  Which is a very good reason, as people are much more important than computers.
> 
> As a conclusion, I'd recommend you try them all to see where you feel the best.


----------



## scottro (Mar 3, 2021)

I don't know if it was the old Complete FreeBSD or even if it was Greg Lehey, though I'm pretty sure it was him, who wrote that each BSD's slogan helps give you a clue if they're the one you want.  I'm paraphrasing broadly, but I hope I keep the spirit of what he wrote. FreeBSD has the slogan, the power to serve. If you're looking for a server O/S it may be your best choice. NetBSD's slogan is (was? I don't see it on their home page now), Of course it runs NetBSD, meaning they emphasized clean, portable, code. OpenBSD's slogan, at the time was something like only one security hole in 20 years (it's changed slightly, but it's similar now), meaning, if security was your primary focus, it might be your best fit.

I don't know if DragonFly was around then.  I've not used Net or DragonFly in years. OpenBSD often is better at working out of the box on laptops. On the other hand, I've found it harder to multiboot it on a laptop with other systems if the laptop uses uefi boot, but I'm a moron, so that doesn't necessarily mean anything. FreeBSD, and some desktop oriented offshoots, such as GhostBSD and Hellosystem, all seem to run pretty well on laptops, as well as towers and servers. (I've only tried Ghost and Hellosystem on laptop, no idea on towers or servers). 

But as I think has been said, one good thing to try is running whatever suits your fancy in VirtualBox or other VM.  You might feel, Wow, this is great, or perhaps Wow, this was a mistake.  But my opinion, and everyone else's are, at the end of the day, just our opinions and your will matter most to you. 
(Boy am I great at stating the obvious or what? No applause, just throw money).


----------



## olli@ (Mar 9, 2021)

donallen said:


> Look at the prevalence of Python code in today's computing landscape. It's interpreted code, of course, but in a lot of situations it does the job.


Well, not exactly. Python source code is not interpreted. It is compiled into bytecode, which then runs on a Python VM – this is very similar to Java, and in fact there is a Python variant that runs on top of a Java VM instead. There are also JIT (just-in-time) compilers for Python, and compilers that produce C code (which in turn can be used to create native binaries), and so on. There is even a JavaScript implementation so you can run Python code in a browser (but the performance is probably not very good – I haven’t tried it myself, though)
 
Actually, today there aren’t many languages anymore that are purely interpreted. Basically, only the bourne shell comes to mind, but it isn’t used as the main language for any large, wide-spread projects (as far as I know). Even awk(1) uses a built-in bytecode compiler.
 


> You are raising a legitimate issue. I'm a DragonflyBSD fan, but when I look at the benchmarks vs FreeBSD and Linux, I wonder whether the project still makes sense.


I think Dragonfly BSD is a very interesting project. I used to have an installation of it running inside a VM, just out of curiosity and for playing around (I ditched it when I reinstalled the machine, but I plan to set up a new Dragonfly BSD VM again). It has some neat features, like variant symlinks (I really, _really_ wish FreeBSD had these, too!) and process checkpointing, and I also like the HAMMER file system that can do some things that ZFS can’t (and vice versa, of course).


----------



## zirias@ (Mar 9, 2021)

olli@ said:


> There is even a JavaScript implementation so you can run Python code in a browser (but the performance is probably not very good – I haven’t tried it myself, though)


It doesn't have to be too bad either, if the result follows at least asm.js conventions – modern browsers know how to optimize this. (the next step would be binary "webassembly")

As an example, here's a vice 2.4 (Commodore emulator written in C) compiled to asm.js using emscripten (which works with llvm), so it runs entirely in the browser: https://vice.janicek.co/


----------



## mark_j (Mar 9, 2021)

olli@ said:


> [Snip]
> 
> I think Dragonfly BSD is a very interesting project. [Snip] It has some neat features, like variant symlinks (I really, _really_ wish FreeBSD had these, too!).


And NetBSD has 'magic' symlinks...


----------

