Tag Archives: linux

Slackware 14.1: an interview

I’ve been quite slack ( yip queue the puns ) on reviewing Slackware 14.1 but time has been short and to tell you the truth, after upgrading, there’s not a whole lot different from an existing user’s point of view ( except for that usual Slackware “it just works” air of operation ). That being said, there is a whole heap of functionality in Slackware 14.1 that deserves mention.

First some version numbers to see where SW 14.1 is at. Kernel 3.10.17 is bang up to date and features support for most current hardware. The huge and generic kernels continue to be supplied leaving it up to the user as to which they prefer ( generic requires an initrd be built ). Xfce 4.10.1 and KDE 4.10.5 are featured for desktop environments, both being fairly up to date ( at the time of 14.1’s release ). There’s also a whole lot of gadgetry underneath dealing with the automatic detection of hardware devices without the user resorting to ninja tricks.

A complete development environment including glibc 2.17 and gcc 4.8.2 is on offer along with a host of other development tools like LLVM and Clang. Then we have server standards like Apache 2.4.6 ( along with php-fpm support, my favourite new toy ), php 5.4.20, Perl 5.18.1, Python 2.7.5 and many others. As usual, Slackware’s package list is as complete for server use as you will find anywhere else. 14.1 is also the first Slackware to support a complete UEFI environment including install and booting. For desktop use, there’s a good helping of mainstream apps from Firefox to Amarok ( and including some GTK+-based apps ) however you’ll probably end up using one of the 3rd party repositories ( like www.slackbuilds.org ) to fill in the gaps or compile those apps not included. Security options are covered in detail with OpenSSL, OpenVPN, OpenSSH and GnuPG.

At just over 2GB in size, the installation image is about average for Linux distros but it does include a huge amount of apps and options. I’ve started playing with BTRFS recently and Slackware provides a good environment for this, having a fairly up-to-date btrfs-tools package and install-time support. Of course, Slackware includes support for a number of other filesystems, including all ext versions, xfs and reiserfs. Glusterfs or Ceph would be a nice addition though … PXE and USB installers are available for cases where traditional installation methods are not an option ( and they are quick ).

Slackware ( and derivatives ) remains one of the few Linux distros that allows for a complete RAID1 boot implementation ( something that has saved me on numerous occasions ). I know that there are some options for RHEL-based and other distros but they do seem a bit complex or don’t mirror the /boot slice.

The installation itself remains straightforward but sparse, using an ncurses-based graphics interface. Some of the hand-holding found in other distros is not evident here – you need to partition your disk(s) before installation and make package selections during installation that may seem a little archaic.  After, there are some tools like slackpkg, sbopkg ( 3rd party ) and slapt-get ( 3rd party ) that assist in keeping your installation up-to-date and provide app repositories.

If you want flash ( not flashplayer ) and desktop-style ease of use, then other distros are probably better suited. But if you need a rock-solid server OS or desktop OS you’re willing to tinker with, then Slackware suits the bill.

Update: I completely forgot about one of the most important changes in 14.1 – the switch from mysql to mariadb. There’s a lot of wrangling going on about which is better technically but at this early stage of dev, there’s not much diff between mariadb and mysql. Bigger changes are expected in the newer releases and a gradual move away from 100% compatibility.

10 Immutable laws of security administration

  • Law #1: Nobody believes anything bad can happen to them, until it does
  • Law #2: Security only works if the secure way also happens to be the easy way
  • Law #3: If you don’t keep up with security fixes, your network won’t be yours for long
  • Law #4: It doesn’t do much good to install security fixes on a computer that was never secured to begin with
  • Law #5: Eternal vigilance is the price of security
  • Law #6: There really is someone out there trying to guess your passwords
  • Law #7: The most secure network is a well-administered one
  • Law #8: The difficulty of defending a network is directly proportional to its complexity
  • Law #9: Security isn’t about risk avoidance; it’s about risk management
  • Law #10: Technology is not a panacea

Slackware 14.0: An Interview

Wow, Slackware 14.0 is finally here! To say this has been a huge upgrade cycle is putting it mildly. Nearly a year and a half I think? And 5 release candidates. That’s not of course to say there’s anything wrong with that – 13.37 has been serving us just fine since April last year. A testament to the quality of Slackware releases. And anyone who likes to live on the bleeding edge can always follow -current, the development stream.

And so to 14.0. What’s new? Well almost everything. From core system libraries to applications, there have been a lot of changes. But in saying that, 14 retains an uncanny resemblance to its earlier siblings. And continuity in my mind ( and I think Patrick’s ), is the key to Slackware’s success.

I recently worked on a Slackware 9 machine ( not one of mine … ) that had been humming along quite nicely for many years. Unfortunately it had never been upgraded, however, the similarity to a current Slackware installation was striking and pretty much everything was where I expected it to be. There’s something to be said for continuity.

Core

Slackware is now running with Linux Kernel 3.2.29. Pat mentioned in August that he had tried 3.4.9 ( 3.4 series is now regarded as a Long Term Support release ), but had an issue with some oops so he decided to stick with 3.2.x. There has been a  lot of to and fro with regard to udev in this development cycle. Not just how udev is used within Slackware but its interaction with other subsystems. Pat said “Well, udev in this devel cycle has certainly been interesting!” – a change in how udevd starts gave both Pat and Robby a bit of a run around, but you can’t get those 2 down and it was soon sorted out. Udev also works correctly with initrd’s now.

Udisks and Udisks2 are present and updated allowing mostly seamless use of peripherals by normal ( non-root ) users.

As per usual, Slackware includes 2 kernels: huge and generic. Huge includes most drivers built-in whereas Generic includes most drivers as modules – in that case you’ll need to build an initrd to use generic. There is documentation in /README.initrd on the disk on how to do this. And there is also support for compressed modules.

In addition to the standard kernels, there are sample config files for Kernels 3.4, 3.5 and 3.6 in testing if you want to be testing. There is a ‘new’ package for partitioning, gptfdisk  ( used to be known as gdisk ) – the partitioning utility is cgdisk which can be used to partition GPT format disks. This is included in the base initrd for boot-time installation support of large disks ( 2TB and up ).

In its basic form, Slackware comes in 32- or 64-bit formats. The 64-bit version does not natively support 32-bit apps however AlienBob maintains Multilib packages and instructions on using these, allowing one to run native 32-bit apps ( eg. Adobe Reader ) under the 64-bit version of Slackware.

If you are upgrading to 14.0, then the newer CUPS release may require you to update your printer drivers.

Networking and Security

In a surprise move ( at least to me ), 14.0 includes NetworkManager, a GUI configuration tool used to configure any number of networking interfaces including wired and wireless. The basic network scripts are still available and have been enhanced with bridge support ( useful for non-NAT’d networking in KVM ).

There are a massive number of networking tools included with iftop and iftraf being amongst my favorites. Everything is at its latest release ( or close to it ) including the bridge utilities, ISC DHCP ( client and server ) and BIND, dnsmasq for DNS forwarding and DHCP ( in case you don’t want to run full-blown BIND ), ethtool for checking ( and setting ) network interface configurations, wireless utilities and supporting firmware, samba for file-sharing and NTP for time services. Roaring Penguin’s pppoe client is also available for quick and easy pppoe configuration and operation.

There are also the usual collection of CLI news, mail and browser utilities for those who like it old school or who don’t run a GUI. Security is fully covered with OpenSSH, OpenSSL ( now in the 1.x release stream ), OpenVPN and GnuPG 3.

Applications

As java is no longer distributed with Slackware ( due to upstream licensing requirements), there are scripts in /extra to repackage the official Oracle jre/jdk releases as Slackware packages. In addition, AlienBob, packages the OpenJDK ( IcedTea ) release along with the icetea-web browser plugin and rhino javascript engine for OpenJDK.

A number of Gnome-related libraries have been included to make life easier for those running ( or compiling ) Gnome apps. Apache is at 2.4.3 ( with SSL support ), PHP is at the 5.4 level and is now built with php-fpm ( a FastCGI implementation ) providing good memory and CPU utilisation for heavy traffic environments.

Development tools run the full gamut ( gcc, Perl, Python, Ruby, etc. ) and this is one reason why Slackware has always made for a good Development/Workstation environment.

X and Apps

