I decided to finally move the blog over to wordpress. When I originally created my blog I decided to write my own publishing software due to some requirements I had at the time (and the options out there). Over time my requirements have changed and in an effort of simplicity I decided that Wordpress certainly can do everything I need. With the addition of RSS support it should be easier for anyone who wants to follow my infrequent posts to not have to check the site for updates.
It has been a very long time since I have posted to my blog, partly due to just having a large quantity of other things I an involved in. It seems odd my first blog entry would be not really about me, but rather an operating system, but here it is. I don’t plan to cover the more main-stream covered improvements to Vista like Aero, or Windows Media Player or Internet Explorer 7. In addition keep in mind that while some of these features may seem less then necessary for Vista as a client, the kernel itself is a subset of the kernel that will be going into Longhorn Server.
I have been running Windows Vista for awhile now, my laptop hard drive died around Thanksgiving and so afterwards I decided I would upgrade it to Vista. I figure with any major Microsoft operating system, it is only a matter of time until everyone is running Vista so might as well get on the bandwagon now. Along with upgrading to Vista I also plunged to Office 07 but that’s another story. My laptop is by no means a beast currently (infact it just passed the 3 year mark), it is a 1.6 Pentium M with no real graphics card and original 512 megabytes of ram. Now this clearly isn’t an optimal Vista machine, but after upgrading the ram to 768 megabytes it actually ran somewhat smoothly.
Anyone who installs vista will find the install to be a lot quicker and with a lot fewer questions, which is certainly nice. In addition vista doesn’t require any product key to be entered upon install, just within 30 days. I have now been using vista for about a month now, and as I frequently rely on my laptop have been using it heavily. There have been a lot of major advancements in Vista, it isn’t just another Win2k->WinXP upgrade, and it wasn’t until I saw an hour TechNet video on the kernel improvements that I fully realized this (the presentation is given by one of the Co-Founders of Sysinternals).
Resource priorities have greatly expanded, far beyond your old cpu priorities. What exactly do I mean by resource priorities? Well all systems have limited resources, primarily cpu, memory, and disk I/O, that frequently can be highly contended for. When they are contended for bad things can happen, programs can freeze, media can skip, users get annoyed, and techs get phone calls. Most major operating systems have had process priorities for awhile now, however process priorities really just converted over to CPU priorities. Vista takes this to a completely new level by allowing for priorities for memory and disk I/O too. That means that programs can now have specific priorities for each of these resources, and no longer will everything be equal. This will allow those ‘background processes’ like indexers to be a lot more true to their name, by not causing I/O bottle necks or owning your memory. In addition obviously a good boost for critical processes too so they can ensure they run smoothly. Vista also allows more than simply a priority to be assigned, but rather for a minimum bandwidth guarantee to be placed. This is also a very unique improvement, and works in a very interesting way. What it means is that a program can say I need to be able to read off the disk at a rate of 800 kb/sec at all times to maintain my quality of service. Vista looks at what it has available, and then comes back and if it can guarantee that it tells the program how many outstanding IO requests it has to have for that resource (and what size those requests should be) and it will deliver. This ties into their Multimedia specific improvement area. Vista allows programs to say they are a real time multimedia application, and then Vista will constantly adjust the program’s various multimedia threads priorities to ensure smooth activity on the system. Vista doesn’t do this suicidal however, it ensures a certain percent of the system(adjustable but 20% by default) is always available for other programs too.
While I don’t want to go into SuperFetch and ReadyBoost too much I did want to touch on these features, as they are pretty cool. One thing most users will notice in Vista is no longer is there a lot of ‘free’ memory, as now Vista tries to use any available memory for caching. It does this in various ways, but primarily it tries to keep more in memory that you need, and hopefully before you need it. As I mentioned before all memory has priorities so things are paged out according to priority in addition to use activity. Vista however tries to be predictive, it studies past behaviors and tries to proactively pre-load things into memory that you may need using various situations it tries to recognize. It actually has situation plan files for situations it finds that dictate what to load into memory. It has these for common things like resuming from hibernation or boot, but also for less common ones. For example if you have a background indexer that indexes when you are away it will most likely end up sucking up most of your memory when you are gone, but when you get back while it stops all your stuff has still been paged out. Vista tries to fix this by keeping track of what was in memory before it started, and then loading these things back into memory when it finishes. Another cool feature of them I want to touch on is its ability to use flash drives as an intermediate write through cache between memory and the hard drive. If you plug in a flash device that it determines is fast enough, it will give you the option to use it as a cache (the cache is per-session encrypted and also write through so pulling it out won’t cause any data compromise or loss). Hard drives are also starting to do this (have embedded flash memory basically) and it can use this on them in much the same way. This should allow for some cool uses for those thumb drives everywhere and speed things up at the same time.
Remote Desktop has received an upgrade to version 6.0, which in addition to a few new feature enhancements includes some nice security improvements. Many people have criticized remote desktop in the past due to the fact that while communications are encrypted it is still vulnerable to man in the middle attacks. The primary reason for this was due to the fact that remote desktop didn’t care about if the person you were connecting to was the one you are expecting it to be. Even if you connected to server X before and it changed to server Y remote desktop didn’t even warn. Now remote desktop has a slew of security choices to try and ensure you are giving your info to who you think you are.
Overall security in Vista has been improved in many different ways, its no SELINUX, but its actually possible to have something of a secure OS to say the least. First of all no one runs in Administrator mode all the time any more. This means that virtually all applications in Vista will have to support running in User Mode. Now some of us will still run under an Administrator account, but Vista at least makes this a safe practice, the good news is the kids no longer need to have Admin accounts. Now as I said nothing runs as administrator by default any more, some programs will have no problem with that if they have been written for vista, or just well written for XP. Programs that are vista aware can specifically request Admin when required, (for example setup programs) and then the user can simply approve this and the admin access is given. To make XP programs not instantly break Microsoft has done some very interesting things. First of all there is both registry and file system Virtualization, this allows programs to write to key file system locations like ‘Program Files’ or ‘Windows’ or registry locations like Local_Machine during their normal activity. Programs most of the time shouldn’t be doing this, but old programs do due to whatever reasons. With virtualization the OS allows these programs to write to these locations, but actually writes them to user-specific locations invisibly to the program. Now a program is either virtualized or not, the virtualized flag does not really influence a program in any way except for the fact that a virtualized folder can write to sensitive locations, where as non virtualized programs get access denied. In addition vista assumes that any program that contains setup in the exe name most likely needs Administrator access even if it doesn’t request it (as you can’t install things to system locations without admin). Finally Windows has become smart in regard to programs running with different security levels. Lower level programs can no longer send random messages to higher level programs (for example keystroke messages), this instantly breaks shatter attacks. In addition lower level programs are able to read all files (assuming normal access allows it), however cannot write to higher level files. This allows for things like Internet Explorer to read a user’s files, but not change them. Finally Security prompts now occur on a Secure Desktop, so that a malicious program can’t simply click the Allow button on an Admin question, or mask part of a prompt.
There are a lot of other cool things in Vista that I forgot or just didn’t cover. Including Transactional NTFS and access to old copies of files (through the snapshot backup already in place), Bitlocker drive encryption (its actually decent), Windows update to update a whole lot more than just windows, or multi-threading improvements. This was certainly a very long post, but Vista has a plethora of features and I think a lot of them may go un-noticed. So go out, get Vista, upgrade!