Live data from Hacker News

FreeBSD Quickstart Guide for Linux Users

freebsd.org

31–40 of 45 posts

Re: FreeBSD Quickstart Guide for Linux Users

#31
post #30

Earlier quoted context omitted.

There are a lot of reasons. The ports system has already been mentioned, and some people really like ZFS. More to the point, though, licensing differences ensure that more software (like ZFS) is legally compatible with FreeBSD than with any typical Linux+GNU distribution. It has also been mentioned that FreeBSD is "a sysadmin's dream". A big part of the reason for this is its userland. The truth of the matter is that…

Also, (I haven't run a BSD for several years, but, from memory) one of the biggest philosophical differences is that *BSD runs a monolithic kernel whereas Linux runs a modular kernel. Might not sound like much, but it is very different mindset when it comes to security, user-land and such. Is that still the case?

All three of the major BSD derivatives have the ability to put parts of themselves in modules. They are all monolithic kernels, as is Linux.

Monolithic, in kernel speak, does not refer to having everything compiled in; it is more concerned about what is in kernel space (can do anything it wants with the hardware) and what is in user space (what is restricted at the hardware level to playing in its own memory). Monolithic kernels have pretty much everything in memory, and microkernels have pretty much everything in moderately-privileged userspace processes that talk to each other via message passing.

Re: FreeBSD Quickstart Guide for Linux Users

#32

Great guide. It tells me how. Is there a similar document that tells me why? The main thing I can think of is kqueue, but I'd love to see a list of all the features BSD gives me but linux doesn't (and vice versa).

In my experience, FreeBSD's greatest asset doesn't fit well on a feature list. It's that it has a different attitude towards change than Linux.

Linux is a diverse ecosystem, with tons of experiments driving it forward. Different package managers, different kernel patches, different userland configurations, different means of administration... and that's a great thing.

FreeBSD is not diverse or experimental. FreeBSD is a deliberately moving beast, that adopts technologies and ideas in a more methodical manner, often after other OS's (OpenBSD / NetBSD / DragonflyBSD / Solaris / Linux / OS X) have proved that the ideas are solid, and lasting, and then it integrates them carefully, so it still looks like FreeBSD (but with some new capabilities, or better performance, or whatever), rather than having drastically different administration mechanisms, or performance characteristics, or anything else.

Personally, I like this stability. I like that it's a platform that once learned, can be largely forgotten about. But that said, it does require learning first, and while it's powerful, it's not shiny or sexy. But even excluding the man pages and documentation, zfs, the pf firewall, and many other things I like about FreeBSD, this is the winner for me. I just love that it doesn't change unless the change is a large win.

Re: FreeBSD Quickstart Guide for Linux Users

#33

Earlier quoted context omitted.

> All the reasons to prefer FreeBSD (network & VM performance, stability, security, etc) are no longer clear advantages when compared to contemporary Linux. Really? Why don't you think stability and security are important? What about consistency of interface between tools in a single system, and adherence to expectations of standard tools that make sense to the user (e.g., man pages instead of GNU Info pages, which a…

I was a little unclear. My main point is that many of the things that made FreeBSD such a strong leader years ago are no longer weak points in Linux. I agree with you though otherwise. From a cleanliness, usability, and aesthetics point of view, the state of Linux is pretty sad, especially when compared to FreeBSD. Linux could also learn a little bit about documentation from FreeBSD's excellent handbook. EDIT: Let me…

Okay, fair 'nuff.

> EDIT: Let me also say that I'd really like to see the OpenSolaris devs jump to the FreeBSD team and help drive FreeBSD further.

I can definitely agree with that.

Re: FreeBSD Quickstart Guide for Linux Users

#34
post #30

Earlier quoted context omitted.

There are a lot of reasons. The ports system has already been mentioned, and some people really like ZFS. More to the point, though, licensing differences ensure that more software (like ZFS) is legally compatible with FreeBSD than with any typical Linux+GNU distribution. It has also been mentioned that FreeBSD is "a sysadmin's dream". A big part of the reason for this is its userland. The truth of the matter is that…

Also, (I haven't run a BSD for several years, but, from memory) one of the biggest philosophical differences is that *BSD runs a monolithic kernel whereas Linux runs a modular kernel. Might not sound like much, but it is very different mindset when it comes to security, user-land and such. Is that still the case?

What koenigdavidmj said is true. The kind of "modular" that applies to the Linux kernel (and applies just as much to the FreeBSD kernel) is not the same kind of "modular" as you get with a microkernel OS like MINIX 3. All the major BSD Unix systems and any OS that uses a Linux kernel are all monolithic kernel OSes.

Re: FreeBSD Quickstart Guide for Linux Users

#35

Great guide. It tells me how. Is there a similar document that tells me why? The main thing I can think of is kqueue, but I'd love to see a list of all the features BSD gives me but linux doesn't (and vice versa).

There are a lot of reasons. The ports system has already been mentioned, and some people really like ZFS. More to the point, though, licensing differences ensure that more software (like ZFS) is legally compatible with FreeBSD than with any typical Linux+GNU distribution. It has also been mentioned that FreeBSD is "a sysadmin's dream". A big part of the reason for this is its userland. The truth of the matter is that…

I would just like to point out that I'm pretty sure ports is the longest running joke in UNIX-like systems.

It always gets held up as an example of why FreeBSD is superior to Linux, and that's just insane. Its dependency resolution capabilities are awful, its third party repository capabilities non-existent, scripting it is an exercise in frustration, packaging for ports is easy but leaves me with feelings of horrible guilt because of the complete and utter lack of regard for the sanity of the end user, uninstallation is laughably weak particularly with regard to dependencies, and that's just the obvious deficiencies in the ports system. When you dig deeper, you find that the binary packages are universally unusable (often they don't even run because the libs they link against have been upgraded in the repository without updating the packages that depend on them), that you can't query ports for the actual state of the filesystem vs. what it thinks the state of the filesystem is because it simply doesn't know, and the list goes on and on. I find something new to hate about ports every single time I have to build something for it. apt-get and yum are vastly superior to ports in pretty much every single regard, though they are slightly harder to use for packaging software (but since ports doesn't support third party repositories in any reasonable fashion it doesn't matter, since you can't use the native package management on FreeBSD to distribute your applications anyway).

Sorry for the angry rant, but my level of disgust at seeing ports held up as an example of something good about FreeBSD is impossible to contain.

I generally think FreeBSD is a very fine operating system, with good documentation, and a very smart community. But, it's not because of ports.

Re: FreeBSD Quickstart Guide for Linux Users

#36
post #13

Earlier quoted context omitted.

Sounds like Gentoo's system to me. (And, of course, my BSD-loving friends hold Gentoo to be the most bearable Linux.)

Gentoo effectively copied FreeBSD's port system.

And they both suck. ports and portage are horrible excuses for package management.

Re: FreeBSD Quickstart Guide for Linux Users

#37

Earlier quoted context omitted.

There are a lot of reasons. The ports system has already been mentioned, and some people really like ZFS. More to the point, though, licensing differences ensure that more software (like ZFS) is legally compatible with FreeBSD than with any typical Linux+GNU distribution. It has also been mentioned that FreeBSD is "a sysadmin's dream". A big part of the reason for this is its userland. The truth of the matter is that…

I would just like to point out that I'm pretty sure ports is the longest running joke in UNIX-like systems. It always gets held up as an example of why FreeBSD is superior to Linux, and that's just insane. Its dependency resolution capabilities are awful, its third party repository capabilities non-existent, scripting it is an exercise in frustration, packaging for ports is easy but leaves me with feelings of horribl…

> Its dependency resolution capabilities are awful

Funny. I had more problems with APT dependency resolution than with ports dependency resolution, probably by an order of magnitude, despite the fact that APT was the best package system I had encountered in Linux-land.

> its third party repository capabilities non-existent

I must admit that APT's third-party repository capabilities are pretty nice. On the other hand, I have not needed a third-party repository with FreeBSD yet, so I have no basis for comparison.

> scripting it is an exercise in frustration

Strange. I've scripted half a dozen different things for working with ports, because it was so easy to do, then subsequently found out that someone else had not only already done the same thing but done it better and committed it to ports. Your experience is obviously much different from mine.

> packaging for ports is easy but leaves me with feelings of horrible guilt because of the complete and utter lack of regard for the sanity of the end user

What's so insane about its (lack of) regard for the end user? Do you just think end users should never have to wait for a compile to finish? Is this an implied rehash of what you've already said? What exactly is the problem in this case?

> uninstallation is laughably weak particularly with regard to dependencies

Uninstallation appears about on par with APT from where I'm sitting.

> the binary packages are universally unusable

I don't bother using the binary packages, for the most part, but I know there are bunches of people who basically run their FreeBSD systems entirely off binary packages. I suspect they would disagree with your assessment.

> you can't query ports for the actual state of the filesystem vs. what it thinks the state of the filesystem is because it simply doesn't know

Example, or clearer explanation, please.

> since ports doesn't support third party repositories in any reasonable fashion it doesn't matter, since you can't use the native package management on FreeBSD to distribute your applications anyway

I find this difficult to believe, but what the hell -- I haven't bothered looking into it. I'll just accept what you say for argument's sake, for now.

> Sorry for the angry rant, but my level of disgust at seeing ports held up as an example of something good about FreeBSD is impossible to contain.

That's obvious. Too bad your disgust for it runs completely counter to my own experience.

Re: FreeBSD Quickstart Guide for Linux Users

#38

Great guide. It tells me how. Is there a similar document that tells me why? The main thing I can think of is kqueue, but I'd love to see a list of all the features BSD gives me but linux doesn't (and vice versa).

There are a lot of reasons. The ports system has already been mentioned, and some people really like ZFS. More to the point, though, licensing differences ensure that more software (like ZFS) is legally compatible with FreeBSD than with any typical Linux+GNU distribution. It has also been mentioned that FreeBSD is "a sysadmin's dream". A big part of the reason for this is its userland. The truth of the matter is that…

> The GNU project very much as a "not invented here" problem, where it not only wants to replace everything in the world -- even when it's "free software" -- with something weird and less usable that bears the GNU stamp on it.

Oops. I lost track of how I was writing that sentence about halfway through. I meant to say this:

The GNU project very much as a "not invented here" problem, where it not only wants to replace everything in the world -- even when it's "free software" -- but chooses to do so with something weird and less usable that bears the GNU stamp on it, and works in a fully incompatible manner.

(emphasis to point out the differences)

Re: FreeBSD Quickstart Guide for Linux Users

#39
post #30

Earlier quoted context omitted.

Also, (I haven't run a BSD for several years, but, from memory) one of the biggest philosophical differences is that *BSD runs a monolithic kernel whereas Linux runs a modular kernel. Might not sound like much, but it is very different mindset when it comes to security, user-land and such. Is that still the case?

All three of the major BSD derivatives have the ability to put parts of themselves in modules. They are all monolithic kernels, as is Linux. Monolithic, in kernel speak, does not refer to having everything compiled in; it is more concerned about what is in kernel space (can do anything it wants with the hardware) and what is in user space (what is restricted at the hardware level to playing in its own memory). Monoli…

Er, I apparently cannot be bothered to read my own posts.

s/Monolithic kernels have pretty much everything in memory/Monolithic kernels have pretty much everything in kernel space/

Re: FreeBSD Quickstart Guide for Linux Users

#40

Earlier quoted context omitted.

I would just like to point out that I'm pretty sure ports is the longest running joke in UNIX-like systems. It always gets held up as an example of why FreeBSD is superior to Linux, and that's just insane. Its dependency resolution capabilities are awful, its third party repository capabilities non-existent, scripting it is an exercise in frustration, packaging for ports is easy but leaves me with feelings of horribl…

> Its dependency resolution capabilities are awful Funny. I had more problems with APT dependency resolution than with ports dependency resolution, probably by an order of magnitude, despite the fact that APT was the best package system I had encountered in Linux-land. > its third party repository capabilities non-existent I must admit that APT's third-party repository capabilities are pretty nice. On the other hand,…

"Funny. I had more problems with APT dependency resolution than with ports dependency resolution, probably by an order of magnitude, despite the fact that APT was the best package system I had encountered in Linux-land."

With ports it is entirely possible to install a package that does not work completely or at all due to missing dependencies. This is not something you ever need to think about with apt-get or yum. But on FreeBSD, I found it to be true of three or four packages out of a dozen or so that our software depends on (Apache, in particular, is really easy to screw up if you want any reasonable feature set; the ProFTPd port was broken for years). If you'd like an example, try installing the Apache port with all the major features that you'd expect in a virtual hosting environment, without intentionally installing all the pre-requisites in advance. You'll find that you've got a steaming pile of wreckage at the end of your nice long wait for it to build.

"Uninstallation appears about on par with APT from where I'm sitting."

It's trivially easy to remove a package required by other packages with ports. Meaning that it's entirely possible to break vast swaths of your system without warning.

"I don't bother using the binary packages, for the most part, but I know there are bunches of people who basically run their FreeBSD systems entirely off binary packages. I suspect they would disagree with your assessment."

I simply can't believe anyone could run a fully functional, and secure, FreeBSD system on nothing but binary packages. Many of them simply do not work once you bring the system up to date. The libraries move out from under the binaries, and they simply stop functioning. Either they'd be running an out of date, and thus insecure, system, or they're having to rebuild packages along the way to keep things working (and they'd have to test to know which stuff is broken, because ports and the pkg tools won't warn you when you're breaking stuff by updating software).

I also don't understand the mindset of anyone that chooses to wait hours for their system to be useful while they wait for a huge stack of ports to build. How little is your time worth to you?

"> you can't query ports for the actual state of the filesystem vs. what it thinks the state of the filesystem is because it simply doesn't know

Example, or clearer explanation, please."

rpm -V httpd

This command verifies the installation of httpd. Does what's running on the system match what the package contains? If not, it tells you which files have changed.

There is no equivalent for ports that I know of, and I'm pretty sure it would be deeply non-trivial to implement such a command because I don't think ports have a manifest or any sort of particular knowledge about what the payload of the package is. ports provides very little means of finding out what's already running on the system, which, from the perspective of someone trying to automate installation of a huge array of packages, while avoiding breaking any existing packages that the user may have pre-installed with custom options, is a pretty horrible experience.

"> since ports doesn't support third party repositories in any reasonable fashion it doesn't matter, since you can't use the native package management on FreeBSD to distribute your applications anyway

I find this difficult to believe, but what the hell -- I haven't bothered looking into it. I'll just accept what you say for argument's sake, for now."

Yeah, I find it difficult to believe, too. It's just stupid, but it's true. You can build a pkg and install it, but then there's no way to keep it up to date via native means (except requiring the user to download and install new pkgs over time, which is unacceptable when there are dozens of packages to deal with). You could also fudge your port into the ports tree, but that's undocumented, and the FreeBSD developers I talked to said it was a bad idea, and besides it still doesn't solve the problem of keeping your packages up to date using native means. You'd have to write a script or something that the user would need to run in addition to the usual ports management stuff to keep downloading and munging in your ports.

So, if you want to distribute a pile of applications and keep them up to date, you have to build your own update management system. Our products already have one (because it runs on hundreds of operating systems and versions, most of which don't have reasonable package management), but we strongly prefer to keep it native, since people already understand how to keep their system up to date using yum or apt-get, or whatever. We don't have that ability on FreeBSD.

"> Sorry for the angry rant, but my level of disgust at seeing ports held up as an example of something good about FreeBSD is impossible to contain.

That's obvious. Too bad your disgust for it runs completely counter to my own experience."

Give it time.

Post reply on HN