LinuxQuestions.org
Latest LQ Deal: Linux Power User Bundle
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Newbie
User Name
Password
Linux - Newbie This Linux forum is for members that are new to Linux.
Just starting out and have a question? If it is not in the man pages or the how-to's this is the place!

Notices


Reply
  Search this Thread
Old 08-25-2009, 12:22 AM   #1
rajesh84210
Member
 
Registered: Jul 2009
Posts: 53

Rep: Reputation: 15
what does i386/ 686 mean


Dear Linux experts,
I would like to know what does i386 or i686 mean in linux.Kindly elaborate it for me .when i give uname -a, i get "i686 athlon i386 GNU/Linux" .. in this case does athlob i386 refer to the hardware?..


Thanks:-)
 
Old 08-25-2009, 12:34 AM   #2
Wim Sturkenboom
Senior Member
 
Registered: Jan 2005
Location: Roodepoort, South Africa
Distribution: Slackware 10.1/10.2/12, Ubuntu 12.04, Crunchbang Statler
Posts: 3,786

Rep: Reputation: 282Reputation: 282Reputation: 282
i686 refers to the type of processor that is detected. i386 in this context refers to to the type of processor on what linux can run (an i386). As the processors are backwards compatible you can run i386 code on a i686; the other way around is not possible as the code is optimized for i686 and therefore contains instructions that are not understood by an i386.

The whole list of x86 processors and derivates can be found on wikipedia ( http://en.wikipedia.org/wiki/X86 )

Last edited by Wim Sturkenboom; 08-25-2009 at 12:38 AM.
 
Old 08-25-2009, 12:35 AM   #3
teebones
Member
 
Registered: Aug 2005
Location: /home/teebones
Distribution: sometimes this, sometimes that..
Posts: 502

Rep: Reputation: 56
It refers to which hardware architecture the kernel was compiled.

i686 refers to Pentium Pro or later achitectures (incl. AMD equivilants)

i386 refers to pre Pentium Pro, thus also older hardware, and tends to be generically compiled (but performs a bit slower on i686 systems because of the missing optimizations). So old AND new hardware can use it.

Linux Dev's usually provide (for generical distributions) a i386 kernel, as a fail safety. And to make sure a broader userbase can run the distribution out of the box.

If you want an optimized kernel, you could check for the repository of your distribution, for an optimized one (i686). If this is not provided, then you need to compile the kernel yourself manually from sourcecode. If you want a truely optimized kernel for your architecture.
 
Old 08-25-2009, 12:56 AM   #4
rajesh84210
Member
 
Registered: Jul 2009
Posts: 53

Original Poster
Rep: Reputation: 15
That was really great.. I could understand everything expect the "kernel" part... cud u pls get me clarified on the same.

Thankyou so much for ur time:-)
 
Old 08-25-2009, 08:01 AM   #5
teebones
Member
 
Registered: Aug 2005
Location: /home/teebones
Distribution: sometimes this, sometimes that..
Posts: 502

Rep: Reputation: 56
Quote:
Originally Posted by rajesh84210 View Post
That was really great.. I could understand everything expect the "kernel" part... cud u pls get me clarified on the same.

Thankyou so much for ur time:-)
Hi again,

Correct me if i'm wrong, but you want to know what a kernel is/means?
 
Old 08-25-2009, 08:06 AM   #6
johnsfine
LQ Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,286

Rep: Reputation: 1181Reputation: 1181Reputation: 1181Reputation: 1181Reputation: 1181Reputation: 1181Reputation: 1181Reputation: 1181Reputation: 1181
Quote:
Originally Posted by rajesh84210 View Post
I could understand everything expect the "kernel" part.
Uname doesn't tell you about the hardware Linux is running on. It tells you about the way the kernel was compiled.

The Kernel is the central part of an operating system. It is the part of a Linux distribution that makes it Linux.

I'm not sure of the relationship between the three ?86 values you get from uname -a. They are documented as "machine", "processor" and "hardware platform" but I think they are all aspects of which CPU model the kernel was compiled for. (On an x86_64 CPU, they will all say x86_64 if the kernel was compiled for x86_64 and none will say x86_64 if it wasn't).

I think the 486, 586, 686 numbers represent the successively larger subsets of the full x86 instruction sets supported by those generations of x86 CPU models. But I think the meaning of 386 (in Linux CPU architecture specifications) long ago shifted and now represents a much larger subset of full x86 than was ever supported by actual 386 chips.

Last edited by johnsfine; 08-25-2009 at 08:09 AM.
 
Old 08-25-2009, 10:13 AM   #7
Wim Sturkenboom
Senior Member
 
Registered: Jan 2005
Location: Roodepoort, South Africa
Distribution: Slackware 10.1/10.2/12, Ubuntu 12.04, Crunchbang Statler
Posts: 3,786

Rep: Reputation: 282Reputation: 282Reputation: 282
I would not refer to subset but use superset. I don't think that Intel designed the 8086 30 years ago as a subset of something that they saw in the future. The original 8086 has grown (16 bit, 32 bit, 64 bit, new registers, probably new instructions (I'm not familiar with x86 assembly)). So the i686 is a superset of the i386 in my opinion.
 
Old 08-25-2009, 11:50 AM   #8
mushroomboy
Member
 
Registered: Jan 2006
Distribution: Debian Testing ALWAYS!!!
Posts: 363

Rep: Reputation: 43
the Intel processor is only a modified x86, infact they are close to the same thing. AMD is x86, Intel is just x86 with some added extentions I believe. I may be wrong, but that's what I remember reading somewhere.
 
Old 08-26-2009, 12:52 AM   #9
rajesh84210
Member
 
Registered: Jul 2009
Posts: 53

Original Poster
Rep: Reputation: 15
Thanks for ur time..
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
upgrade the kernel from 2.6.8-2-686 to 2.6.18-4-686 on etch stable cccc Debian 3 06-17-2009 08:39 AM
i386 :/x86-64 architecture of input file '*.o' is incompatible with i386 output Fiona Linux - Newbie 1 05-07-2008 08:23 AM
i386? 686? mr_a_ali Linux - General 3 08-18-2004 04:39 PM
define i386/686, etc? Scruff Linux - General 5 08-30-2003 09:48 PM
i386, 586, 686? The difference? wildbill Linux - General 8 03-27-2003 05:31 PM


All times are GMT -5. The time now is 04:07 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration