BSD UNIX – Is it for me?

BSD UNIX – Is it for me?

I have spoken about this earlier as well. You can see the following link for an example.

OpenBSD – EEE PC

My Transition

I was recently asked by a blog visitor about why I use BSD UNIX over Linux and what advice can I give a prospective convert. Nothing special, actually. In my case, it was just a matter of choice. I started from the school of UNIX (HP-UX, Sun Solaris, IBM-AIX and some SGI-IRIX) and  then ventured into Linux (Red Hat, Gentoo, Fedora, Ubuntu and its variants, Sorcerer, Lunar Linux, SourceMage, LFS, and back to Sorcerer), before getting to BSD UNIX. Why didn’t I try BSD earlier? Good question. You see, during my Engineering and Physics studies, in addition to the aforementioned Unices, we were forced to use Red Hat or Gentoo. Apart from a HP-UX box at home, I had no other personal computers, so I sort of stayed with Linux. Since, I grew up in India, during those days, computers were really expensive. Then, when I began my Doctorate studies, something happened. BSD UNIX was always on the back of my head. But a chance encounter with another BSD power user over at box-look led me to BSD UNIX finally. And it was also the time I started developing my toolkits for high performance simulations at work. Since,  the C compiler and Perl with many ported libraries from netlib, was all I needed, I realized I could have a lean system without  all the bells and whistles, including X. So I took an older computer at work and installed FreeBSD. So, you see, it was my efffort to start anew that eventually led me to BSD, FreeBSD to be precise. It was the beginning of a fruitful relationship that persists even to this day. Apart from one rig that runs Sorcerer, all my boxes are powered by BSD’s

Installation Routines

It would be illogical for me to go into the merits of using BSD versus using Linux. There is plenty of information available on the internets comparing BSD with Linux. So, I will avoid it. All I can talk about is what can one expect out of a standard installation routine on BSD systems, just briefly. One should not be lazy to read the manuals. BSD documentation will knock the socks off of Linux. Trust me, it is not a joke. OpenBSD manuals, in particular are poetry. Detailed installation methods are explained in the manuals. So, its absolutely necessary to read them. Don’t expect details in this post.

In general, every BSD installation follows through stages. First, you install the base system that installs the kernel and important toolchains needed for further builds. Assuming you are doing an installation with a CD/DVD, on FreeBSD there is the time-tested, pretty old sysinstall that can be used to install the base system.  It is pretty intuitive and it must be very easy to follow. Although, I don’t use sysinstall anymore . There are modern methods to install a rock solid base system with ZFS enabled and getting it up to date with security  advisories.  For a beginner, this might be complex, so on your first trial, just use sysinstall. But that doesn’t mean that the highly motivated should not use the modern method. It is up to you.Once the base install is finished, you can install X that would pull in additional dependencies automatically.

OpenBSD’s installation is pretty easy with a CD. Once you set the filesystem up, you can easily install the base system with X. Remember,  Xorg on OpenBSD is called Xenocara, a unique build infrastructure of Xorg. In my opinion, it is more efficient than the standard implementation of Xorg. When you reboot, you can immediately  start using a customized fvwm implementation and can start customizing the system according to your needs.

NetBSD and DragonFly BSD are pretty similar in their installation infrastructure. You setup the base system from a CD or minimal boot iso’s and then you can start adding software, like X, window managers etc.

Speaking about filesystems, on BSD’s you have the opportunity to explore different filesystems on different flavors. ZFS, UFS, Hammer, so much variety. For the initiated, you can learn more about them.

Package Management – Binary or Source?

Package management in BSD UNIX is probably the best in my opinion. You have the option of installing binary packages, but for the functionally paranoid, you can use the source (ports, pkgsrc).

On my boxes, I always start out like this. Install base system. Then, important languages that I need, a shell like zsh, vim editor and then X server. You could install the full X server or even choose to get a lite version installed, depending on the BSD flavor. So, you see you have complete control over what you want.

You can install either binary version of the packages or you could install every package from the ports infrastructure. My choice is ports. The reason is, many packages have build options that make it easy to customize them the way you want. For instance, let’s take the rxvt terminal. If you install the binary package, you will just get the default flavor. But if you build from ports, you could choose to install various encodings, scrollbars, 256 colors, etc. So, you see, it is usually helpful to install from ports. But having said that, the developers have gone through the pains of generating binary packages to facilitate easier, faster installation of packages. Hence, sometimes, it would be better to just choose the binary package. It is the most preferred route for me when I use OpenBSD stable branch. I mostly install the binary packages, except for occasional port builds. On FreeBSD and NetBSD, DragonFly BSD boxes, it is ports and pkgsrc, respectively.

Updates/Upgrades

Patience is important when using ports to configure your system. Speaking of patience, if you are a bleeding edge fanatic, you would be better off without BSD. That brings us to the topic of updates. Yes, it is possible to keep your packages updated on BSD boxes, but it is cumbersome if one resorts to doing that almost daily. I do that on unstable branches, and have encountered many breaks and most of the times I had to rollback to get the system back up on its wheels. BSD is a complete operating system, unlike Linux, so if you are only bothered about the relative newness of packages, just use a rolling release Linux distribution, like Gentoo or Arch Linux. But if you are bothered about the stability of the system as a whole with emphasis on code correctness and proper vetting of packages, BSD might just be your savior.

The main updates that I do on all my BSD boxes are security and kernel updates (release to stable). They are the ones that matter the most to me, not whether I am using zsh 4.5.X1 or zsh 4.5.X2. I hope, I have made my point clear. The only time I do port upgrades on my stable machines is when there is a new release of BSD. Generally, a complete system upgrade. I have done system upgrades universally across all my BSD boxes, that it is child’s play these days.

It’s not easy to generalize Linux users, due to the various distributions. But all I can say is this – If you want to use BSD over Linux, your thought process has to change as well. What is more important? Stability or constant tinkering even on the kernel level and upgrades that might rock your system? You be the judge. Honestly, of late the whole bleeding edge concept has become some kinda disease, where using fresh off the stove software is more important than stability. It is a philosophy that has become popular these days, thanks to many rolling release distros. You might ask, when Linux does it, why not BSD? Again, at the danger of sounding like a broken record, I am gonna reiterate the fact that BSD UNIX is an operating system, unlike Linux.

In conclusion, what works for me is being up to date with security updates and full system upgrades when a new release is out on stable machines. Snapshot testing rigs are a different story altogether. OpenBSD is the only BSD that adheres to a strict release philosophy, putting out new releases every six months. FreeBSD is famous for prolonging releases. NetBSD and DragonFly BSD do release cycles pretty well too.

Hardware Issues – Do the research!

It pays to know your hardware inside out, if you wanna have a completely enjoyable experience, be it using BSD UNIX or even Linux, for that matter. You see, hardware can sometimes be a stumbling block in using BSD. Newest hardware, be it graphic cards, sound cards, wireless cards and many more might not function well, just because the drivers may not be available. It is likely that one of the BSD’s might have support for a certain piece of hardware that others don’t. So, it is essential to do some research. In my opinion, research has to precede the buying process. Every release information of BSD’s include details about the cards that are supported and by which driver. Even bugs are listed. Lets say, you have settled on OpenBSD. Now, you wanna buy a laptop. You dig into the release information and find laptops that more or less match the support information in the release document. Then, you will never ever have to complain. This holds true for new hardware. For older systems that you might be getting from work, friends or family, if no information is available about the hardware, you can cycle through all BSD’s to find the optimal distribution for your machine (Refer this post about my NetBSD experience on a laptop that I salvaged earlier). On legacy hardware, for instance, NetBSD is a killer. It flies on some of my very old rigs, without any of the hacks.

It takes a while to reverse engineer a driver even on Linux, but the wait would be longer on BSD. But that doesn’t prevent you from trying to reverse engineer yourself! That’s the beauty of OpenSource isn’t it? Still, on matters like graphic cards, you need to do some research before settling on a BSD of your choice. For instance, if you have an NVIDIA card, and you want to use OpenBSD, do not ever expect to find an official NVIDIA driver on the machine. You will not. Theo is very particular about binary blobs. That is the very essence of OpenBSD. People criticize the OpenBSD project as being very rigid in their philosophy and their emphasis on security. Linus Torvalds, once famously called OpenBSD developers a bunch of masturbating monkeys! It’s nothing but hot air. OpenBSD’s focus is on security and cryptography and not having the source code goes against their security emphasis and why should someone criticize them for that. You don’t like it, don’t use OpenBSD, plain and simple. As of this writing, FreeBSD is the only BSD operating system that has an agreement with NVIDIA to develop and use official NVIDIA drivers. FreeBSD’s focus is different. If you don’t like their agreement with NVIDIA, no one cares. You see, it could go both way.

Support Information

There is plenty of support available on the internets. FreeBSD forums, Daemon forums, mailing lists, etc. In special cases, if anyone needs help, you can always bug me as well. On FreeBSD forums, for example, you should definitely check out the Tips and Tricks section. There is plenty of gold there. Same holds for Daemon Forums. Most users of FreeBSD forums are also active members on Daemon forums. So these two places are great to start with when someone needs help. Otherwise, you always have mailing lists. When you use snapshots and daily builds, it is crucial that you check mailing lists, since anything out of the ordinary will be reported and it might help you in case you run into a bug.

Have fun with BSD UNIX. I promise, you will love it!

Stop the Windows Bashing!

This has been bothering me for quite a while. Of late, I have found some really bad postings, threads bashing Microsoft, and calling different names, that I don’t want to mention. Personally, I completely disagree with this attitude. If Linux or BSD works for someone, doesn’t mean they have to be thrust down someone else’s throat.

My personal experience with *nix began when I had to use Solaris for my simulation needs, ages ago. Though it was very intimidating in the beginning, I started liking it, and when I had a chance to get my own machine, I loaded Linux on it. Since my needs have always revolved around programming, and mathematical modeling, *nix provided me the best platform. I was never into gaming, so I didn’t miss Windows a lot. Same goes with Mac. Never used one, and probably never will, just because my needs don’t require one.

But thats just me. There might be a lot of people who are into hardcore gaming, high quality graphic designing and so on, and certainly in those aspects, *nix is not the best suited. So it would be totally ridiculous on my part to talk to someone who plays games a lot, and preach him about Linux and how his Windows Vista sucks and so on. This self righteousness is something that can be totally done away with.

Being a fan of an OS is something, but to start preaching it is a totally different thing, which i strongly disagree with. In my opinion, world domination is not the agenda of *nix, and a whole majority of folks behind most *nix distros will agree with me I hope. To make matters worse, you also have distro wars, desktop environment wars, and such. Seriously how is it going to help?

Of course, quite a few people I know have started using Linux after I met them. But mostly, it would be that they would see my screen, and ask me details about the colors, and configuration, and when I tell them its Linux, they would ask me for some help in setting it up for them. That’s about it.

So what is the cause for such hatred? For instance, an acquaintance of mine started using Linux a few months ago for the first time, and after a week, he was convinced that Windows was crap and stuff, and he started preaching a lot about Linux. The worst part, he visited me then and saw one of my Solaris boxes at home with the CDE and started complaining how crappy it looked and how Linux was so much better! I did not want to waste time by arguing or explaining about Unix to him, because frankly, I had a feeling that his mind was made up.

So do new Linux converts also have the same opinion? Have you people also come across such individuals? When you use *nix for a long time, you tend to realize how powerful and fantastic the os is, but at the same time, you also tend to learn a lot about the variety of problems that one might have to deal with in using it., especially related to X, wireless cards etc. Mentioning the common problems encountered in *nix is the first thing I do whenever someone asks me about my opinion on *nix.

Sorry about the rant. Just that I got frustrated about all the Windows hate and had to say something about it. Please post your comments if you have come across such things as well.

Color Me Bad Fluxbox Theme

On a related note, I released a fluxbox theme over at boxlook a couple of months ago or so. The idea was to make a theme that would merge with my Xdefaults colors then. You might have seen the old Xdefaults in action in one of my previous screenshots. And the colors are still available over at my dotfiles page, for anyone still interested. Anyway here is an old screenshot of my Color Me Bad fluxbox theme in action. Click on the thumbnail for full view.

Lunar_Linux_Fluxbox_SpeedDemon_by_pkmurugan.png

For Openbox users, there is an openbox port of this theme available at boxlook as well. Rydgel ported my theme to openbox. Anyway here is the link for both the themes.

Color Me Bad – Fluxbox

Color Me Bad – Openbox

Note: People who downloaded my fluxbox folder from my previous post, need not download this theme again, since it is already available in the folder.

Collection of my Fluxbox Themes

fluxbox-logo2

Since I have had a request to share my fluxbox folder, I decided to do so, and make it available right here for other interested people as well. Fluxbox is my favorite *box environment, and is installed on all my machines, both at home and work. Its very easy on resources, and very easy to configure to one’s own needs. I have collected a lot of fluxbox themes over the years, right from the very old ones, to the very latest. There are some themes, that I made myself, and some that I heavily modified, and unreleased, but they are all available in this archive. Mostly I will take a theme and rework on it to gel with a certain gtk theme I will be using. As you might have seen in my previous fluxbox screenshots, I am currently using the Royalty gtk and fluxbox themes made by the amazing artist, lyrae aka thrynk. The only thing that I modified is the fluxbox toolbar, which you can see for yourself. Royalty is one of the best themes ever. It’s color neutral and unobtrusive and can go with any background, which is fantastic. Anyway have a look at the themes in the folder and hope you folks find it useful.

I would like to mention another thing. You should modify the main files in the folder, namely, overlay, and init to modify the setup according to your needs. Though you can make a certain theme use a particular font setup, I always use the overlay file to bypass the theme defaults, so that setup is uniform. So have a look in that file. As far as the init file goes, you can change the Workspace names and such in there, and do not have to use my Workspace names, that is unless you are a huge Cowboy Bebop fan like yours truly. Also check the keys file, mostly it is default, except for an entry I added for gmrun.