XFCE 4.10 and KDE 4.8.5 are the 2 main GUI environments and Xorg is at 1.12.x. I’ve been using KDE 4.8.x since it was made available by AlienBob and it’s as solid a release as you’ll find anywhere. There are browsers to spare and my main work pair, Firefox and Thunderbird are at their latest releases. Graphical development tools, music and video players ( Amarok, Juk, Audacious, Dragon ), office apps ( Calligra ) – you name it, they are all here. And if you’re missing anything, you can turn to SlackBuilds which maintains simple-to-compile script packages for major apps like Google Earth, Chrome and many others. In addition, AlienBob keeps a fairly well stocked repository of great apps like VLC and LibreOffice on his taper mirror.

Installation

Installation has changed very little but does include support in the installer for additional/newer hardware as a result of the recent Linux Kernel and updated installer features. It looks the same as previous releases though – simple and straightforward with nothing there to really trip you up ( just remember to prepare your disk(s) with at least one Linux-type partition and one swap-type partition ). Installation runs fairly quickly ( a recent machine will finish in under 10 minutes for a full installation ) and completes with a few questions on network configuration, boot loader installation, timezone, mouse and font choices.

Besides DVDROM/ISOs, installation is supported with PXE ( I’ve been using this disk-less method over a number of years for quick and painless installations ) and USB methods as well as NFS, HTTP and FTP. There are detailed instructions on the installation disk about using the PXE and USB methods – the alternate network-based methods should be self explanatory.

Using Slackware

In use, Slackware 14 is stable and solid – as a rock. All the applications gel together and just work ( my core group being the LAMP stack – Apache with SSL, PHP, Perl and a few others ). Yes there are areas that require configuration and the lack of GUI tools may hinder newbies, but if you put the effort in, Slackware is rewarding. Very much so. Security is also on the developers’ minds as updated packages are delivered as required during the life ( and sometimes longer ) of a particular version. As long as you keep your installation up-to-date ( using the included packaging tool slackpkg, and there are others like slapt-get ), you can be assured of a stable and secure system.

There has always been a large amount of documentation and information on Slackware around the ‘net but most of it was quite scattered – more recently a determined effort has been made by those in the community to bring all this information together in a central repository, now known as the Slackware Documentation Project ( courtesy of AlienBob ). You should also not forget the trove of information that’s available on the stock installation disk – there are a lot of useful details there including upgrade documentation. For community discussions, the LinuxQuestions Slackware forum continues to be a busy and vibrant place for anyone interested in Slackware.

Slackware 14 has brought the distribution up to date and continues it’s definite relevance in the Linux distribution landscape. The large number of alternate distributions that have and still are based on Slackware is a nod to Pat’s efforts. I still regard Slackware as being one of the best server OS’s available and it doesn’t make a half-bad desktop either. Thanks to Pat, Eric, Robby and a host of other community members who as always, put in huge personal effort into Slackware. Support them with DVD, T-Shirt or other purchases at the Slackware Store. Happy Slacking!

Slackware -current May 2012

For anyone having some weirdness in X/KDE after updating to the latest current ~ May, there are some extras you need to do. First for the latest release of Xorg, some packages have been split and as such, you will have new packages that have probably not been installed. Go through recent entries in Changelog and manually install those new packages ( look for “Added” ). Then, make sure you reinstall any binary video drivers – this fixed my mirrored and rotated display. Hope that  helps someone.

Virtualisation part 4: oVirt

Red Hat’s virtualisation product, RHEV, was slightly hamstrung in v2 seeing as the manager technology ( which had previously been purchased from Qumranet ) only ran on Windows. This requirement is something that has put me off that product until now – RHEV 3 has been released with a JBoss-based management server now and a whole lot of feature goodness. But it’s a paid-for product and not everyone can afford this. So the Open Source oVirt project is the next best thing.

oVirt comes in 2 parts:

  • ovirt-engine ( the manager )
  • ovirt-node ( the compute node )

These are currently based off of Fedora 16 with an additional repo for the engine but with Fedora 17, it should be integrated. oVirt currently supports FC, iSCSI and NFS as storage repositories for VM images while NFS is supported for ISO and export images. A requirement is that all CPU technology in the oVirt cluster is the same.

oVirt installation is quite straightforward. The first step is to install ovirt-engine.

  • install a machine with Fedora 16
  • add the ovirt repository
  • install the ovirt-engine packages
  • configure ovirt-engine
  • for the Spice-based console, install spice-xpi

Next, install one or more ovirt-node machines using the oVirt Project-supplied ISO. Once you’ve configured your nodes with basic networking, you can add them to your ovirt-engine through the management console.

Also configure:

  • a storage domain for iSCSI/FC/NFS storage of your VM images
  • an NFS storage domain for your ISO install images

Then you can get down to the business of creating virtual machines. Happy virtualising!

Slackware 13.37: an interview

I woke up this morning to find a very nice email in my inbox – Slackware 13.37 has been released!

So continuing on from previous articles in my interview series, it’s time to take a look at Slackware 13.37. One thing is for sure about the development process – Pat has been having some fun. The odd version number is because he has always wanted a cool name for a release and 1337 ( leet ) fit the bill. Instead of simply being called RC4, the 4th release candidate is labelled as RC 3.14159265358979323846264338327950288419716. Furthermore, the 5th rc is called 4.6692 ( first Feigenbaum constant ).

Let’s take a look …

What’s new?

In development, this release has seen a massive amount of updates and bug fixes. This includes new versions of the Mozilla stable of browsers to fix the recent Comodo certificate vulnerability. Other updates, changes and fixes include:

– upgrade to KDE 4.5.x series ( AlienBob is maintaining 4.6.x for the -current series and 13.37 )

– mplayer phonon backend for KDE ( to supplement gxine and gstreamer support )

– bind is upgraded to 9.7.3 ( includes fixes for cache poisoning attacks )

– Firefox 4 takes over from 3.6 as the main browser

– the huge update to xorg-server 1.9 ( xorg.conf no longer required )

– rpm2tgz now supports txz packages

– nvidia nouveau driver added

– LAMP stack now has php 5.3.6, apache 2.2.17 ( supports DSO and SSL ), mysql 5.1.55

– Ian Lance Taylor’s new ELF linker ‘gold’

– yasm, libplist, rfkill, moc console audio player, libsndfile, ddrescue ( my fav app ), iptraf-ng, chrome added

– lxc linux containers based on cgroups support

In other areas, GPT partition support, memtest86+ and virtio modules have been added to the install initrd as well as the usb/pxe installers. Slackware now supports btrfs fully with the btrfs-progs package ( moved from testing ) although you may want to use something else for the /boot slice. Support has been updated for 6xxx series and Wireless-N Intel wifi controllers. Gdisk can be used to partition large disks ( GPT ) instead of fdisk.

Installation

The ncurses-based installation mechanism continues to be simple and to the point. Support for GPT partition layouts makes use of Slackware on large drives ( ~2TB+ ) easy and virtio modules means that  it is now easier to use Slackware as a kvm guest. While not an automated install function, it’s straightforward enough to enable kvm guest support after the install process ( thanks for help from Eric, Ponce and Rambuld in the LinuxQuestions forum ).

The installation procedure is:

  • boot and login
  • partition ( using fdisk/cfdisk/gdisk ) any disks that you need for installation
  • start the installation program – setup
  • answer the install questions ( see below )
  • install and reboot
  • install 3rd party package management tools ( like slapt-get and src2pkg )
  • install binary video drivers ( Nvidia / ATI-AMD ) if required
  • set default init level to 4 ( for desktops )
  • customise as required

Install questions:

  • setup swap disk
  • choose partition(s) for Slackware ( btrfs available )
  • choose source media ( NFS, FTP, HTTP and Samba shares supported )
  • choose package sets
  • choose install mode ( full is fine )
  • create a usb boot stick
  • choose frame buffer console resolution
  • select the lilo boot destination
  • choose mouse options
  • setup networking addressing
  • select startup services
  • set timezone
  • choose windows manager
  • set a root password

Once you’ve finished the install, exit to the prompt and reboot your machine. Done!

Installing as a kvm guest with virtio requires some additional steps – if setting up kvm guest ability straight after quitting the installer:

add the following to /mnt/etc/lilo.conf

disk=/dev/vda bios=0x80 max-partitions=7

Then:

  • make sure the root filesystem is mounted on /mnt ( eg. mount /dev/mda2 /mnt )
  • mount -t proc proc /mnt/proc
  • chroot /mnt
  • /sbin/lilo /etc/lilo.conf
  • reboot your VM

One of the best advantages of Slackware over other distributions, is the ability to setup a raid 1 mirror for the boot disk, something that is a little convoluted to do on other distros ( and not doable at all using their installer GUIs ). With a fairly current kernel, Slackware has good support for most hardware out-of-the-box. USB and PXE can be used for installation – I’ve used the PXE method extensively and it makes for a very quick network install option for Slackware. Eric Hameleers ( AlienBob ) also maintains a full USB-only install method. Another bonus in 13.37 specifically, is that Eric has added a PXE install server directly to the DVD boot image – I’ve not tried this yet but it should make setup of remote Slackware, a doddle.

Core

Slackware 13.37 includes the 2.6.37.6 kernel ( 2.6.38.4 in /testing ) as standard with 2 kernel options available – huge and generic. Huge of course supports every piece of hardware available in the Linux kernel while generic is a trimmed down kernel for use with an initrd. The mkinitrd_command_generator.sh script ( in /usr/share/mkinitrd ) is used to generate an initrd post-install ( those with systems using the aic7xxx module, will need to specify this manually as part of the -m option to mkinitrd ).

There is a big addition, in terms of performance, to the 2.6.38 kernel, otherwise known as the 200 line patch – it is designed to automatically create task groups per TTY in an effort to improve the desktop interactivity under system strain. So it’s a pity 2.6.38 is not the default kernel however, it is included in /testing for those who’d like to try it.

Update:

Considering the recent issues in 2.6.38.x with high power usage, it’s just as well that Pat decided to stick with 2.6.37

Slackware includes not only kernel support for all current peripheral types but also distro support – so your pcmcia, firewire and other equipment should just work. Udev dynamically manages the setup of equipment as they are connected ( and disconnected ) to/from the system.

Networking

Slackware, like all Linuxes, supports pretty much every form of networking available. IPv6 is available out of the box, although you will need to obtain the Router Advertising Daemon ( radvd ) for practical purposes. Someone has created a radvd package and init scripts for Slackware 13.0 – I’ll be looking at adapting the init scripts for 13.37 shortly.

Network tools are 2-a-penny: netcat, tcpdump, iptraf, netwatch and nmap amongst others are available. Network services include NFS, DHCP, Bluetooth, dnsmasq for dhcp/dns/tftp/bootp, bind for dns and wireless support.

Security as always, is a high priority in Slackware: the base install uses mostly sane defaults and one can always tinker with these should you require something tighter. Network security is full catered for in the form of OpenSSL, OpenSSH, OpenVPN and GnuPG.

General Package information

Slackware has stayed fairly constant in size since moving to DVD format a few years ago. That doesn’t mean however, that it’s limited on the apps side.  The full ( current ) LAMP stack is provided along with dhcpd, dns and server apps. CLI purists have access to a number of terminal apps like mutt, tin and lynx while GUI versions of basic internet apps are available in the form of firefox, thunderbird, akregator, ktorrent, kopete, etc.

Multimedia support is well served in the base release ( with mp3 and ogg/vorbis support, libraries and players ) however, if you want the full shebang, head on over to AlienBob’s alternative tree for a range of apps including the ubiquitous media player VLC, brilliant video tool avidemux and swiss-army knife of media, ffmpeg.

While a few browser-based plugins are provided, you’ll want to look towards a 3rd party repository like SlackBuild.org for others. A slackbuild script is included in /extra for Flash and you can download Acrobat Reader from Adobe directly – the installation is straightforward.

Graphical environment

KDE in Slackware is at the 4.5.5 release and provides for a very stable and fast graphical environment. It is stock so don’t expect any bling, however, that plays to both the Slackware ethos and my own preferences. Compositing/acceleration works well with both ATI-AMD and NVidia binary drivers, while additional work has been done to make KDE work well with the ever-insufferable Intel drivers.

Eric Hameleers maintains a 4.6.x release for those who would like the latest KDE release, and all dependencies are catered for in his tree. As well, the requirement for HAL is now completely removed.

For those looking to use the Gnome environment, the GSB project has a -current release of Gnome 3.0 and it may yet be ready for the release of 13.37.

Alternatively, fluxbox, fvwm, windowmaker and xfce are available.

Multilib

Slackware continues to be available in 32- and 64-bit editions. The 64-bit edition does not include 32-bit compatibility, however Eric Hameleers has a multilib setup to enable this configuration. Eric’s instructions are precise so you shouldn’t have any issues installing these packages. The result is a system that can compile/execute 32-bit applications which is fairly useful when there is no 64-bit version of an app ( think Skype ).

