Building a More Intelligent Windows


Posted by JimAll on Wednesday, January 03, 2007 5:34 PM 14 Comments

Many people share the dream that the various electronic devices they use should do what they want without them having to ask.  In our non-computer lives, we have come to expect basic things to just happen.  We expect machines to help us by doing more things automatically, and more of the basics as we want them to happen, without asking.  When I put my car in drive, the doors automatically lock -- when I put it back in park, the doors unlock.  Instead of running for a pre-set period of time, most modern clothes dryers have a mode where they can sense when your clothes are dry and turn off once the job is done.

Many years ago, I was really struck by the programming language InterLisp's DWIM function.  It meant "Do What I Mean."  It was a quick and handy way for programmers to ask the computer to fix a program so that it did what the programmer had meant, but not actually written.  It was magic for me -- the computer knew what I wanted and it fixed it for me!

For Windows Vista, we set off with the goal of creating a more intelligent experience for the user.  Our vision was to use intelligence about the user and the environment to deliver a better experience for the user.  And while there is so much more to be done in the future, Windows Vista does some incredibly innovative things that other software doesn't.

Here are some examples.

One of the key enhancements to the Windows Vista memory management system is a new feature called SuperFetch.  I discussed this briefly in my blog post about ReadyBoost.  SuperFetch watches how you work and then uses the RAM on your system in a new way that optimizes the system's performance to the way you work.  For example, in contrast to traditional memory management systems that today use an approach to prioritizing how RAM is allocated to the various programs and services running on the system, SuperFetch can differentiate memory being used for interactive (high-priority) tasks from memory used for background (low-priority) tasks.  When the user isn't interacting with the system, background tasks are allowed to run, but when they complete, SuperFetch repopulates RAM with the content that supports the interactive applications.  SuperFetch is also smart enough to know which applications are used most often (over a long period of time) and pre-loads those applications into memory.

We also saw an opportunity to improve the user experience with the network.  At the lowest level, the Next Generation TCP/IP stack in Windows Vista senses and learns about the network and uses this information to automatically tune settings.  For example, just as most modern cars have automatic anti-knock sensors that eliminate the engine ping (pun sort of intended) that can come as a result of low-octane gas, Windows Vista's TCP/IP stack has new auto-tuning algorithms that automatically and dynamically adapt the TCP receive windows to the properties of the network path between the endpoints.  This allows the stack to fully utilize the bandwidth between two endpoints (especially in high-delay conditions) and dynamically adapt to changing bandwidth and delay characteristics.  We also have improved the dead gateway detection algorithms and the round-trip time estimators to further improve the network experience for the user -- automatically.

The networking code in Windows Vista also includes Network Location Awareness (NLA) functionality that intelligently "fingerprints" a network.  NLA uses this "fingerprint" to remember network-specific settings and dynamically apply them whenever the system connects to that network.  For example, the firewall in Windows will automatically change its settings when the system connects to a new network and restore them to your preferred settings for each known network when you connect to it.

One of my favorite examples of intelligence in action is the handwriting- and speech-recognition capabilities built into Windows Vista.  People don’t like to spend a lot of time teaching their computer how they speak or write.  So, the real opportunity is to provide better prediction of what you are saying or writing by understanding the vocabulary that you tend to use.  And that's just what we did with Windows Vista.  Since we already have an index of the content on your PC, we simply use this corpus of terminology to help the system disambiguate your input and deliver a more accurate result.  (In case you are worried about privacy, there is no need:  all this happens only on your machine, with no communication to any other computer.)  This means that in addition to a common dictionary, the system can automatically learn the vocabulary that you use and then assign a higher weight to the words you use most often.  The result is a much higher accuracy rate even if you work in a field with a specialized lexicon.  So, if you work in a specialized area, there are many words that wouldn't be in a common dictionary initially, but because they are in your everyday documents and emails, the system will learn them automatically and understand them more easily.  I should also note that personalization also helps with "in-dictionary" words in addition to "out-of-dictionary" words by raising the priority of the "in-dictionary" words you do use and thereby de-prioritizing random words such as "yon" (often confused with "you" by our previous handwriting-recognition software) that most people don't regularly use.

The result?  During the beta testing of Windows Vista, someone on the team received a note from a quadriplegic saying that Windows Vista was going to dramatically improvement his life because of its huge improvements in speech recognition.  By the way ... the email was, of course, written using Windows Vista's speech recognition.

Finally, in a previous blog entry I wrote about the Windows Recovery Environment.  While the focus of my previous comments was on the ability to get a Windows Vista PC up and running, it's important to note the way that the Recovery Environment works.  It essentially uses a heuristic-based diagnosis approach in the same way that one of our support engineers might work on the system if s/he had a debugger and direct access to it.

You might see all of these as just individually clever ideas, but the reality is that integrated intelligence (learning about you and doing what you mean) like what we are doing with all the examples above is the future for helpful devices for society.

jim

 

Posted by Randy Scholes


i got a question about the winRE (Windows Recovery Environment).. I'm in training right now for doing windows vista tech support.. An one of the things we have gone over just the other day was about the bcdedit and bootrec /rebuildbcd

An i've noticed something that should have been added into this... It should also have picked up other versions of windows that was installed on a dual boot... Where it does not do this, so i've tried to manually edited the bcd to add back in windows xp into the boot manager and it failed to do so....

All of this was done with RC2 build 5744.. Noone else in my training class could get it to work... not even using bootsect /nt60 all or bootsect /nt50 all..

So maybe this is something you guys could take a look at...

oh btw.. We don't have the RTM builds at work to see if this was fixed in the final release or not..

