Hi,
I guess we should not be surprised that little has changed, the development
of mass computing has to be evolutionary not revolutionary. The slow
incremental updates to hardware and OSes have all been tentative, with a
view to backward compatibility. History has shown that most times there has
been a bold change, it has failed.
I am frequently sarcastic about MS, but I think they are big enough to take
it. I wouldn’t want their burdon of backwards compatibility every time they
release an OS or update it. I suppose this is why we heard talk of
revolutionary change with Vista, but it seems pretty much the same to me. I
suppose the shock change here is mostly the change not to give unfettered
access to any application and user to corrupt the system. I like this
revolution, but it has hurt in making a lot of things break, including our
methodology for development.
I only wanted to disagree that OS design is back in the 70’s. This was when
I did my degree and I learnt sensible stuff that has not even made it into
mass market OSes yet, so we have yet to catch up with the state of the
1970’s art. Of course, multiprocessing was the hot topic then, so mass
hardware is beginning to catch up. But even then we learned about degrees of
trust in the OS.
I am still amazed that Windows has only two levels of trust in the kernel,
i.e. none and absolute. If I could influence MS it would be to change this.
Let’s add degrees of trust to the kernel programming model. The OS has to
trust itself absolutely, and its core drivers. But 3rd party drivers should
be able to add kernel features with a lower level of trust, and be able to
fail without taking down the OS.
The user side has already started to develop some levels of trust,
especially with the Vista feature mentioned above, but it’s the kernel side
where most installations fall down. I don’t know if it is possible to have a
stable system unless every component is from MS. And even then it may not be
stable, but at least you know who is responsible to fix things!
Happy new year to all…
Mike
----- Original Message -----
From: xxxxx@hotmail.com
To: Windows System Software Devs Interest List
Sent: Wednesday, January 02, 2008 2:22 AM
Subject: RE:[ntdev] Are callbacks guaranteed to run consecutively?
I for myself do not believe that our machines today are that much better
from what they used to be 30 years ago. And the age tag on our OS’s
matches.
> The machines are bigger and faster, but the credit goes to the solid
state
guys and to the electronic engineers!
From purely conceptual point of view, I fully agree with you here - indeed,
as it has already been mentioned earlier on this thread, all OS concepts
that we use today seem to be originated in 60s-70, so that you are very
unlikely to invent something that is basically new and unheard of in
computer science. The thing is, advances in electronics just made it
possible for hardware and OS designers to bring the concepts that in
not-so-distant past could be implemented only on the mainframe to the world
of PCs and even more primitive devices. Let’s face it - when it comes to
computing power, a modern mobile phone beats early 70s mainframe hands
down…
However, it has nothing to do with our discussion of interrupt queuing. As
it follows from a discussion of splx() on early UNICes earlier on this
thread, OS software still had a chance to disable delivery of interrupts
below some certain priority, i.e. some logical equivalent of TPR was still
present on these hardware architectures. The only reason why it did not
exists on PC back then is because the state of micro-electronics just did
not allow it at the moment - otherwise, 386 would have undoubtedly provided
support for APIC, as well as for logical multiprocessing and 64-bit memory
addressing. This is why I say that the thing you propose is a step 30 years
back…
Anton Bassov
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer