Messages in this thread | | | Date | Mon, 13 Sep 1999 17:17:13 +0300 | From | Matti Aarnio <> | Subject | Re: difference b/w 32-bit vs. 64-bit kernel |
| |
On Mon, Sep 13, 1999 at 06:55:57PM +0530, Sandeep Kumar wrote: > hi all, > > i know this question is too elementary for the list, but i am posting it here > hoping to get some doubts clarified. > > can anyone elaborately tell the differences b/w > > 1. 32-bit OS vs. 64-bit OS > 2. 32-bit Kernel vs. 64-bit kernel
64-bit kernel can DIRECTLY address entire 64-bit address range (and the processor can do 64-bit addresses).
Processor isn't (with Linux kernels) considered 64-bit one, unless it can do addressing of large address spaces without resorting to tricks like (external) memory mapping hardware giving enlarged physical memory address spaces thru mapping windows.
In case of dual-mode systems the user-spaces are often only 32-bit (sometimes also 64-bit), while the kernel is definitely 64-bit. (As is the case with Ultra-SPARC systems.)
With Alphas the userspaces has always been 64-bit, and now recently there has been some push to create functional 32-bit userspace.
> is it necessary to have 64-bit I/O, 64-bit addressing etc. (i.e. all > the 64-bit things to be there for an OS to be called 64-bit?).
64-bit addressing is required. PCI-bus (addresses of the I/O) is usually 32-bit only, which gives weird problems when trying to address thru it to system main memory (or to other PCI busses.)
Often e.g. Floating-point things are done in 64 or 80 or 96 bit resolution, and in such cases, would you want to call such processor e.g. 80-bit ?
Consider 8087 floating-point co-processor used with 8088 processor. A weird system with segmented 64 kB memory blocks with segments providing address space enlargement to "whopping" 1 MB. Yet the system ran with 8-bit data bus, and had 16 bit arithmetic registers. It was a precursor system for 80386, and much latter, Pentiums. What would that have been ? - 20 bit (complete segmented addresses) ? - 16 bit (addressing mode registers) ? - 80-bit (floating-point registers in the coprocessor) ? (Back then it was referred as '16 bit' per integer arithmetics it was able to do in the registers.) (At the time Motorola had 68000, which was referred as 16/32-bit, which had 24 bit external address bus, but 16 bit data bus, and 32-bit registers..)
> these are quite confusing terms, hoping that experts can help me out here. > regards > -sandeep- > -------------------------------------------------------------------------- > Sandeep Kumar Deptt. of Computer Science > san@cs.unipune.ernet.in Pune University, Ganeshkhind > san@asterix.cs.unipune.ernet.in Pune (INDIA) --- 411007
/Matti Aarnio <matti.aarnio@sonera.fi>
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |