10 Additions

Story: 10 differences between Linux and BSDTotal Replies: 26
Author Content
hkwint

Aug 23, 2010
6:48 PM EDT
Thinking of it, here are 10 additions:

11) Manuals: GNU manuals tend to be in 'info', and if you want to the 'info' manual reading program, but never have before, you have to learn 'yet another' program and its keys. Here's from "man tar" (GNU):
Quoting:

The GNU folks, in general, abhor man pages and create info documents instead. The maintainer of tar falls into this category.



BSD manuals usually are shorter, for people like me who abhor overly long complex manpages like that of "GNU screen". Best of all, BSD man pages provide examples, while GNU ones usually don't. Examples are a great addition to man pages, sometimes just reading the examples is enough to not bother reading the other 40 pages. GNU man pages lacking this feature is a serious shame.

12) Default shell

AFAIK, OpenBSD comes with csh, while almost all Linux distributions will come with bash. OK, you can use another shell if you like, but if you're used to one and want to switch, it will cost you some time. The syntax for 'for-loops', for example, is different. Also, 'csh' doesn't have "arrow up" to browse through history.

Lots of Linux shells also have 'colored' shell output (not Debian though), while BSD is 'white on black' by default. Worth mentioning is also the default terminal. In Linux, it's the "Linux" terminal (surprise!), while in OpenBSD, I found it to be "vt220".

13) Command line options GNU has long command line options, started with two dashes and usually full words. Like "--long" for example. BSD has short command line options, started with one dash and usually one character. Like '-L' for example.

The GNU command line options are supposed to be easier to remember, but typing them is a PITA. I always liked the BSD-style options more. Luckily, lots of programs, like "Gentoo's emerge" have one-char aliases for the long GNU options.

14) Inclusion of blobs in the kernel There's a difference in what's accepted in the kernel and what's not. BSD usually doesn't accept any GPL-code in the kernel, for example, but they do allow binary blobs as long as they're "firmware". Sadly, I'm not that good at license stuf, I'm already afraid I made mistakes in the last sentence. So there's not much I can tell about it, except there are notable differences and of course, as a result, flamewars about what's the best direction to take.

15) Mascotte's / release song OpenBSD is the only distribution I'm aware of, ever to come with a 'release song'. Moreover, both FreeBSD and NetBSD featured a devil in their logo, the BSD daemon called "Beastie". However, both have opted to use a more 'professional' logo now, sadly. OpenBSD features a puffyfish named Puffy, and with every release comes a release-poster. Mostly Puffy in a cool setting, like Puffy featured in a James Bond-like poster (release 3.2), which I enjoyed very much. Currently, Puffy is depicted like Superman (4.7).

Linux however, features a penguin. Sometimes a fat one, the 'gentoo' penguin species, sometimes just a boring curl, sometimes a silly misshapen grain circle, sometimes a hat or a star, a weird lizzard, or just plain boring "the name of the distro". It goes without saying what's more artistic and what I prefer I'd suggest.

16) Afterboot / Tour BSD has a nice "afterboot" manpage, featuring things you should do after you installed it. It is of great help if you're new to the OS and don't have a fast internet connection.

I never found a Linux-distro with afterboot. Linux distributions with some graphical MS Windows-like "welcome tour" do exist however, but sadly they're scarce.

17) Approachability of the BDFL. Once I mailed Mr. De Raadt and got a reply within half an hour, even when I'm basically a 'nobody' and he didn't know me. Try that with the other famous BFDL South African, or Linus!

18) Kernel configuration / modules Usually, configuring a BSD kernel from scratch is quicker because it has less features. Apart from that however, last time I tired so, it didn't have "make menuconfig" nor xconfig. Which means, commenting out the 'modules' you don't need by hand. Which leads to the second difference: AFAIK BSD doesn't have kernel modules.

Once I was told one can 'swap' a running BSD kernel, though I'm not sure how.

19) Device names The BSD device names are almost completely different from Linux device names. Take - for example - hard drives: In Linux the whole drive is 'sdd' and the first partition is 'sdd1', second 'sdd2' and so on. Not in BSD, there the 'whole disk' is the disk appended with the character 'c' to it.

If you're new to Linux or BSD and try the one you're not familiar with, confusion on this topic certainly poses a risk!

20) Booting In most Linux distributions, there's SysVInit. init reads /etc/inittab, and starts boot scritps accordingly, usually denoted with run levels. In BSD, init starts the shell script in /etc/rc instead.

By default, most Linux distro's use the GRUB bootloader, while for example FreeBSD comes with 'boot0' by default.

Also, the 'startup' kernel output looks different, both due to the different harddisk numbering schemes, and because BSD prints kernel output on a blue background (white on blue) it seems.
tracyanne

Aug 23, 2010
6:58 PM EDT
Quoting:Best of all, BSD man pages provide examples, while GNU ones usually don't.


I find that particularly annoying, If a picture says a 1000 words, an example is encyclopaedic.
tuxchick

Aug 23, 2010
7:26 PM EDT
Looks like a LXer Feature, Hans!
gus3

Aug 23, 2010
7:48 PM EDT
FreeBSD does have loadable kernel modules. http://www.bsdnewsletter.com/bsda-book/View__44___load__44__...

However, I think there's a "permanently secure" runlevel, which forbids loading/unloading kernel modules, and the only way out of that runlevel is to reboot/halt the system.
hkwint

Aug 23, 2010
7:50 PM EDT
gus3: Yeah, I forgot the BSD secure levels I guess... It sounds familiar.

TC: With some better research, it probably could be?
Scott_Ruecker

Aug 23, 2010
8:53 PM EDT
I smell an article Hans...
tuxchick

Aug 23, 2010
10:48 PM EDT
The sharks are circling, the waters are roiled!
Steven_Rosenber

Aug 24, 2010
12:54 AM EDT
You can pretty much pick any shell in a given BSD OS, but I think it's best to at least give the default shell a try.

In OpenBSD, the default shell is ksh

If I remember correctly, in FreeBSD, lately anyway, the root account gets csh and users get plain ol' sh

I must say, I find the boot system in the BSDs to be one of their best features. They're easier to understand, don't change much from release to release and are extremely well-documented.

And yes, the man pages are generally excellent.

Also, the BSDs do ship with their own bootloader, but it's pretty easy to install GRUB if you want it.

Most BSDs require quite a bit of (usually well-documented) configuration that affords an excellent opportunity to learn more about the Unix-y utilities you might have previously taken for granted. For instance, I learned way more about such things as CUPS, date, fsck and even Linux-y ol' GRUB in OpenBSD because you have to do so much manually.

And if you're the type who enjoys building from source, the ports systems in the BSDs are EXTRA easy when compared to compiling from source in Linux without the benefit of the ports-tree infrastructure.

But one of my biggest nightmares? Building Java. I managed to do it, but not without much in the way of pain and woe.
g3mini

Aug 29, 2010
4:36 PM EDT
From the article:

The GPL attempts to prevent the distribution of binary-only source.

I think I know what source code is and what binaries are, but binary-only source? The mind boggles.

2: Control. The BSD code is not "controlled" by any one user, which many people see as a big bonus. Whereas the Linux kernel is mostly controlled by Linus Torvalds (the creator of Linux),

I think this is pretty disingenuous. There are plenty of forks of the kernel tree and Linus has systematically kept telling people that they should make their own forks if they don't trust him. Distros often include in their kernels major packages that are not in Linus's stock tree (just one example of many, App Armor in Ubuntu, until very recently (it's now included)). There are also several cases of experimental projects moving from the BSDs onto Linux, because they couldn't get accepted into the BSD kernels. Of course, the BSD developers have been infamous for their in-fighting in the past, so while there may not have been a single benevolent-ish dictator, the oligarchy has been at least equally nasty at times.

hkwint:

20) Booting. In most Linux distributions, there's SysVInit.

Actually, the original SysV Init has been superseded by Upstart in Ubuntu, Fedora and a bunch of others many releases ago. SysV init scripts are still usable in these, though. Fedora is about to replace Upstart with Systemd for the next release.

hkwint

Aug 29, 2010
7:16 PM EDT
"We" have OpenRC now, and I'm glad "we" do.
Steven_Rosenber

Aug 29, 2010
8:42 PM EDT
Quoting:There are plenty of forks of the kernel tree and Linus has systematically kept telling people that they should make their own forks if they don't trust him.


I've often wondered why there aren't any "major" forks of the Linux kernel that have gone in a totally different direction. Happens all the time in the BSD world (OpenBSD, DragonFlyBSD ...)
Sander_Marechal

Aug 30, 2010
2:09 AM EDT
Probably because the combined value of things that are added to the Linux kernel is just too big to pass up. When you're going in a different direction, you'd have to do all of that yourself.

Also, Linux isn't averse to large patches or sweeping changes. As long as they make sense and are well written. This makes it possible to get your "different direction" in the mainline kernel eventually.
Steven_Rosenber

Aug 30, 2010
1:12 PM EDT
Logic doesn't dictate all. I'm still surprised this isn't happening in a half-dozen different ways.
Scott_Ruecker

Aug 30, 2010
1:58 PM EDT
I take it all of this conversation is just more ammo for your article right Hans? ;-)

