Re: i386 kernel not included?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 21 Oct 2002, Andrew Smith wrote:

>> Actually, you're wrong.  The architecture field present in the 
>> RPM filename, and header indicates the "instruction set" in use 
>> by the binaries inside the package.  It means that you need a 
>> machine capable of that instruction set, or higher in order to 
>> install and use the package.
>
><snip>
>
>OK - I've cut it all out so as not to waste bandwidth repeating
>that very useful response - but I'll certainly say that has to be
>the best reply to an e-mail that I have ever received!
>
>Interesting if you take that to the next step - it means that there
>are NO extra useful instruction or optimisations in a 486 or a
>Pentium (586) procesor over a 386 processor i.e. Intel's only
>enhancements from 386 to Pentium (586) was increased processor
>speed and internal performance. Not only that - but there are also
>no instruction optimisations in the 486 and Pentium (586) processors
>over the 386 (OR the compiler developers couldn't be bothered
>implementing them coz the optimisations are not worth the trouble)

Well, there are new instructions in i486, and i586, however most 
of them just are not useful in general purpose code.  They're 
more useful for special purpose code.  I'd have to doublecheck to 
see what if any instructions new to i486 are used at all.  BSWAP 
and CMPXCHG are two new ones that come to mind on i486, but 
again, they're not typically very useful in general code, and I 
don't believe that gcc uses either.  The Pentium only adds 
CMPXCHG8B, and possibly a few others that I don't recall off the 
top of my head as my brain is in Athlon mode lately.  That 
instruction IIRC is an optional one in the instruction set, and 
again isn't generally useful.

BSWAP can be used in a crafty way the instruction wasn't intended
for, in order to provide more 16bit registers available in code,
by swapping the upper and lower portions of a 32bit register thus
making the upper 16bit portion of a 32bit register useable when
not needing 32bit registers in a fragment of code, but where
having more 16bit ones would be beneficial.

For example, using a 16bit integer in AX, then doing a BSWAP and
now AX is in the upper 16bits of EAX, and you can reuse AX, then
BSWAP back when you want to use the other half again.  It's a
trick that was once useful in days gone by, however I'm not sure
how useful it is on any modern processors.  I don't believe gcc
uses this anywhere, and I'm not sure it would be useful if it did
nowadays.  I'll leave that for someone who is more familiar than 
I with the innards of gcc.