Update:

Skype 2.2.0.25 was released earlier this month ( including 64-bit ), but it crashes after logging in and I’ve not had the time ( or patience ) to look for solutions.

Development

As always,  Slackware makes for a great development environment. Versioning tools are abundant while scripted programming languages like Python and Perl are at current release levels. QtDesigner and KDevelop are available for graphical development.

Packaging

Slackware uses a simple packaging method ( pkgtools ) which makes installing applications a doddle. However, in true Slackware fashion, dependencies are not catered for. This is by design ( and choice ) … while some may complain about the lack of dependency checking, I’ve never had an issue with this, although one does need to keep track of applications you install and their requirements.

slackpkg is bundled with Slackware and provides a wrapper for the OS packaging tools by automating the download and installation of distribution apps and updates. sbopkg does a similar job, but in this case, for additional 3rd party applications from the slackbuilds.org site.

The Slackware ecosystem

Pat Volkerding has been the prime developer of Slackware since the very beginning in 1993. In recent years however, a number of people have been helping Pat in bringing the latest versions of Slackware to fruition. Whether it’s assistance with patches to the core system during the development phase or 3rd party application repositories, this help enriches the Slackware experience.

Support is a community function in Slackware – the LinuxQuestions forum is vibrant and busy, with a touch of the Wild West. IRC support is available on #slackware. The largest 3rd party app repository is maintained at SlackBuilds.org which uses the slackbuild method for building packages that is native the distribution itself. sbopkg is an  automated app browser and installer, building directly off the SlackBuild.org site.

Eric Hameleers maintains his own impressive repository while there are many others that provide packaging options. As always, security and stability remain  fundamental to Slackware – even releases as far back as SW 8 are kept current with security updates.

Conclusion

If you’re looking to do more than just use Linux, then Slackware fits the bill. And for rock solid secure server performance, it can’t be beat. This release may be just an evolution of Slackware, but it still thrills …

In this day and age, fast-food lives seem to be the norm. The majority want everything easy and done for them – instead of getting down and dirty fixing that problem, you just pay someone to do it for you. There’s something to be said for ease of use, but there’s a point beyond which we start dumbing ourselves down. Slackware provides the alternative option, the tinkering option, the thinking option.

Slackware is not necessarily for the masses or those wanting a quick fix. But therein lies the beauty of something which can challenge you rather than deliver on a silver plate.

Breaking News: Novell Sold!!!

So Attachmate Corp has purchased Novell for $2.2B. In addition, certain IP assets will be sold off separately for $450M to a consortium of Microsoft and others. These include the  copyrights for Unix System V which was used in defense of SCO’s lawsuit. So one wonders whether the purchase by Microsoft includes these or not …

In fact, I would consider Novell’s IP more important than it’s current product range.

Server Reboots

A recent article offered that servers should be rebooted on a regular basis and mostly argued the case of OS updates requiring this. I think that servers should be rebooted/shutdown but only in the region of months or bi-annually. 3 reasons:

a. applying of kernel patches ( unless you’re using ksplice on Linux )

b. disk failure

c. memory fragmentation

In the first case, kernels can only be patched ( with the above caveat ) through a reboot – thankfully serious kernel issues ( in the Linux Kernel ) are rare. Other OS’s require restarts more often even though kernel updates may not have been applied.

The 2nd case deals with the reluctance of some disk drives to start rotating once they’ve been running for long periods, have worn grooves in the bearings and have cooled down after a shutdown. The drives effectively seize on restart. So it’s a good idea to physically switch off power to a machine ( rather than just reboot ) at intervals and let it cool down completely.

The last option deals with the natural fragmentation of data structures in memory after periods of time. Most modern OS’s though have mechanisms to deal with this so reboots here is not essential.

To advocate reboots just for the sake of it seems to me a little bit of preventative maintenance for those OS’s which are less stable and require this sort of thing. Otherwise, once or twice a year should suit you fine.

What is Linux? and software confusion …

A recent posting on the Blog of Helios prompted me to write a short and simple definition of Linux that might be useful for current non-users of this operating system. It is however a difficult definition in the context of what people already know. And the fact of the matter is that what the general computer-using population knows about operating system platforms, is limited.