other then that i agree with everything else in this artical..

 

Posted by The MAZZTer


Snake:  You can use the command line bcdedit.exe tool which can be found on the Vista DVD (I copied it to my HD).

However I prefer the very nice third party tool EasyBCD (see my link).

 

Posted by mrmckeb


I would love to see a PC 2.0 standard - where Microsoft set all the rules and the OEMs followed (and gave input).

If only OEMs listened to you guys we'd be so far ahead of our current situation...

 

Posted by Randy Scholes


The MAZZTer

Sure there's the "Easybcd" and there's also "Vistaboot Pro".

At work we're not allowed to use 3rd party software..

"You can use the command line bcdedit.exe tool which can be found on the Vista DVD" <--- bcdedit is already installed with the OS, you just need to run cmd as admin and just type in bcdedit /? to find out all of the settings that you can use.

I was talking about the command prompt within winRE (Windows Recovery Environment).

 

Posted by paul


I don't like for my PC to get ahead of me, because inspiration and imagination are not his strong points. Everybody hates the way some programs jump-up at you just to let you know their there, I want to decide what programs run in process, RAM is a precious commodity and I want the maximum to be available for the tasks I'm about to preform and only I know what's coming next and sometimes I surprise myself.

 

Posted by Randy Scholes


paul i don't see that happening anytime soon, unless you've program that kinda OS yourself.. Other then that we are way way off from that becoming real..

 

Posted by Gil Bates


"We expect machines to help us by doing more things automatically, and more of the basics as we want them to happen, without asking."

Which is why I won't be using Vista immediately: Lack of any "universal" support for such basic items as a flatbed scanner; slower gaming (aka, the ability to correctly interpret when/if maximum performance is desired), a bcdedit utility you need to go to school to use (what, boot.ini wasn't arcane enough for you?), the overwhelming desire to expel the "trusted installer" and take control of everything--using task manager to disable things (like superfetch)...um, did I say I liked Vista? It's so cute.

 

Posted by sakara


Hi everyone... i know that this post is not the appropriate one for my question but... i've signed for customer preview program for the beta2 version of windows vista, i've downloaded it, burned and i'm enjoing with... but i've a problem now i've been away from the net for long time and the link to download and try the rc1 version is invalid now... how can i download it? no p2p...

Tanx

Sakara

 

Posted by Randy Scholes


Gil Bates you don't need to go to school to learn how to use bcdedit.. Since using bcdedit /? is very very helpful and everything is written out in plan english that anyone can understand..

the boot.ini isn't as good as the boot manager simply because there is alot of tools that come with windows vista to get your system booted, for such things as that reboot loop which alot of people had problems with when they had nvidia drivers installed then upgraded to xp sp1.. Now with the new boot manager and the winRE it is now alot easier to fix them boot problems...

An you don't need the task manager to disable alot of things now.. Just go into msconfig and click on the tools tab, there you got alot of options to enable or disable things such as the UAC..

An superfetch is kick ass.. Just click on the windows orb and type in the program you want to run and it'll show up in the start menu.. Which i find is alot easier then going through each the menus to find what your looking for or even going through the control panel...

So without superfetch it'll be slow as hell..

An for gaming.. Every new OS that comes out is always slow for gaming and as time goes on and new updates that come out and people buying and upgrading there computer systems, gaming and the performance will get alot better..

 

Posted by Randy Scholes


Sakara

the latest one was RC2.. But since the beta testing is done, there isn't really a need for microsoft to release these builds to the public.

 

Posted by UbiquitousGeek


Paul is right, I don't want my computer to think for me.  I just want it to do what I ask, not try to figure it out all of the time.  It's like I used to tell my mother growing up, "I don't read minds, if you want something done, ask me."  Did this all start with the animated paper clip in Office?  You can't tell me that this approach doesn't tax Vista's system resources.  S-I-M-P-L-I-C-I-T-Y  Can't you guys figure this out?  They say Windows is bloated, but I say it's flat out obese.  About the quadriplegic...  Are you sure that's what he said or is that the way Vista's speech recognition interpreted it?  "Windows Vista was going to dramatically improvement his life..."  Let me guess, you wrote this blog using it, as well.  Still can't wait to get that Mac, eh?

 

Posted by Michael_Moor


Thanks for post.

--------

http://www.dl4all.com

 

Posted by tbcpp


All this sounds great! As long as it works. But what about customization? For instance, what if all the spiffy networking stuff is monitoring my network traffic and optimizing accordingly. So let's say I have a bittorrent seeding several 600MB files of open source software. 23 hours of the day I want it to run full blast since I'm watching a movie, at work, or sleeping. However, 1-2 hours of the day I'm playing an online game. At that point I'd like windows to be able to throttle back the torrent to basically nothing, or better yet, give priority to the game. XP doesn't do that, and I'm not convinced vista will either.

Second guessing the user is fine as long as you allow the user to override it. If I have a system that is being used for a file server, I want 100% of my extra ram being used as a file cache, not for loading the applications I use for 1-2% of the day.

This is the biggest issue I have with Windows, and Mac OSX, is that you can't customize it enough. The Unix/Linux world has some things right (and no OSX doesn't count here, because they only are based on Unix, I'm talking full X11), 100% customization.

So give us security, and customization, and I'll be happy. All the other features are nice, but they don't allow power users the power to be users. Instead it makes them feel like their being used by the computer instead of using it.

 

Posted by Frogz


Voici une id&#xE9;e re&#xE7;ue sur Windows Vista: Windows Vista consomme toute la m&#xE9;moire de mon

Anonymous comments are disabled
© Copyright 2007 Microsoft Corporation. All rights reserved.