>>>I can think of a lot of reasons why the i386 kernel was not
>>>there - but maybe one would be that general RedHat support for
>> 
>> Ultimately it was a disk space decision, as stated previously in 
>> the thread.  The presence of an i386 kernel however would not be 
>> endorsement of "support" for i386/i486 processors.  Our box, and 
>> documentation list the minimum system requirements for support.  
>> Any machines or hardware that do not meet the requirements, while 
>> unsupported, may or may not work, and may or may not have a 
>> kernel to use out of the box.
>
>Yes - well as stated previously - disk space is not an issue - it
>was probably more likely someone was told to not put it on
>(or whoever arranged the CD's contents needs to be fired and replaced)

The availability of some free space on the final ISO images is
not indicative of "free space" being available for the kernel.  
It's much more than disk space being there, it's also procedural, 
and focusing on what is important to get the distribution 
completed and shipped out the door.  

At some point free space was not available, and the decision was
made to remove the i386 kernel to make it up.  That decision 
wasn't made in the 11th hour, but rather likely sometime before 
that, although this is conjecture as I don't recall (or care) 
what the exact specifics were.  They aren't terribly important 
either.

The process of day to day modifying of packages leading up to 
distro release, can add or remove any number of megabytes of 
disk space to the distribution.  It's entirely possible that some 
last minute mission critical change was needed that ended up 
freeing up 10Mb or whatever.  Possibly the removal of MP3 
software or somesuch.  I've no idea, I'm just providing a random 
example to illustrate the point.  In order to cram a kernel on 
there if and when space became available, we'd have to first care 
about the i386 kernel, and have it as a concern to watch out for 
in case some future process before final distribution caused 
space to become available.  At that point in time adding an i386 
kernel would require recompiling the kernel and invalidating any 
QA done on it.  For what?

It's impossible to trace the disk space changes from the point in
time i386 kernel was removed until the final ISO's were shipped,
but disk space was in fact the deciding factor - regardless of
10Mb or whatever being empty on the final ISOs.  As one can
likely understand, after removing the kernel, it was not a high
priority to re-evaluate free CD space every 10 minutes to see if
some other random last minute distribution change allowed an i386
kernel to fit.  So anyone who offers forth the claim that there
is space that could have fit an i386 kernel is looking at the
issue through tunnel vision, and not through the processes,
procedures, and priorities that put together a Linux
distribution.

In other words, the thought process is more like "Ok, we need
space, lets kill the i386 kernel, ok it is killed."  and
forgotten.  The people who are claiming there space that could
have held it, are thinking of it like we should be instead doing:  
"Ok, we need space, lets kill the i386 kernel, ok it is killed.  
Now lets monitor every change we make from now until the final
gold day, to see if any change we make allows space for the i386
kernel, and then we can put it back."

After thinking about what I just said above, you can see how that 
thought that free space is available in the end perhaps, doesn't 
match the process or priorities involved.


>>>older hardware is not as good as MS (RedHat seems to sometimes
>>>drop support for old hardware that was supported in the previous
>> 
>> Try to install Windows XP on an i386 or i486 computer and see how  far
>> you get with Microsoft support.
>
>My issue is that if there was a 386 kernel on the CD's it WILL work
>on a 386 so basically you are stopping people who buy/download your
>ISO's from running software on a machine that WILL work.

There's no guarantee it would work on an 80386 at all.  I'd be as 
bold to say that there is a very good chance it wouldn't work 
very well or at all on an i386, because there has been absolutely 
zero testing on 80386 hardware.  Not to mention all of the 
drivers not being tested on such ancient hardware.  The number of 
people who would actually try to install Red Hat Linux 8.0 on a 
real 80386 class machine, I can probably count on one hand, and 
those people are very capable IMHO of compiling their own kernel 
and hacking something up to meet their _very_ special needs 
which are very very far from general purpose.  The same can be 
said for i486 class hardware (which we have not officially 
supported for 2 years).  There are people out there, such as 
myself using an i486 for a firewall, or for a dumb X terminal or 
other low end use, but they're not the majority of users, and 
we're not really targetting our products at those people.

Red Hat Linux is engineered to work on todays modern hardware,
and as time goes on, the requirements to install Red Hat Linux
will likely become higher and higher.  As machines become more
ancient, it becomes a larger waste of our engineering, tech
support, development support, and QA and other resources to
continue to support ancient hardware like i486.  Some might argue
that shipping it anyway, but "unsupported" would meet everyones
needs, and not require any overhead on our part, but that isn't
entirely true.  We still have to build the stuff, consuming our
buildsystem resources, our developer resources, and our QA
engineers time, etc. and we'll still get bug reports from people
regardless of wether or not we support it.  We'll also get the 
"you ship it, you must support it" type of people.

Any technical decision that we make, is generally based on what 
is best for our target market of users, and the hardware that 
they are using.  I don't know about others, but I'd much rather 
see 10Mb of cool new useful software added to Red Hat Linux, than 
to keep around an unsupported i386 kernel on our CDs.

Not to mention the problem of people installing i386 kernel and 
not having working hardware 3D acceleration because DRI does not 
work on i386 because it uses CPU instructions that aren't 
available on that CPU class.  This has caused me numerous bug 
reports against XFree86 of DRI not working, but in every given 
bug report, it's never quite clear what could be wrong on the 
persons system until after I've expended a finite amount of my 
useful time on the problem that could have been spent elsewhere.  
Finding out after 2 hours of troubleshooting that someone is 
using an i386 kernel on a Pentium IV, and DRI isn't working 
because there aren't any DRI modules, is rather a PITA.  Of 
course, it doesn't generally take 2 hours, but you get the idea.



>Yes there is no point running KDE/Gnome on anything much below a
>PIII 500 (I know that as a fact in earlier releases - a PII 333
>is too slow) but you do NOT need X to run a server - my DNS/mail
>server is only a P90 and my router with over 450 lines of
>firewall that runs quite a few other things (including a java
>message server I wrote) is only a P166 and ... well it has
>PLENTY of spare processor space:

Certainly, and we support P90, so that's not a problem.  Pentium 
CPU's are supported.


>Yet they may fall into the "no kernel available" hole in the
>future even though they are well able to run as a server.

At some point in time they most probably will.  And the minority
of users still using those ancient systems at that point in time
that we drop support for them and don't provide a kernel for
them, can do like i486 users are doing right now, either stick
with RHL 7.3, or build their own kernel.  If we look at CD space
percentagewise, I'm willing to bet the percentage of CD space an
i386 kernel set consumes all around, is on the order of 2-3
magintudes larger if not more of the percentage of users using 
i386/i486 class machines.  It could be argued that we should find 
10Mb of more useful software that 95% or more of our userbase 
would benefit from, and drop the stuff that 0.001% of the 
userbase wants that isn't supported.


>I have a 486 that used to be my mail/DNS server but has sat
>there unused for about a year - but I know it is fast enough to
>do that job (and it would get that job back if the current P90
>failed)

I've got an AMD 486 here with 12Mb of RAM.  I plan on putting RHL 
8.0 on this machine and documenting it, as proof of concept that 
if you really want it to happen, you can do so.  I'm positive 
I'll have no trouble getting it to work too.  I don't plan on 
using it for anything, but rather just to document the experience 
and show the vast minority of i486 Red Hat Linux users, that if 
they are still hardcore about getting the distro to run on i486, 
they can.   I don't think it's unreasonable to expect users to 
fiddle a bit by hand to get something like this working on 
hardware that is 7-8 or more years old.

Don't forget also, that people wanting to do such, will likely 
get help from myself and others at Red Hat on this or other 
lists, just to show "it can be done" if you really want to.  That 
is what this community is here for.  For users to help users.  

And keep in mind also, I'm here because I'm also a user, not
because I'm a Red Hat employee.  The latter is just coincidence.  
;o)

On a different note... Has anyone try using a Radeon 8500 in an
i486?

;o)

Take care,
TTYL

-- 
Mike A. Harris		ftp://people.redhat.com/mharris
OS Systems Engineer
XFree86 maintainer
Red Hat Inc.



-- 
Psyche-list mailing list
Psyche-list@redhat.com
https://listman.redhat.com/mailman/listinfo/psyche-list

[Index of Archives]     [Fedora General Discussion]     [Red Hat General Discussion]     [Centos]     [Kernel]     [Red Hat Install]     [Red Hat Watch]     [Red Hat Development]     [Red Hat 9]     [Gimp]     [Yosemite News]

  Powered by Linux