|Home » Learning Curve
Cheap Frills: A Walk Through Windows 7
Not what one expects.
The fever's died down. The exploits are still out there but not as much is heard about them. Perhaps people are upgrading to Windows 7, perhaps Windows 7 is safer out of the box, perhaps people are sick and tired of writing about the slings and arrows of outrageous Windows, sick and tired of the impotent antivirus suites.
Windows 7 demands NTFS. This is a good thing. It's not easy using a file system whose only stab at security is through access control lists. But it's better than nothing. Cutler's NTFS can at least secure things. MS-DOS of course cannot.
It's not likely ordinary people will ever learn how to tweak their security settings with NTFS. It's just too complicated. They have to hope for adequate security out of the box.
The level of accessible control is greater than before but there's no possibility for overview.
Compare this picture:
The one system has an easy four octal digit/ten character representation of everything a user needs to know, to see. The other requires going through three popups to get at anything at all. And it's not simple. For most people it's rocket science.
How can people protect themselves with such a system when they're already complaining OEMs are nasty buggers for forcing them to perform disk integrity checks on startup?
Cutler wanted a lot of granularity. He got it. (And FreeBSD, may they be forgiven, copied the idea shamelessly for no good reason.) But he never thought ordinary Joes and Josephines would be using his system. And Microsoft didn't care.
A system cannot be secure without an easily managed file system where ordinary users can take simple basic steps to protect themselves. Win7 doesn't represent such a system. Unfortunately.
Then there's the old bit about admin and root accounts. Unix systems have a root account. The root account can do almost anything. Sometimes it's not even enabled. But it can still be used. Users invoke su and sudo and it doesn't matter that root is not accessible.
Windows doesn't have that. Microsoft have runas but it's not the same thing. Runas is complicated - it's rocket science again.
Here are some of Microsoft's own examples of how to use runas.
To start an instance of the command prompt as an administrator on the local computer, type:
runas /user: localmachinename \administrator cmd
When prompted, type the administrator password.
To start an instance of the Computer Management snap-in using a domain administrator account called companydomain\domainadmin, type:
runas /user:companydomain\domainadmin 'mmc %windir% \system32\compmgmt.msc'
When prompted, type the account password.
To start an instance of Notepad using a domain administrator account called user in a domain called domain.microsoft.com, type:
runas /user:email@example.com 'notepad my_file.txt'
When prompted, type the account password.
To start an instance of a command prompt window, saved MMC console, Control Panel item, or program that will administer a server in another forest, type:
runas /netonly /user: domain\username 'command'
domain\username must be a user with sufficient permissions to administer the server. When prompted, type the account password.
Piece of cake it's not. And things can be even more difficult than that. Compare with Unix where to run the command cmd you normally type:
$ sudo cmd
And that's it. Windows will never be secure enough until ordinary users can easily manage their own security.
That being said, there's another aspect of Win7 that's extremely troubling and worrying - extremely so.
It's hard to put into words just how awful Win7 graphics are. It's hard to adequately describe the eye fatigue Windows 7 produces: everything in the real world looks blurred afterwards. And the absolutely ghastly motley way it looks. A rendering system in 2011 that's still pixelated. Phew yuck. $429?
Here's an example. Here's the old screenshot of XPT task manager 007.
It's clean, it's 'to the point', it may have a bit of Mace Windu in the title bar, but it's easy on the eye even if it's primitive. The font may be a bit small but that's perhaps just a question of habit.
Now here's what happens on Win7.
What happened to the background? Are people really supposed to look at that? And what's going on there?
What's going on is Microsoft were shamed their pseudo rival Apple had onscreen transparency. And did it cheaply too with no need for extra hardware. Microsoft couldn't do that. And all the Gates horses and all the Gates men couldn't get the same thing running without lots of extra hardware power packed in.
And they did an excellent job of copying Apple ideas just like they did with the original Windows. Where they totally missed the point of a menu separated from the application's document windows. Something for which most of the world are still suffering to this day.
What you're looking at is a gross transparency algorithm that lets things through even with foreground active windows. Which is just plain nuts. NeXTSTEP never did that and Apple's Cocoa upgrade would never do that either. The key to GUI design is to increase information. And the Microsoft algorithm adds nothing of that sort. All it does is induce eye fatigue. The background that they let slip through is blurred. So what good does it do?
It sends a message to Cupertino: 'we can do it too - sort of'. Except the NeXT engineers in Cupertino aren't impressed. They're laughing.
And the window borders - what's with that shit? Cocoa borders are today one pixel. Two pixels in height and width - you can afford that, can't you? And prior to Snow Leopard, there was not much of a border at all.
Let's take a screen grab of one of Microsoft's window borders, magnify it, and twist it to make it easier to study. This is gradient graphics?
Here's a screenshot of a very simple app using Apple's 'textured window' ('brushed metal') look. Something a lot of people don't like. And it's been simplified in more recent iterations of the system. But whatever. Try to see any gradient there. Use a tool like Apple's DigitalColor Meter.app to see how the colours fade from centre to edges (old versions) and from top to bottom (new versions).
If you blow up the ULHC you can see what's going on.
You can see that the basic graphics of the window background still don't appear to be raster based and that the corners use the trick known as anti-aliasing. For all computer screens (at least most punters use, at least for now) are raster based anyway at the end of the day and you need to resolve things down to ordinary x/y coordinates anyway. But it's all about how you do it.
Here's a Windows 7 window corner.
Not exactly well anti-aliased. And then there's the window title. Great work. A return to our Cocoa application again.
Lots of stuff going on there. Different colours, stuff like that. That's 'anti-aliasing'. It's smooth. It works.
How about push buttons? Here's Microsoft's for Windows 7.
They went all out there. Their graphics wizards stayed up all night working at that. Now here's what Apple did atop the NeXT rendering engine. And these fuckers pulsated - they send out a message that they're default and itching to be clicked.
The task bar is a welcome exception to the above: items are square today rather than rectangular and they take up less space with a higher bar. Icons rather than text are shown and processes with the same name (or path) are grouped together. And the Alt+Tab switching uses a bit of Apple's Cover Flow at a cute angle. Whether that makes things easier is another matter entirely. But it makes up somewhat for the system's paraplegic inability to let process address spaces accommodate multiple documents.
The idea of good graphics isn't to impress. Microsoft never got that right. The idea of good graphics is to be useful. Susan Kare spent a lot of time figuring out just what 16x16 b/w pixelated icons were supposed to do. They had to be functional. She later hired on Keith Ohlfs to make the NeXT icons. The same principle applied.
NeXT used Adobe's EPS rendering engine for onscreen graphics. The OS X upgrade used Adobe's newer PDF. Cocoa today uses code classes like NSBezierPath to plot lines and NSRectFill to fill rectangles to simulate pixels. The computer hardware copes as well as it can and it's already far better than what Microsoft can throw at it.
This was a very short walk through Windows 7. Using a MacBook Pro and Boot Camp. With the Internet router unplugged. (No point in tempting fate.) And whilst there are certain glimpses of hope for Windows as a secure platform for Internet use in the future, the graphics game is an utter failure and basically makes the system unusable.
Microsoft will need to revolutionise their file system, get something better than David Cutler's server OS running on ordinary PCs, scrap the 'one menu per window' paradigm, and hire on some graphics designers who focus on functionality and not frills.
Radsoft Windows Software: XPT
Rixstep Apple OS X Software: ACP