Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 


patchworks

Open Sourcing Windows 9x

Recommended Posts

Considering how much hardware has advanced and OSs like 2000 and XP don't really use much ran at all compared to how much and how cheaply you can buy it.

Recommended amount of RAM for best performance:

Windows 95: 32 MB

Windows 98 SE: 64 MB

Windows 2000: 256 MB

Windows XP: 512 MB

I'll take Win9x, thank you very much. All that RAM wasted by the NT editions could be put to much better use.

Share this post


Link to post
Share on other sites

I do believe it may be possible, practical, and useful to gradually open-source 9x using a plug-out system: Taking one file at a time and replacing it with an open-source equivalent that does exactly the same(but with better, more stable, peer-reviewed code). Afterwards, the open-source equivalents can have features gradually added to improve compatibility with newer programs, etc.

I think the KernelEx project runs along the same lines, but on a smaller scale.

Unlike many of the posters here, I am an experienced programmer, and would more than love to invest some of my free time to such a project(If there are enough people working on it). However, there is one issue bigger than gathering programmers: Reverse engineering APIs.

As it stands, plug-outing dlls, vxds, and other system files requires understanding exactly what each of them does, what APIs they offer, and what other libraries and/or system calls they use to accomplish their tasks. This is not nearly as simple as it may sound, and may even require decompiling some of the windows files and examining their assembly code in detail.

Personally, if I had the necessary reverse-engineered information, I would more than love to replace some of the vxds in the vmm32 folder with faster, stabler counterparts.

Share this post


Link to post
Share on other sites

Tinykrnl had a very similar goal a few years ago and has effectively managed some level of success replace most of the initial boot files used for XP.

http://66.102.9.104/search?q=cache:fBabang...=pt&strip=1

One remanescent of this legacy was WinRoot - a Windows XP based boot disk that is sized in 5Mb. (who said NT was unefficient?)

http://winbuilder.net/download.php?view.6

Alex closed down TinyKrnl but he is still active here: http://www.boot-land.net/forums/Native-NT-Toolkit-t3791.html

---

The solution for open source OS that you're looking for is called linux.

It is smaller, faster and much more adaptable than any MS OS will ever be.

Guess the only downside is that MS coded programs won't run very well but these barriers are slowly becoming thinner as web based applications become popular and WINE compatibility moves forward.

You can now browse on youtube, wikipedia or post on forums regardless of the OS you use and this is something that MS struggled very hard to avoid.

Understanding the Windows API is not easy as there are a lot of tricks and traps that are added along the road to ensure enough headaches for people outside MS to replicate them (no public documentation also complicates things). I remember my own complications trying to reverse-engineer the registry win32 api functions to allow raw file handling and getting stuck on the part where a new hive was not recognized as valid by regedit.

http://www.boot-land.net/forums/index.php?...t=0&start=0

If you want to spend your time and talent coding better open source DLL's then I really suggest joining the efforts of the Wine Team: http://winehq.org

As the saying goes: "The more, the merrier.." :sneaky:

-----

btw: But if you're interested in decoding Win32 API then I would have a few requests/challenges in case you're interested! :)

Share this post


