Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

Microsoft Windows 98 to recognize Dual-Core processors (project?)

- - - - -

  • Please log in to reply
123 replies to this topic

#101
oscardog

oscardog

    Member

  • Member
  • PipPip
  • 228 posts
  • Joined 29-June 06

I wandered into VMWare and ran a Windows 95B virtual machine. I enabled debug logging, and watched the log fill up - it seems that VMM32 is what controls the CPU functionality in 9x. There's this topic over on boot-land: http://www.boot-land...?...d&pid=15326 which is essentially how to make your own 32-bit DOS using Win9x files.

I went ahead and created this 'new' DOS... When used, it is essentially what happens when you create a dos-box in Windows 95 - Windows 95 initializes a new DOS session, in protected memory. An actual multi-tasking 32-bit DOS. Of course, the limitations are still present - it seems that the services within VMM32.VXD in windows 95 hold the key to how the kernel gains access to the CPU. I'm certain that such a project IS possible, but it would take YEARS to get it working. And what definition of 'working' do I mean...

It boils down to the aptitude of people, rewriting the kernel is not necessary, that is why we have ntkern written by people who had the foresight before we were directed to migrate to nt5, IMO identifying the driver (obviously not the kernel/ntkern) that can access the registers of dual core cpus is the main stumbling block, parsing this to vmm is secondary, hence dissecting win2ks uni/multicore cpu ability may be helpful, which it is more than capable of doing, although struggling in scheduling hyperthreading. I imagine the information is available for people to do this now, it will probably happen after such people desire to write device drivers for latter day hardware and move on from that.


How to remove advertisement from MSFN

#102
ed209uardo

ed209uardo
  • Member
  • 7 posts
  • Joined 03-April 06

So, we are facing a law related problem, possibly. Is it legal to add a multicore support to Windows 98?


... If I remember this correctly, Microsoft designates the licensing by CPU, not the cores in the CPU. So my guess is you'd be safe as long as you were working to access ONE multicore CPU. Good luck...

#103
oscardog

oscardog

    Member

  • Member
  • PipPip
  • 228 posts
  • Joined 29-June 06
Out of interest has anybody altered SetThreadAffinityMask to the second core of a dual core cpu, (disclaimer ms says this shouldnt be done on win9x) or ran any cpu info utility to see if it produces any data whatsoever regarding the extra core/s.
As a side note while looking into this subject, I notice that the 20 odd year old os/2 based os has a dual core add in available from ecomstation. I am not saying this will be useful to us but might indicate what could happen. Perhaps again from glancing at os2s achievements, people who like win9x could go the way of http://www.os2world.com/bounties if they require dual core or hardware drivers etc. I do not know if this would motivate people who would not normally get involved or not, but might be worth considering.
As a side side note I also see win4lin (should be cheaper now they have given up on win9x although recent modified nix kernels can still be bought) can run win9x apparently near native speed whilst running a linux single/multicore aware kernel simultaneously.
All the best

#104
ohmss006

ohmss006

    Junior

  • Member
  • Pip
  • 65 posts
  • Joined 17-May 07

I wandered into VMWare and ran a Windows 95B virtual machine. I enabled debug logging, and watched the log fill up - it seems that VMM32 is what controls the CPU functionality in 9x. There's this topic over on boot-land: http://www.boot-land...?...d&pid=15326 which is essentially how to make your own 32-bit DOS using Win9x files.

I went ahead and created this 'new' DOS... When used, it is essentially what happens when you create a dos-box in Windows 95 - Windows 95 initializes a new DOS session, in protected memory. An actual multi-tasking 32-bit DOS. Of course, the limitations are still present - it seems that the services within VMM32.VXD in windows 95 hold the key to how the kernel gains access to the CPU. I'm certain that such a project IS possible, but it would take YEARS to get it working. And what definition of 'working' do I mean...


can you try it for Windows 98?

#105
BenoitRen