I archived my fluxbox folder and have uploaded it over at mediafire. Just follow the link below, download the file, unarchive the folder, dot.fluxbox should be the name I think. Then rename the folder to .fluxbox, and make sure that this folder resides in your home directory, i.e, ~/.fluxbox. Let me know if there is any trouble downloading the file, and if anything else is needed.

My Fluxbox Folder@mediafire

EEE+Framebuffer

Nothing much, just thought of posting a screenshot of my EEE Pc in action. As I had mentioned in some of my earlier posts, I have a very barebone EEE setup. Obviously it runs Lunar Linux, and there are no window managers installed. I have dwm, and evilwm as my primary wm’s, and just now compiled fluxbox, just because I am a huge fluxbox fan, and tend to use it from time to time.  But most of the time I just code and don’t get out of the console, and when its not so important, elinks takes care of my browsing efforts. So during such days all I use it the tty console, with framebuffer enabled. That gives me a lot of screen real estate, and dvtm, gives me a great way to utilize the space. I have to try out the vertical patch fro screen by the way, may be over the weekend. Terminus comes to the rescue as far as the console font is concerned. I do like the default console font, but I am more used to terminus. Anyway here is a screenshot of my framebuffer on my EEE Pc. It runs on the latest stable kernel 2.6.29.2, compiled with framebuffer support. Of course I haven’t played around with 915resolution yet to get the right resolution.  But 800×600 is so much better than the boring console without framebuffer. So comment on the screenshot. Click on it for full view.

EEE Pc Screenshot

As promised, here is the EEE screenshot. The lunar update did take a while. Since I started the update and left to meet a friend, I couldn’t configure the kernel when it was built. So I had to recompile the kernel, when the updates had finished. I use the framebuffer quite frequently, so I recompiled 2.6.29.2 with framebuffer support, so that took a little longer. Anyway this is how my setup looks like ony my EEE. Window manager is dwm5.5 and the wallpaper is self made. Of late I have been blown away by Haruna Yabuki, and I am still in a fan boy mode. It will probably stay that way for sometime. This picture of hers is one of my favorite pictures. So that necessitated the need to make a quick wallpaper. Also I am no artist, so this wallpaper is a very amateurish attempt, so please don’t mind. Anyway here is the screen. Click for full view.

lunar_linux_eee_haruna_sexy_by_pkmuruganpng

Lunar Updates

As expected, lunar updates were available today, and I promptly started updating most of machines running Lunar Linux. Updates are finished already on three machines, and one of my old desktops and my EEE are still compiling the 2.6.29 kernel. Will be finished in an hour I guess. After that I will post a screenshot of my EEE pc. As i had mentioned earlier, my EEE is one of test machines. I tried so many distros on it, that I have lost track completely as to how many. I tried most of the obscure Linux releases on it. But finally decided to stick with Lunar. There is a partition setup on it, to build LFS, which I follow up on whenever I have some extra time. So far it has been good. I have prior success building LFS on a desktop, which still dual boots my version of LFS with Sorcerer. That had to be one of the happiest moments of my life, to get LFS up and running. Since it was pretty time consuming, and I had so many other things to do, I was unable to do so on my other machines. But I guess by the end of this month, when I take a week off, I can finally finish the thing on my EEE. In the mean time, it has been hacking Lunar Linux, that satiates my Linux thirst.

State of Moonbase

lunar1I am expecting a weekend moonbase update. I am talking about Lunar Linux here, and not the real moon! Linux-2.6.29.2 was released on April 27th, and it’s already in moonbase git, and so is firefox 3.0.10. Just those two will take a while to build. Firefox on my EEE, for instance took a solid four hours or so to be built. But since the last two firefox updates, the option to build it with Profile Guided Optimization is activated, so no wonder why it takes longer to compile than the usual. But PGO sure made my firefox real fast.

New Screenshot – EvilWM+Lunar Linux

As I had mentioned in some of my previous posts, customizing my setup is a stress buster for me. Since I am in a phase where I am finishing up my Dissertation and doing some final simulations, stress is an inescapable factor. Customizing is one way I try to relax, although most might think, it’s weird. During weekends, its mostly building lego models, reading paranormal literature, and playing around with LFS on my EEE, that relieves my stress. Anyway, as you might have noticed, I alternate between dwm, and evilwm all the time. Started playing around with my .Xdefaults a bit, and ended up with something not so colorful and completely unobtrusive. I am sure I will stick with this setup for a long time. I am posting a couple of screenshots of this setup on my Lenovo3000N200 laptop, running evilwm as the window manager. As always, I run Lunar Linux on this laptop, and I built the system totally according to my needs, and the response of the system is blazing fast. Sayaka Isoyama and Haruna Yabuki are featured in the wallpapers. Please comment on the screenshots. As usual, if there are any requests, like wallpaper, configs, let me know. I will post them as usual. Click on the picture for full size.

sayaka_haruna_lunar_linux_by_pkmurugan