Learn (or use) Linux on Android

Do you want to learn Linux but not finding the time because of other priorities? If you own an Android smartphone you are in luck! Android uses the Linux kernel within and it is possible to run Linux utilities with a decent smartphone. In this article we will discuss some apps which can help you get going with Linux on Android. Continue reading Learn (or use) Linux on Android

Minimal Linux Live: Linux from scratch

tux_compDid you ever want to spin your own distro with a few set of useful utilities like a Swiss Army Knife? Minimal Linux Live is the project you should refer. The project comes with a few scripts which are the foundation of creating a tiny distro from scratch. You can keep building on top of it easily and finally spin a Linux distro with utilities you need. let’s check out how. Continue reading Minimal Linux Live: Linux from scratch

Wanna learn Linux?

tux_compThere are several ways to master Linux. The important question is: how do you want to use it? An end user need not learn anything about the cmdline but if you want to be a Linux admin or a serious user who wants to reap the benefits of this extremely powerful and hackable OS, you might want to dive deeper. Here are a few ways to learn Linux, some fun, some not so much ;). Continue reading Wanna learn Linux?

Free edX Linux course starting 01 Aug, 2014

Linux is the most widely used open source operating system today. It runs on a wide range of hardware from smartphones (80%+) to supercomputers (94%) at the time of writing. A overwhelming amount of material is available on the internet to learn Linux by yourself but not everyone has the patience to do so. Here’s your chance to join a standard free course on Linux being offered by edX. The usual fee for the Linux course from The Linux Foundation is $2400 but the edX course charges you nothing.

tux_compThe course will be covering Linux for experienced computer users with no prior exposure to Linux. In addition to the basic introduction, tools and techniques used by programmers, sys-admins and regular users will be explored. The intention is to develop a good working knowledge of Linux from both the GUI and CLI. The duration of the course will be anywhere between 40 to 60 hours.

If your commitments are blocking you from joining all the workshops and lectures, you can also audit the course. Here’s the FAQ for common questions you may have regarding this course. You may also do a certification from edX to flaunt the course in your professional profile.

The course will be conducted by Jerry Cooperstein, PhD, with 20 years of experience in Linux training both in the kernel and userspace. So you are in good hands! If you are joining the course, make sure you have a Linux box ready for the hands-on. Here’s a guide from The Linux Foundation to help you with that.

Enroll for the course.

The Eudyptula Challenge (and more)

tux_compThe Eudyptula Challenge is a series of programming challenges to teach the process of Linux kernel development. The challenges are ordered in terms of increasing complexity starting with a very basic “Hello World” kernel module and gradually moving on to getting a patch accepted in the mainline kernel. It is created by an anonymous hacker who goes by the name of Little Penguin.

To join the challenge, you need to send an email to little at eudyptula-challenge.org in plain-text format. HTML formatted emails will be rejected just as it happens in the Linux kernel mailing list. An email client like mutt or Sylpheed is ideal for the job. New joiners will get an email with the first challenge and the details on how the challenge is run. There aren’t any rules for participating. However, the creator warns against taking any help from outside or posting answers online as the participants are expected to solve the challenges themselves.

Basic understanding of C is the only qualification to join the challenge. No earlier experience in Linux kernel programming is necessary. The main objective of the program is to bring up new kernel developers.

Similar challenge

Project Euler: Learn programming through mathematical challenges. It is a growing list of challenges with new ones getting added periodically.

Webpage: The Eudyptula Challenge

Compile a package from source on Linux

ubuntu_apps_compLinux has many flavours. While it’s a good thing because you can always get the distro that meets your needs an inherent problem is the lack of a global installer format. You have the deb packages on Debian variants, rpm on Red Hat variants, pkg on Arch and so on… But if you are not on one of the major distros or their variants you may often find yourself in a situation that a software is not available in your distro supported format. Fear not!

The best thing about open source is that you can always tinker around with the source code. If you can’t find the package available in the format supported by your distro you can always build it from the source code! There is a benefit too. A package natively built on your system is optimized for running on it. This is the same principle on which Gentoo works. A Gentoo installation may take several hours because it compiles all the packages from the source during the installation. This article will explain the step by step procedure to build and install a package on your distro from its source code. You may need to become the root user to install the package in the default location but not for compilation. For a true taste of the exercise, try compiling the subversion snapshot of the awesome media player MPlayer.

  • Download and extract the source code of the package. Most of the time they are in tar.gz or tar.bz2 archives. If you are not ready for the cmdline yet, your distro’s archive manager can surely handle these formats. Double click to open using the default archive manager and extract anywhere you want.
  • Navigate into the extracted directory and look for the files README or INSTALL. These are the regular instructive files on how to install the package and are a good starting point. If you find nothing of that sort check out the Wiki or Installation instructions in the webpage of the tool.
  • You are likely to find a file named configure.  If not, look for files like install.sh or autogen.sh etc. Otherwise you may need to run autoconf followed by automake. You can learn more on how they work here or from this procedural explanation.
  • By this time you should have the configure file generated. Run
    $ ./configure

    In case you do not have root permissions, you can install the package to under any directory as the root directory. Run

    $ ./configure --prefix=/path_to_directory

    configure supports many options. Run

    configure --help

    for all the options. configure will show you any missing dependencies on your system. As you are building the package from source, you need to have the source code for other packages or libraries on which it is dependent on. You can find them in your system’s default package manager. If you are not sure which package to install, try Google. Many have tried it before and many were puzzled, trust me!

  • The next step is
    $ make

    This is where the actual compilation takes place. In case you hit any issues, the best option is to contact the package maintainer for support as it means the package is broken on your distro. make --help shows you options supported by make.

  • If make is successful, you need to install the compiled package on your system as thefinal step. Run
    $ sudo make install

If everything goes fine, you have the package installed on your system!

Further reference: The GNU configure and build system

Build Linux from Scratch

tux_compWhile there are innumerable Linux distros out there, you can build one on your own right from the source code. While one indirect way is to use Gentoo which lets you choose packages and build them on your local machine, the hard way to learn is to start with the source code and tools. Though it may seem scary, to make things easier the LFS (Linux From Scratch) project and it’s forks (or supersets) has well-documented procedures to build your own minimal Linux distro, or, if you have the zeal and time for it, a full-fledged one.