Google Answers Logo
View Question
 
Q: Optimized BINARY LINUX distribution(commercial/download) ( Answered,   5 Comments )
Question  
Subject: Optimized BINARY LINUX distribution(commercial/download)
Category: Computers > Operating Systems
Asked by: anjanbacchu-ga
List Price: $10.00
Posted: 28 Jul 2002 22:35 PDT
Expires: 27 Aug 2002 22:35 PDT
Question ID: 46336
Hi All,

  I was looking for a BINARY(with source) distribution of LINUX
(2.4.1x kernel)
which has been built with Intel/GCC Compiler *AND* where all the
binaries have been built with GLOBAL optimizations so that the kernel
is in sync with the user mode programs for maximum throughput.

 I should be able to get the Intel/GCC compiler and then rebuild the
whole OS for my CPU of choice to get even better CPU utilization.

  It would also be interesting to have a mechanism to make specific
components of the OS(including USER programs) more optimized than
others.

  I'm a LINUX Newbie but have been developing Software for nearly 10
years. I need detailed instructions on how to go about doing this.

  Thank you very much for your interest.
Answer  
Subject: Re: Optimized BINARY LINUX distribution(commercial/download)
Answered By: maniac-ga on 29 Jul 2002 21:19 PDT
 
Hi Anjanbacchu,

This may be far easier than you think. Kernels have been optimized and
built
for specific processors for a couple years now. I will use Red Hat and
Mandrake
as examples, but I think all the major distributions have similar
features.

For Red Hat 7.3,
  http://www.redhat.com/docs/manuals/linux/RHL-7.3-Manual/custom-guide/s1-kernel-preparing.html

(we will see what that LONG URL looks like in the reply...)
indicates that Red Hat builds kernels optimized for Athlon, Pentium
and K6, Pentium II and up, and the older 386 and 486's.

For Mandrake 6.1 and later...

  http://www.linux-mandrake.com/en/concept.php3

describes optimization for Pentium and later processors as well.

About building your own kernel, optimized for a particular system, I
suggest
the following steps:

1. Install a recent commercial release of Linux. Make sure you install
the development tools (e.g., gcc) and kernel products (varies by
distribution,
usually with a name "kernel source" or "kernel compiler").

2. Put the kernel source into a directory named like
  /usr/src/linux-2.4.18
where the suffix relates to the version of kernel and any special
options
you may wish to use.

