Octocontrabass wrote:The last version of Windows that's based on DOS is Windows ME. It was released 16 years ago, and support ended 10 years ago. It's time to forget about DOS.
No, it isn't. You can update it by implementing the new algorithms and by porting new files in standard format that is readily usable. It can be updated, developed, and the knowledge of that action preserved and shared as OS Development. If you are expert in DOS and Windows 9x, why not use that extreme expertise to derive good applications and your own OS, if it will accelerate development efforts' results like no other environment, being it my original OS, the one I know the most and the easiest to learn from others and probably for the people who insist in using it to develop?
If I have MS-DOS/FreeDOS versions for most of the types of programs I normally use in Windows or Linux, why consider it dead, if it lets me simplify my source code, encourages me to develop, port and improve demos to use them formally, and if it gives me the chance to find entry points to use that code in my own OS?
We can port all sorts of applications to DOS. If I can play WAV and eventually MP3 files in MS-DOS/FreeDOS, if I can compress and extract files, if I can visualize images, if I can get to read text and later PDF files, if I can write a GUI system that looks exactly like Windows (as happened with some Seagate disk tools)...
It reflects everything about the PC at the level the simplest OS Developer could want, then Microsoft and its software is based on it too. Demo programmers from the 90's could easily become excellent OS developers from that background.
Don't look at systems without support such as Windows 98 SE, as abandoned and useless stuff, but as static milestones embedded in time. If we get the latest versions of drivers, browsers, programs, libraries and tools, we would end up learning about the WinAPI, about how to use the drivers in our own OS, about file formats, and we would still be able to use those programs in the current version of Windows. By learning everything about MS-DOS, we would end up learning about booting, VESA, about using USB devices (there are already open source drivers at least for UHCI, for keyboards, mice, storage, for DOS, with source...), about making tiny applications, about implementing a windowing system, about programming every single piece of hardware, about creating a console and a whole multiboot-compatible operating system.
If we talk about learning to develop an Operating System, DOS is a system such that it doesn't interfere in anything we want to do. Windows 9x gives us a convenient graphical environment from which we can develop programs that are still and will be always compatible with what is known as WinAPI. From Windows 9x, we can reach standard applications that will for sure reach Wine and Linux, and the newer Windows, if we keep them well written and simple, just like writing all the code to our OS.
There's FreeDOS too, with a lot of USB drivers, mice drivers, file system drivers. Why wouldn't I learn about it if I can extract all of the standard knowledge from there, while at the Windows XP or newer I only have to use tools somebody else did?
An operating system developer who used an 8088, a 386 and the newer PCs with MS-DOS as the first OS ever, knows that DOS alone contains practically everything with actual examples. Going to Windows XP or Windows 7 is going to a dead and austere desert environment.
Working in MS-DOS can allow us to create our own windowing systems, then port all the programs we use normally in Windows, in MS-DOS and FreeDOS (game emulators, games, file compressors, audio players, text readers, and everything you can program or port)...
Octocontrabass wrote:All versions of Windows since then have been based on Windows NT. Windows NT wasn't even originally written for x86 - it was ported from
Alpha.
And still uses all features that DOS includes, so it's a platform as poor as any other random OS if it wasn't for those ancestral levels.
Octocontrabass wrote:~ wrote:so it's no longer security but a practical prohibition to write low level software
Low-level software has a lot of power to do bad things, like erase your hard disk or steal your passwords or replicate by injecting itself into executable files. All of the security features you complain about are specifically designed to prevent things like that from happening.
If we talk about malware there's nothing that can save us from this risk. If we talk about concrete data and enterprises, there will always exist people with direct access to critical material and they can write viruses there which then can end up in the wild, which must be the normal case.
Modern Windows viruses won't run in Win9x or DOS, so it's indistinguishable from regular restrictions, so it's not important to think about security, which any enterprise can put in place properly with its own global infrastructure anyway.
Even if they use Win9x, they can implement security with redundancy and giving read access to most but write access only to people who need to develop a part. That part could be put in a Linux server, or in a custom system with enough security around it, meaning with that the prevention of binary exploits more than just artificial, badly understood stock security or simple user permissions.
Windows 9x is a thin shell that instead of being hacked and halted, could be used as a demo to load your own OS fully through an exploit, replacing the Win9x instance on the fly by your OS. And more formally, it would be worthwhile trying to use its drivers and those from DOS in our OS, specially those that are open source.
I don't know which one is the best Linux distribution in practice, but Windows 9x is becoming the ideal version for developing in an environment where you don't have absolutely anything implemented and still you have a set of functions that in the end give you access to simple and vital source code about hardware programming.
When people was told that using Win9x, at least some developers should have kept Win9x machines to keep their demo and hardware programming, and use it as the main development/hacking platform, instead of Windows XP and later, which at this point is absolutely secondary and replaceable
unless we specifically want to use programs and features that only exist there, like games targeting those Windows versions, or programs that are incompatible with other WinAPI implementations.
But for the rest of standard stuff, it's better to develop from "obsolete" systems and their programs, and use them as final and stable/static milestone points to learn from that environment.
______________________________
______________________________
______________________________
______________________________
It's very curious but if you move to radically separated versions of an Operating System, you get
immediately transported to a completely apart environment.
When I use old hardware with MS-DOS and Windows 9x, as well as FreeDOS and from there my own OS, I don't have much more to do than develop, but develop in a very satisfying and productive way, with a lot of information around me.
In Windows 98 SE, there are no applications that are made with the Windows XP and later philosophy that contain a lot of padding that just distracts me and dilates my development efforts (and apparently those of the whole World) to an unnecessarily long extent where I can no longer get high quality immediate results.
And the websites I visit are more specific to Win9x. That in turn takes me massively to find only web sites of that era, 90's and mid-2000's, and you must know all of the good information and learning that was taking place as long as Win9x was around most computers, including Geocities websites with key content.
So as you can see the environment that is accessed with Windows 9x, using it and searching for programming information for it and MS-DOS/FreeDOS, is completely different than that that from Windows XP.
Since Windows XP, things became more limited, not so much about thinking about developing and implementing the complexities of an Operating System, so I just return directly back to Win9x and MS-DOS, there I even have USB source code to study for mouse/keyboard/storage drivers, so why not?
The technical programming information and the actual source code. It all seems to be in MS-DOS/FreeDOS and Windows 98 SE/9x, no matter how new the system is.
Anything that is extremely new that isn't easy to find specifically for MS-DOS, can be simplified from the Linux/UNIX/open source world until it is fully ported there, be it new drivers or new applications... So DOS is just waiting and used academically since it just leaves you with the enabled hardware and nothing more.
MS-DOS/FreeDOS is like the face of a standard PC Assembly language programming, so it will always stay around and will always keep being updated with newer drivers. There will always be someone trying to create an OS that starts like DOS, as well as programming in Assembly under a DOS PC.
MS-DOS/FreeDOS is a disadvantage for monopolies and they apparently wished it really dead. There's no driver that cannot be programmed for it without the rest of Gigabytes of OS clutter. Any driver or program that is written for it is made of extremely tiny binary pieces of code that either are accompanied by source code or are trivially easy to disassembly in comparison to the drivers of other newer and unknown systems, so they stopped doing it instead of making for a optimally secure MS-DOS/Win9x platform that was stable but without having to add so much useless processing weight and extreme restrictions in the subsystems.
So all OSes are necessary, they are places/rooms/huge malls/huge study campuses that take you to different dimensions of thought and development environments with Internet content and websites.
New Windows versions are being developed far too fast as to become relevant and to devote unusual and interesting programming information, unlike Windows 9x which is being prepared since MS-DOS exists, along with the Standard PC Hardware, which is what ultimately makes it so important.