Church of BSD
Unix Program

The Church of BSD: Background

We are not a Satanic Cult Although we may be a cult, this has yet to be determined

One day I was at a restaurant explaining process control to one of my disciples.
I was mentioning how we have to kill the children (child processes) if they become unresponsive. Or we can even set an alarm for the children to kill themselves. That the parent need to wait (wait3) and acknowledge that the child has died or else it will become a zombie.

The look of horror the woman sitting across had was unforgettable. I tried to explain it was a computer software thing but it was too late, she fled terrified, probably to call the police or something. I didn't really want to stick around too long to find out.

From: man ps Z Marks a dead process (a ``zombie'').
Hey, you just can't make up shit like this.

Don't forget that you have to Fork to Spawn Children, and the only way to Kill

On another occasion while being filmed doing a live video streaming event with Arthur C. Clarke, The camera filmed me key flying across the keyboard typing "kill 666". Just sort of odd the process ID, I didn't think much of it till It ended up in the final cut of a documentary video made about it.

And what about "chmod 666".

They say when you play a Microsoft CD backwards you can hear satanic messages...but that's nothing, if you play it forward it will install Windows!

And what about Chuck?

One another occasion a very christian individual was noticing the devil logo, I tried to explain it was a daemon, not demon or devil and didn't have any satanic meaning, again they freaked.

You have to admit, that's sort of a Satanic symbol if you ever saw one, right?

"Many people equate the word ``daemon'' with the word ``demon,'' implying some kind of Satanic connection between UNIX and the underworld. This is an egregious misunderstanding. ``Daemon'' is actually a much older form of ``demon''; daemons have no particular bias towards good or evil, but rather serve to help define a person's character or personality. The ancient Greeks' concept of a ``personal daemon'' was similar to the modern concept of a ``guardian angel'' --- ``eudaemonia'' is the state of being helped or protected by a kindly spirit. As a rule, UNIX systems seem to be infested with both daemons and demons." (p403)

The earliest (and most popular) renditions of the BSD Daemon were created by John Lasseter.

That cute little red guy with the pitch fork is named Chuck
First Drawing with the Daemon Logo defines Daemon as A program or process that sits idly in the background until it is invoked to perform its task.

Historicaly though I always though of Chuck as more of a Gremlin really very much like the one portrayed in a Bugs Bunny cartoon "Falling Hare (1943)" before it was restored.

Officialy Gremlins started in the 1920 at a RAF term for a low-ranking man saddled with oppressive assignments.

Gus the Airplane Military Insignia

Although this terms really take on color in World War II as a "an imaginary gnomelike creature who causes difficulties in aircraft."

Military Airplane Insignias

Also the Irish Gaelic word gruaimin, "ill-humored little fellow."

drawing from Roald Dahl's book, "The Gremlins" Front Cover
This very much conjures up visions of these little gremlins running about secretly doing things.

From Roald Dahl's book, "The Gremlins"
"I've just found a nest of widgets," he said, and looked around in triumph.

"Widgets?" said Stuffy. "Widgets? Never heard of them!"

But Jamface went on. "As I said, I've just found a nest of widgets located in the rear turret of my plane. There were twelve of them . very young ones."

"What are widgets?" asked Gus.

"It's very simple," said Jamface. "Widgets are the young of gremlins and fifinellas. No one knows until they grow up whether they are going to turn into males or females, but it's usually males; in each nest of twelve widgets only one will eventually turn into a fifinella."

Why the Church of BSD

BSD has been through many Holy Wars and has been called a religion by many people for a long time. Even it's experts are called Guru's , High Priests and Wizards. What BSD programmers do has sometimes been called VooDoo, Alchemy and Black Magic. People who violate our way of doing things are declared Heretics, and publicly flamed! We even have our own official canonical way of doing things and this is in the source code.
The Source code is our Bible.

It seems we are long over due for a formal Church of BSD.