3. Download and apply any patches that you may need. I build a kernel
for
real time processing and get patches for...
 - kernel preemption (Robert Love - http://www.tech9.net/rml/linux/)
 - big physical memory allocations (BIGPHYSAREA patch)
as well as I have my own patches for HZ (to 1200), increased physical
memory locking (from 50% to 80%), and so on.

4. Apply the patches to the kernel in the correct order. Fix any hunk
failures if needed. A typical command line is...
  cd /usr/src/linux-2.4.18
  patch -p1 < ../patches/kernel-preempt-2.4.18.patch
assumming you put your patches into the directory /usr/src/patches.

5. Follow the instructions in the README file (all of them). In
brief...
  cd /usr/src/linux-2.4.18
  make mrproper
  make xconfig  (for the X interface, set the options you need)
  make dep
  make rpm (if you have an RPM based distribution)
which will build the kernel and generate the package for installation
on your system. Some older Red Hat distributions required you to use
kgcc to build the kernel - add CC=kgcc to the make dep and make rpm
command lines in that case. If you get the kernel source from Red Hat,
there is a set of configuration files you can load to get a "known
good" starting configuration to use in the xconfig step. The kernel
build duration varies by system, but for me it takes a couple hours.

6. Install the kernel. The steps at this point vary based on what
your boot loader you have. The steps I do using lilo are...
  rpm -i /usr/src/redhat/RPMS/i386/kernel-2.4.18-2.i386.rpm
(alas, it has that name even when built for P-III)
  edit /etc/lilo.conf to add the new kernel - copy / edit a similar
entry
  /sbin/lilo
(fix errors if necessary)

7. If your system uses a disk image as part of the boot process and
the
script didn't update it - you will have to do this step manually. My
current
system doesn't do this, but I think Red Hat uses that when you use an
ext3 file system for the modules to mount the root file system.

8. Reboot your system. If it fails to come up, reboot with the old
kernel
and diagnose the problem and fix, and repeat.

I would stay away from 2.5 kernels - especially if you have IDE disks
until the IDE drivers get stabilized. You will have to stay current
with
the kernel developers to guage the maturity of the kernel. The weekly
summary at http://www.lwn.net/ has been a good resource, but may be
going away soon.


You can strip a lot out of a linux kernel (so it uses less memory),
but
as a first step - use modules to do this. Answer N to the
configuration
questions only if you will never use the capability.

Good Luck
  --Maniac
Comments  
Subject: Re: Optimized BINARY LINUX distribution(commercial/download)
From: anotherbrian-ga on 29 Jul 2002 00:33 PDT
 
If you get TechTV (my favorite channel) you will allready know of this site
http://techtv.com/screensavers/linux/

good luck
Subject: Re: Optimized BINARY LINUX distribution(commercial/download)
From: cubist-ga on 29 Jul 2002 14:29 PDT
 
You can have a look at www.linuxiso.org, which is one of the best
sources for Linux distributions.
Subject: Re: Optimized BINARY LINUX distribution(commercial/download)
From: mem-ga on 12 Aug 2002 03:50 PDT
 
With all due respect, both the answer and the comments missed the
question completely.

Here's hoping that quoting works:

> I was looking for a BINARY(with source) distribution of LINUX 
> (2.4.1x kernel) which has been built with Intel/GCC Compiler 
> *AND* where all the binaries have been built with GLOBAL
> optimizations so that the kernel is in sync with the user mode
> programs for maximum throughput.

From this question I suspect you already know or have heard about
Gentoo Linux.  Gentoo is a distribution which is optimized for your
particular machine.  The way to achieve this is, of course, building
everything on your machine -- which might or might not make sense
(there's a limited set of processors out there, *even* if the set is
large, it is still limited and at any rate several orders of magnitude
smaller than the number of Gentoo users).

From your question I suspect you are after a distribution which is
optimized for your processor already (you don't say which processor
this is).  From Cheap Bytes (http://www.cheapbytes.com/), you can get
prebuilt Gentoo CDs for i686.  If you consult the Gentoo documentation
available from http://www.gentoo.org/, you'll find detailed and
readable instructions on how to build and optimize the distribution
for your machine.

Unless you have some hard data to back up the need for this sort of
thing, I'd wouldn't do it.  There's a trade off: speed vs. quality
assurance.  Since everything is (or could be) built on your machine,
there's no way to perform any sizeable ammount of quality assurance on
the "final product".

Full Disclosure: I participate actively in the development of Debian
GNU/Linux.  To the best of my knowledge, my answer is fair, objective
and accurate.
Subject: Re: Optimized BINARY LINUX distribution(commercial/download)
From: devnull-ga on 12 Sep 2002 00:25 PDT
 
If you're looking for a binary distribution then why do you then want
to rebuild the OS?

Perhaps the best option if you're only interested in binaries that are
optimised would be mandrake (http://www.mandrake.com) which has
everything optimised for i586. Otherwise, if you're not bothered about
recompiling everything then I would reitterate mem-ga's suggestion of
gentoo linux.
Subject: Re: Optimized BINARY LINUX distribution(commercial/download)
From: tsa-ga on 15 Sep 2002 12:53 PDT
 
Have a look at ROCK Linux (http://www.rocklinux.org); it supports build
optimizations based on CPU type/model and different compilers (gcc 2,
gcc 3 and icc (Intel C Compiler)).

Full Disclosure again: I'm actively participating in ROCK Linux development.. ;-)

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy