We’ve all heard the age old argument second only to the vi vs. emacs religious wars: FreeBSD Vs Linux. As a long time linux user, I decided that is was time I spent some time on the other side of the fence to see if it was any greener. Oh, and by the way, vi rules.Background
My first experience with Linux was about 7 years ago. I decided to try Linux after a failed attempt to install SCO Unix (eek… really dodged a bullet there). I started with Slackware and over the years I migrated through various other distributions before finally settling down with Gentoo. I have been using Linux as my main OS for about 2 or 3 years. With my background, I felt reasonably confident that I could adapt well to a different unix like operating system. I prefer the BSD license to the GPL, so I saw some potential philosophical advantage in using BSD. For my evaluation, I chose FreeBSD because after a cursory glance, it appeared to have the best hardware support and appeared to be the most popular.
Hardware
The machine I used was my “second in command” machine. It was retired from active duty almost a year ago, so it is rather old, but hasn’t hit the stage of seeming painfully slow. Here are the specs:
1Ghz Athlon Thunderbird FIC AZ11 motherboard with a messed up secondary IDE controller (it works if I hit reset after powering on) 640Mb PC133 SDRAM Generic 64Mb Geforce 2 MX400 (with rather blurry 2d graphics) Sound Blaster Live Creative 5x dvdrom with dxr2 Mitsumi 4x4x24 CDRW Tulip based Linksys ethernet card
At this time, I would like to advise all of you girls and boys thinking about building your own system to BUY NAMEBRAND PARTS. You might save a few dollars, but there really is a difference in quality.
Installation
I grabbed the ISOs for FreeBSD 4.8 because it was the most recent stable revision at the time I started. I won’t bore you with all of the gory detail of the install. It uses a curses based installation program which should be reasonably comfortable to anybody who has installed Slackware. I made a few mistakes and had to restart a couple of times since you can’t always easily back up in the process. Once I finally got the process down, I had a working console system within an hour (I chose to delay installing X until later).
Configuration
Most of the hardware worked without any intervention on my part. The sound card required building a custom kernel, but the kernel building process is well documented and rather painless (roughly on par with building the kernel in linux). Instead of using something like “make menuconfig” under Linux, you edit a moderately sized config file and use it to generate the build parameters. I just had to add the line “device pcm” to the config file, build a new kernel and reboot. BAM! The sound was working. No need to muck with modules or setup aliases or any of that other junk that I frequently forget. I then used ports to install X and also to install the nvidia driver. I noticed some problems with KDE applications dumping core on exit and discovered that it was a problem related to the stock 4.8 kernel and the nvidia drivers. After a few minutes of searching on bsdforums.org, I discovered that there was a kernel patch to fix the problems. The patching process and rebuild of the kernel went off without a hitch.
Ports and Packages
My main interest in investigating BSD was the ports system. As a Gentoo Linux user, I have often heard portage compared to ports. After observing a number of similarities in file layout of ports and portage, I have no doubt that portage was inspired by ports. To install a port, you find the corresponding directory under /usr/ports and enter “make install”. I found this to be a bit of hassle compared to portage largely due to having to find the appropriate directory which is not always found in what I would consider a logical location (for instance the nvidia driver is in /usr/ports/x11/nvidia_driver). I later found out that I could use the command “whereis” to locate the correct directory. This is very useful since it finds the location much quicker than running “find” from /usr/ports. For the most part, the ports I installed worked quite well and correctly handled dependencies. There were some minor annoyances such as the openoffice port prompting for user interaction partway through the build process. I was not pleased to get up in the morning and discover that the build was not completed. One advantage of using a port compared to an ebuild is that it you need to kill the build partway through, you can later resume where you left off (there may be a way to due this in portage, but if there is, it is not very obvious). After you have installed a port, you can use “make deinstall” to remove it, however there is a bit of a snag. If you use “make clean” to avoid wasting disk space, “make deinstall” will not work. You must unistall the port as if the program was installed as a package. I found this annoying since I am only interested in installing from source and I did not want to waste my time learning about the package system (used for installing binary packages). Many ports have options that you can pass to the make command in order to enable options, but these have to be dealt with on a port by port basis and not set globally like portage’s USE flags. There is a method to globally change the CFLAGS used by ports, but I never bothered to learn it (I trust the defaults).
I noticed a number of things which made ports appear to be more release-oriented than the portage system. The first is that there is no way to upgrade the ports tree without installing an additional port after installation (namely cvsup). I installed cvsup and noticed that I had to modify a config file before I could use it. Example config files were included, but they needed minor alterations before they could be used (mostly just setting the server name). This isn’t necessarily bad, but the documentation is extremely thorough and not geared toward newbies. Once configured, it is relatively painless to upgrade the ports tree. Similarly, upgrading an installed port to a newer version is a bit clunky without installing another utility (namely portupgrade). It isn’t a big deal, it just leaves me with the impression that the developers expect some people to treat different releases as distinct entities much like many binary Linux distributions. Of course, it is still possible to do a continuous upgrade like I would with Gentoo. Release 4.9 was released in the middle of my evaluation period, and I successfully upgraded the system and kernel to the new version without reinstalling. Overall, the system seems to work well, in spite of some rough edges.
Conclusion
Overall, I found FreeBSD to be a very usable system, but not very newbie friendly. The documentation was generally good, but it could benefit from some additional documentation geared toward beginners. I had to adapt a bit to the command line utilities since some of the parameters are a bit different from the equivalent GNU versions. For instance, “find” requires that the directory be specified whereas with the GNU version, it can be omitted. I also discovered that under BSD, it is bad to edit /etc/passwd directly. I tried to change my shell by editing /etc/passwd, but it seemed to be ignoring it. However, if I used “vipw” as root, I could edit it without any problems. I suspect that the system examines some sort of cached copy of the data in /etc/passwd, so any changes not reflected in the cache are not seen. There is also a handy too “chsh” which will allow any user to change his own default shell. I was a bit disappointed with the ports system, however it is still quite useful. To be fair, I am not currently aware of any package management systems that actually satisfy me (*shameless plug* I am working on a new package management system, and when it is more developed I suspect many people will like it). I did not do extensive performance testing, but X seems more responsive under FreeBSD than it does under Linux, particularly when running CPU intensive tasks in the background. Overall, I would say that FreeBSD is not good for Joe (L)User, but it is definitely worth consideration by hard-core techies. My first few nights using it were rather painful, but within a week I was becoming reasonably comfortable. If you think you are up to it, I would recommend giving it a try, just don’t give up too quickly.
About the author
Gabe Yoder is a full-time software engineer and a geek’s geek. In spite of work, he enjoys programming and is one the OpenBeos development team. When not chained to the computer, he enjoys collecting swords and shooting people with paintballs.
First off, vi, emac, kate, joe, all suck. IMO PICO IS THE BEST!!!!
RE Freebsd, Ive tried 4.8 and recently 5.1(i guess this one is still unstable) and was never able to sucessfully install it. Maybe ill have better luck with 5.2 when its released.
Sound support:
Instead of doing a kernel recompile, you can also do ‘kldload pcm’, or add it to /boot/loader (see:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/sound-set…). And everyone note: SB Live! cards do work, unlike some of the FUD you seem to hear a lot.
He mentions global CFLAGS:
They’re in /etc/make.conf
And the /etc/passwd:
The *real* password file is /etc/master.passwd. After you run vpiw, it generates a passwd and shadow from it.
Most of the hardware worked without any intervention on my part. The sound card required building a custom kernel, but the kernel building process is well documented and rather painless
Which sound card? Linux users seem to come to FreeBSD obsessed with rebuilding their kernel, when most of the time you need only rebuild it when upgrading to a newer branch.
The FreeBSD bootloader is capable of linking modules with the kernel before starting it, so chances are rather than rebuilding your entire kernel you could’ve simply added snd_pcm_load=”YES” to /boot/loader.conf
Beaten to the punch by 37 seconds :/
One inaccuracy from this article: there is a way to update/download the ports tree directly after installation, without having to install CVSup. csv is installed in the base system, and FreeBSD has a number of anonymous CVS servers from which the ports tree can be easily obtained. I actually use this method on my laptop, since it is old, slow, and relatively low on disc space… I don’t like the idea of Modula 3 sitting around on my hard drive if I have a choice.
Just a few comments on some of the issues you mention.
1) Installing portupgrade also installs portinstall. You can run “portinstall gaim” to automatically download and install gaim without changing directories to /usr/ports/net/gaim/, which is a real convenience. Even without portinstall/portupgrade, you can (and should) run ‘make search key=”BLAH”‘ to find the directory your requested port is in (the key is not restricted to name only). Portupgrade also sets up pkg_deinstall, which you can run like “pkg_deinstall gaim”. There’s also the portsclean command that cleans up your entire ports tree.
2) /usr/local/etc/pkgtools.conf allows you to set parameters for ports. You *can* set global port parameters like “NO_GUI=yes” in this manner, though different ports use different parameters (one port might use “WITHOUT_GUI=yes” instead). CFLAGS and more generic compiler options can also be changed in /etc/make.conf.
3) You don’t need to recompile the kernel to add in support for sound, etc. A simple “kldload pcm” will do it. That said, if there’s a driver I’m going to be using for sure, I tend to compile it in.
4) The installer is a tad weird, navigation-wise. I prefer the plaintext OpenBSD installer myself, I must say. However, you can almost always go back a step (or two, or three) by hitting escape or ‘q’, or simply by navigating through the options.
You don’t need to install modula to use CVSup — just install CVSup from a binary package rather than building it from scratch. IIRC, that’s the recommended procedure, anyway.
I tried running FreeBSD 4.8 under VMWare, not very succesfully…
However, I intend to have 4.9 running on my test machine soon, which is running Vector Linux 4.0 atm. Slackware (on which VL4 is based) is nice and speedy, but I dislike all the manual getting of packages… Although ports entail compiling, and then compiling some more, and then some, it’s more automatic.
I’m in a dillema, BSD-style or Debian-style? Right now, I’m still leaning to Debian, which I love in it’s many forms and flavors (Knoppix, Libranet, Pure-vanilla, etc. etc.)
Nice review, makes me wanna try the BSDs even more…
First, NO TROLLING.
Second, yeah, pico used to be the best. Now that it doesn’t exist, nano is my best friend! I just don’t feel like remembering the keys for “ed” otherwise that would be on the top of my list.
–(Not a troll) Mike.
FreeBSD includes a command line utility that allows for modification of the password/group files without manual editing. just type pw at the command line …
pw
usage:
pw [user|group|lock|unlock] [add|del|mod|show|next] [help|switches/values]
It mentions that FreeBSD lacks a command line tool for adding packages. This is not true. There is portsinstall and pkg_add. pkg_add is mainly for installing from a package all ready on the machine. portinstall can grab packages off the net and install them or it can use the portstree.
There is also portupgrade which is used for upgrading to the newest ports after cvsuping.
Pico and Nano are both very good, I use them as general purpose editors when I’m in the console.
However, EMACS is better (imo) for editing conf files, since it deals better with long lines of text.
EMACS is still bloated though…
Anyway, on-topic, I really like all the FreeBSD docs, and *would* use it, but SiS chipsets (network cards especilly) don’t seem to be happy with FreeBSD. Every time I look for “sis900 freebsd” on Google, it comes up with people experiencing errors such as “MII without PHY!” Debian Stable works just fine, though some of the packages are a bit old. Of course RedHat and Slackware are both good distros, I’ve used both.
I always wondered, having no fast internet connection… if I installed FreeBSD, then wanted to get some package off the CDs, and one of the packages needed another package which was on another CD, would the package installer be smart enough to know which additional CD it would need for packages (similar to Debian?) It seems from all I’ve read that it only knows to look higher in a directory tree for dependencies, but doesn’t know about different “sources” the way Apt does.
pkg_add has no problem installing packages from the net: pkg_add -r
We all know “ee” is the best editor! I mean come on! See the light!
Every time I look for “sis900 freebsd” on Google, it comes up with people experiencing errors such as “MII without PHY!” Debian Stable works just fine
This typically indicates that the kernel is unable to communicate with the physical controller (PHY) through the MII bus, which is either indicative of a damaged physical controller or buggy firmware. I’d suggest you try buying some better hardware…
I can certainly understand calling FreeBSD not user-friendly. But to have Gentoo user call it not user friendly just boggles the mind.
I installed Gentoo last week and I’m still trying to get settled. I think I’ll like it once it’s done but sheeesh!
To have to create system config files by hand DURING the install is ridiculous. Not to mention sshd doesn’t automatically create keys so the server doesn’t start.
Anyway, reasonably unbiased article coming from a Linux user. It could have been alot worse.
nano, pico et al are nice, but i use ‘le’, its great..
/usr/ports/editors/le
(iirc, off top of my head)…
to change shell you should use chsh
I liked the review. I have tried FreeBSD several times over the last three years, but keep going back to Linux eventually when I run out of time to solve some FreeBSD configuration issue (I’ve NEVER managed to get any FreeBSD box to print!).
That said, FreeBSD 4.8 is the stablest OS I have ever used – I had uptimes of literally months on end, and eventually rebooted only because I was adding a second hard drive. It is also the fastest *nix I’ve played with – fast to boot, fast to shut down, and more responsive than any version of Linux I’ve tried on the same hardware (including various releases of Caldera, Corel, Red Hat, and Mandrake, and more recently, Mepis Linux).
One thing I would really like more information on is a discussion of FreeBSD vs Linux for desktop use. In particular, are things like USB scanners, webcams, Wacom tablets, and other desktop doodads supported under FreeBSD as well as Linux? How about DVD burners? How aobut packet-writing for CD-RW drives?
-nameless foo
I use both Linux (Debian, Slackware and Yellodog) and FreeBSD. I like both Linux and FreeBSD, but find I can’t (and won’t!) choose between them. In my opinion, there’s room for multiple operating systems in this world.
So far, I haven’t found one “holy grail” operating system that does everything and does it better than all the rest. For this reason, my home network consists of a mix of FreeBSD, Linux, Windows (yep, even Windows!), OS X, BeOS and QNX.
Which would be better for beginner?
The beauty of using vi on fbsd is that it is real vi. All of the linux distro’s I’ve tried use vim, or some GNU hybrid that doesn’t always work as advertised. This means it it (a) it actually behaves like the books/tutorials tell you it does, (b) it is a true binary editor, (c) it is deeply integrated with the system (d) it’s always available, including on boot/rescue disks. (e) you don’t have to install another programme (ie pine) to use it. I must confess I hated vi at first because it is anything but intuitive, but I couldn’t do without it nowadays. For an excellent intro to vi on freebsd, have a look at Dru Levigne’s tutorial at http://www.onlamp.com/pub/a/bsd/2001/10/25/FreeBSD_Basics.html
The beauty of using vi on fbsd is that it is real vi.
Actually it’s nvi.
Which would be better for beginner?
5.x is still considered “work in progress” — see http://www.freebsd.org/releases/5.1R/early-adopter.html — so you might want to take a look at 4.9 first.
“I’ve NEVER managed to get any FreeBSD box to print!”
Here is a good article on how to set up a printer on FreeBSD: http://www.onlamp.com/pub/a/bsd/2003/11/06/Big_Scary_Daemons.html
First, vi is the best. Of course, if you’re used to vim on Linux, then FreeBSD’s vi will found you wishing for the vim extensions. Then you just install the port and voila! Done.
Secondly, FreeBSD 5.1 remains a “Technology Release.” Basically, what this means is that they want everyone who can to use it – but not to rely on it for critical servers and production servers. I’ve been sticking with 4.9 for now.
Secondly, vipw has been standard for some time now – and exists on Linux. It’s not caching, but the problem of updating the password file at the same time that the system just might want to use it. vipw handles this locking problem transparently – and also now handles shadow passwords by asking you if you want to edit the shadow file too.
My experience is that the FreeBSD kernel is leaner and runs in less RAM than Linux – and that Linux has support for more hardware generally – and more software.
Journaling filesystems are a particular rift between the two: Linux has JFS, XFS, ReiserFS, and ext3. The FreeBSD people use “Soft Updates” and refuse to develop any others, saying that journaling is overhyped.
Another BIG difference is that FreeBSD is a distro/kernel combination, whereas Linux is a kernel. Red Hat Linux is a distro – but Linux is the kernel. The FreeBSD people manage both.
Another difference is firewalls; BSD uses ipf or pf, whereas Linux uses ipchains or iptables. The BSD firewall code is also portable and available for other platforms; ipchains and iptables are Linux-specific.
Another difference is that there is very LITTLE GNU code included; almost everything comes out of the FreeBSD team – including csh (the standard shell), et al.
The GNU utilities are available as ports, including find, grep, awk, etc…. not that they aren’t available in the system; the utilities just aren’t GNU utilities.
4.9 is from the stable branch while 5.1 is from the development/current branch and thus 4.9 is what most people would tell you to go with for stability.
The thing is, when FreeBSD people talk about stability, they’re on another level entirely from most people. The stability of 5.1 is superb relative to the world of operating systems as a whole. Unless you’re running some massive webserver like Yahoo, 5.1’s most likely going to be fine.
5.x offers some real benefits over the 4.x series — easier configuration, more up-to-date tools (e.g., GCC 3.x), and even arguably superior performance. I’m running 5.1 and am quite pleased with it all around. Once we hit 5.2 (with its excellent multiprocessor support), I think we’ll see a large migration to the 5.x line (which will likely become the -STABLE FreeBSD line with 5.3).
Joe is the best editor. It’s fast, light, and quite powerful for its size.
The only thing it lacks is soft wordwrap
It’s worth reading the FreeBSD Handbook. Seriously. It guides you through the process of installing and configuring cvsup (which doesn’t actually keep your ports upgraded – just the metadata containing version numbers, distribution URLs, etc, and any FreeBSD-specific patches), and (if memory serves) how to get started with portupgrade.
portupgrade is definitely worth a look for anybody running FreeBSD – not only does it cope with the hassle of upgrading your installed ports for you, but it also goes some way to solving the “where is port <x>?” problem. After a while, though, you tend to think the same way the ports maintainers do and start from the right directory in the first place anyway (the tree is fairly logically organised).
The sound card required building a custom kernel, …
As people already pointed out, no need to recompile the FreeBSD kernel for sound to work, just load the appropriate module at boot time.
After you have installed a port, you can use “make deinstall” to remove it, however there is a bit of a snag. If you use “make clean” to avoid wasting disk space, “make deinstall” will not work. You must unistall the port as if the program was installed as a package.
You can use pkg_delete to remove it, packages installed from ports are registered the same way as binary packages. It’s easiest to use “make install clean” to install an app, but I prefer using portupgrade(8) and portinstall(8).
Many ports have options that you can pass to the make command in order to enable options, but these have to be dealt with on a port by port basis and not set globally like portage’s USE flags. There is a method to globally change the CFLAGS used by ports, but I never bothered to learn it (I trust the defaults).
Actually it’s exactly the same as in Gentoo Linux, /etc/make.conf. As a Gentoo Linux user, it’s interesting that you didn’t just try the obvious location.
I tried to change my shell by editing /etc/passwd, but it seemed to be ignoring it. However, if I used “vipw” as root, I could edit it without any problems. I suspect that the system examines some sort of cached copy of the data in /etc/passwd, so any changes not reflected in the cache are not seen.
The data is actually cached in a db(3) style database, residing in /etc/pwd.db and /etc/spwd.db, so you have to run pwd_mkdb(8) after mangling with the password files manually. Or you can use the fine tools like pw(8), chpass(1) and maybe vipw(8).
Hint: If you use something like “emerge -vupD world” in Gentoo to see which packages need upgrading, you can achieve the similar thing in FreeBSD with something like “portversion -v | grep -v =”. FreeBSD actually has one of the most flexible (once you get to know it) package management system’s i’ve used.
I noticed a number of things which made ports appear to be more release-oriented than the portage system. The first is that there is no way to upgrade the ports tree without installing an additional port after installation (namely cvsup). […] Similarly, upgrading an installed port to a newer version is a bit clunky without installing another utility (namely portupgrade).
Actually, CVSup can be installed during the package selection phase in the FreeBSD installation. In Gentoo’s portage, same thing: there is no way to update the portage tree without installing an additional port (rsync). And no way to upgrade packages without the ’emerge’ port. So, it’s about the same. And I do believe that moving more stuff from the base installation to the ports is a good thing, because it allows for a more modular approach to system upgrade, and takes some of the burden from the developers of the base system.
nano, pico et al are nice, but i use ‘le’, … Joe is the best …
then FreeBSD’s vi will found you wishing for the vim extensions, vi is really vi on FreeBSD
As a curiosity, in FreeBSD many Linux users will appreciate using “vile” (means “vi like emacs” = no need for linux vim extensions).
“My experience is that the FreeBSD kernel is leaner and runs in less RAM than Linux – and that Linux has support for more hardware generally – and more software.”
I can’t say that I agree with you completely when you say that Linux has support for most software. Most free/open source software should compile on both systems, so long as the package in question doesn’t use features specific to any one system.
Alos, the Linux compatibility has never failed me. Any Linux program that I can’t recompile on FreeBSD I’ve had work through the Linux ’emulation’. It likely doesn’t work for 100% of all Linux apps, but I’d be willing to bet based on my experience with it that it’ll run 99% of them.
“Another BIG difference is that FreeBSD is a distro/kernel combination,”
Nope, no distros here. FreeBSD is a complete system, including userland and kernel. (Don’t mind me, I hate the word “distro.”)
“Another difference is that there is very LITTLE GNU code included; almost everything comes out of the FreeBSD team – including csh (the standard shell), et al. ”
FreeBSD doesn’t use csh, they use tcsh. And it’s only the standard shell for root. The standard shell for other users is /bin/sh
please stop running this switching bit, it’s annoying, compare OS’s if you will. At this point I would have to say the BSD’s and Linux (in general, staying away from distro arguments) are well developed products. BTW, I prefer joe, it’s good stuff.
One thing I would really like more information on is a discussion of FreeBSD vs Linux for desktop use. In particular, are things like USB scanners, webcams, Wacom tablets, and other desktop doodads supported under FreeBSD as well as Linux?
In my experience, Linux handles USB scanners far better than FreeBSD. I have never gotten a scanner actually working in FreeBSD; xscanimage and xsane just hang. And this is with the same SANE configuration that I had under Linux. (This was an Epson Perfection 636U scanner.) Officially at least, USB Wacom tablets are not supported on FreeBSD, though the serial versions of the Wacom tablets are.
You know…. all the messages posted to help a user out… That is just an awe inspiring experience… Some people have said that *bsd users arent that helpful… But here, they are proven wrong….
I am just happy to see that several *bsd users came out to post their comments on this board and lend a hand….
This is one of many reasons that I am a proud *bsd user.
ps 4.9 rocks..
forgot to mention… if you dont vote for VI…. you need help 😉
I vote VI. Since we are all voting. And for all you vi users out there… “VI MODE IN BASH”. Cool, very cool.
out of the box?
“Another difference is that there is very LITTLE GNU code included; almost everything comes out of the FreeBSD team – including csh (the standard shell), et al. ”
What _is_ in FreeBSD that is GNU, does anyone know?
Everyone has their hangups and mine is the FSF (I’m not trolling, and don’t bother to respond – I won’t respond to harsh pro-GNU comments 🙂 as I’ve heard it all before). But if there is little GNU code (and that is all LGPL) I may have found my next OS (first must pick it though, from the main 3). Cost is not the issue – I’d gladly pay for a more or less pure BSD system.
And on the tangent, I used to only use EMACS (and I still think it is best damn editor anywhere). But anything from GNU I’ve cooled significantly toward in recent years due to philosophical differences with the FSF. I’m moving completely to vi and liking it more and more. I understand now why old-skool hackers swear by it.
I’ve thought seriously of moving completely to Solaris (and purchasing the Intel compiler). But if the *BSDs are more or less GNU free then I’ll check them out ASAP. What about the C compilers? They use ones that are BSD licensed?
Thanks in advance for any info.
Yes, all of the *BSDs are relatively GNU free. This is because the BSD license is incompatible with the GPL, so any included GPL software has to be completely self-contained. This means that the base system itself, which is of course heavily interconnected, tends to be almost completely free of GNU. GNU programs are of course available through ports and packages, but most of them also have BSD license counterparts.
But yes, a stripped-down install of any of the 3 BSDs will be as close the GPL free as you’re likely to get on an OpenSource system.
In addition to the good old ‘make install clean’ and ‘portinstall/portupgrade’ there is also a ncurses based GUI tool in FreeBSD for installing software from the ports tree. It’s called ‘portsman’. (After you first launch it, just hit ‘h’ key to see how to use it.) Portsman allows you to check dependencies before installation and to set some available options in makefiles. One nice feature in portsman is that if you need to install several applications, you can mark them for installation and do something else while portsman dutifully installs them one after another. I’ve also found portsman to be quite handy in browsing which applications I’ve already installed and which are available for installation.
I’ve thought seriously of moving completely to Solaris (and purchasing the Intel compiler). But if the *BSDs are more or less GNU free then I’ll check them out ASAP.
You are making no sense at all in here..
The two best ways I have found to print from FreeBSD are apsfilter and gimp-print (both of which are mentioned in that recent Onlamp.com article). With apsfilter, all you need to do is have lpd running, and use the ‘apsfilter’ command-line wizard to automatically configure /etc/printcap. It just walks you through a series of questions; no need to manually edit any files.
Gimp-print is included in any recent install of the Gnu Image Manipulation Program (www.gimp.org). I haven’t done much with it, but when printing from Gimp itself, it is surprisingly easy to use.
I have been using FreeBSD servers for years, but only recently started actually using it as my main workstation. I have to say that with FreeBSD 4.9 and KDE 3.1, I have been pleasantly surprised at how good FreeBSD is getting as a desktop system. Really the biggest problems with FreeBSD as a desktop are related not to the open source movement, but rather how certain commercial entities have reacted to it. For example, you cannot have an unattended install of Java on FreeBSD (that was why the writer couldn’t have an unattended install of OpenOffice) simply because Sun hasn’t given its official blessing for FreeBSD as it has with Linux (it’s a business problem, not a technical one, in other words). Ditto for multimedia, with the Macromedia Flash player and Real Player, which provide versions for Linux, but not for generic X Window systems. This attitude spills into the server side also, with more difficulties installing Jakarta, JBoss, etc… just because of the aforementioned Java problem, and lack of support for commercial database systems such as Oracle or Sybase.
But the FreeBSD people, rather than grumble about these things, simply bend over backward to be cross-compatible and standards-oriented. They have also provided a Linux compatibility layer which runs most Linux binaries arguably as fast as Linux itself. (This is how I get Flash player on FreeBSD)
But look around, and you will notice that all the truly “open” technologies run just fine on FreeBSD. It is only where open source and proprietary meet that there are a few problems.
What _is_ in FreeBSD that is GNU, does anyone know?
The most notable piece of GNU software in the FreeBSD base system is gcc and its associated toolchain (i.e. binutils)
PICO and FreeBSD RULE!
only draw back i found with FreeBSD is its behind the curve and with all the attention on linux, BSD seems to be falling further behind
When I have used Freebsd 4.8 I was surprised about how much more responsive it was under kde than Linux. Hopefully 2.6 kernel will fix this and kde 3.2 FreeBsd has its pluses but so does Linux. I am just very happy both are going very well. I support them both.
i wonder if the moron forgot to put the shell he was switching to in /etc/shells, that would be the only reason that it would ignore his changes. otherwise it works perfectly fine editing the /etc/passwd
*ieeek* Please don’t kill me 🙂
Why did the guy (?) on 1st page say pico is no more..? I am not 100% sure but I think it still comes with current suse? – Or did they cancel development? On other distros I use nano as well. I don’t know what emacs, etc offer beyond that, but for the little tempering average Joe like me does it’s simply not worth the hassle learing the cryptic navigation of the other editors…
(well who am I talking to.. you all new that already..)
Has Pico been updated recently? In any case, nano has more features (syntax highlighting, regular expressions, global search and replace, multiple buffers) with a smaller footprint than Pico, so I don’t see much point in using Pico if you have the choice.
I alternate between vi, vim, nano, and Pico (depending on whats available and how large a file I’m editing).
First of all I couldn’t get decent joystick support on FreeBSD, wine was unstable and I couldn’t get WineX3.1 to run in emulation mode, although I’ve heard rumors of someone getting it to work. This was half a year ago or so on FreeBSD-5.1. The rest was very good. No stability issues appart from wine, and responsiveness, speed and memory allocation was good. I noticed that FreeBSD seems to be more sensitive to cflags than linux in general. Don’t use too harcore cflags on the kernel and the base system.
I’ve thought seriously of moving completely to Solaris (and purchasing the Intel compiler). But if the *BSDs are more or less GNU free then I’ll check them out ASAP.
>>>You are making no sense at all in here..
Really? Sorry about that. You think it makes no sense to use a “commercial” *nix system with the Intel Compiler to avoid the GPL (if the GPL is you pet peeve)? Granted that using GCC is nowhere similiar to “staticly linking” with other GPL software, but you think it makes no sense to use Intel to avoid it (once again, only as a personal matter)? Besides, the Intel compiler has much greater performance from what I’ve read.
Or is it the “Solaris” part that makes no sense to you? Is Sun Micro _your_ pet peeve? 🙂 Not trolling at all, just genuinely wondering _why_ this makes no sense to you.
I have not tried WineX, but several games work via Linux emulation on my nVidia card. Here is a FAQ for getting them to work with a list of games that people have played: http://www.soulwax.net/nvidia/faq.shtml
OK I have to add my two cents. I have a hard time believing people can be saying that pico/nano is a better choice of editors. Myself I’m a vim bigot, though I can respect the emacs user, can’t understand ’em, but can respect them. When I started in *nix I used pico, but then thankfully had someone slapping my hand till I learned vi (well vim really). Seriously, vi is not hard to understand, just remember i to insert, esc to get out of insert, and :wq to write and quit, :q! to quit without saving changes. Not hard. If you’re still confused, try vimtutor, worked for me.
I work in Linux-based tech support, and I can tell you one reason people miff up their servers is by using pico on a config file, without using the -w option. Consequently they get word wrap and now the service doesn’t work. Using vi will not give you this problem. Plus, I rather like having color syntax highlighting and auto indentation (vim).
Anyway, just my opinion, take it or leave it, I’m sure plenty of intelligent people out there use pico and such, I just really can’t comprehend why.
It is possible to update the ports tree without CVS. I do it frequently at work, where the firewall means I can’t run cvsup.
ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz
Grab this, unpack it in /usr, and you’re set.
Well, I am glad to hear that some of you liked my review. Thanks to all of those who pointed out better ways of doing things (I don’t claim to have become an expert of FreeBSD). For the sound issue, I rebuilt the kernel because the documentation I was reading said to rebuild the kernel. As far as /etc/make.conf, I feel pretty stupid for not checking that. I mentioned that I thought some aspects were not *newbie* friendly, but I never said it wasn’t *user* friendly. I would say the same things about Gentoo, so don’t misconstrue that I think Gentoo is easier. One thing that I prefer about FreeBSD is that vi is installed by default, but when I install Gentoo, I have to go through the install process with nano. As far as /etc/passwd, you’ll notice that I stumbled onto vipw and chsh, and contrary to the anonymous coward who called me a moron, I did remember to add my shell to /etc/shells (I wanted bash which was not installed by default). I did not really intend this as a “switched” article, just an idea of what other linux users might encounter when trying FreeBSD. I am still a linux user, but I am also keeping a FreeBSD box. They are both fine operating systems, and they both have their own particular limitations. I expect that I will probably remain predominantly a Linux user largely due to inertia, however if I had learned FreeBSD before Linux, I would probably be equally hesitant to switch to Linux. Use what you like- as far as I am concerned FreeBSD and Linux are allies in the war against the evil empire.
Nano has syntax highlighting and autoindent as well, you know.
If nvi had syntax highlighting, I’d probably use it exclusively — as it stands, Vim is extremely bloated compared to nvi and nano (which I’ve aliased to always run with -w).
Hmm, so you could run FBSD mostly GNU-free, so long as you didn’t want to compile anything. 🙂
Out of curiosity, has anyone tried the Intel compiler (in the ports system) for compiling (a) other ports, (b) the kernel, (c) the “world” (i.e., updating the system)? What results?
i agree with you. mr. miagi say “no switch, just use”
this “switch business” is for single os type people, who really shouldn’t be visiting osnews anyway.
yeh…. yet another one….
“Oh! I’m migrating from Micro$oft Windoze to vacuum cleaner and feel some trouble…”
I can’t see why GNU/GPL zealots have trouble understanding that some want blocked code where people won’t be able to close it later on and some want free code which can be used for whatever purpose?
I for one don’t want to use GPL as I believe it’s very damaging to future development of new fantastic software. I want free code, Is that so difficult to respect? I respect if someone wants to have unfree/unliberal code using GPL and force others to keep it open so that companies can’t develop it further and close it.
There’s some news at bsdforums today about compiling the kernel with Intel’s compiler
http://www.bsdforums.org/forums/showthread.php?threadid=16077
Neil wrote:
It is possible to update the ports tree without CVS. I do it frequently at work, where the firewall means I can’t run cvsup.
ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz
—————————
Thank you very much! That information is something I have been looking for. I used to run FreeBSD 4.8 as a workstation in my workplace, where I have a reasonably fast connection to the Internet which makes cvsup and the ports collection useable. A while ago cvsup suddenly stopped working, and after eliminating other possibilities it became clear there was a newly installed firewall somewhere in my workplace blocking cvsup access.
Let’s just say that any requests from me to poke holes in the main firewall were unlikely to be met with a favourable response, so I was stymied.
FTP continued to work, but downloading ports one file at a time was too tedious to contemplate, and I didn’t realize there was a single ports.tar.gz file available.
Thank you again, Neil.
-Nemo
(not inspired by the stupid Disney movie, but rather
by Jules Verne’s “20,000 Leagues Under The Sea”)
i’ve never seen so smart OS as freebsd.
My thoughts exactly! GPL may have its place, but not on my work. 🙂 I prefer to pay for licenses so that others can use my work later (for fee or not). With GPL you get something for free now, but you may pay a heavy price later. It is very unclear that others will use your work later because of the licensing, and since it is OSS they can easily retool your idea with different languages/tools/improvements and then you’ve lost thrice (they don’t use your code, don’t pay you for your idea, and can reasonably argue in court that they copied nothing when the retooled software hits the market). To even _prove_ infraction you have to reverse engineer the other person’s code – ugh, what a pain. And companies would ALWAYS pay not to redo work when the price is reasonable.
Not trolling at all, just my opinion.
BTW: thanks anonymous@IP: 195.137.38.– for the thread on the INTEL compiler.
Now that all the big players (IBM,HP,Sun) are jumping on the GPL bandwagon, isn’t it clear that GPL is a license against innovation. It will only serve to protect them. What does the GPL Linux Kernel give you? It forces you have to basically give away all your innovation to them. What do the BSD kernel’s give you? It allows you to innovate and compete. It allows for companies like Sun and Cisco to exist.
emerge –resume blahblah/foo
I used to do it the hard way (cd /var/tmp/portage/foo, cd word, cd foo, make)
Also handy: make a script called emergebeta in /usr/bin and put ACCEPT_KEYWORDS=~x86 emerge (and parameters, I just use $1 $2 etc but I’m sure there’s a better way). You can easily emerge newer packages when you need them with
emergebeta foo
Cheers
Simon
My thoughts exactly! GPL may have its place, but not on my work. 🙂 I prefer to pay for licenses so that others can use my work later (for fee or not). With GPL you get something for free now, but you may pay a heavy price later. It is very unclear that others will use your work later because of the licensing, and since it is OSS they can easily retool your idea with different languages/tools/improvements and then you’ve lost thrice (they don’t use your code, don’t pay you for your idea, and can reasonably argue in court that they copied nothing when the retooled software hits the market). To even _prove_ infraction you have to reverse engineer the other person’s code – ugh, what a pain. And companies would ALWAYS pay not to redo work when the price is reasonable.
You are completely trolling. You are making completely reversed comments from your first statement to this one. First you say you want to use FreeBSD only if it is GPL free. Ok I can respect that. Not everyone likes the GPL. Now you are talking about having your code stolen and getting nothing. Well I dont know if you have read the BSD license but that is what it is. A *COMPLETE* giving away of all your work. Meaning anyone can do *absolutely* anything with your work. Put it in their proprietary product and not give you a damn thing. I really do not see your hatred for the GPL. It was created to protect the developers, and to an extent, users. Not that I dont like BSD license or anything either. I think it plays just as big a role in FOSS world as GPL. What it sounds like to me is that you have read too many forbes articles and are out of touch with what the GPL really is and what exactly it lets you do. GPL code can have duel licensing. QT as an example. You can hate the GPL all you want, but at least have legit reasons. Otherwise you just come off as a troll. But hey its your opinion.
“Not trolling at all, just my opinion.”
mike_c wrote:
>The beauty of using vi on fbsd is that it is real vi.
Well using “real vi” has also drawbacks: the next time I can’t see the end of a file because there is a line too long for vi (THE real vi: on Solaris..), I’m going to be quite pissed off.
And are you sure you need to install pine for using vim???
I never installed it and have been using vim for quite some time..
chicobaud wrote:
>”vi like emacs” = no need for linux vim extensions
vim is not specific to linux you know..
I’ve been using it on Solaris quite happily since a few years (it saved me from Sniff, which is a pig, even more bloated than emacs if you can beleive it).
And the idea of turning vi into something like emacs made me shiver!
Hey, I want an 1GHz Athlon with 640MB of RAM as a “second in command” machine too…
*Now* I understand why everything is so bloated and slow…
FreeBSD can be a real pain. Try and use NFORCE2 Chipset with an ATI Graficcard, or a KVM Switch and you’ll see. Apart from that it is really fast and really stable. But it was my first non MS OS and that was really hard stuff.
On portupgrade: it does a lot of dependancy resolution for you, and in many cases you can upgrade one of your ports without upgrading everything else. It may, however, cause some minor problems.
Interactivity: if you run make in port directory, add BATCH=yes to make command line. If using portupgrade/portinstall, execute it with -m ‘BATCH=yes’ flag.
You’re right about quite a few utils — they are ‘true UNIX ones’, frequently missing GNU options (or cruft?).
First you say you want to use FreeBSD only if it is GPL free. Ok I can respect that. Not everyone likes the GPL. Now you are talking about having your code stolen and getting nothing.
Sorry that my point is not clear to you. My point is that without using the GPL software I can choose to release the source code or not. If GPL is used you can’t make that choice (by FSF design, I’ll remind you) – the choice is already made for you by the FSF.
I don’t care about getting paid in most circumstances – the software I write is Freeware. But if I use GPL and people (yes, including companies) like it I’d have crazies all over demanding the source. And when a deep-pocketed company comes along and gets the source they have resources to reimplement it with different tools and release it under BSD (for example) – they’ve duplicated my efforts and _don’t_ have to release the source. My initial efforts don’t even get a “nod”. (BTW: this is a scenario not really “thought-through” by the FSF and will IMO get more common with the entrance of the IBMs into the “free” software world.)
The GPL has been called “restrictively unrestrictive” (forgive me, I can’t find the source just now – which is why I took so long to respond). I happen to agree. RMS goes on about a “protecting the developers”. Well and good. But his license IMO only does that for unpopular products :-). Which is why IMO that the popular ones opt for Mozilla or some other licensing.
If you think this is a “bogus” argument, that’s fine with me.
Mumic seems to think that using GPLed software compels you to release own developed code under the GPL also. I wonder if Mumic has read the GPL…
The GPL is designed to keep Free software distinctly apart from proprietary software. Developing your own code on a system that contains GPLed sofware does not make your own closed source GPL. Using GCC to compile software does not make the source GPL either.
Your own source only has to be GPLed if you use GPLed source code in your own code or if you voluntarily release your source under the GPL.
I sense a lot of the effects of the FUD that is being spread about the GPL. If you like the idea of companies being able to reuse your code without license restrictions, release it under a BSD-style license. If you want to focus all development (even whats done by corporations) on your code, release under a more restrictive license. Freedom of choice.
The Microsoftian take of “a cancer” or “pac-man like” is plainly not true. The only real reason to hate the GPL is when you see usable source code, would like to use it, but can’t because you don’t agree with the license terms. In that case, tough luck.
No disrespect intended to you, but it is a bit “lame” to always claim that someone who doesn’t agree with the GPL hasn’t read it. I have indeed read it, and I think that you are (either willfully or not) downplaying the “viral” effects of it.
It is not only Microsoft who don’t like it. You may not _use_ other’s GPL licensed code at all without releasing your extensions as GPL. Lots of people and companies don’t intend to use GPL-licensed code because IP is impossible by extending that licensed code. They _do_ however have the source (again, thanks to the GPL). This is my original point – that the code can be copied and modified because control of the source code has been lost.
I’ve been accused several times of having “not read” the GPL. On the contrary, I’ve read it _and_ understood its implied meaning as well as the words stated. Of course the FSF continually says that this is not a “viral” license. But then they developed LGPL – which is it then? Of course you don’t have to license everything compiled under GCC as GPL – that is a ridiculous idea. My preference to go to the Intel compiler is a matter of principle – severing my contact with the FSF and what I perceive to be an underhanded and coercive tactic aimed at all IP (which RMS openly disdains).
I have every respect for anyone who chooses to use the GPL if that is their choice. But please don’t insult people who disagree with RMS about “freedom” by claiming that they haven’t “read the license.”
Finally, when RMS gets around to writing a plain-talk GPL without the normal legalese I feel that a fair number more people would take notice of the implied meaning. However, I for one would respect him a LOT more if he did just that. It is not likely though, and _that_ is the source of my complaint.
Finally, when RMS gets around to writing a plain-talk GPL without the normal legalese I feel that a fair number more people would take notice of the implied meaning. However, I for one would respect him a LOT more if he did just that. It is not likely though, and _that_ is the source of my complaint.
That’s the problem though. You cant put it in regular terms. Companies dont read regular, “Hey yo, dont steal our code without giving back.” terms. Everything works with lawyer talk. Our world revolves around it. Thats why companies hire lawyers before entering into the GPL world or they consult with the FSF to spell out the terms for them. The FSF visits many companies and answers questions about source code, and IP. And I think your confused by RMS’s stance on IP and copyright. It is not that he dislikes their basis completely, he knows they will still be around. What he mostly dislikes is their misuse by large corporations. Which is completely understandable. It is against the “original intent” of those systems the way companies today use them.
Another quick point. You only have to release source to people you distribute your product to. If you sell a GPL product to 30 people then those 30 have the right to request the source. Hell you can even charge for the source! As a sur-charge for distribution of it. But you can absolutely not hide your source from the people you distribute it to.
Fact is though. There will always be one person who has a different opinion than yourself. That’s ok. No one says GPL is the only way. The only thing to do is to ‘agree to disagree’.
It is not only Microsoft who don’t like it. You may not _use_ other’s GPL licensed code at all without releasing your extensions as GPL. Lots of people and companies don’t intend to use GPL-licensed code because IP is impossible by extending that licensed code. They _do_ however have the source (again, thanks to the GPL). This is my original point – that the code can be copied and modified because control of the source code has been lost.
It’s this bit I was afraid of reading and tadaaa there it is. It’s all about disrespecting copyright and licensing terms, just because the big buck is beckoning. The control of the source code is absolutely NOT[/] lost.
The GPL governs your rights under which you can use this code and only the GPL. That is the right of the copyright owners to impose upon you. Using that code in any other way than the license allows is just pure IP theft.
But I get the problem. There is a lot of quality code out there that could be used by companies (or the individual) to squeeze the big buck out of if it weren’t for that pesky little GPL. Guess what, noone has the right to tell someone under what conditions he can or cannot use or license his own property. The other way around is very damn well the right any owner of property has.
It’s always the greedy ones that moan about the GPL. Good quality code. We want our grubby little paws on it, but we can’t, because we would be up in court for copyright infringement.
It seems you know the GPL very well (I was afraid you’d know the GPL), if you’d been ignorant about it your writings would have been excusable.
But it seems you do not agree with the legal means of a group of people to protect their intelectual property in such a way that it is used like they see fit. You are against the GPL because it bars people from leveraging others work for ones own benefit /financial gain without compensating the owners of the work (by equally giving code).
The GPL does not destroy IP. If you do not use this license, you are not bound by it. If you illegally use GPLed code and hope to get away with it for financial or other gains, it is nothing but justice if you feel the teeth of the GPL.
the code can be copied and modified because control of the source code has been lost
This is not the case with the BSD license? Or is it ok in this case because it has almost no legal implications? One warning though, don’t strip the copyright notices. AT&T can tell you that is not a very wise thing to do…
As a side note. I feel a certain amount of pity for you, since current trends seem to indicate that the GPLed pool of software will grow significantly in the future, which will unintentionally make your world smaller.
I forgot one of the closing ‘s. I did not mean to shout…
He says hes used Linux for 7 years, and he doesn’t know the “whereis” command. He edits the password file without using “vipw”? Even in Linux, this is not good practice..I don’t know why this puts doubts in my mind about his credibility, but at least he said FreeBSD was “usable”. How much more can you expect from a Gentoo user?
Believe me. Him not finding the whereis command after 7 years is too surprising. Hell I only found lsof (list of open files) command like 2 weeks ago.
Actually, since these unix commands are parts of your daily ‘language’ you are very likely to invent your own aliases. I, for one, always set up
# ln -s /usr/libexec/locate.updatedb /usr/sbin/updatedb
and many other symlinks right after every new freebsd installation and then I run these commands regularily forgetting that they are not actually part of my shell.
Now, no normal person has the command ‘f-prot-update’ in their shell
# ln -s /usr/local/f-prot/tools/check-updates.pl /usr/sbin/f-prot-update
but I run it almost on daily basis. I also run many other mystical ‘unix commands’ that make sense only to me, and I’m sure that most of you guys are just as set to your own peculiar ways as I am.