Blog Archives

Happy Birth Day Linux

I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones.  This has been brewing since april, and is starting to get ready.

Linus Torvalds, 25 August 1991 on comp.os.minix (original message)

20 YearsOf Linux

The first version of Linux Kernel Was released on September 17 1991 and uploaded to an FTP server by Linus Torvalds in Helsinki.  That early iteration consisted of a mere 10,239 lines of code.

Fast-forward to the present day, where the Linux kernel 2.6.35 contains more than 13.5 million lines of code, and controls gadgets, devices and instruments you might never have expected.







Difference Between Linux and UNIX

UNIX is copyrighted name only big companies are allowed to use the UNIX copyright and name, so IBM AIX andUnix_F   Sun Solaris and HP-UX all are UNIX operating systems. The Open Group holds the UNIX trademark in trust for the industry, and manages the UNIX trademark licensing program.Most UNIX systems are commercial in nature.

Linux is a UNIX Clone

But if you consider Portable Operating System Interface (POSIX) standards then Linux can be considered as UNIX. To quote from Official Linux kernel README file:

Linux is a Unix clone written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net. It aims towards POSIX compliance.

However, "Open Group" do not approve of the construction "Unix-like", and consider it misuse of their UNIX trademark.

Linux Is Just a Kernel

Linux is just a kernel. All Linux distributions includes GUI system + GNU utilities (such as cp, mv, ls,date, bash etc) + installation & management tools + GNU c/c++ Compilers + Editors (vi) + and various applications (such as OpenOffice, Firefox). However, most UNIX operating systems are considered as a complete operating system as everything come from a single source or vendor.

As I said earlier Linux is just a kernel and Linux distribution makes it complete usable operating systems by adding various applications. Most UNIX operating systems comes with A-Z programs such as editor, compilers etc. For example HP-UX or Solaris comes with A-Z programs.

License and cost

Linux is Free (as in beer [freedom]). You can download it from the Internet or redistribute it under GNU licenses. You will see the best community support for Linux. Most UNIX like operating systems are not free (but this is changing fast, for example OpenSolaris UNIX). However, some Linux distributions such as Redhat / Novell provides additional Linux support, consultancy, bug fixing, and training for additional fees.


Linux is considered as most user friendly UNIX like operating systems. It makes it easy to install sound card, flash players, and other desktop goodies. However, Apple OS X is most popular UNIX operating system for desktop usage.

Security Firewall Software

Linux comes with open source netfilter/iptables based firewall tool to protect your server and desktop from the crackers and hackers. UNIX operating systems comes with its own firewall product (for example Solaris UNIX comes with ipfilter based firewall) or you need to purchase a 3rd party software such as Checkpoint UNIX firewall.

Backup and Recovery Software

UNIX and Linux comes with different set of tools for backing up data to tape and other backup media. However, both of them share some common tools such as tar, dump/restore, and cpio etc.

File Systems

  • Linux by default supports and use ext3 or ext4 file systems.
  • UNIX comes with various file systems such as jfs, gpfs (AIX), jfs, gpfs (HP-UX), jfs, gpfs (Solaris).

System Administration Tools

  1. UNIX comes with its own tools such as SAM on HP-UX.
  2. Suse Linux comes with Yast
  3. Redhat Linux comes with its own gui tools called redhat-config-*.

However, editing text config file and typing commands are most popular options for sys admin work under UNIX and Linux.

System Startup Scripts

Almost every version of UNIX and Linux comes with system initialization script but they are located in different directories:

  1. HP-UX – /sbin/init.d
  2. AIX – /etc/rc.d/init.d
  3. Linux – /etc/init.d

End User Perspective

The differences are not that big for the average end user. They will use the same shell (e.g. bash or ksh) and other development tools such as Perl or Eclipse development tool.

System Administrator Perspective

Again, the differences are not that big for the system administrator. However, you may notice various differences while performing the following operations:

  1. Software installation procedure
  2. Hardware device names
  3. Various admin commands or utilities
  4. Software RAID devices and mirroring
  5. Logical volume management
  6. Package management
  7. Patch management
UNIX Operating System Names

A few popular names:

  1. HP-UX
  2. IBM AIX
  3. Sun Solairs
  4. Mac OS X
  5. IRIX
Linux Distribution (Operating System) Names

A few popular names:

  1. Redhat Enterprise Linux
  2. Fedora Linux
  3. Debian Linux
  4. Suse Enterprise Linux
  5. Ubuntu Linux

Common Things Between Linux & UNIX

Both share many common applications such as:

  1. GUI, file, and windows managers (KDE, Gnome)
  2. Shells (ksh, csh, bash)
  3. Various office applications such as
  4. Development tools (perl, php, python, GNU c/c++ compilers)
  5. Posix interface

You can see the original article here

To put it very generically, Linux is an operating system kernel, and UNIX is a certification for operating systems. The UNIX standard evolved from the original Unix system developed at Bell Labs. After Unix System V, it ceased to be developed as a single operating system, and was instead developed by various competing companies, such as Solaris (from Sun Microsystems), AIX (from IBM), HP-UX (from Hewlett-Packard), and IRIX (from Silicon Graphics). UNIX is a specification for baseline interoperability between these systems, even though there are many major architectural differences between them. Linux has never been certified as being a version of UNIX, so it is described as being "Unix-like." A comprehensive list of differences between Linux and "UNIX" isn’t possible, because there are several completely different "UNIX" systems.

How to rebuild Linux Kernel

Let me first tell why one should rebuild a Linux Kernel.The main reason was  to optimize the kernel to your environment (hardware and usage patterns). With modern hardware there is rarely a need to recompile unless there is a particular feature of a new kernel that you must have. The performance gains are probably not noticeable unless specific benchmarks are being run.

This said, the newest Linux kernel ( noticeable improvements for the typical desktop user as a result of the improved scheduling system in the new kernel. Even for older kernels, rebuilding is often necessary for low memory situations, esoteric hardware, and in cases where every ounce of performance must be extracted.

Download your tarball from the index page at , which links to the latest versions. If you are using FTP, go to[version] — these subdirectories all contain an empty file named LATEST_IS_[version] to help you find the latest. has almost-complete kernel archives back to version 0.99 if you’re feeling really adventurous.

Unpack the tarball in your home directory. If you’re planning to do a lot of compiling and installing kernels (and other good stuff), you may want to read the Note on /usr/src at the bottom of this page first.
         tar xivf linux-2.6.0.tar.bz2

(Replace xivf with xzvf if you downloaded the .gz)

cd into the linux directory. You’ll now need to configure the kernel to select the features you want/need. There are several ways to do this..

make config

Command line questions.

make oldconfig

(Useful only if you kept a .config from a previous kernel build. With the newest kernels, the .config of the currently-running kernel is used by default if it’s available, so you usually won’t need this feature.)

make menuconfig

(ncurses based)

make gconfig

(GTK+ based X-Windows configuration)

make xconfig

(QT based X-Windows configuration)

Now we can build the kernel (for older kernel like 2.4.x first build the dependencies with "make dep").

Wait. When its finished, it will have built both the kernel (bzImage) and the modules (for older kernels like 2.4.x, you need to run "make bzImage ; make modules").

Become root to be able to install modules and kernel. Everything before this point can and should be done as a normal user, there is really no need to be root to compile a kernel. It’s actually a very bad idea to do everything as root because root is too powerful, one single mistake is enough to ruin your system completely.

Install the modules.
         make modules_install

Install the new kernel..
         make install

If your distribution uses lilo:

Edit /etc/lilo.conf, and add these lines…
         image = /boot/vmlinuz2.6.34.1
         label = 2.6.0

Also copy your root=/dev/??? line here too.

Run /sbin/lilo, reboot, and enjoy.

If your distribution uses grub:

Edit /boot/grub/grub.conf:
          root (hd0,1) #  or whatever your current root is
          kernel /boot/vmlinuz- root=/dev/hda1 # or whatever…

If you’re using Ubuntu, you will need to edit menu.lst instead of grub.conf

If your menu.lst needs an initrd line, you can generate the necessary info by doing something like

update-initramfs -k -c

update-initramfs seems to be the replacement for mkinitrd (which is mentioned in the "more indepth tutorial" mentioned below.

Most distributions have an installation routine that links a new /boot/vmlinuz-[version] to simply vmlinuz, so you may want to add a stanza like this to grub.conf:
          title=My very latest kernel install
          root (hd0,1) #  or whatever your current root is
          kernel /boot/vmlinuz root=/dev/hda1 # or whatever…

This will let you boot fresh kernels for testing without constantly editing grub.conf.

Note: This will work for lilo, too, but you still have to run /sbin/lilo after every install.

If you get modversion problems (symbols ending in _Rxxxxxxxx), have a look at this question in the linux-kernel mailing list FAQ to solve the problem.

Still not getting it? Try this more indepth tutorial

Note on /usr/src

If you’re just trying out this procedure, do the unpacking and building in your home directory as discussed above. In a professional environment, though, the source would be stored in /usr/src or /usr/local/src, where compiling would also be done. To allow this, and at the same time avoid becoming root for the entire procedure, use your favorite GNOME or KDE utilities to create a group "devel" (or "hack" or whatever) and add yourself to that group. Then change the group owner of /usr/src to the new group and grant write privileges to the group.

That way you can unpack the kernel tarball into /usr/src (or whatever) and configure and build there without doing everything as root. Of course, you’ll still need to sudo or become root when you install the new kernel and edit the lilo/grub configuration files.

This will help keep the kernel source separate from your resume, diary, and jpegs of your Main Squeeze.

%d bloggers like this: