The next-generation Microsoft OS—Now Windows Vista


The next-generation Microsoft OS—Now Windows Vista

Windows Vista was originally code-named Longhorn.  The name Longhorn was heard as early as I was still in High School (1999).  Even today, Windows Server 2008 is still internally called Longhorn Server.  What surprise did this version of Windows bring to us?  I think it is multi-dimensional: new kernel changes, new kernel features, new Windows services that support more tasks, less legacy support, new visual effects, new bundled applications and externally, new hardware.

Let’s examine what Windows Vista brought us:

Major Kernel Changes

The CPU scheduling algorithm has been modified to make scheduling much more precise: on supported CPUs, an instruction-level precision clock will be used to precisely record how much CPU time is consumed by a thread.  Also, the scheduling algorithm has also been modified to allow fair scheduling.  This makes a CPU intensive program much less likely to affect overall responsiveness.  Experiment: run a dead loop program and see rosh completion speed.  In this way, Windows is comparable to Linux with the 2.6.24 kernel CFS (completely fair scheduler).

Memory management: Superfetch uses anticipatory fetching of memory pages on the drive when the system is idle, so that it is probable that when the pages are needed, they already exist in the RAM.  I guess it also works for disk cache.  It analyzes memory access patterns in order to do the anticipatory paging.  Apparently this is not coming with no price: itself consumes 30MB of RAM.  It is good to get enabled on systems with at least 200MB of free memory.

Knowledge point: memory paging optimizations.  Before Superfetch, there were already three methods used to improve paging efficiency: read-ahead, write-behind and prefetching.  Read-ahead and write-behind were used in the original version of Windows NT.  Prefetching was introduced in Windows XP.  Read-ahead: on every page-in, the system reads contiguous pages and expects them to be used.  Write-behind: several page-out operations of contiguous pages are attempted to be combined into one write operation.  Prefetching: in XP this is used to load files faster during system and application start-up.  Note that page-outs are not guaranteed to map contiguous pages to contiguous page file contents, so contents in the page file may be fragmented.

Memory management: ReadyBoost uses fast USB thumb drives to serve as a read-only cache of the page file and regular files.  This is because of one simple reason: USB thumb drives are better at random read access than hard disk drives, but not as good at sequential transfers or writes.  ReadyBoost tries to take advantage of both devices.  It is most useful when the amount of RAM is a little-bit not enough, and there is still more than 100MB free RAM.  If there is almost no free RAM, ReadyBoost cannot help.  Superfetch is aware of ReadyBoost and it also loads data into the ReadyBoost cache.  Experiment: with Superfetch on, enable ReadyBoost and see ReadyBoost cached bytes in Performance Monitor; compare it with Superfetch off.

New Kernel Features

I/O priority and scheduling: I/O priority is introduced and one special I/O priority is implemented: idle.  Processes with the idle I/O priority can only perform I/O when there is no other processes requesting I/O.  I/O scheduling is implemented in order to make multi-media playback more smooth.  These features currently cannot be modified through Process Explorer or Task Manager yet.

Cancellable I/O: some I/O operations can be cancelled now.  For example, a file-open operation, when executed on a network drive, may sometimes bring the application to a halt state.  Now this can be cancelled.

File and registry transactions.  The Kernel Transaction Manager will allow applications to start a transaction of file and registry operations which can be rolled back.

New Services

Application Compatibility Wizard.  This wizard was introduced in Windows 98 to warn users about incompatible applications which were designed for older versions of Windows.

System Restore.  Now it allows restoring single files.  This is done through Volume Shadow Copy.

Windows Search.  This is a version of a desktop search engine.  With its indexing facility, full-text search is much faster.  You can use it to index your document archive directory and it will be able to search it.  It also supports indexing PDF files and others.

Windows Defender.  It prevents malware.  Useful when you surf on the net.

Reliability Reporting.  This feature summarizes and reports computer reliability, and shows it in Performance Monitor.

Windows Firewall.  It is now much more advanced and has both inbound and outbound monitoring.  Its advanced interface is quite useful.

IPv6.  Now it comes.  One day with IPv6 we’ll have one IP address for every computer.

Fast User Switching.  Now this is allowed even when the computer has joined the domain.

New shared folder services.  There are new services that enhance shared folder transmission, such as differencial compression, etc.

RAM requirements: After my testing, with 512MB RAM, Vista requires about 300MB to run properly (with my Lenovo drivers installed and bare system without anti-virus, etc.).  With 1GB or higher, Vista requires about 400MB to run (my computer uses an Intel integrated display adapter which may consume system RAM, but Aero is not used; I’m not sure about stand-alone display adapters).

Less Legacy Support

No winhlp32.exe program (but can be installed).  Internet Explorer drops the Offline Favorites feature.  IE 7 cannot be used as Explorer nor vice versa.

Windows Address Book (wab) must be converted to Windows Contacts format before using.  All folder information in the original wab will be lost.

The new WDDM display driver model prevents console or DOS windows to switch to full screen.  This is a bad news for DOS users.  In addition, Windows Server 2008 and Windows Vista x64 versions are 64-bit OSes and don’t have NTVDM (NT virtual DOS machine) so they cannot run DOS programs at all.

CHM files with Simplified Chinese titles in the Contents (compiled on machines with CP936 as the default encoding) shows "cannot display the page" even if the system default character set is CP936.  Not sure about other non-English languages.

IME: Traditional IMEs through Windows 95 to Windows Server 2003 are no-longer supported perfectly in Vista.  New IME standard introduced.  For example, old IMEs can no longer be turned on or off through Ctrl-Space in a console window.  Also, protected mode IE causes old IMEs to crash.

UAC: User Access Control.  This feature is not only annoying, but also causing troubles for applications that were originally meant for administrator use.  In order to work around that, an elevated administrator Command Prompt must be launched (by using "run as admin" on the Command Prompt shortcut) and then the administrative application be started from the Command Prompt.  Besides, it also hides the traditional "Run As" menu item in older versions of Windows (2003/XP/2000).  Instead it replaces it with "run as admin".  Though for newly-installed applications, it applies "folder virtualization" on them to let them virtually write to Program Files or Windows folders, but for manually deployed legacy applications, "folder virtualization" is not an option.

New Visual Effects

Aero.  Aero is the new advertised "elegant interface", however it is too elegant that it is distracting the user’s concentration when doing work.  A lot of transitions: minimizing, maximizing, Task Bar preview, Alt-Tab preview, Win-Tab Flip 3D display.

Vista Basic.  Vista Basic is not the XP-style theme.  It is a Vista-style theme, but like that of the XP, it is not so distracting.

Classic.  Like Windows XP classic and Windows 2000.  Actually in the old Classic style like Windows 98, the colors are modified, so it is not so original.  You can change it to have an original taste.

New Applications

Side-bar clock and Calendar.  The side-bar gadgets are sometimes useful, such as reading the date/time and writing a note.  However it takes about 15MB RAM so do not use it if the RAM is not ample and you don’t need it.  The Calendar is not so easy to use as Outlook is.  However Mozilla Sunbird, another calendar program, is currently (year 2008) not usable under a normal user account either, so Calendar is still useful.

Windows Mail and Contacts.  I haven’t used Windows Mail since I almost no longer use POP mail boxes.  Contacts is an upgrade to Windows Address Book but cannot convert folder information from old WAB files.

Complex Control Panel and Task Scheduler.  They have become too complex to let a novice computer user to fully understand them.  However using them in an easy way is still OK.

New games.  Chess Titan, etc.  See for yourself.

IIS7.  A whole new management interface, clear and powerful.  Though not intuitive, after learning how to use it, you’ll find it clear and powerful.  However as Windows Vista components tend to consume more memory, this component may also be the case.  Use it only when necessary or when RAM is ample.

Dictation (speech recognition): a shiny new feature.  Try it out yourself.

Conclusion: I like Windows Vista in its kernel changes, but I don’t quite like it in losing legacy support and large memory footprint even with the minimum configuration.  I both like and dislike its "modern" features.  The complexity may make even a geek’s head ache.