FreeBSD Kernel Internals Documentation

Nikola Pavlović nzp at
Tue Jan 10 14:06:00 UTC 2012

On Mon, Jan 09, 2012 at 03:56:39PM -0500, David Jackson wrote:
> > And that's just the way it is now.  Try replicating the wealth of
> > information you get in various config files in FreeBSD in a GUI.  Just
> > how hard it is to open a simple text file in an editor and just fracking
> > do what it tells you to in comments?!  And it's not just the base
> > system, any decent third party program has this wonderfull feature.  How
> > hard can it be?!  Seriously.  Sure, sometimes things can get confusing
> > but that's the nature of any complex system, you can't make it go away
> > with a GUI.
> >
> >
> I absolutely agree that no one should be required to use a GUI. it should
> be there for those that want to use it. But you should be able to directly
> use config files if you would like, the GUI in any case would just be a
> front end to config files that, you would not need to use the GUI if you do
> not want to. A GUI for some users can improve useability.

Well, as I said, there's PC-BSD.  I haven't tried it, and don't have a
need for it, but as far as I can tell people who like that sort of stuff
seem to enjoy it.  And if one would like to work on such tools, it's the
place to do it because a) it exists and that's its purpose, and b)
because of a) FreeBSD should be then left free of such complications and
focused on substance.

One problem with your approach is that it never stops at "just being a
front end to config files".  I don't know why this is so, but in
practice it seems that every time you try such a thing it becomes a
mandatory unmaintainable mess.  At lest that's how it ends up on
Unix(-like) OSes.  Or it ends up sort of working, but you're stuck with
GUI developers' assumptions on how stuff works and should be done.

I think that FOSS community just needs to accept that different categories
of users have different needs and one single OS can't be everything to
every person.  "World domination" ideas are just silly and pointless, or
as Bill Joy said: "What was the goal of the Linux community--to replace
Windows? One can imagine higher aspirations."

I think recent developments with tablet computers are showing that most
people kinda don't need, or even want, a full blown workstation/desktop
computer and OS overhead that comes with it.  I have my serious
reservations on where this trend will lead us, and I'm not really
comfortable with it (fortunately, people are becoming aware of these
issues, see various discussions on the decline of general purpose
computer and similar on the net and meatspace), but on the other hand I
can't deny it makes sense.  Fortunately this battle is not yet lost and
projects like CyanogenMod are extremely important, as is strong activism
towards mobile hardware vendors to make their devices open and standardized the
way PC architecture (for the most part) is.  HTC decided to sell
easily unlockable phones because of consumer pressure, so it can be

On the other hand, I don't think people who can help improve FreeBSD and
make it continually viable for it's real purpose (server and professional
workstation) are scared of config files and vi.  On the contrary.  (Same
goes for other two major BSDs).

> > >
> > > I think that we should be pragmatic about binary drivers and that it
> > better
> > > to accept and welcome binary drivers from hardware companies. Open source
> > > drivers should of course be developed, then users can use the open source
> > > drivers as they become available, but, until then, they can use the
> > binary
> > > driver, or use a binary driver for more rare and unusual hardware.
> > >
> >
> > You are either confusing FreeBSD with OpenBSD or just plain trolling.
> >
> >
> I would never troll.  Everything I say is my sincere view, I do not say
> anything to offend people.

I believe you, but seriously, AFAIK FreeBSD has never been too hostile
to binary blobs.  Most of the time when a blob is necessary and
nonexistant it's the case of a vendor being lazy or incompetent.  Or
they just sell mass market junk hardware and are only interested in
Windows no matter what you do.

Some printer vendors are perfect examples of retarded--printers don't even
need a kernel space driver, or at least shouldn't need one, all that is
required is a filter you can plug into pretty much standardized Unix
printing schemes; hell, even Apple insists that printers have no place
inside the kernel.  If they are such bottom feeders that they are
incapable of making a program to convert Postscript input to their
stupid proprietary control language, I'm afraid there's not much FreeBSD
can do about that.

> As for my idea for a driver compatability layer of some sort, I have looked
> into doing that myself, Its not something i have asked anyone to do, that
> is the reason I have been studying the freebsd kernel.

I've taken a quick look at I/O Kit docs when you mentioned it (it's an
interesting idea).  IANA kernel developer, but it doesn't seem
viable.  Apple cites ireconcilable differences[1] :), unfortunately.  And
there's of course the problem of C++ not being an option for kernel
developement so it would have to remain outside the base system even if
you could hack something.

> I think that, a description, some sort overview of how the kernel is put
> together, where things are, such as the location of the PCI system in the
> source tree and so on and how things fit together overall is something that
> I was sort of looking for as far as documentation, especially. in my
> comparison of source code, it seems like FreeBSD is about the same as far
> as source code comment quality, and Minix has much more descriptive source
> code comments.

It's not a surprise considering that Minix is basically a teaching OS.
Its whole purpose is to be well documented and easy to understand.  It
helps if you're doing an academic exercise and you're not constrained by
deadlines, grants and, usually, real life. :)

Have you looked at Reading the FreeBSD Kernel[2], by R. Watson?  It
seems like a nice overview.  There's also a list of docs on the
forums[3] and others have already mentioned "Design and Implementation
of..." books.  BSDConferences channel on Youtube[4] also tends to have
informative stuff.



The worst part of having success is trying
to find someone who is happy for you.
		-- Bette Midler

More information about the freebsd-questions mailing list