Canonical is an adjective derived from canon. It essentially means "standard", "generally accepted" or "part of the back-story." Canonical in my context means reduced to the simplest and most significant form possible without loss of generality.
This word is usualy used by theologians and canon lawyers to refer to the canons of the Eastern Orthodox and Roman Catholic churches, adopted by ecumenical councils.

Hacker Slang - Holy Wars From
[from Usenet, but may predate it; common] n. flame wars over religious issues. The paper by Danny Cohen that popularized the terms big-endian and little-endian in connection with the LSB-first/MSB-first controversy was entitled On Holy Wars and a Plea for Peace.

Great holy wars of the past have included ITS vs. Unix, Unix vs. VMS, BSD Unix vs. System V, C vs. Pascal, C vs. FORTRAN, etc. In the year 2003, popular favorites of the day are KDE vs. GNOME, vim vs. elvis, Linux vs. [Free|Net|Open]BSD. Hardy perennials include EMACS vs. VI, my personal computer vs. everyone else's personal computer, ad nauseam. The characteristic that distinguishes holy wars from normal technical disputes is that in a holy war most of the participants spend their time trying to pass off personal value choices and cultural attachments as objective technical evaluations. This happens precisely because in a true holy war, the actual substantive differences between the sides are relatively minor. See also theology.

BSD Philosophy

BSD Unix started at Berkeley University shortly after a very turbulent and rebellious time at Berkeley in the late 60's. During that time there were several major movements happening all at once. The Free Speech, Anti-War, Hippies, Free City, think for yourself, Acid test, civil rights, and a tornado of other forces that lead to several all out riots on campus.

Other influences at Berkeley are a large Asian Population and the study of eastern cultures (Chinese, Japanese and India) and Philosophy.

Many of these memes later incorperated themselves into the BSD Unix culture and Philosophy.

Respect for elders, New isn't always better
Unix and BSD Unix are old operating systems by our modern perception. But, if you were to think this was a bad thing you'd be totally wrong.

At the root of most Modern Operating Systems are design concepts first pioneered in Unix and BSD. Many way DOS, Windows NT,2000,XP, Mac OS X, NeXT OS, operate are based on UNIX concepts.

Change isn't the same as improvement
"The Great Wall of China wasn't build by swapping any bricks in and out" - John Sokol.

"The devil you know is better than the one you don't"

Unix development started more than three decades ago, and the versions of operating system available today is the product of thousands upon thousands of developers hard work and constant improvements. Along the way, Unix has pioneered some very powerful design concepts and some elgant solutions to hard problems common in computing.

"If I had more time, I would have written a shorter letter." - Mark Twain

"I have made this letter longer than usual, because I lack the time to make it short" (Je n'ai fait celle-ci plus longue parceque je n'ai pas eu le loisir de la faire plus courte) - Blaise Pascal, Lettres Provinciales (1656-1657), no. 16.

"Anyone can make something complex, but it takes a genius to make it simple" - Albert Einstein

Elimination of unnecessary complexity is a Key part of the BSD Philosophy

Much of the "Unix way" is based on the idea of abstracting interfaces into the simplest possible terms, BSD trys to take this to it's limits.

Initially, this was simply because the OS was considered experimental, and the simplest possible interface, one that wouldn't change later, .was the most easiest to construct. This spend time upfront to think of how to "do it the easy way" methodology has evolved into a many of the most powerful design concepts in OS design. Abstraction that started in Unix is the core of many parts of a modern OS. From Files, Devices, Sockets, Modules, Processes, Memory Management, File Systems, directories, and Pipes.

Even the Internet is based on BSD technology and concepts. The BSD 4.2 OS was the first to Implement TCP/IP and part of that was the concept of network Sockets and Ports. Many other more complex network technology had been around for a while, but BSD Sockets allow for two computers to communicate in a way that uses the exact same commands as file access. Open, Read, Write, Close. It also uses another concept, Streams.

Simplicity and elegance though consistent software interfaces

elegant : adj. [common; from mathematical usage] Combining simplicity, power, and a certain ineffable grace of design. Higher praise than `clever', `winning', or even cuspy.

