they're not directly based upon it, they're only 99.99% compatible with it. Sounds an awful lot like basing it upon them.srg wrote: Windows NT/2000/XP are not based on DOS.
srg
PS: why does winxp format disks with the format string "MSDOS5.0"?
they're not directly based upon it, they're only 99.99% compatible with it. Sounds an awful lot like basing it upon them.srg wrote: Windows NT/2000/XP are not based on DOS.
srg
I still retain my claim that the code in the ntvdm is partly or mostly DOS code.srg wrote: All DOS compatibility is with the NTVDM, which is AFAIK a v86 monitor. Internally, Windows NT/2000/XP have *nothing* to do with DOS.
srg
While I generally can't fault anyone for recommending more education, in this case I find it misplaced. The current systems are so bad that users are already forced too much about them - far more than they need to about, say, their cars - just to use them on the most basic level. 'Computer literacy' is often just a code phrase for 'forcing them to do it a certain way', and in practice is an excuse for rotten system design.Candy wrote: - Educate your users before allowing them to use the system. Even though it's very hard to push through, educating users (or at least allowing them to be educated without spending another load of cash) will increase the usability of your system, without people installing all sorts of weird software that only claims to protect you (consider the amount of people that install virus scanners, firewalls, privacy tools etc. only to think that they automatically are used and updated..).
I can't disagree with this part.- Do not publish your system unless you test it thoroughly. Disable compiling of programs using buggy functions (yes, you too posix/iso!) such as strcpy and strcat.
Type-safety, in the usual sense of static typing, is considerably overrated as a debugging tool, and often requires decidely unsafe workarounds to accomplish certain goals. I would consider languages like Scheme, Smalltalk, or Python - all of which are dynamically typed, type being a property of the actual objects rather than the variables they are bound to - to be more secure than either VB or Java, for example.Encourage use of a type-safe language (Java, VB).
If not possible, encourage use of a language that allows a programmer to shield himself once after which s/he is permanently shielded (C++).
The obvious counter-argument to that is that old designs are stable ones, and their strengths and weaknesses are well-known. A truly new OS design would have to be tested and analyzed from scratch. The weaknesses of this argument should be obvious, however: while the designs are old, the major implementations are all relatively young, and are undergoing constant modification.- Design your system according to a new design. Both the old traditional designs are provably bad (Windows because of the API, Linux because it still supports the same flaws that are in the stdlib for over 30 years now). Consider the implications any of your choices might have on any other function or use. Do not consider your OS designed when you've thought about it for 3 weeks or something similar. Your design isn't tested until you've tested your implementation and found it to be good.
Again, I have to agree wholeheartedly with this.- Design your OS on a good basis. Do not use a filesystem such as FAT or an operating base of BIOS functions, if only because they are very buggy, and you cannot be sure that it actually works correctly. Use only code that you can debug. Things you cannot debug can only cause you trouble.
Actually, the pattern of a market dominated by one system, with a handful of less common ones, is one which reccurs in the computer field on all levels (i.e., almost all word-processing is with MS Word; nearly all C programming is done using either VC++ or gcc), and seems to be endemic to the market. It even appears among open-source users (how much of a market share do NetBSD and SkyOS have?). As ESR and others have said, market domination by Microsoft (and before them, IBM) is a symptom of the problem, not the problem itself.- You do want your OS to be widespread and available, but not as the "main" OS. Just keep normal competition levels (as soon as they're restored in this market segment) so all OSes get an equal share of users.
Can only agree with that. Still, if users want to use a new system they're going to have to be told about the way to use it without being so incredibly unsafe. They're now used to windows, so there's a good chance they'll expect delete (and rm) to use a trash can. Ouch.Schol-R-LEA wrote: While I generally can't fault anyone for recommending more education, in this case I find it misplaced. The current systems are so bad that users are already forced too much about them - far more than they need to about, say, their cars - just to use them on the most basic level. 'Computer literacy' is often just a code phrase for 'forcing them to do it a certain way', and in practice is an excuse for rotten system design.
I see what your point is. With the type-safe I was kind of referring to buffer overflows because array sizes are not enforced, overflows in other variables where java & vb break their neck over the overflow etc. They might make the language slower but they also make it more stable.Type-safety, in the usual sense of static typing, is considerably overrated as a debugging tool, and often requires decidely unsafe workarounds to accomplish certain goals. I would consider languages like Scheme, Smalltalk, or Python - all of which are dynamically typed, type being a property of the actual objects rather than the variables they are bound to - to be more secure than either VB or Java, for example.
Note that Smalltalk is type-safe in the sense of only allowing operations on objects that are specified in the class definition, even for polymorphic objects. Methods are bound to the objects at runtime, and only methods which are part of the object's actual class will run.
I'm not saying you should forget it, but the idea is that it's already a bad design. Improving on a bad design is not going to make it a good design. The thing I was trying to convey is that you should not use those things verbatim, but use them heavily modified or if you can/dare, take what's wrong in there and think of structural improvements in the way of thinking.The obvious counter-argument to that is that old designs are stable ones, and their strengths and weaknesses are well-known. A truly new OS design would have to be tested and analyzed from scratch. The weaknesses of this argument should be obvious, however: while the designs are old, the major implementations are all relatively young, and are undergoing constant modification.
The market dominance is only because the applications are not as compatible as they should be. Someone using one application cannot switch to another without:Actually, the pattern of a market dominated by one system, with a handful of less common ones, is one which reccurs in the computer field on all levels (i.e., almost all word-processing is with MS Word; nearly all C programming is done using either VC++ or gcc), and seems to be endemic to the market. It even appears among open-source users (how much of a market share do NetBSD and SkyOS have?). As ESR and others have said, market domination by Microsoft (and before them, IBM) is a symptom of the problem, not the problem itself.