I often get calls from Windows desktop users about something not working. What is not working? “Well it’s something in Microsoft” they might say. Microsoft? Is that Microsoft Office, Windows, something else? Well they’re not sure, but it’s when they are trying to type a document. Ok, so that’s Microsoft Office Word then. What browser are you using? It’s the one with the blue e on the icon. Internet Explorer. What email client do you make use of? Microsoft. Is that Outlook or Outlook Express? Note I’m just using the Windows platform as an example, however this problem is not limited to that platform.

If general Windows users have difficulties on that platform, what chance do they have with Linux? And why the confusion in the first place?

Let’s try to answer these 2 questions …

What is Linux

Linux is a software platform that includes a kernel which controls and manages the computer itself, utilities which allow you to perform general tasks like file management and application launching, and applications themselves which allow you to get actual work done ( eg. word processor, email client, web browser ).

The original operating system ( to be exact the kernel ) itself was started by Linux Torvalds, a Finish student in 1990 who was frustrated with the licensing of another OS called Minix. Together with the GNU toolset ( a bunch of OS-independent user tools ) and development tools, GNU/Linux as a complete operating system platform was born.

Unlike Microsoft Windows, which comes in only 2 forms ( desktop and server ), Linux is packaged in the form of  distributions, which put the Linux kernel, GNU utilities and other useful applications together. There are many distributions, some which cater for general use, some orientated towards audio-video use and others for supercomputing purposes. There are about 10 to 20 distributions which are used in mainstream desktop and server environments, the most popular of these being Ubuntu, Mandriva and Fedora ( for desktop use ), and Red Hat Enterprise Server/RHEL, Centos and Suse Linux Enterprise Server/SLES ( for server use ). An important difference vs commercial OS platforms is that Linux distributions typically provide all the day to day applications that you would use, therefore it’s fundamentally different to something like Microsoft Windows, where you only get the operating system and some utilities.

The Linux kernel itself and the GNU toolset are FOSS – free and open source software. This means that although they have a license and are copyrighted, the style of the license means anyone is fee to copy, use and alter this software, as long as one keeps to the terms of the license. Typically this includes something as simple as making sure the license is transferred with each copy, and that original and subsequent authors are acknowledged.

But how can you give something away for free if it’s copyrighted? I’ve been paying for my Windows and Office software all along …

Copyright fundamentally means that someone can assert the right to be acknowledged as the author of a particular creation. It does not infer that something can’t be given away for free, as much of the bumpf from music, movie and publishing concerns would have us believe. So yes you can have copyrighted software that is free.

There’s also the misconception that Linux is difficult to use. From a server perspective, this may have some validity ( although not much ), however, from a desktop point of view, Linux is as easy to use as competing platforms like Microsoft Windows and MacOS X. It’s just different – and it’s this difference that many confuse with difficult. There’s also the matter of change – human beings are comfortable with what they know; change is never easy because of this.

One important point to remember though is that because Linux is a different platform to Microsoft Windows, it will not run Windows applications natively. Most Windows applications have an equivalent in Linux so this is not a big problem. There is also the possibility of running Windows applications under emulation.

Some examples of FOSS application equivalents:

  • Microsoft Office = OpenOffice
  • Internet Explorer = Firefox
  • Outlook = Thunderbird
  • Photoshop = Gimp

Linux has some distinct advantages over other platforms:

  • very secure and low attack surface for viruses and other malicious code
  • good stability and reliability
  • OS-integrated application installation/management system
  • good performance on old equipment / low resource requirements
  • free / low cost

How do I get support for something that is free? FOSS support is provided by the same community that develops the software as well as the user community around it, through forums, newsgroups, mailing lists and other methods. If that is not suitable, then many of the larger FOSS projects have commercial support options available.

FOSS in general

The Helios project is a group of volunteer Linux users in Texas, USA who refurbish old donated computers, install Linux and other FOSS applications on these machines, and deliver them to needy, impoverished and foster kids in that state. The financial cost to these volunteers is low because FOSS allows them to have an almost zero product cost. This is something that’s not possible with commercial software. And there are many other groups around the world that do work similar to the Helios group.

FOSS lowers the entry barriers to less fortunate people and communities, removing what is arguably the biggest cost of owning a computer – commercial software. This helps with social development, upliftment and education, by giving less fortunate people access tools they would not have had before, allowing them to create, communicate and distribute.

While FOSS and Linux are typically ‘free’, this does not mean that the quality of this software is compromised in any way. In fact it’s well acknowledged that FOSS software is generally of a higher standard than commercial software, due to the nature of the Open Source development process. A study by Coverity ( a commercial software vendor of code analysis tools ) in 2009, found that the Linux kernel and some other notable FOSS projects, had 10x less code errors than competing commercial equivalents.

Why the confusion?

At the start of this article, I asked why users were confused about what OS or applications they were using. An analogy: to drive a car on a public road, one needs to do a drivers test. This involves theoretical and practical training, after which one has a reasonable grasp of the concepts involved as well as some baseline experience to use in the act of driving itself. Using a computer is an altogether different proposition – one goes to the computer store, buys the computer and starts using it. This does not mean however that one is proficient in the use of that computer, and therefore the lack of general knowledge amongst casual computer users.

This issue is platform-independent, yet the stigma remains that FOSS and Linux are more difficult to use. Difficulty is not necessarily determined by what platform you use, but rather the training you receive in the use of that platform.

So take the time to learn something new today, about whatever platform you are using …

Adventures in Linux distro land

The number of articles lately concerning the overwhelming amount of Linux distributions available is quite interesting; why now? Perhaps because Linux on the desktop is becoming a little more mainstream. Or perhaps because of the miriad number of embedded devices that use Linux ( think home automation, signage boards, NAS storage, netbooks, phones, radios, media players, industrial devices, etc. ) and that are more visible. Whatever the reason, I think it’s always been a positive thing, with the competitive nature of open source driving improvement and maturation. And open source does not need proprietary offerings as competition ( as another journalist has recently inferred ). FOSS in itself is its own competition.

Just because there are numerous distros available ( distrowatch.com keeps track of the Top100 ) doesn’t mean Joe Blogs needs to become a guru on all or most of these. Many are specialist distros catering for recovery, security, audio, media or other areas and for the most part, one can keep your eye on the top 20 for something to use within mainstream server or desktop areas.

For desktop use, Ubuntu, Mandrake, Mint, Fedora, Puppy and openSuse come to mind. On the server side Centos, RedHat, SLES, Debian and Slackware are the main choices. For Business server use ( ala Windows Server SBS ) you can look at ebox and ClearOS.

So overall, that is not an overwhelming set of choices – just enough to give you something you are comfortable with. Read reviews on each, do a test run in a virtual machine ( care of VirtualBox ) and make the switch.

Here follows a quick matrix showing the main distros in each area.

Desktop Ubuntu, Mandriva, Mint, Fedora, Puppy, openSuse
Server Red Hat Enterprise, Centos, SLES, Debian, Slackware, Scientific
SBS ebox, ClearOS
Security Backtrack, Nexenta,
Recovery Knoppix, SystemRescueCD, CloneZilla,
AV Mythbuntu, 64Studio , Musix
Storage FreeNAS, OpenFiler

Tweetdeck on Slackware64 13.0

I recently came across this application ( thanks Nic ) so only natural that I try it out ( especially as I have an issue with the plasma twitter widget in KDE 4.2.4 ). Couple of issues though:

  • requires Adobe AIR
  • only 32-bit
  • packaged only for deb and rpm

I did some searching and with a couple of articles, managed to piece together an installation routine for Slackware64 13.0:

  • make sure your Slackware64 is multi-lib enabled
  • download the 32-bit packages of gnome-keyring and nss packages from the GSB project ( one is in l/ and the other in a/ )
  • convert to Slack64 compat packages using /usr/sbin/convertpkg-compat32 -i <package_file_name>
  • install converted packages above ( found in /tmp )
  • download AIR SDK ( not runtime )
  • mkdir /opt/AIR
  • extract archive into this directory
  • mkdir /opt/AIR-APPS/<app-name>
  • download the application ( for Tweetdeck I had to use Windows/FF as the manual download link did not show up in my Slack/FF )
  • extract ( using unzip ) to the APPS/<app-name> dirrectory
  • run using: /opt/AIR/bin/adl -nodebug /opt/AIR-APPS/tweetdeck/META-INF/AIR/application.xml /opt/AIR-APPS/tweetdeck

No too bad an install but it would be nice for Adobe to support non-rpm/deb users with a .tar.gz package and 64-bit Linux. Maybe to come?