Link to post
Share on other sites
Well then, I believe that you (and not just you, that means it's my fault) miunderstood the point.

I never sayd to "reinvent the weel" by coding a 9x compatible system from scratch (as ReactOS is doing for NT).

My project idea is something more similar to a specialized "WPIW", than an a standalone OS: as a requirement you need an installed Windows 9x (or 98SE, if we prefer) and a functional internet connection.

Then you simply download a "mod manager" that dynamically - 'cause 3rd party softwares just "comes out as mushrooms" - downloads and installs selected open source applications/drivers/icons/themes/etc in order to substitute the official ones.

This, as already specified, means that you have a fully functional OS since the "0.0001pre-alpha" version of the project (it can just mod icons and notepad, in the 1st version).

But that's not "open-sourcing" anything. There's nothing to stop anyone from writing a program that replaces certain files, like notepad.exe, with a free replacement. The problem (and thus the usefulness) of such a project is that it does not fix any underlying problems or provide any innovation. Installing Wine Gecko may be more secure than IE6, but it doesn't change the fact that eventually Gecko won't run on 9x. Providing an OpenGL version of Solitaire doesn't change the fact that new video hardware won't support 9x. Providing a free disk defragmenter won't change 9x's file size limit, or the limitations of the FAT32 file system.

9x needs SMP, not VLC.

Share this post


Link to post
Share on other sites
The solution for open source OS that you're looking for is called linux.

It is smaller, faster and much more adaptable than any MS OS will ever be.

This is generally not true. Windows 95 is faster than any Linux I've tried. Smaller, depends. But GNU/Linux is not a solution. It requires that you can fiddle with the guts of the system to fix a problem or change anything worthwhile. It's a collection of programs instead of a whole.

Share this post


Link to post
Share on other sites
But that's not "open-sourcing" anything.
here's the link @ Revolution OS, "a 2001 documentary which traces the history of GNU, Linux, and the open source and free software movements."

The interesting fact is the method that Stallman used to create GNU (start form 12:50th minute): "...a large number of separate programs... replace these programs one-by-one..."

Then "substituting" is just the beginning...

Share this post


Link to post
Share on other sites
The interesting fact is the method that Stallman used to create GNU (start form 12:50th minute): "...a large number of separate programs... replace these programs one-by-one..."

Then "substituting" is just the beginning...

Then might I point out that GNU was for a long time (and mostly still is) a non-existent operating system? The only reason those tools are used at all is that Linus Torvalds was dedicated enough to write a kernel. The GNU Hurd has never been fully written, even though it has been planned for 20 years. Gathering free software does nothing of any practical value if you have no one to write the replacement 9x kernel.

Share this post


Link to post
Share on other sites
The only reason those tools are used at all is that Linus Torvalds was dedicated enough to write a kernel.

:blink:

Watch the ENTIRE movie, plz.

Gathering free software does nothing of any practical value if you have no one to write the replacement 9x kernel.

:huh:

KernelEx homepage

Edited by patchworks

Share this post


Link to post
Share on other sites
Watch the ENTIRE movie, plz.

I did. And, as I said, there was no GNU kernel available, only GNU tools, like gcc or bash. Thats why Linus wrote the Linux kernel. You also have no free 9x kernel, only free programs, like MinGW or Mozilla Firefox.

... is not an open-source replacement for the 9x kernel. It adds certain missing API functions that the kernel did not originally have. That's like saying that if I hack my BIOS so that it has an extra string in it that says "Hi!", and help others to do it, I've written a free BIOS. I'll call up FSF right now, and tell them coreboot is wasting it's time. Unless KernelEx can operate with NO PROPRIETARY CODE FROM MICROSOFT, it is not even a "free" program.

Share this post


Link to post
Share on other sites
The solution for open source OS that you're looking for is called linux.

And if OSs were all the same, then that would be awesome. Don't get me wrong, I like linux, I use it on various occasions for various tasks. But I don't use it on my personal computer because it simply does have the proper architecture for a single-user computer.

Even if you take away configurable stuff like the different appearance and control scheme, and future rectifiable aspects like not running any of my favorite applications and games, you're still left with all sort of various practical differences that start from its insistence to create 5 folders on(/as) your file system root, and just goes on from there.

Don't get me wrong, the linux kernel is great. I much prefer seeing Ubuntu on CD auto-configure drivers for all of my hardware in 30 seconds on boot-up, then wait 3 times as much for Windows to load pre-arranged configuration for most of my hardware. As a whole, I would rather have my Windows run with linux drivers and threading model.

But I'm not ready to switch to linux's file system model, not to its user model, not to its boot up sequence, or any of the other things that are unique to my 9x.

For that reason, I would rather rewrite 9x to be stable and fast, than to try a migrate. That, and it'd take significantly less time, and have significantly greater short-term rewards, than attempting to create a new OS suitable for all of my needs.

KernelEx homepage

Is a nice start, but still a band-aid solution. It replaces kernel32.dll, mostly a stub library. The big stuff are win.com, user.exe, user32.dll, and the vmm32 folder. That's where the real action is at, and those are the files that need open-source replacement.

Quite frankly, if someone can get me input-output format specs for these, I would recode them myself.

Io.sys and command.com also welcome, since its about time DOS7 got upgraded to something natively supporting larger files and long/localized filenames.

Share this post


Link to post
Share on other sites
only GNU tools, like gcc or bash. Thats why Linus wrote the Linux kernel.

Not exactly:

Linux kernel

The Linux Kernel was initially conceived and assembled by Linus Torvalds in 1991. Early on, the Minix community contributed code and ideas to the Linux kernel. At the time, the GNU Project had created many of the components required for a free software operating system, but its own kernel, GNU Hurd, was incomplete and unavailable.

So Linus just does a "culumbus egg", IMHO. :sneaky:

You also have no free 9x kernel, only free programs, like MinGW or Mozilla Firefox.

...so, can't you see the affinity ? :whistle:

... is not an open-source replacement for the 9x kernel.

...at the moment. :ph34r:

My projects just tries to stimulate the creation of missing parts.

As Linux demonstrates, the open source community has great potential: you "just" have to provide some open source tools, then someone on the other site of the planet does the rest.

Who knows ? :rolleyes:

Share this post


Link to post
Share on other sites
So Linus just does a "culumbus egg", IMHO. :sneaky:

Are you suggesting that writing an operating system is easy just because Linus figured out how to do it?

You also have no free 9x kernel, only free programs, like MinGW or Mozilla Firefox.
...so, can't you see the affinity ? :whistle:

Yes. A free 9x operating system, like a free Unix system, will not exist unless someone actually sits down and writes the kernel.

... is not an open-source replacement for the 9x kernel.
...at the moment. :ph34r:

And it never will be. That is beyond the scope of the project. Even if it were the goal of the project, it doesn't use clean-room reverse-engineering, so the code will always be suspect. If you see the code, you can't write it.

My projects just tries to stimulate the creation of missing parts.

It's an extreme shot in the dark. Your hunting for somebody who:

1. Knows how to write kernel code.

2. Wants to write a 9x-style kernel

3. Is willing to make it open-source

You're being optimistic, I'll grant you that.

As Linux demonstrates, the open source community has great potential: you "just" have to provide some open source tools, then someone on the other site of the planet does the rest.

Provided that they want to write it. To quote "Linux is not Windows":

In an odd way, FOSS is actually a very selfish development method: People only work on what they want to work on, when they want to work on it.

By and large, most people do not care if a modern 9x kernel exists, as they have moved on to other operating systems, such as XP/Vista, OS X, or Linux. The people who still use 9x operating systems probably also do not care. Look at the reasons many people still use 9x:

1. Compatibility. If Microsoft can't guarantee that future versions will be 100% compatible with 9x programs, how could an open-source project? Look at the truble Wine has had.

2. Installation. You won't believe how many people don't even know what a driver is. If they pop in and install a copy of {Insert Project Name Here} and their sound card doesn't work, they are going to be extremely unhappy.

3. Getting it. I moved off of Windows 9x shortly before I moved off dial-up (towards the end of 2006). Coming from that type of background, I would assume that the people who need a free 9x most, people who don't do it for the "sport" of getting it to work on new stuff or "sticking it to the man", are dial-up users. Many of them might not even have a CD burner. So you would need a a free ShipIt -like service. I don't think your user base is going to be large enough to pay for such a service. Even most Linux distos can't do that, which is why Ubuntu is so popular.

Who knows ? :rolleyes:

I have a pretty good hunch.

Share this post


Link to post
Share on other sites

I guess everyone is free to change his/her mind:

Anyway i have wasted even too mutch time in supporting this idea, so here you go...

I prefer to support/promote open source projects like ReactOS or (better) Haiku.

...bye !

Though I do understand the base reasons behind the idea, and partially agree with it, I cannot see any progress. :(

I mean, when this thread started:

Just a note: i'm not a programmer, so i can't do anything exept searching for open source components (here's my open source software list) and contacting their authors.

it was more than two years ago, if there was any real interest in this, someone would have taken the challenge, or patchworks could have well learned how to write a program :unsure:.

So, I am a pragmatist, but all this represents, in my opinion, some very good intentions :), but very few facts, just a way to spend some time exchanging ideas on Operating System, how they are and how they should be.

Believe me, I don't want to put anyone down :), but I really cannot see any actual results of threads like this or this other one:

http://www.msfn.org/board/UniATA-9x-ME-port-t114217.html

:blink:

exception made for some discussions, just for the sake of it :ph34r: .

jaclaz

Share this post


Link to post
Share on other sites

As I've already mentioned, I'd be willing to rewrite parts of 9x, but don't have the time to do that and the required reverse engineering combined.

I'd also be willing and eager to write a new OS from scratch, which would support clean 9x-like filesystem architecture(if not cleaner), linux-like driver support and stability, and compatibility with Win32 programs including NT-specific, provided I get support from at least one or two other developers, at least on the driver and/or MBR end. Having to do roughly 5 different systems to turn it into a viable OS on my own would, considering my available free time, take far too long to see anything half-usable, for me to just get started on it.

In other words, if you can recruit one or two other developers to help, preferably ones with experience in kernel/MBR development, I'd be willing to actively work on such a project.

Share this post


Link to post
Share on other sites

I don't know if this is of any interest, but couldn't the Nano98 tutorial from http://www.etek.chalmers.se/~e8gus/nano98/ provide some hints of how many files are needed for a minimal functional win9X OS?

IMAO, this way it could be possible to find out where to start working... :blushing:

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...