"The challenge is keeping it simple while providing the people with functions. This is harder to do. Anyone can make something complex." Dauphin A German Chair company

Try to understand the intent of the original authors' style and intent, and make changes consistent with this
This means going just going in and slash and hack changes into the Kernel or User space code without researching and thinking them through. Find a clean way to do what ever your trying to do. Spaghetti code is not tolerated.
All too often a quick and dirty little hack that was meant to be temporary become permanent and hard to fix later.

KISS, Keep It Simple, Stupid or maybe Keep it Short and Simple, I like the first one.

Working on BSD code is basicly working on other people code for the most part. Most likely what ever you do, someone else will have to work on after you.

Working on someone else code is something many application programmers realy suck at. Also they think using the latest cool tricks that just came out in the latest language spec or the new compiler supports it so it's really Cool. F*ck them! These guys need to be slapped up side the head a few times. I see time and time again the Linux guys keep making a mess for those who need to update there code and drivers over to the latest OS version. Often is is almost as bad as a cross platform port, nothing works out the box everything is broken and it becomes a major undertaking!

The Mac OS-X darwin they are mixing C++ and Objective C into the kernel source tree! It's full of broken locks and is nearly impossible to understand anymore. Leaving some messy and hard kernel hacking to the customers having to make there code work on a pig of an OS. I hope that doesn't sound like I'm venting too much, does it?

"A program with a colorful GUI is like a woman with too much makeup. Shiny on the outside - awful on the inside."

Quote from the NET
Are you going to run a gui or from the command line etc... over SSH?

If you want a gui I would go Linux maybe Fedora, for SSH use FreeBSD...I used to be against it but I am now a convert to the Church of BSD.

Why would I ever want a GUI? It may sound odd but I have never ran X on any of the 100's of FreeBSD systems I have worked on. Command line Interfaces Rull, and for most of the stuff I do is much faster. Even this web page is edited in "VI".

We are not Linux, We were here before them; and well be here after them

So what's the difference, much of the same code get's passed between BSD and Linux Right? That's only partly true. The Licenses are incompatable between the two for starters.

"I must say the linux community is a lot nicer than the unix
community. a negative comment on unix would warrant death
threats. With linux, it is like stirring up a nest of butterflies."
             -- Ken Thompson author of C Language. 1999

BSD vs. Linux, Any questions?

FreeBSD, OpenBSD and SuSE 6.2 Eval Review by Keith Rankin: "The differences between FreeBSD and Linux used to be much more obvious than they are now. Now it comes down to theology. The BSD world is still the 'high church' or Druid Unix. Blood will be spilled on a stone altar at midnite when star systems are in a certain alignment to learn the ways of this tribe. Linux is a happier world. The spirits of Captain Kirk, Peter Pan and good beer come to mind."

Hackers and the bushido code
For much of the early life of BSD Unix was spent running campus MiniComputers. PDP/11, Vax 11/750 and the like.
One way to attain elite status (enlightment or become the master or Guru) was to "break root", break in or even just be able to crash the server.
This was not viewed as a federal offense, or even as something inappropriate but as an exciting challenge and testing the limits of the box.
For the many years it was an arms race between the OS developers and students to see if the box could be crashed by malicoius code or commands, the end result is something rock solid.

Now crashing a windows box usualy requires little more then power it up, but most BSD systesm can go for years without rebooting, crashing or having it security compomised. Even on my own servers, like the one that ran the site, dispite countless attempts to take out the box, it had little effect.

Part of Hacker Philosophy directly stems from these early BSD days, although not all of it. One of the thing was to not damage or sabatoge, but to report and inform people of the bug or security hole. Maybe a little Kilroy was here on the adminstrators console ;)

Reboots, recompiles and Re/Installations are EVIL and to be avoided at all costs.

One important thing about BSD is the belief that you should be able to stress the system in any number of ways, like open up and infinite number of files, sockets, programs, memory, or any other resource and have the system respond gracefully. But this I mean not to have a Blue Screen of Death, or Kernel Panic.

Linux groups have installfests, while BSD groups have installathons. Clearly an installfests sounds festive and much happier then an installathons that is more like a Marathon to try to race through it.

We are the one true Path, all non-believers (can go to hell) are damed to hell

This is in the tradition of all great religions.

From: Nick Moffitt , With some paraphrasing.
Tue, 22 Aug 2000 14:02:47

Basically, user groups nowadays are either:
 Lame talking-heads lecture series.
 Cowtow to the windows users installathons.

  I say that's bullsh*t, and we all know it. F*CK the newbies.
We'll hold installfests, sure, but we'll be perfectly justified in telling people to take their 386s with 15 year-old RLL drives and GO HOME. This will be a meeting of COOL PEOPLE to show off COOL STUFF!

We'll not be limited to a particular OS, either. We'll have Linux weenies, FreeBSD weenies, and cypherpunk weenies clutching their precious OpenBSD! We'll have the AMAZING GEORGE PERRY and his BEARDFUL OF FORTH!

I think that expresses the attitude fairly well...

BSD License

Do what is right and be hated by those around you. Do what is popular and be hated by history.

The BSD License allows anyone to use the code for any reason and any way with no restrictions other then credit is given to the Authors

Transparency Begets Trust - Expertise in niches, transparency in motives and thought process and owning up to mistakes publicly create a trust relationship" - Will Pate
In General people in the BSD world view people and Individuals who do not share code and improvements as pompous idiots. There are a ton of smart people in the BSD world and no one individual or company (M$) not sharing code is really going to make any difference, the reality is we probably wouldn't want there code anyhow.

Trust builds Confidence
They will loose the benefits of having 1000's of eyes screening the code for holes and bugs as well as tightening things up and making improvements.

This is very much same philosophy as the Private vs. Public research in almost any scientific field. If you keep your research to your self, then you don't get credited for it. Also your work never gets confirmed, there is a good chance of deluding yourself about how secure and bug free your code is. (take Microsoft for an example)

The BSD approach is consider by most people to be better for businesses, companies such as Apple and Microsoft benefited their users by incorporating BSD-licensed code without having to share there code or changes to this code.

When questioned, most GPL programmers did not want the work they released to be used in a manner they did not support.
The BSD philosophy seems to hold that creating and giving away code, then seeing it used by others, is victory and reward enough.
But most of the GPL supporters disapproved of allowing "others" to close off source code and hide enhancements.

History of BSD

Church of BSD Blog

About BSD
The *BSD Operating Systems
History of BSD Unix
About the different BSD Releases

Poll results on computer religions

I code, therefore I am.

Other related religions

Universal Church of the Interactive Network

Cult of the Flaky Hardware (sourceCode == freeSpeech)

The Cult of vi

The holy Church of IP

First Electronic Church Of America

Church of All Worlds

The Church of the Blinding White Light of Stupidity BSD or DIE!!!

Word processing in the Church of Emacs

BSD Unix versions out there

FreeBSD The Best opensource OS out there
NetBSD/amd64 NOW Supports Opteron!!
DragonFly BSD, The latest Spin off of the FreeBSD 4.X tree
Apple Darwin OS Basis for Mac OS-X
386BSD - the now dead original
BSD/OS - also known as BSD386 from BSDI, then sold to Wind River
Wasabi Systems - Netbsd
pfSense is a open source firewall derived from the m0n0wall operating system
m0n0wall is based on a bare-bones version of FreeBSD, along with a web server, PHP and a few other utilities.
Anonym.OS ( and here ) is a bootable live cd based on OpenBSD
PC-BSD desktop-oriented OS based on FreeBSD
FreeSBIE is a LiveCD based on the FreeBSD Operating system


Cygwin This is in a catagory of it's own, turns Microsoft Windows into a Unix Box!
I have been able to compile most Linux and BSD open source project under this an run in windows