BenoitRen

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 977 posts
  • Joined 21-October 06
  • OS:95
  • Country: Country Flag
There wouldn't be a point. Windows 98 and 95 are very similar at their core, being different snapshots of the Win9x codebase.
Using Windows 95 OSR 2.5
SeaMonkey - surfing the net has never been so suite
Posted ImageLight Blue Ribbon Campaign for Freedom of Skin

#106
ohmss006

ohmss006

    Junior

  • Member
  • Pip
  • 65 posts
  • Joined 17-May 07

There wouldn't be a point. Windows 98 and 95 are very similar at their core, being different snapshots of the Win9x codebase.


yes yes, u are right there, terribly sorry about that.

what i actually meant was, can you do the same for Windows NT 4? i would like to know what is the big cheese.

#107
ohmss006

ohmss006

    Junior

  • Member
  • Pip
  • 65 posts
  • Joined 17-May 07
anyone at all may i ask?

I wandered into VMWare and ran a Windows 95B virtual machine. I enabled debug logging, and watched the log fill up - it seems that VMM32 is what controls the CPU functionality in 9x. There's this topic over on boot-land: http://www.boot-land...?...d&pid=15326 which is essentially how to make your own 32-bit DOS using Win9x files.

I went ahead and created this 'new' DOS... When used, it is essentially what happens when you create a dos-box in Windows 95 - Windows 95 initializes a new DOS session, in protected memory. An actual multi-tasking 32-bit DOS. Of course, the limitations are still present - it seems that the services within VMM32.VXD in windows 95 hold the key to how the kernel gains access to the CPU. I'm certain that such a project IS possible, but it would take YEARS to get it working. And what definition of 'working' do I mean...


i just wanted to know, if you were running NT4 on that virtual machine, i would liked to know in the logging, what process would have filled it up as with Win95B, it was VMM32, as in which he described, seems to have somesort of direct function to the CPU.

if someone can help me on htis, we can gain a better knowlege on what connects NT to the CPU itself. u never know, it might not be such a big difference afterall.

#108
BenoitRen

BenoitRen

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 977 posts
  • Joined 21-October 06
  • OS:95
  • Country: Country Flag

anyone at all may i ask?

Urgh, stop harrassing the forum with this question! If someone is up to it, he/she will come forth by himself/herself!
Using Windows 95 OSR 2.5
SeaMonkey - surfing the net has never been so suite
Posted ImageLight Blue Ribbon Campaign for Freedom of Skin

#109
ohmss006

ohmss006

    Junior

  • Member
  • Pip
  • 65 posts
  • Joined 17-May 07
i would say i was harrassing hte foru, as u can see now it has been awhile.

well, not too long ago me and my friend where talking about how to make or to see if it is possible to make the operating recognize Dual-Core, or multiple cores. We were reading htrough it and see as well to further understand what the others are trying to say about Windows 98 and MS-DOS with the fact of running multiple cores. also, one things for sure, one way to make this happen is if there was some sort of source code that we can manipulate, although no source code of the OS was ever leaked (unliked NT4 and Win2000 which i have), we can break it down and decompile it as well. but first things first, we have to know what connects the operating system directly to the processor and hten mess aroud there. after succeeding that, we can move on to other things like taking advantage of newer hardware and if u like, take advantage of the Geforce8 series (by the way, i have an 8800GTS 640MB for £80, the only catch is, one of the capacitors snapped off but its a clean snapp, so maybe a new one can be soldered on), and so on.

there are many good decompiling software, even one made to cease operations on Win98 whenever (i think htat is correct), what do u think anyways may i ask?

#110
ohmss006

ohmss006

    Junior

  • Member
  • Pip
  • 65 posts
  • Joined 17-May 07
hey, its been awhile i know. and through time to time i have been reading through this as well.

i thought i come back here (as i was quite busy) and confidentally say i have my new PC or Rig up and running. i may have mentioned before that i was building my PC up but if anyones interested, here are the spcs:

Intel Core 2 Duo E6600
Asus P5B Deluxe/ WIFI Edition
Crucial Ballistix 2GB DDR2-6400 800Mhz RAM
Seagate 500GB Hard drive
7600GT Nvidia graphic card
2 x DVD-R/W RAM drives
USB 2.0

and installed on it right now is Windows XP SP2, and its a clean install, with only the motherboard drives installed. but for some odd reason, its not exactly what i imagined, as i thought it would have been slightly faster, but i jsut dont see it, and it kinda lets me down. now im just wondering how Windows 98SE will work on it, even though it might not at all recognise the hardware inside it.

anyways, readoing through here, it is still possible to make Windows 98 recognise dual core, and that possibly rewriting the kernal might not be necessary, and that 'maybe' use the leaked OS's source codes to help provide the ability of making Win98 recognize multiple cores from the NT Kernal perhaps. and because of that, it can pass through the VMM32 which connects everything from drivers to hardware inorder to make it work.

perhaps before that can be done, is to decompile it? soeone correct me on htis. i am not too sure. Volenteers would be great as that i have been asking and as other websites or threads here have been asking, as i have now a fully running PC with hardware not exactly made for Win98 as a testing bed and willing to go through it.

look forward to your rpelies again :D

Excellent.

#111
eidenk

eidenk

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,442 posts
  • Joined 28-March 05

and installed on it right now is Windows XP SP2, and its a clean install, with only the motherboard drives installed. but for some odd reason, its not exactly what i imagined, as i thought it would have been slightly faster, but i jsut dont see it, and it kinda lets me down.

Well, the problem with dual cores is that to benefit from it you need to have applications that are dual core aware and this is latest versions of high end video and audio applications only as far as I am aware.

Neither your OS nor any of your old apps are going to run faster than what a single core allows.

I think it is very unfortunate, and IMO one big flaw in design, that those chips can't be switched in a mode where the two cores can be used as if they were a single core.
Asus A8V Deluxe - Athlon 64 FX-55 2.6Ghz - 1GB DDRAM 400 - Windows ME (IE 5.5 SP2 Shell) + KernelEx 4.0 and Revolutions Pack 10

#112
ohmss006

ohmss006

    Junior

  • Member
  • Pip
  • 65 posts
  • Joined 17-May 07

I think it is very unfortunate, and IMO one big flaw in design, that those chips can't be switched in a mode where the two cores can be used as if they were a single core.


i think htat would make a very good idea for a patch or a work around. brilliant! another hting to think about as well.

and i installed Windows XP Pro SP2, and it does recognise dual core, this by telling through the system specs on My Computer, Device Manager and Task Manager. maybe i need to do some updating from the net?

either way, what did u think of hte Win98 idea htat i mentioned?

#113
eidenk

eidenk

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,442 posts
  • Joined 28-March 05

and i installed Windows XP Pro SP2, and it does recognise dual core, this by telling through the system specs on My Computer, Device Manager and Task Manager. maybe i need to do some updating from the net?

I don't think you'll see a big change with updates. But if you install also 98 on that box, tell us how it fares.

either way, what did u think of hte Win98 idea htat i mentioned?

Which one ? Support for dual cores ? As said there is not much interest in it as I don't think there are applications running on 98/ME that are able to take advantage of dual cores.

Both your idea and mine would be nice but it is beyond the scope of what we can do here I am afraid unfortunately.
Asus A8V Deluxe - Athlon 64 FX-55 2.6Ghz - 1GB DDRAM 400 - Windows ME (IE 5.5 SP2 Shell) + KernelEx 4.0 and Revolutions Pack 10

#114
ohmss006

ohmss006

    Junior

  • Member
  • Pip
  • 65 posts
  • Joined 17-May 07

Which one ? Support for dual cores ? As said there is not much interest in it as I don't think there are applications running on 98/ME that are able to take advantage of dual cores.


yes, the oeprating system to take advantage of dual or multiple core processors. u could probably run a benchmark on Win98, record the results and when one day it recognizes the 2 cores, run the benchmark again on that, and u'll probably see the figures will have doubled. that is something what i am aiming for.

i am just abit worried that, IF the operating system doesnt see the extra cores, then the applications that do, wont at all on the OS. is that corect may i ask?

and hopefully today, im going to install Win98SE on my new rig and to see how it turns out as well. as i asid, i am willing to go ahead and use my computer as a testing bed for whatever tweaks or adjustments made.

we kinda need to spread the word, probably into the Unofficial Service Packs page?

#115
AnX

AnX

    Fighting for the right to OS since 2010

  • Member
  • PipPip
  • 224 posts
  • Joined 20-June 12
  • OS:Windows 10 x64
  • Country: Country Flag

Please don't flame if I'm incorrect on this as I haven't read the entire thread, but it seems you peeps are under the impression Windows 2000 supports multi-core CPUs. This is a falicy. Windows 2000 supports multi CPU systems, not multi core system. Proof of this is that I'm currently on my work laptop which has an intel core 2 duo T7200 processor in it and we're forced to use windows 2000, and though the device manager shows it as a multi cpu system, the task manager only shows one CPU workload. Further proof of this is the HP support people we get (we get better support than most as we're an R&D center and get HP R&D tech support) who are always laughing that we've got $3000 laptops with windows 2000 on them which is unable to utilize both cores. And yet more proof is, bog down one process, easy for me to do as I'm a software developer(lets not talk details here, lets just say I meant to make an idle thread and accidentally made it time critical), and watch how the whole system comes to a crawl, when doing the same thing on my home pc doesn't effect system responsiveness. Windows XP is the first windows with multi-core support.


Then why is m Win2K system's task manager showing both cores? The PROBLEM was that the task manager was set to One Graph, all CPUs, insted of one graph PER CPU. Windows 2000 supports multicore fine and all.

AMD FX-8320 8-core CPU (OC to 4.4GHz) with Hyper 212 Evo, ASUS M5A99FX PRO R2.0 Motherboard, 16GB 1600MHz RAM, 60GB SSD (OS) and 500GB HDD (Storage), ASUS GeForce GTX 960 2GB Graphics Card, 620W Seasonic S12II, CM HAF 912 case.


#116
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,216 posts
  • Joined 30-May 05
  • OS:98SE
  • Country: Country Flag

Please don't flame if I'm incorrect on this as I haven't read the entire thread, but it seems you peeps are under the impression Windows 2000 supports multi-core CPUs. This is a falicy. Windows 2000 supports multi CPU systems, not multi core system. Proof of this is that I'm currently on my work laptop which has an intel core 2 duo T7200 processor in it and we're forced to use windows 2000, and though the device manager shows it as a multi cpu system, the task manager only shows one CPU workload. Further proof of this is the HP support people we get (we get better support than most as we're an R&D center and get HP R&D tech support) who are always laughing that we've got $3000 laptops with windows 2000 on them which is unable to utilize both cores. And yet more proof is, bog down one process, easy for me to do as I'm a software developer(lets not talk details here, lets just say I meant to make an idle thread and accidentally made it time critical), and watch how the whole system comes to a crawl, when doing the same thing on my home pc doesn't effect system responsiveness. Windows XP is the first windows with multi-core support.


Then why is m Win2K system's task manager showing both cores? The PROBLEM was that the task manager was set to One Graph, all CPUs, insted of one graph PER CPU. Windows 2000 supports multicore fine and all.

Windows 9x has no support for Multi-Core, but I have developed an API that does. You can write Multi-Core aware Programs with it.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.

#117
AnX

AnX

    Fighting for the right to OS since 2010

  • Member
  • PipPip
  • 224 posts
  • Joined 20-June 12
  • OS:Windows 10 x64
  • Country: Country Flag
Another possible thing is the HP's InsydeH20 BIOS This commie BIOS restricts Windows 2000's access to the second core. If you want a Win2k system, avoid HP laptops at all cost! Dell and ASUS laptops will work for you.

Edited by AnX, 06 May 2013 - 09:10 PM.

AMD FX-8320 8-core CPU (OC to 4.4GHz) with Hyper 212 Evo, ASUS M5A99FX PRO R2.0 Motherboard, 16GB 1600MHz RAM, 60GB SSD (OS) and 500GB HDD (Storage), ASUS GeForce GTX 960 2GB Graphics Card, 620W Seasonic S12II, CM HAF 912 case.


#118
AnX

AnX

    Fighting for the right to OS since 2010

  • Member
  • PipPip
  • 224 posts
  • Joined 20-June 12
  • OS:Windows 10 x64
  • Country: Country Flag

Windows 9x has no support for Multi-Core, but I have developed an API that does. You can write Multi-Core aware Programs with it.


Is it possible to extend this API to get Windows 98 to have full multicore support, and the ability to run apps on both the cores?

AMD FX-8320 8-core CPU (OC to 4.4GHz) with Hyper 212 Evo, ASUS M5A99FX PRO R2.0 Motherboard, 16GB 1600MHz RAM, 60GB SSD (OS) and 500GB HDD (Storage), ASUS GeForce GTX 960 2GB Graphics Card, 620W Seasonic S12II, CM HAF 912 case.


#119
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,216 posts
  • Joined 30-May 05
  • OS:98SE
  • Country: Country Flag

Windows 9x has no support for Multi-Core, but I have developed an API that does. You can write Multi-Core aware Programs with it.


Is it possible to extend this API to get Windows 98 to have full multicore support, and the ability to run apps on both the cores?

The Windows 98 Kernel does not have any support for Multi-Core, so the API is separate. Code written to the API can run on any number of Cores, but all Kernel functions are passed to the Base Core for processing. The API has specific Callback Functions that can be used by Application (non-Base) Core Code to execute Kernel Functions.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.

#120
cdoublejj

cdoublejj

    Member

  • Member
  • PipPip
  • 141 posts
  • Joined 26-July 09
i thought a i saw post here with some basic dual core functionality.

#121
Azvareth

Azvareth
  • Member
  • 2 posts
  • Joined 01-March 15
  • OS:Windows 7 x64
  • Country: Country Flag

Another possible thing is the HP's InsydeH20 BIOS This commie BIOS restricts Windows 2000's access to the second core. If you want a Win2k system, avoid HP laptops at all cost! Dell and ASUS laptops will work for you.

I know this is an old post and perhaps should not be reactivated but...  I think I need to share my thoughts as well.

If a bios (that is software in a chip) could program in some way a NT machine to not "see" a second (or more?) core, then this might be able to do at startup in dos before win9x start as well and therefore it might be possible to run Win9x (on one core) on a "newer" multicore machine...

If this theoretical "thing" (above) that prohibit w9x to see other cores, also have an API, that stand alone applications could call and see, dont ask me how cuz Im a lamer, then that core theoretical should be able to access all memory range outside of W9x knowledge I guess.

Problem is, such an API or whatever, would need to have some sort of memory manager that coexist with w9x to register allocated mem, devices and stuff processed from that core, this must be registered and known by w9x system as well. Secondly, you would need to have some sort of taskmanager to taskswitch processes on that core.

Seems like a big job. And in the end. it looks like it would be an early NT system hacked together from 9x, perhaps it is better to let w9x be just w9x, you might wish to do the first "bios" thing though, but still there might not be drivers for such a new computer anyway.


So to something that may look like a review of my machine, well it is but I have a point I would like to adress below it.

My test machine (and for nostalgic reasons) today, a Dell GX60 with Celeron 2.4 GhZ 1 core CPU, 1GB physical mem with 999Mb usable memory (31% used at startup) and no swapfile active, Internal Intel 82845G Graphics (dedicated 8MB of ram to that), ethernet (internal), sound & joystick, 200GB HD part(10, 25+, 150+)gb.

This machine is running Windows ME with all KernelEx stuff and updates to allow it to run somewhat updated internet related software.

It was not an easy task to find drivers to get it to work - as the machine was designed for XP by Dell. Can't imagine newer hardware would be any easier, thus rendering the topic obsolete even if it is possible, more or less.

The machine speed?

Works great with local applications, but when it comes to webbrowsing, it will not handle the burden, even if using k-melon. other networking apps like torrent client ABC is fine

Games: HALO, AoE, Swat3, Half Life 1, Doom, Centurion and such works great, no lag, fine graphic speed
Development: Visual Studio 6, Delphi 6 PE working perfectly and fine
Office: MSXP and MS97 did not work well here none of them, had to turn to OoO 2.4 smoth and fine here


... and a lot of other things, like WMP 10 streaming from online radio tuner, great with no lag, playing local files works great as well.

Point is: are there really a need to use one or more core(s) with w9x? specially as said before, computers with that many cores might not have drivers for the rest of the hardware. Even if - as also said above, it was possible to lock out cores from W9x but still have a faster CPU speed.

The solution if one wan'ts more core's might be to move onto w2k? personally I did not like that myself and would actually go for w2k3 (or XP) and strip it down as much as possible... but then it is even more OT then before, so see solutions mentioned at the beginning of post.

Well thank you for interesting reading, no need to flame me, I would most likely not read it, I just stumbled on the post and wished to give my point of view.



#122
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,216 posts
  • Joined 30-May 05
  • OS:98SE
  • Country: Country Flag
Windows 9x does not know about multiple cores so it will run just fine regardless of the number of cores. It will just use one.
I have already written an API that can run Threads in the other cores. It is also possible to move Windows 9x to a different core.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.

#123
Azvareth

Azvareth
  • Member
  • 2 posts
  • Joined 01-March 15
  • OS:Windows 7 x64
  • Country: Country Flag

yes I saw that.. And it is a great approach..

But again that would not let any application of user choice run in a second thread (as someone wanted to)...

I was perhaps in misstake as I thought I read somewhere that Windows 9x would not run at all with more cores then two, good to se there is no limits.

But if any application should be able to run inside another core, then there would need to be some sort of mechanism that maps win resources, memory and perhaps win api to that core, so a process on that core could call the first W9x core's system API, kind of like an system debugger a la softIce on that core breaking out and do some remap for certain tasks (as I said I am a lamer and do not know the internals, just guessing on how it possible would work)...

However this is a big task and I do not think it is something that would happen even if it where possible... perhaps redesigning DOSBox as a virtual machine running in other cores?.

Anyway I like the idea I read about the API implementation you have, is it available for free or do it cost something where if available could one (I?) read more about it?



#124
rloew

rloew

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,216 posts
  • Joined 30-May 05
  • OS:98SE
  • Country: Country Flag
Windows 9x only has one set of Thread Management Tables and no Core level Synchronization Code so running generic Threads simultaneously is not practical.

My API is not free. There is an older Demo on my website that might run and has documentation.

Basically it locks and maps a programs memory to other cores, sets them up and runs code in them.
Intercore synchronization Functions are provided to manage them.

A core emulator is also provided so that the same code can be used to run in the original core as in the other cores or if the program is run on a single core system.

Byt writing a Program that uses the first Core offered by the API, you can make an app that will by default run in another Core and not tie up Windows CPU time. If you run more of these apps then Cores, the extras will be run in the main core as before. If you run the same app in XP or later, it will allocate them to cores as always.
Ye who enter my domain. Beware! Lest you become educated in the mysteries of the universe and suffer forever from the desire to know more.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users