Laptops & various operating systems

Laptops are a big subject, and this writeup will focus largely on operating system choices, foibles driver support. My experience is largely based on a thinkpad T-23 and I'll try to delineate what aspects are specific to that platform. The observations are valid for laptops generally. (including for instance Apple's powerbook / Ti-book lines).

Caveat: I use Unix™ and unix-like systems almost exclusively, and there's very little in the way of either work tools or user interface that I like about Windows. I have used add-ons for MS operating systems which try (and sometimes succeed in providing the user interface niceties that I take for granted in X11. Cygwin and other alternatives exist for folks who need decent free tools under the MS environment. I prefer The Real Thing

The landscape

First off Laptops are simply a major headache for OS developers. Laptop and notebook computers are relatively high-margin items and the market rewards vendors who get good usability features (graphics, video, audio, battery life, wireless etc, etc) into progressively smaller form factors. This usually involves some compromises, minimizing the quantity and power use of circuits (such as the ubiquitous winmodem which saves some space and power).

Because the vast majority of laptops running i386 - compatible processors are used with Windows, very few manufacturers provide device driver support for other operating systems (such as linux or BSD). This often means that getting a late-model laptop to run a free or open source OS may be something of a chore. (Toshiba has the reputation of providing laptops which work well with Linux).

Typical laptop features include:

  • power management (ACPI on newer machines, APM on virtually all)
  • PCMCIA
  • removable drive bay
  • wireless lan (802.11 or bluetooth)
  • numeric keypad merged into main keypad
  • characteristically slow hard bus / disks / network
  • all the other stuff, video, audio etc. (with power management)

Win2k

Windows (2000) for all it's faults does setup and run far more easily on current laptops than either Linux or BSD. This is principally because the system vendors are writing the appropriate device drivers*. Of course the manufacturer can also ship configurations which have been tested for conflicts.

So what you get with the Microsoft™ OS(sic) includes smooth, simple operation. Of course it also may include performance and security issues. If you're accustomed what MS jokingly passes off as a user interface all is well and good. But that's not what I need for daily work so some flavor of Unix was needed.

Linux

I started out with linux on the t23 in October of 2001 on the (possibly incorrect) assumption that compatibility would be better, but also because there are an array of tools that come up fast and easy with Linux and I didn't *need* BSD in particular. I've since learned that the then current openbsd 2.9 indeed had some problems with wireless networks.

kernel 2.4.12

As expected Redhat 7.1 didn't run very well out of the box and I updated the kernel to 2.4.12, and shortly found a manual patch that was needed to fix APM (it seems most thinkpads used a non-standard way of dealing with power, but the T23 became more standard(sic). Without the patch the system would often hang when coming out of suspend mode.

That worked pretty well and i was immediately able to install run ethernet, sound, X11 etc, and build / install the drivers and build most of the software I wanted. The only immediate hassle was the 802.11 wireless network driver (wlan-ng). version 0.10.0 worked acceptably, although building it required a gotcha - type hack in the kernel build: copying the .config file, running "make mrproper", restoring the .config file, and then building / installing the kernel.

I experienced occasional crashes, usually just of X11, sometimes locking the whole box. These events seem to have been an interaction between the audio driver and the mouse, so practically I found it was best to avoid listening to music while working. The next several kernel releases didn't seem to offer any special enancements, so I stuck with the patched 2.4.12 kernel for some time.

I was shortly up and running with NSA's Security Enhanced Linux (SELinux), working on security tools. The box was stable enough to use as my primary development and net-access tool. Uptime was usually 1-2 weeks between reboots. The most common cause of problems seemed to be interactions between the wireless net and audio drivers, or the mouse and E wm / Gnome. I learned that listening to music while working was a likely cause of crashes.

The next several kernel releases (2.4.13-16) all had problems that kept me from upgrading, however 2.4.17 looked much more promising. I installed that with a source-based distribution (SGL), patched for SELinux and was pleased to find that the audio driver improved on the earlier one in having better reliability and clarity.

kernel 2.4.17

2.4.17 did introduce some useful (to me) new features. I installed it in Feb. '01 first into my redhat partitions and shortly after in a sorcerer linux (a distribution based on installing all components as locally compiled from source). I found this kernel to be pretty stable, and I was able to run both redhat with the Se-Linux patches and sorcerer handily. The machine was happy to travel between jobs in suspend mode, and to re-configure it's network settings and interfaces between wired and 802.11 wireless as needed.

Not everything was perfect, I continued to experience crashes, now less often at 2-4 week intervals. There was some problem with the wireless lan driver which caused the machine to hang on rebooting any os. if the unit was not powered off. (I've not observed this problem working with either W2k or OpenBSD.

kernel 2.4.19

Virtually stable with my hardware. I presently run 2.4.19 with JFS and the security patches introduced with .22-.24.

kernels 2.4.22-24

Have proved unstable on my thinkpad I'm not sure why and will re-test these eventually, however the return to daily crashes was unacceptable for everyday work

Openbsd

Has both advantages and problems on my particular machine. I found that reasonable support for the t23 only became available on obsd when the machine was about a year old.

However at that point it was decidedly far more stable than Linux. The 802.11 driver simply worked correctly all the time, and I routinely have found that obsd gives me uptimes around 30+ days, where Linux still can rarely go more than a week if I'm doing much traveling (apm/suspend just doesn't always come back to life).

OpenBSD of course has had it's downsides. the power management support is not as sophisticated, so battery life suffers. I never did get MPlayer to handle DVD's acceptably (tho I was running obsd 3.2-current which is now quite dated). And obsd had (has) no support for device hot-swap, the best I was ever able to do was to swap in the aux battery into the ultra-bay with the machine in suspend-mode.

BSD's disk performance is substantially slower than Linux. However this is not a pure drawback. The underlying reason is that bsd uses syncronous mounts, while Linux uses async mounts which are much faster they also provide fundamentally lower reliability. I routinely lose data when Linux crashes *whatever* filesystem is in use, which simply does not happen with bsd's FFS.

OpenBSD's interactive performance is only slightly slower in my experience than Linux when running X11 and a medium weight WM. (I refuse to use either gnome or KDE, finding them both to provide insufficient power to compensate for the performance hit they impose). My rule on this is 'if it's fast enough then a little extra doesn't matter.

Gerneral notes BSD & Linux

Power management

While both of these OS's are getting better at things like power-management and removable devices, neither provides a hibernate mode, and some devices which will powerdown during a suspend may not correctly restore when resuming operation. Support for ACPI is workable, full support at this time requires installing kernel patches from sf.net, which I found caused this machine to hang during boot. ACPI will be available in freebsd 5.0. Openbsd provides only APM for power management.

802.11 support

This gripe is quite specific to my t23. As indicated above, the prism driver support in obsd simply works, while the (linux) wlan-ng drivers lock up at regular intervals if the wireless is used for large data-transfers. Also *any* os trying to boot after the prism card has been active will hang when it tries to detect the prism card. It is unfortunate that Linux has as many as 3 different available drivers for this chipset, none of which work correctly.

I have had similar problems with a cisco / aironet pcmcia wireless card, whether using Cisco's drivers or the Linux kernel drivers, again the BSD drivers simply work.


Edit: I wrote this node a year ago and, rather than letting it sit, did a very quick polish and dropped it into place.

Additional notes: The laptop that I'm basing this on was originally installed with redhat 7.1, I added 'Sorcerer' linux about a year later, which was eventually morphed into 'Lunar]' linux and OpenBSD. A hardware failure in the disk drive was the impetus was the excuse to re-install obsd and install slackware (9) (with SE-Linux) patches.

I ran bsd 80% of the time for the next year, sometimes booting slackware for linux-only needs. I was a part-time developer for Lunar Linux throughout this time, however the project was too unstable for me to risk problems with my main development system.

Presently (and for the last 6 months) I've run and developed Lunar exclusively. It's not always stable but we've hit a good enough stride that it's been the most-productive choice. Sometime soon I plan to re-install obsd (probably over the win2k partition).

Log in or register to write something here or to contact authors.