GeneralThis forum is for non-technical general discussion which can include both Linux and non-Linux topics. Have fun!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Distribution: Ubuntu 11.4,DD-WRT micro plus ssh,lfs-6.6,Fedora 15,Fedora 16
Posts: 3,233
Rep:
if i recall correctly even ms-dos could have been theoretically capable of that but microsoft in their infinite wisdom hard-coded memory access at 640k
@fruttenboel don't you mean 4 MB? i don't recall 386 machines being able to hold physically more then 4 megs, for ms-dos and even win3.11 4 gigabytes of ram would be unfathomably big
if i recall correctly even ms-dos could have been theoretically capable of that but microsoft in their infinite wisdom hard-coded memory access at 640k
Wasn't that more of a 16-bit issue? Either way, I don't think Microsoft had as much control over this as you're suggesting. Even on 32-bit hardware, all DOS versions had this limitation, not just the Microsoft version.
That said, they flogged the hell out of that dead horse for about 10 years. Every "consumer" version of Windows before xp (3.0, 3.11, 95, 95A, 98, 98SE and Me) was still a 16-bit OS at it's core. Despite having had 32-bit hardware for almost 10 years, most people were never able to utilise it fully. Of course, Linux could, since it was designed from the ground up for 32-bit processors...
Quote:
Originally Posted by frieza
@fruttenboel don't you mean 4 MB? i don't recall 386 machines being able to hold physically more then 4 megs, for ms-dos and even win3.11 4 gigabytes of ram would be unfathomably big
I thought that the limit with 16 bits was 16 megs?
For me, I'll never need to run "native" DOS again, since DOSBox runs pretty much everything... and it saves me from rebooting.
Using a memory "driver" (like himem.sys or similar) extends the limit to 16Mb under DOS.
Back in the day, I had a '286 running DOS 5 with 2Mb RAM. I had set it up to load most of the OS in "high" memory (the bit between 640Kb and 1Mb), leaving about 620Kb of "low" memory for programs to use! The second meg was set up as a ram drive. I'd put games into it to make them load faster...
Windows 95B, 98, 98SE and Me were only able to address more than 16Mb that because of some 32 bit extensions.
Using a memory "driver" (like himem.sys or similar) extends the limit to 16Mb under DOS.
Back in the day, I had a '286 running DOS 5 with 2Mb RAM. I had set it up to load most of the OS in "high" memory (the bit between 640Kb and 1Mb), leaving about 620Kb of "low" memory for programs to use! The second meg was set up as a ram drive. I'd put games into it to make them load faster...
Windows 95B, 98, 98SE and Me were only able to address more than 16Mb that because of some 32 bit extensions.
himem.sys + emm386.exe = 64mb ram total that can be accessed under DOS!
The machine switches to protected mode and sets up a descriptor table such that when the segment register is all zeroes, the machine uses 32 bit addressing. Then it goes back to real mode. And due to a bug in all 80x86 cpu's, the descriptor table stays in effect.
If you load (for example) ES and FS with 0000, you can use 32 bit addressing. CS and DS will be used in the usual way.
If you load (in this case) ES or FS with a non-zero value, the normal addressing (16 x ES + offset) is used.
Search the web for 'flat real mode'. I have the files stored on a computer but not on this one...
Around 15 years ago, Paragon Technology Systems (aka PTS) from Russia published the 'Dos Development Kit'. It was open source DOS. Full sources were included. 95% of the DOS was written in assembler. It sold for 30 dollars or something like that.
PTS-DOS was lightning fast and contained built in drivers for CD-ROMs, which was pretty unique in those days. And it had a bootmanager built in as well.
DR-DOS 7 would not run Windows 3.11, but PTS-DOS would. Blazingly fast.
I still got some copies of that CD-ROm lying around here.
if i recall correctly even ms-dos could have been theoretically capable of that but microsoft in their infinite wisdom hard-coded memory access at 640k
@fruttenboel don't you mean 4 MB? i don't recall 386 machines being able to hold physically more then 4 megs, for ms-dos and even win3.11 4 gigabytes of ram would be unfathomably big
I had an 8 MB 386. More RAM was too expensive. But 16 MB would fit as well, given enough slots on your MoBo. The RAM planks were 30 pin SIMMs, so they wer rather limited.
I thought that the limit with 16 bits was 16 megs?
No, REAL MODE was limited to 1 Megabyte address space. Real mode used 65536 segments of 16 bytes each. That allows 20 bits for addressing, i.e. 1 MB. Memory managers ran in Protected mode (or in Flat real mode http://en.wikipedia.org/wiki/Unreal_mode) and then could access the memory beyond 1 MB with a trick. Porogram size was still limited to 640 Kb.
DRDOS had a nice little feature. If you ran with a VGA card, the screen buffer was at C000 segment and with the MemMax system, you could add 128 Kb more to the 640 Kb region. Neat.
DOS ws nice. For the time.
Quote:
Originally Posted by rkelsen
For me, I'll never need to run "native" DOS again, since DOSBox runs pretty much everything... and it saves me from rebooting.
I second that. I occasionally run Wolfenstein in dosbox and it runs better than on the old 386.... Awesome.
Distribution: Ubuntu 11.4,DD-WRT micro plus ssh,lfs-6.6,Fedora 15,Fedora 16
Posts: 3,233
Rep:
Quote:
Originally Posted by rkelsen
Wasn't that more of a 16-bit issue? Either way, I don't think Microsoft had as much control over this as you're suggesting. Even on 32-bit hardware, all DOS versions had this limitation, not just the Microsoft version.
That said, they flogged the hell out of that dead horse for about 10 years. Every "consumer" version of Windows before xp (3.0, 3.11, 95, 95A, 98, 98SE and Me) was still a 16-bit OS at it's core. Despite having had 32-bit hardware for almost 10 years, most people were never able to utilise it fully. Of course, Linux could, since it was designed from the ground up for 32-bit processors...
I thought that the limit with 16 bits was 16 megs?
For me, I'll never need to run "native" DOS again, since DOSBox runs pretty much everything... and it saves me from rebooting.
perhaps i shoulda been more specific, if i recall ms-dos was limited to 640k 'conventional memory', everything above that was considered 'upper memory' (or 'high memory') or 'extended memory', but programs had to be specifically written to be able to take advantage of that otherwise they were limited to the 640k 'conventional memory', supposedly people spent quite a bit of time and effort into setting up extended memory managers and config.sys files to optimize memory use on their machines becaus of that limitation.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.