Posted by: Anonymous Coward
on August 31, 2004 05:23 AM
Yup, you're wrong. Windows 95 was not a 32-bit OS at all. Windows 95 was just MSDOS 7.0 re-named--the code at its core was simply the next version of the same 16-bit code from previous DOS. The real big leap in "innovation" was the integration of DOS and the updated GUI--discounting the visual difference Win95 is not much different technically than DOS 6.x + Win 3.11 + Win32s (the latter being 32-bit "extension" libraries).
Win95 at the core (Kernel, User and GDI) was comprised of 16-bit mode applications with interfaces that allowed 32-bit applications (like those written for NT) to execute. Yes, this allows REAL 32-bit programs to run on Win9x but the OS itself remained a 16-bit DOS variant with 32-bit library extensions right from Win95 up to and including WinME. That in large part accounts for that line of OS being much more prone to crash than the NT-based line of OSes from MS--the DOS-era 16-bit code did not properly implement true pre-emptive multitasking functionality--most importantly protected memory--allowing programs that are running concurrently to steal each others resources without permission. Eventually MS finally dropped the DOS line of OSes with the release of the 32-bit, NT-based WinXP for both home and business use.
With regards to FAT16--filesystems aren't really "16-bit" or "32-bit" in the way CPUs or software code is--at least they aren't tied to one another. In FAT16, 16 refers to the number of bits used to address a block of data (called a "cluster"). That allows FAT16 to keep track of 65,536 clusters on a drive. The problem is that when drives got to a certain size that 65,536 limit is reached and the only way to keep track of the data is to increase the cluster size. FAT16 handles a maximum of 2 Gigs--quite small byt todays standard--and to do that the smallest chunk of data it can track is 32kB--that means even a 1k text file will eat 32k of your space.
FAT32 is the basically exactly the same file system as FAT16, except it uses a 32-bit value to track the clusters, allowing for more than four BILLION clusters and terabytes of space per drive/partition. In reality though, FAT is a primitive filesystem with no inbuilt security or data integrity functions--at really large sizes it is inefficient and unreliable.
Data-vs-addressing are really separate issues. The FAT system is basically referring to addressing (albeit in a bit of a different way than how CPUs address memory). There is nothing "kludgey" about storing 32-bit data in 16-bit addressed space, or fice versa--they are two unrelated animals. "X"-bit data paths refer to how big of a "chunk" of data you process in one machine cycle (in a way, the cluster size of a FAT filesystem is like this, so you could argur that FAT could be called a 512-bit to a 32,768-bit filesystem). "X"-bit addressing means how many bits (thus how big a number) you used to keep track of each of those chunks of data.
You could in fact design an 8-bit computer with 32-bit addressing. Because the data path is so narrow the electronics would be cheap, and with so much addressing you could support lots of memory, but the computer would run pretty slow unless you upped the clock speed dramatically. Conversely, you could design a 32-bit computer with 16-bit addressing (there are systems like that out there). That would be much faster, but you'd only be able to deal with 64K of memory at a time.
Re:Windows 95 32bit
Posted by: Anonymous Coward on August 31, 2004 05:23 AMWin95 at the core (Kernel, User and GDI) was comprised of 16-bit mode applications with interfaces that allowed 32-bit applications (like those written for NT) to execute. Yes, this allows REAL 32-bit programs to run on Win9x but the OS itself remained a 16-bit DOS variant with 32-bit library extensions right from Win95 up to and including WinME. That in large part accounts for that line of OS being much more prone to crash than the NT-based line of OSes from MS--the DOS-era 16-bit code did not properly implement true pre-emptive multitasking functionality--most importantly protected memory--allowing programs that are running concurrently to steal each others resources without permission. Eventually MS finally dropped the DOS line of OSes with the release of the 32-bit, NT-based WinXP for both home and business use.
With regards to FAT16--filesystems aren't really "16-bit" or "32-bit" in the way CPUs or software code is--at least they aren't tied to one another. In FAT16, 16 refers to the number of bits used to address a block of data (called a "cluster"). That allows FAT16 to keep track of 65,536 clusters on a drive. The problem is that when drives got to a certain size that 65,536 limit is reached and the only way to keep track of the data is to increase the cluster size. FAT16 handles a maximum of 2 Gigs--quite small byt todays standard--and to do that the smallest chunk of data it can track is 32kB--that means even a 1k text file will eat 32k of your space.
FAT32 is the basically exactly the same file system as FAT16, except it uses a 32-bit value to track the clusters, allowing for more than four BILLION clusters and terabytes of space per drive/partition. In reality though, FAT is a primitive filesystem with no inbuilt security or data integrity functions--at really large sizes it is inefficient and unreliable.
Data-vs-addressing are really separate issues. The FAT system is basically referring to addressing (albeit in a bit of a different way than how CPUs address memory). There is nothing "kludgey" about storing 32-bit data in 16-bit addressed space, or fice versa--they are two unrelated animals. "X"-bit data paths refer to how big of a "chunk" of data you process in one machine cycle (in a way, the cluster size of a FAT filesystem is like this, so you could argur that FAT could be called a 512-bit to a 32,768-bit filesystem). "X"-bit addressing means how many bits (thus how big a number) you used to keep track of each of those chunks of data.
You could in fact design an 8-bit computer with 32-bit addressing. Because the data path is so narrow the electronics would be cheap, and with so much addressing you could support lots of memory, but the computer would run pretty slow unless you upped the clock speed dramatically. Conversely, you could design a 32-bit computer with 16-bit addressing (there are systems like that out there). That would be much faster, but you'd only be able to deal with 64K of memory at a time.
#