FreeBSD Kernel Internals Documentation

Da Rock freebsd-questions at
Sat Dec 31 23:07:01 UTC 2011

On 01/01/12 06:32, David Jackson wrote:
> An OS should strive to be a better platform for many people, including
> techies and non-techies.
> A good software design philosophy is that good software  works out of the
> box without configuration using reasonable defaults, but, that that the
> software should be flexible, very configurable, the user should be able to
> configure everything how they need it, but they should not be required to.
> This allows the user to configure as much or as little as they want.
> Everything should be able to be accomplished with both GUI and CLI, and API.
> The entire system should be well understood, well documented and
> transparent . Its like a car, its better to have a car that has a spacious
> engine compartment and is very well documented in service manuals so that a
> car mechanic can easily fix it. While not every user may want  to get under
> the hood, a spacious, well documented and easy to fix space under the hood
> makes the mechanics job easier of fixing the car. The car being made more
> reliable and easier to use as well means that the common driver has fewer
> breakdowns. Windows is a terrible OS because its like a car with the entire
> engine area sealed in a compartment that can only be opened with the car
> manufacturer with a key, so mechanics cannot even repair it.
> There is no dount that UNIX is a better design system, due to the fact it
> is open and the underlying systems are well understood, well defined and
> well known, including due to the Unix philosophy of modularisation of
> components.
> I am in full agreement with Unix design philosophies and unix conventions.
> I definitely oppose any effort to re-invent Unix or break with unix
> conventionsand philosophies. It has been said that people who try to
> reinvent Unix will do so poorly. I agree. I am very much in favour of
> respecting Unix traditions, backwards compatability and conventions. For
> instance, supporting the X11 Window System i think is something that we
> should always commit to, it is important for compatability and for the
> flexibility it provides.
> I think tis okay to build additions to the system, but in addition, to the
> existing components, not to overthrow existing parts of the system.
> Backwards compatability is very important which is why it is important to
> respect conventions such as POSIX.
>   I think that we can create a GUI front end built on top of the Unix system
> that helps manage and configure the underlying Unix system for non-techie
> users. This is layered design that gives us both the techie friendliness
> and controllability of Unix and a GUI front end over that for non-techies.
> No one should be required to use a GUI front end and should be able to
> directly edit configuration files if they want and use the rich CLI that
> FreeBSD has. This is a philosophy i like of allowing  users to exercise as
> much or as little fine control over the system as they want.
> An OS can be both techie and non-techie friendly by create GUI layer that
> is built over the underlying Unix system where more common features are put
> up front in the GUI, and advanced configuration in advanced screens, and
> layering the GUI on top of other layers which can be directly accesssed by
> techie users if they need to do so. This is the layered design where the
> GUI can serve as a front end layer to the underlying Unix system
> components. The techie users can directly access these underlying
> components if needed.
> GUIs as well can serve and be useful to both techie and non techie users,
> advanced configuration settings can be placed in advanced screens and so
> forth.
> A good GUI does not come from having few features, good, useable software
> has lots of features and is very flexible. Features should never be
> withheld because users are viewed to be too stupid. Good GUI design comes
> from good layout and putting more advanced features deeper in the UI, so
> they are there if needed.
Ok. Stop there... have you ever _really_ considered what a gui should 
look like or how it should work? I agree with you that a gui should be 
available to use, but after considering _all_ the options available its 
near impossible, not to mention how many different systems you'd have to 
provide for. I've been trying to work this out for years, so believe me- 
I know.

Also, talking about simplicity and working "out of the box", a lot of 
the software has been set by the great people maintaining the ports 
system, so when you install the software and set "service_enable='YES'" 
in the rc.conf it usually works, and you can then tweak as necessary.

The closest "gui" I've seen would be web app under www/ in ports, 
supposedly used for ISP's to maintain servers simply in a CPanel-like 
interface. It looks good , but I'm not 100% happy with it as it relies a 
lot on database systems now owned by a rather greedy Corp intent on 
world domination it seems :).
> 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.
> I do think that, hardware driver backwards compatability should be provided
> perhaps through a compatability layer that can be loaded into the kernel as
> a module, and perhaps could be a porting of the IOKit driver system from
> Darwin, perhaps even allowing Darwin drivers to be used on FreeBSD. All of
> this can go into a kernel module so that if all one uses is native FreeBSD
> drivers made for FreeBSDs normal driver API, they won't need to load this
> subsystem.
Mac doesn't support all hardware from what I understand, and the only 
system with 100% hardware support is Winblows. Given the design 
philosophy of Winblows, how well written do you think the hardware 
drivers are coded? For that matter, how well do you think the hardware 
is made? From my meanderings on this list and others a lot of hardware 
needs software compensation for it to work as well as it does on FreeBSD 
and even linux.

Been down that track too, and came up wanting as well. Sorry, but thats 
the fact. A better idea would be to donate hardware? help with testing, 
coding, docs (whatever you can do)? donate money to the foundation to 
help pay for the developers to write the code necessary to get your 
hardware working. And if you aren't satisfied that the money is going to 
where you need it, then hunt down a programmer and pay them to write the 
driver for you, and submit it to the FreeBSD Team to commit or put in ports.

Not exactly what you're hoping for I know, but thats the facts, and I 
can sympathise with you as I'm in the same boat. I'm still trying to 
crack driver building myself :)

More information about the freebsd-questions mailing list