Page 2 of 2

Re: Windows 98/9x Driver Development

Posted: Fri Jul 01, 2016 2:57 pm
by Kevin
~ wrote: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)...
The point is: I can do all of that without DOS, and easier than with it. While DOS may have been appropriate at the time (and many would even say otherwise), quite frankly, many of us have written OSes from scratch that are way better than DOS. There's nothing to be gained in using a 30 years old OS that was made for Real Mode.

Re: Windows 98/9x Driver Development

Posted: Fri Jul 01, 2016 3:01 pm
by Octocontrabass
~ wrote: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,
I am an expert in DOS and Windows 9x, and I can tell you without a doubt that DOS is utterly worthless as a foundation for a good operating system. And what does application development have to do with OS development?

Re: Windows 98/9x Driver Development

Posted: Fri Jul 01, 2016 3:14 pm
by ~
This is the crudest common people has, to keep a concrete and easy enough environment to understand what OS Development and computer science contains as a whole. It will allow them to keep a solid environment and what it is about. If you send people around to learn about advanced OS stuff, they won't have a good enough background. They will need at least DOS to reprogram the most modern hardware and pack it as formal demos with source code. Even to understand Linux, MS-DOS is the actual lowest limit acceptable to scale their knowledge. The rest of operating system versions are actually designed to leave totally out the idea of developing so complex levels, even their documentation is of degraded quality for an OS developer.

I can program much more easily if I start with MS-DOS and Win9x versions of programs, even multimedia players and image viewers, then booting themselves as stand-alone boot code with user interface eventually as OS tests, and port them in all directions as far as HTML5 and the web, using OS Development techniques. It's a circular situation where what we now call Operating System Development Level, was the quality level that was present and that was actually used for all available programs, so it shouldn't be further displaced, hid, and degraded by assuming that DOS isn't actually the crudest level for common people to be able to mentally grasp the rest of complexity ahead.


This is how PC people has always created their home made programs, and apparently the standardization and compatibility level of this way of doing things is the best and at the same time the simplest. It's like going back to the 80's, 90's and mid-2000's but now also with newer algorithms and file formats to use in such machines, all to just learn, have fun and keep PC-grade software and standardization, which is the richest commonly and easily available around.

Using MS-DOS/Win9x, going to FreeDOS and extending from there, just induces to stay at this level of ease, creativity and productivity.

Kevin wrote:
~ wrote: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)...
For me "Better" is defined by a greater ease to learn by using the resources of that OS and platform. MS-DOS/FreDOS and Win9x build the environment and static paths that also offer me absolutely everything I want to know about hardware and software.

If there is another system that also teaches me 100% of its programming tricks, without discussing something in full detail and that is as easy to understand and learn as a set of demos with tutorial text files, then I will see it equally well and will help me equally well. Where is that in such clear student-level and technical detail as raw PCs running DOS-like software with sources?

I know that it's very difficult to offer so much practical education without having as many demos, tutorials and code written for it as systems that are older than it and that have had millions of people contributing material to study and use experience and knowledge to talk about.


The point is: I can do all of that without DOS, and easier than with it. While DOS may have been appropriate at the time (and many would even say otherwise), quite frankly, many of us have written OSes from scratch that are way better than DOS. There's nothing to be gained in using a 30 years old OS that was made for Real Mode.
The x86 CPU still works in 16-bit Real Mode for some reason. A part of that big reason so as to not break the original x86 architecture could be all that I'm pointing out (basically not lose the whole original code base of the PC world, it doesn't matter if it's 16-bit, it can be ported and it is always done so).

Just like you, in that same way, I can achieve the level of development and mental concentration for an OS by studying MS-DOS/FreeDOS and Win9x along with all of its demos, open source programs, and drivers (up to USB drivers with source code for DOS).

I haven't written a full console and memory/driver/tasking systems yet so I cannot get past of it, but in the meantime I can learn from DOS and all the advanced details I can until I write my own full OS. I can create the lowest level engine of my OS by reimplementing things like the DPMI interface on my own, and from there any other layer that is public and defined enough as to provide me full source code examples, but I need to study the things that I use the most. It doen't matter how I implement that lowest level of my OS because, being the internal engine of the application, I can program it whatever way I want, and if I want to implement DPMI along another APIs to implement memory management and other tasks like those, it won't affect the structure of the outer APIs made as wrappers for compatibility with the rest of existing major systems. So the internal system can look like DOS and the outer system can too, as well as looking like other OSes, but there is more knowledge and better source code now.

It can be found in DOS/Win9x, and for me it's the easiest way in the whole world to reach any other OS, but this environment has too much to ignore it and is too easy, and still reaches current Windows and Wine.

Re: Windows 98/9x Driver Development

