Going Deep Inside Vista's Kernel Architecture
bariswheel wrote to mention an episode of 'Going Deep' on Channel 9 which takes a hard look at the architecture of Windows Vista. From the post: "Rob Short is the corporate vice president in charge of the team that architects the foundation of Windows Vista. This is a fascinating conversation with the kernel architecture team. It's our Christmas present to all of the Niners out there who've stuck with us day after day. This is a very candid interview." Topics discussed include the history of the Windows Registry, and the security/reliability of Microsoft's upcoming operating system.
OK, am I the only one who has grown weary of the "oh well, another month, another insain exploit" state of mind in which windows users and admins seem to be willing to accept? Why do people just accept this, I understand a few bugs, and maybe a SINGLE large scale outbreak in something as commonplace as Windows, but this crap is just outright crazy now-a-days.
Businesses would never accept this kind of qualty from, for example, partners, suppliers, and so on, so why do they "just take" this seeminly QC-lacking products from redmond with glee?
(I'm a .NET developer .... hey, don't shoot me!)
.conf files (or, on my home platform of choice -- OS X -- .plist) files. Although I appreciate .conf files' readability, sometimes I want to store prefs which are a little more complex. My preferred method is to create 'Prefs' classes in my apps. Depending on requirements, I'll make a UserPrefs class and optionally a SystemPrefs class (for prefs that apply to all users). These are just a bunch of properties to hold each setting. It's nice from a coding point of view because you can put sensible defaults into the prefs class(es)' constructor in case the prefs haven't been saved previously. I then just serialise and de-serialise these classes into and out of an XML file. These get saved into appropriate filesystem locations.
:)
I'm a huge fan of
The resultant XML isn't as tidy as that which OS X's Cocoa frameworks produce, but it's still a gazillion times more manageable and flexible than registry entries. I'd like to put together a generic viewer/editor for these xml files (much like OS X's 'Property List Editor'), although they're still plain-text tweakable if you're paying attention.
The registry is an idea whose time has passed. I'd like to see a future MS operating system implement a standardised xml file layout for everything the registry holds, using as many individual files as are appropriate. Turn the legacy Registry API calls into wrappers for the file-based system.
That'd make things neater, if done right!
What's the frequency, Kenneth?
The answer to one question will determine whther Vista is really an improvement in security for Windows.
Is the current test version of Vista susceptible to the .wmf exploit that is currently making the rounds on the internet?
For example one of the interviews with the vista audio engine guys they talk about how Mac OSX has been a long way in front and how they are inspired by great compeditors.
They have an OS X box on the wall
And if you look at the MS Office user interface work, you can't claim that isn't innovative work
Finally if you actually watched the linked video you'd see they actually talk in depth about the flaws in the windows architecture and how they are trying to move forwards.
So they're more or less admitting "essentially ... windows is one big binary..." Woah! Low level libraries and frameworks depending on stuff that's higher level, "in the past we've relied on... lockstep... development process..." and "we're now looking at dependencies in the 6 digits range..." Man, these guys are giving one hell of a bashing to the Microsoft codebase.
:-)
One guy starts talking about modularity and inserting features and plugins into essential services... and I thought objC. But before that another one gets all hot (I chuckled, this guy is a True Nerd, he really likes fiddling with code... congrats) about semicoop multitask where an app renices itself to 100% resource hog tier for a limited time slot (nice try, but what when all the silly apps do the same trick?), but before that there's a talk about usermode ukernel services... I thought about when I used to renice X11R6 to get better performance (when the graph card module was part of the X process).
I think Bill needs to pull out of tech and sell Microsoft to Apple. These techs are good guys, all they need is a solid process and some decent vision.
Jobs, are you reading this? Watch this video, it'll make you feel good!
e
Mi domando chi à il mandante di tutte le cazzate che faccio - Altan
The OS/2 heritage is far more complicated. There are similarities, but the kernel is quite unlike what you found in OS/2 2.x, while NT at some point could have been OS/2 3.x. It's almost as dissimilar to OS/2 as it is to Win 3.1. It was a new kernel that was supposed to be able to run both Win 3.1 and OS/2 user mode apps, so the kernel provides services suitable for that purpose. The OS/2 support was of course never fully developed, but HPFS was supported until a few years ago and NTFS also shares some ideas with it, while not in the actual disk layout.
If your DX(2?)/66 didn't perform well with NT, I would think about memory rather than CPU. Just the fact that NT is all-UNICODE in the kernel, means that every single string is longer than in, for example. OS/2 and 9x. If all you have is 4 or 8 MB, that alone can be quite significant (especially when you're running Win16 and ANSI Win32 apps and every string needs copying and conversion before really being used in the APIs).
First of all, the video is unviewable even with Microsoft Media Player on Mac, but you can find a whitepaper describing the kernel changes here. Keep in mind that all of this is basically Microsoft advertising for developers; it's not taking a "hard look" at the kernel architecture, it's the kernel developers portraying their work in the best light.
What's interesting is how little innovation there actually is. They seem to be struggling with the complexity of the system and its dependencies (5500 components)--similar to the problems Linus is having, but multiplied many times over by greater complexity of the NT system architecture. Most of their actual improvements seem to be cleanups and performance enhancements.
My impression is that the Vista kernel and system libraries are still playing catch-up with Linux in terms of modularity, performance, and functionality.
So why not do something intelligent and implement it as a SQLite database?
What's less than half a meg of C that already works on Windows between friends? It's not like the existing registry files are exactly svelte.
Ah, yes: good ideas can be discerned by the Redmond refusal to implement them.
Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
Unfortunately, you cannot manipulate the data using standard Windows tools as though it were written as a set of files under NTFS. For instance, it would be really nice if I could search for all registry entries that was created/modified since I installed program X. The metadata exists, but is not exposed by regedit. And if something corrupts an entry in the file system, I think the chance of the entire hive becoming inaccessible is less than if the registry is in 1 file. Maybe I trust NTFS more than the registry "file system." Or are they done using same underlying calls?
Where I used to work we didn't do anything in the registry if we could help it - we ended up writing a few standard libraries to do similar things. If it's program related data, dump it on the H drive (read only) with the program files, if it's user data, dump it on their Y drive. Roaming profiles works fine with that and it doesn't require any stupid registry stuff that ends up getting copied up and down the whole damn system. Like the time someone was running a newer version of notes, which overwrote the old notes data which when a new person logged into the machine they inherited and within a few days no-one could check their mail. Good thing this was only in the test environment. Or the time I found out why it took me 20 minutes to log on every single damn day because it was copying my ENTIRE REGISTRY FILE DOWN plus all my 'personal files' and some program had filled it with crap, which I have a feeling was MSDN doing a full install in 'my docs'. Removed that stuff and it logged on in seconds afterwards :)
:P
But I digress. I hate the registry, it's a terrible idea if you need to copy a system out to reinstall XP or something, then you have to reinstall every single damn program back in. But if the registry didn't exist everyone could simply have two HDs, one for windows and one for all their applications and it wouldn't care about it if you reinstalled. This would also mean if (or rather, when) your machine gets screwed up (viruses / trojans / other hacks / simply dies because it's got too much shit on it in the registry) you can reinstall and have everything still the way you want. Window size, everything like that could be ini files and not registry and wouldn't be wiped.
Going back to this company, if we had the ini file wrong we simply updated it and next time people ran, easy. Or if it was on their Y drive we ammended the batch file that ran almost every program (which while sounding stupid was very usefull) to delete or fix the problem then run the program. All remotely done, no need to get every user to run stuff on startup to fix registry issues, then find out one guy didn't do it and everyone else that logged in gained all the settings (as mentioned above).
Is www.bantheregistry.org available? I think I might want to start my own charity