I love giving people who are a continent and an ocean away a hard time..mwhahaha.
hkwint

Aug 30, 2010
2:37 PM EDT
If I'd were to write an article, I'd better check the facts before being burned... But yeah, sounds like a good idea to me.
azerthoth

Aug 30, 2010
3:01 PM EDT
@hans sadly the dev for openrc has abandoned the project and (and I could be wrong here) the only one who has done any serious patching/writing on it of late has been Daniel Robbins. I have seen systemd in bugs.gentoo but it hasnt entered mainline for testing yet.

Kind of sad as baselayout is sadly convoluted, yes it can be learned and understood, but it is needlessly obfuscated on a level that makes grub2 look beautiful.
Scott_Ruecker

Aug 30, 2010
3:07 PM EDT
Trust me Hans, any article you write will be better researched and written by proxy of being done by you. But I'm biased..;-) Heck, just the info in this thread alone would serve you justice in the writing of it.
Bob_Robertson

Aug 30, 2010
4:04 PM EDT
I appreciate knowing about the man-page example thingie.

I've often thought, "but I remember seeing examples in man pages, why aren't there any for this? It must have been some other man page..."

Now I know. Oh well.
Steven_Rosenber

Aug 30, 2010
5:35 PM EDT
The examples in OpenBSD man pages are great. It does make you wonder why so many Linux man pages just dump a bucketful of switches into a paragraph and leave it at that. After awhile you just stop looking through man pages.

I do have one man page I look at all the time: date

I have a laptop with a dead cmos battery, and I have to change the date/time every time I boot it. So I look up the man page for date because I can never remember exactly what order to put things in.

Of course date is one of those utilities that differs between OpenBSD and Linux - the numbers go in a different order in each system. (And yes, OpenBSD's makes more sense.)
gus3

Aug 30, 2010
5:41 PM EDT
Why not include the date-setting stuff in an rc script? Ask the year, month, date, hour, and minute separately, then build the command from them, or enter them all together, and indicate the necessary format in the prompt?
Steven_Rosenber

Aug 30, 2010
6:28 PM EDT
It would be nice if Linux/Unix users would swap scripts more. I'd like to imagine they used to. All I have are my pathetic little 3-line rsync scripts.

azerthoth

Aug 30, 2010
9:34 PM EDT
set it via ntp even, ntpd and/or ntpclient in runlevels then push it to hwclock. I have an odd scipt or two that I run that drifting off my 30 seconds from real time can make a difference for me so my systems sync up to nist once an hour. But from command line `ntpdate time.apple.com` works swimmingly well.
jdixon

Aug 30, 2010
10:55 PM EDT
> But from command line `ntpdate time.apple.com` works swimmingly well.

Even better to use your ISP's ntp server if they offer one (quit laughing, some of the better ones do). But if not us.pool.ntp.org works well for those of us in the US.
gus3

Aug 30, 2010
11:00 PM EDT
If you decide to use ntpdate, it's also a good idea to put it in a crontab, every hour or two.

And, if you also use DHCP, you can insert a call to ntpdate in the "interface is up, do this post-configuration" script (path/name varies by distro).
jezuch

Aug 31, 2010
2:37 AM EDT
Quoting:Even better to use your ISP's ntp server if they offer one (quit laughing, some of the better ones do). But if not us.pool.ntp.org works well for those of us in the US.


The general theory says you should use a NTP server at the lowest stratum you can, and with the lowest latency. At least that's the part of the NTP voodoo I kinda understand.
gus3

Aug 31, 2010
3:05 AM EDT
Quoting:The general theory says you should use a NTP server at the lowest stratum you can, and with the lowest latency.
Yes, if you're working at an atomic collider. Otherwise, you don't need that kind of precision on your file timestamps.

If some program you're using (say, Oracle) does need that kind of precision, it'll keep track of delta timestamps internally, in a fashion that compensates for poor time tracking by poorly-maintained servers.
Bob_Robertson

Aug 31, 2010
9:33 AM EDT
I liked enabling ntp on all the routers, each looking back towards its core neighbor, with one looking at a stratum 2 clock I knew about at NASA.

When asked, it was the easiest answer possible, "Just point at your default gateway." Happy customers. I do love to have happy customers.

Posting in this forum is limited to members of the group: [ForumMods, SITEADMINS, MEMBERS.]

Becoming a member of LXer is easy and free. Join Us!