Posted: Fri Jul 01, 2016 3:36 pm
by iansjack
~ wrote: NT systems also have a DOS console, can run DOS programs, use BAT files a lot, use the same file system conventions and file systems as DOS.
NT systems do not have a DOS console, they have a command console. It is backwardly compatible with DOS programs. This no more makes it DOS-based than, say, Wine makes Linux Windows-based. And, it may come as news to you, NT versions of Windows use the NTFS file system by preference (and lose a lot if they don't). This is not "the same file system conventions and file systems as DOS". At best it uses a similar concept of directory trees; but so do many operating systems. Linux follows similar concepts and also uses batch files a lot (although it calls them shell scripts); Linux is not based on MS-DOS.

Really, you display such a fundamental lack of understanding of the architectural differences between MS-DOS, early versions of Windows, and those versions of Windows based on the NT kernel that there is little point in continuing the discussion.

Re: Windows 98/9x Driver Development

Posted: Fri Jul 01, 2016 3:53 pm
by ~
I started to use Windows XP because I wanted more stability, just to improve the performance of an Apache server and eMule downloads. It blocked the ease of hardware access I needed to learn to program it and to implement the hardware programming standardization ideas I had since then.
I started to use Windows 7 because I wanted the newest programs using 6 Gigabytes of RAM.
None of those reasons help me to get more knowledge and educate me more.

Up to that point, before all that, I was just fine with all my hardware and software, like an excellent LifeView TV card, USB devices that weren't incredibly huge, and running programs and developing them, even a server, with usual system crashes, but at least the environment was the best to learn, as if actually OS Development was expanding and everyone in the world was trying to create their own systems and valuable code snippets from scratch since using MS-DOS. So in a few words, it was better. Current hardware and software could still be make to run there.

I started to use MS-DOS/FreeDOS and Windows 98 SE again since last month (with KernelEx, DLLs from XP and its era, the newest possible frameworks and redistributables, USB storage drivers, NTFS drivers, Firefox 10 or 11 and still trying later ones to find out how compatible it is, then trying to make Firefox compilable in Windows 98). I reinstalled it and got an old laptop with an Intel Ethernet card, a PCMCIA wireless card and a Sound Blaster clone, so I'm now using it purely for development, and I stay the whole day and the whole time programming and studying good stuff, and increasing currently. I also listen music using a Sound Blaster demo from PhatCode. I use Mono 8-bit WAV files but at least I will learn about how to create a WAV stream when sending it to a driver and to the device.

That's the type of reasons that I need to use an OS. If it won't make me a better person, if it will actually give me much less technical knowledge and full examples than even DOS, and if it won't improve the use of my time, why use it?

Apart for the obligatory office and gaming tasks (obligatory for closed source programs/game titles, made only for the latest system)...



I hadn't used anything else than Windows XP/7 and a tiny bit of Linux since an AMD Athlon 3000+. The last 2 years only 64-bit systems, so I got far too restricted without being able to run 16-bit code directly on my hardware, so the 64-bit system was what sent me to the environment where I can do all I want.
iansjack wrote:
~ wrote: NT systems also have a DOS console, can run DOS programs, use BAT files a lot, use the same file system conventions and file systems as DOS.
NT systems do not have a DOS console, they have a command console. It is backwardly compatible with DOS programs. This no more makes it DOS-based than, say, Wine makes Linux Windows-based.
The important thing is that they allow a big degree of hardware access up to Windows XP. If you avoid installing any drivers for a Windows machine in general, and even more if you mark those devices as "Disabled", you are leaving the resources available to use them with DOS demo programs. If we talk about 64-bit systems, surprisingly they still don't have anything that will cause death if not used, so by the time those systems really become vital because they will be full of interesting learning resources and code, we will have also ported the DOS code to those systems, probably always run through a layer that allows loading raw binaries for any hardware/software task without worrying of intermediate system layers.


iansjack wrote:
~ wrote:And, it may come as news to you, NT versions of Windows use the NTFS file system by preference (and lose a lot if they don't). This is not "the same file system conventions and file systems as DOS". At best it uses a similar concept of directory trees; but so do many operating systems. Linux follows similar concepts and also uses batch files a lot (although it calls them shell scripts); Linux is not based on MS-DOS.
There are drivers for all Microsoft filesystems in DOS and Windows 9x, even if they are limited, but at least they can be developed, again more OS Development tasks that are valid and that can be made portable to other systems if written with the greatest care.

iansjack wrote:
~ wrote:Really, you display such a fundamental lack of understanding of the architectural differences between MS-DOS, early versions of Windows, and those versions of Windows based on the NT kernel that there is little point in continuing the discussion.
In the end, the same devices and file systems are offered. Also the same programming languages.

I'm just saying that you should look at me as somebody who needs to use the programming resources found in the MS-DOS/FreeDOS and Win9x/Windows 98 SE environments, from binaries, code and Internet websites from that era. I need to use those resources to learn with the greatest ease and completeness. I already proved it to myself after using different systems during around 12 years.

I'm just saying that I can get to learn and know as much as someone using Linux/UNIX or other systems, but I know that I'll do so the easiest from the combination of MS-DOS/FreeDOS and Win9x/Windows 98 SE environments.

I know that it's still the easiest and richest environment to learn specifically about the PC and everything found in it. It already contains everything computing has to offer so it's just OK. I know it can allow to gain knowledge about hardware programming (USB, SATA, virtual memory), software and algorithms (APIs, file formats, compression) and operating systems in general (multitasking, loading drivers and modules, running binaries with a format other than binary), as much as a person that uses only UNIX systems to do so.

If you need to use another operating system for any task, development or not, just use it. But in my case this is the system environment that gives me more knowledge than XP or 7, so I just use it. Windows 7 will probably not survive enough as to see tutorials or code that was created specifically under and thanks to it, so I just keep using the operating system and programs that contain the most of information, and I can tell you that MS-DOS/FreeDOS/Win9x contains most of it if you originally ever came from there.

It's the same OS Development in the end with portable code as a result.