Linked by Eugenia Loli on Mon 28th Apr 2003 15:48 UTC
Original OSNews Interviews Today we feature an in-depth interview with three members of FreeBSD's Core (Wes Peters, Greg Lehey and M. Warner Losh) and also a major FreeBSD developer (Scott Long). It is a long read, but we touch a number of hot issues, from the Java port to corporate backing, the Linux competition, the 5.x branch and how it stacks up against the other Unices, UFS2, the possible XFree86 fork, SCO and its Unix IP situation, even re-unification of the BSDs. If you are into (any) Unix, this interview is a must read.
Permalink for comment
To read all comments associated with this story, please click here.

From the original article:

> FreeBSD 5.0 has come out, and while this was mostly a
> "preview" > of sorts, many were unhappy with the
> instability and slowness the
> 5.0 release offered compared with the 4.x branch.

The responders all missed noting that after 5.0 came out, 4.8 came out -- for exactly this reason. In other words, development is actively continuing on the 4.x branch, which is the recommended branch for people to run production systems on while the 5.x tree undergoes its shakedown cruise. It is likely that the "push" to get people to upgrade to 5.x won't happen until 5.1, or more likely, even 5.2, has been out for a while.

There were simply too many large changes in 5.0 -- many of which had interactions -- to hold off releasing it any longer. (There is a development roadmap at http://www.freebsd.org/doc/en/articles/5-roadmap/ that goes into much more detail about the future plans).

From other's comments:

> The Apache 2 httpd.conf file is installed in
> /usr/local/etc/apache2/ - This may be even par for the
> course even for Linux distros I haven't run,
> but not for the ones I have (which install into,
> usually, /etc/httpd/ or /etc/apache).

The FreeBSD philosophy, since it avoids the "distribution" paradigm in favor of the "one source base" paradigm, winds up including a very minimal subset of applications in the "base system". This is entirely by intention. So, for instance, Apache is not part of the "base system": it's a "port". Ports are expected to be generally well-behaved in terms of modularity: thus, by implication, they only install their configuration files under directories outside the traditional places such as /root and /etc. By default, it's /usr/local, but you can change it. (There are probably ports that don't get it right if you do change it, but those are defined as bugs).

A side-effect of this philosophy is that ports are expected to cleanly de-install themselves when asked to. Ports that don't cleanly de-install are defined as having bugs, too.

Thus, the risk for "just trying" a port is lower, since no system files are supposed to be messed with.

> In FreeBSD, you edit a large textfile filled with
> commented and uncommented lines for each [kernel] module
> you want compiled in. I didn't see any menuconfig type
> tool like there is in Linux.

No one commented on the fact that in 5.x there is a new "hints" mechanism for specifying things such as IRQs and other common configuration information _outside_ your kernel build. A great deal more work has gone into making this work smoothly (and thus probably saving many more users having to build kernels) than has gone into making the kernel build itself easier.

> Every single application I run in Linux is available via
> ports, and there are *thousands* of them.

8595 as of yesterday's checkout :-)

It's important to emphasize that you don't have to "hunt around" for a version that will plug into your system. Each port maintainer is responsible for making sure that each port "plays nice" both in terms of installing, deinstalling, and (for all but the binary-only ports) compiling. If it doesn't, file a Problem Report (PR)!

To reiterate, there is none of this "hunt around for an RPM that works" effort needed, which I personally found annoying under Linux. It's cd /usr/ports/<category>/<portname>; make install. If it doesn't work, it's a bug. (Given that most ports require installation as root ... but people are interested in fixing that.)

> Why hasn't someone made a "distro" of FreeBSD?

Well, in the FreeBSD philosophy -- you don't! The system exists in terms of "base functionality" (kernel and minimal toolset) and "ports" (all applications).

Now, the system installer "suggests" some combinations of ports that most people will want (XFree86 & related things being one).

But you can always design your own -- just make it itself a "port" that installs nothing of its own, merely defines dependencies on other ports. See, for example, the ports contributed by teh aforementioned Greg Lehey, http://www.freebsd.org/cgi/cvsweb.cgi/ports/misc/instant-server/ and
http://www.freebsd.org/cgi/cvsweb.cgi/ports/misc/instant-workstatio... .

Of course, it turns out that some ports are "more equal than others". Even though Perl is not installed in the base system, almost inevitably it'll be installed as a dependency from some other port (I did mention that all ports check for, and if necessary install, all their dependencies, didn't I? :-) ) Also the canonical port to manage the ports collection is portupgrade; almost everyone will want to start with that.

Next to last comment:

Having said all this nice stuff about FreeBSD, it's fair to say that the system installer is graceless and has aged very badly. It is fine to use _but only once you understand exactly what it's doing_. I found it very counterintuitive to learn.

But everyone who hates the installer, once they're done with it, then goes on to work on other, more fun, stuff, and thus the old installer remains :-) But I think it's also fair to say that a lot of people would welcome its retirement.

Final comment:

As for some of the questions of "why isn't XYZ available", the plain and simple answer is that no one's done it yet -- same as any other Open Source project :-)