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.
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
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).