Windows NT Turns 20
An anonymous reader writes with a link to the observation from ZDNet's Mary Jo Foley of Windows NT's 20th birthday (it came out on July 27th, 1993): ""In 1993, Microsoft launched Windows NT 3.1. It was followed up by NT 3.5, 3.51 and 4.0. Microsoft's Windows releases still rely on NT-inspired numbering conventions. Windows 7's build numbers commenced with 6.1; Windows 8's with 6.2; and Windows 8.1 with 6.3." The article also reminds us that "NT's not ancient history, in spite of its age. The NT 'core' is what's inside Windows 8, Windows Server 2012, Windows Phone 8, Windows Azure and the Xbox One.""
Indeed. No matter how structurally sound your operating system may be, UI developers (receiving messages from on high) can still make it look like trash.
I've seen the source and it's a work of art. Whoever they had working on NT 4 for the PnP and other additions really massacred the code.
Where's my HPFS?!
At least I could run an Oracle data base on it and it had NTFS... The Virtual Memory/Swap file behavior had me pulling my hair out for a while... sigh
Damn I hate it when I wax nostalgic
I used both NT 3.5 and OS/2, and OS/2 was much better. Microsoft put more effort into support for the long term.
Originally it was a pretty good design, based on the concepts implemented by DEC's VMS system. It only got butchered later by people who didn't know their stuff as well as the original engineers.
Warts and all, Windows owes it's lineage to VMS and the once mighty DEC.
I've heard there are still places running VMS-based hardware.
I do not fail; I succeed at finding out what does not work.
The Linux kernel would have bought it a beer, but it hasn't turned 21 yet.
"I bless every day that I continue to live, for every day is pure profit."
V +1 = W
M + 1 = N
S + 1 = T
-- Fuck Beta
An article for WinNT turning 20, but nothing for Slackware when it did the same 10 days ago? What is wrong with you, Slashdot?
Wait, don't answer that...
I have yet to experience this DLL nightmare you speak of. I've had way more dependency hell on Linux than anything. Say you find a great program that does exactly what you need. Well the author based it off some obscure library that needs a dozen other dependencies. One of those said dozen fails to compile. I'm not a CS major so the story pretty much ends there.
The only DLL issue I've had was getting some of the cygwin tools. It needed some DLL and their site was useless for supplying it. I just need the one file, not their installer giving me the entire dev environment. In the end I searched for the filename and "index of" and found a copy that way.
I still don't understand how VMS can be compared to NT. They don't even seem remotely similar.
Only the State obtains its revenue by coercion. - Murray Rothbard
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx
Wearing pants should always be optional.
A few releases are missing in the partial Windows NT history mentioned in the article:
- Windows 2000
- Windows XP
- Windows Server 2003
- Windows Server 2003 R2
- Windows Vista
- Windows Server 2008
And the Xbox.
When every new release of NT brought with it new and useful features at least I was always excited to upgrade from 3.5 on till about 2K8.
Now nobody seems to care about technology anymore... It is all politics, marketeering and guarding the table to ensure no excess value is ever left upon it. Innovation is now measured by games with shells, errecting walled gardens and fresh paint of questionable quality. Sad to see so much potential go to waste.
FTA: "NT's not ancient history, in spite of its age. The NT 'core' is what's inside Windows..."
And isn't DOS's 'core' what's inside NT?
and QDOS's 'core' what's inside DOS?
NT was the last revolutionary product put out by Microsoft. VB3 came out the same summer, and was also revolutionary. Excel 4.0 and Word 2.0 were the only other two revolutionary Microsoft products, and those came out the year previous.
All of these products are essentially unchanged over the past 20 years, with even the same codebase, with the exception of VB 3.0, concepts of which continue in the 2nd generation Visual Studio product (based on the late-90's Visual Interdev platform, chucking the highly responsive 1st generation that ended with Visual Studio 6.0).
http://blog.opengroup.org/2012/07/25/apple-registers-mac-os-x-10-8-mountain-lion-to-the-unix-03-standard/
Its too bad NT 3.1 was saddled with trying to maintain a semblance of backward compatibility with the existing Window user mode API. WIN32 should have been a fresh start rather than being burdened with the legacy rubbish now known as WIN16.
They've done everything they can to promote Android adoption, not Linux.
It is now long forgotten, but Microsoft had plans for a brand new OS based on the 'semantic' theories that were dominant in the 80s, and a new approach to the kernel/driver system. NT was to be the easily hacked together stop-gap product until the new OS was ready for the big-time.
The final part of this failed OS mega-project was the recently cancelled 'semantic' file system that Microsoft wasted billions on across the years, and promised to release with each new version of Windows.
It should be known that almost everything significant Microsoft has 'achieved' across the last 20 years was actually code Microsoft originally bought from other companies. Microsoft's billions have produced very little internally. When Microsoft has attempted to originate software concepts, the results have usually been disastrous. Metro/RT/New-UI is but the latest example.
Windows serves as a universal 'good enough' base platform OS, but it's long past the time when a free OS should be doing the job better. Part of the horrific collapse of the PC market is down to the Microsoft tax that bangs an extra 100-150 dollars onto the cost of every PC. The PC market is no longer strong enough to tolerate this unnecessary expense. It is downright frustrating that Google is holding back on 'Android for Desktops', partially to promote the lousy ChromeOS platform.
No.
I forgot to mention Visual C++ 4.0 from 1995, which introduced the modern IDE. I just now updated Wikipedia.
And to think I believed their marketing rhetoric all the times they said Windows was a complete rewrite. Except all those times viruses were found to effect versions of Windows from the current all the way back to DOS/Windows versions.
NT should have never had a 5th birthday let alone a 20th but we all know how far a monopoly gets you when you use it with a club and hatchet.
LoB
"Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
...that 640k was not enough!
There was an unknown error in the submission.
Maybe for services, but it still baffles me how even with the latest OS/2 release the mouse still didn't track smoothly and the GUI was easily process locked. You couldn't work in that environment without pulling your hair out trying to get anything done.
Compared to NT, for user experience, OS/2 never had a chance.
SafeDLLSearchMode = Win7 default - You just don't have to SET it in the registry manually here anymore (like you had to in older Windows NT-based OS models pre VISTA/7):
HKLM\System\CurrentControlSet\Control\Session Manager
SafeDllSearchMode = 1
* Another one I always felt was a "decent protection" (and saved a bit of memory too if you don't load that std-classic lib/dll ever again from other apps etc./et al)?
The "AlwaysUnloadDLL" registry option -> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\AlwaysUnloadDll
Not SURE if it is still functional in Windows 7 though, as it was in older bulids of Windows (not by default either, it was another you had to set yourself, manually, iirc), but, that's another option to ASSURE that a required version of a DLL & its function/method required.
(As that's all that loads, not the entire thing "all or nothing" of the ENTIRE dll body for loads for usage into the calling app's memory space - this IS touchy though: IF other apps call that lib concurrently also, creating reference counts to its functions - then, yes the entire DLL is loaded but again, ONLY the parts the calling apps need are used by said apps (for DOS coders, this much like how overlays worked))
I don't KNOW if it will still work though on more modern Windows like VISTA/7 onwards. Probably does, but there's "downsides" too, noted below.
In fact - This I wager STRONGLY is NOT ON BY DEFAULT (like SafeDLLSearch is in Win7) in more modern versions of Windows - simply because of what it does and "downsides" of it in load/reload latency performance:
I.E.-> You have to flush reference counts to the model currently in RAM/calling app memory space functions/methods used by the calling app, then reload from disk again from it (or another model if necessary and has the same name, which used to cause "DLL HELL" with std./classic dlls (vs. OLEServer types) on Win9x & earlier builds of NT-based OS before the protections I noted in my last post).
APK
P.S.=> So bad choice of words on my part - the REGISTRY ENTRY is 'deprecated', but its on by default (it's just not there in the registry BY DEFAULT, like for example, many TCP/IP parameters are for tuning entries on IP stack tweaking are for 'system tweaking types') However - Yes, you CAN enter them anyhow, but if they're active by default? You're really just "bloating" your registry (with no gains & because of said 'bloat', you slow up some (miniscule)) - so correcting that for posterities' sake (and IF they are deprecated? They're bloat AND useless)... apk
Windows NT 3.51 was the most stable operating system I have ever used.
I miss it sometimes.
SafeDLLSearchMode was turned on by DEFAULT in Windows Server 2003 too (makes sense since it was the codebase used to build Windows 7 initially), so my statement of "Pre VISTA/7" in my last post? Not entirely 100% accurate (we strive for perfection, perfection being a road NOT a desitination, & technical accuracy).
* I don't KNOW if I just forgot that since it's been so many years since I last ran Server 2003 (here @ home in default workstation type install it does anyhow where you add server features after), or that I am just getting "old & senile" but there you are (again, for posterities' sake).
Another fellow cited "side-by-side assemblies" here too in this exchange - there's a point I missed... good catch by jeffasselin, here -> http://tech.slashdot.org/comments.pl?sid=4020769&cid=44396911
APK
P.S.=> I haven't looked at this lunacy in awhile, good review (because of all the changes in this during the 1992-present day versions of Windows NT-based OS). Personally, IF I use DLL's (rare for me on smaller projects or ones I don't need to send out periodic updates to smaller parts of them or data? I go "single 'stand-alone' self-contained" exe design - less moving parts, & less hassles)? If I used another version build, that say, returned an integer 1/0 return vs. another build say, returning a boolean T/F return (common enough difference along with stub/deprecated API stuff)? I just stuff it into the appdir with my app - makes for tremendously LESS hassles vs. "DLL-HELL" potential issues that way & is simpler (simple, is good - this is one of the "nuttier" things to get down cold and RETAIN imo as far as possible caveats building with Windows & "oldschool" classic style DLLs, which OLE Server type DLL marshalling by GUID cures imo)...
... apk
I think your tin foil hat needs a muzzle. Stop the crazy getting out as well as in.
I might just crack open my old copy of the book "Show Stopper!" by G. Pascal Zacharay. A great read on the design and development process involved in releasing Windows NT.
And you thought you had to reboot Windows 7 too much, try NT :)
NT has great kernal and sub system concepts and more uncommon features now it seems MSFT is removing a lot of the things that made NT great, in new runtimes.
Pity, this was the last great Server OS from Microsoft.
Android is no less Linux than anything else using the Linux kernel.
I still don't understand how VMS can be compared to NT. They don't even seem remotely similar.
Then follow this link.
... Many users believe that NT's developers carried concepts from VMS to NT, but most don't know just how similar NT and VMS are at the kernel level (despite the Usenet joke that if you increment each letter in VMS you end up with WNTWindows NT). "
From the link : " Most of NT's core designers had worked on and with VMS at Digital; some had worked directly with Cutler.
And : " [the] similarities could fill a book. In fact, you can read sections of VAX/VMS Internals and Data Structures (Digital Press) as an accurate description of NT internals simply by translating VMS terms to NT terms. "
Whoever modded this down to -1 doesn't know who Guy Harris.
But that's 140 in software years.
Comment removed based on user account deletion
Ring 3/RPL 3/usermode (vs. Ring 0/rpl 0/kernelmode). Cutler almost quit MS when he got wind they were going to move it to kernelmode (introducing potential instabilities) - but between DirectX (gaming/multimedia) & the stable templates provided by the MS DDK, it kept it stable enough (oem vidcard maker drivers & what they add beyond that could be problematic only).
Fork? That's *NIX stuff man... I know of NO Win16/32/64 API call of that name. I use ShellExecute or CreateProcess though in code. Why do forks though, when you can do lighter-weight threads?
APK
P.S.=> Only thing I've found "wrong" in Windows 7's that the hosts file after 12/09/2008 was patched badly on that account, no longer allowing 0 as a valid "blocking IP address" (whereas any NT-based OS pre-VISTA still can though, oddly) - MS' own VP of the "Windows Client Performance Division" who posts here (Richard Russell/Foredecker) even conceded that to me here http://slashdot.org/comments.pl?sid=1467692&cid=30384918 since it makes for a smaller file, which loads faster off disk AND parses faster line-by-line internally during the File Open/Read-Write/Close I-O cycle with text files like hosts. Reported to MS directly too, never was fixed. Makes a 30% difference in size for me with a custom hosts file I've built since 1997 (due to fastflux + dynDNS botnets that recycle/reuse their malicious hosts like mad "reincarnating" them as needed since they paid for them no doubt) @ 2,075,107++ entries & growing currently, via this 32/64-bit app I built to import/sort/normalize & deduplicate them for better online speed, security, reliability, + even added anonymity to a degree -> http://start64.com/index.php?option=com_content&view=article&id=5851:apk-hosts-file-engine-64bit-version&catid=26:64bit-security-software&Itemid=74
Have you seen the (The Tar) Tar Pits?
Anecdotally, NT 3.51 was reliable for small tasks. It didn't have to be rebooted for stability reasons (for driver / install reasons, yes)
But NT 4.0 was a step backward. It started a decline that Windows never really recovered from in serious companies. I recall architects taking a very long look at NT in the 1990s, but after NT 4.0, the die was cast. Whatever was going to come next was not going to be Windows. Then Linux got traction and the rest is history.
I still have the T kindly handed out by IBM as we filed into the launch presentation at COMDEX - "OS/2 - up and running not up-and-coming". Tempted to frame it and send it back.
Wasn't the OS/2 kernel some strange 16/32 bit hybrid? In any case, it was x86 only -- IBM had to create a Mach-based kernel for the ill-fated OS/2-PowerPC.
Yeah, it was x86 only, which is why OS/2-PPC was a totally different project - Presentation Manager personality sitting on top of Mach. There is a more modern liberated version of it, which is Presentation Manager sitting on top of the L4 microkernel. Too bad the PPC is almost dead by now, otherwise that would have been a great candidate for POWERstations, PPC Amiga boxes and even older PPC based consoles.
Quoting your article to reinforce what I myself do that works:
"Include all DLLs privately in the applications bin-directory and use private assemblies as far as possible if assemblies can not be avoided. The best way to defeat all DLL conflicts is don't use any DLLs at all, but use static libraries instead"
And, what did I write that I myself do?
"Personally, IF I use DLL's (rare for me on smaller projects or ones I don't need to send out periodic updates to smaller parts of them or data? I go "single 'stand-alone' self-contained" exe design - less moving parts, & less hassles)? If I used another version build, that say, returned an integer 1/0 return vs. another build say, returning a boolean T/F return (common enough difference along with stub/deprecated API stuff)? I just stuff it into the appdir with my app - makes for tremendously LESS hassles vs. "DLL-HELL" potential issues that way & is simpler" - http://tech.slashdot.org/comments.pl?sid=4020769&cid=44397369
IF I can figure that much out, even though I know what else exists to help stop it that I noted here http://tech.slashdot.org/comments.pl?sid=4020769&cid=44396873 & I am FAR from "the world's greatest programmer" (there is no such animal - only guys that focus on and look @ a problem and process + its data long enough to architect, or if you are allotted time & budget, re-architect your solution for safer + more efficient operations)? Others can & WILL, too... you don't have to depend on the OS covering you - you cover, yourself, way beforehand. It comes with experience (punches in the head in other words).
APK
P.S.=> It works, it's simple, and less "moving parts complexity" WITHOUT having to depends on side-by-side assemblies, OLEServer GUID marshalling, Windows File Protection etc./et al...
... apk
"We all stand on the shoulders of giants" - Mr. Anders Hejlsberg Borland/Microsoft (architect of .NET & my fav. coding tool of ALL-TIME, Delphi/Object Pascal).
"Pilfered ideas", as you call them, are HOW progress occurs - you described it yourself, with improvements to the core OS (NTOS). This goes for FAR beyond computing, right into life itself and anything around it man (even personal growth by following the example of others). I mean, by YOUR reasoning? There should only be 1 auto maker: FORD!
I love the Mustang (or rather the fuel injected, roller overhead cam/roller rocker arms, dual exhaust tech in its proven 4.6L-5.0L V8 motor - it's racing tech put to the street in essence & it wins more "street races" than any other make out there mind you), lol, so that wouldn't bug me but... their being the "sole provider" would block out the progression I speak of above - ideas, good ideas, come from many spots, many people, and often in quite unexpected areas from folks you'd LEAST think would come up with them (e.g. a patent clerk and relativity theory being a prime widely recognized one). No one set of engineers would come up with them all. In fact, that very premise IS what makes the internet great - sharing ideas.
DEC wouldn't have HAD VMS (which is the 1st OS I ever used circa 1982 - 1987 thru highschool into collegiate academia on my 1st of 2 degrees), without Mr. Cutler and his architecting it based on prior experience in VMS!
Yes - it was HIS intellectual ideas - yes, yes - the "lawyers" probably *might* say otherwise, but it's truth... fuck them, lol! Besides, I'd be willing to bet my bottom-dollar that DEC probably tried to STOP Cutler from using those ideas (unless you can show me otherwise, & I'd believe it for once outta you, lol) - only problem, from a "legal" standponit too no less?
NDA's notwithstanding - IF a company tries to make it so you can't use what you know to make a living, in a "right to work state" (most are iirc), they would be sending you into poverty potentially... that, is not allowed, & WHY NDA's fail 90% of the time. They're bullshit... I've seen it happen to others & that's how it's gotten around (I am sure you've seen or heard of it as well).
You bitch about err-handling in the kernel... want to know WHY it was so? C language itself... one of the BIG areas where C++ knocks the snot out of it, isn't just in objects, but err-handling! C natively has no such facilities, you have to "rig" them "paper clips/rubberbands/superglue" style.
APK
P.S.=> You have to "cut them some slack" on that account - they did the best they could, with the tools they used (C's used over Assembler for portability and speed of development, and can optimize out JUST ABOUT as fast performing code too) - in fact, I am AMAZED TO THIS DAY that the Microsoft software (or any others really) run as well as they do with such a mass of complexity in software alone, let alone the range of hardware they do... the entire thing's a testiment to the ingenuity of humanity imo!
... apk
Gates "stole" DOS too (Tim Patterson iirc) - heck, they ALL do it, & nobody does anything about it... why? We ALL gain by it is why, for the reasons noted already by us both. That is or should be the END GOAL/GAME though. Overall boosts for everyone.
On what you saw in MS: Sure, there I believe you - Unskilled douchebags with too much time on their hands and not enough REAL work on their product breeds it, along with their sociopathic tendencies (which get them to the 'top' via "the ends justify the means - fuck the slaves" philosophies) + methods. HOWEVER: That's not the guys creating the wares/OS, right? They're busy actually doing good. NO "idle hands are the devil's workshop".
Yes - I've also seen "shenanigans" like that too!
1 directed my way I was terminated for spotting security holes that I suggested simple ways to fix no less - didn't matter: I was back @ work right down the road oddly shortly enough after, & MADE SURE the bastard(s) CIO & his henchman got nuked out of THEIR jobs, very shortly afterwards with their own 'criminality' (unlike you, I don't hold back on pulling the trigger when it was pulled on me first, & worst for doing what I knew in my heart was the RIGHT thing to do!).
( & they're STILL looking for work: Why? They don't have any more relatives who are major stockholders/owners, lol, or that are part of the masonic temple like they are placing them but above ALL else, & lastly they don't have any REAL hard skills in the computer sciences)
After all, & Yes, I know this & was one in my time (extremely successful one in loss prevention) - anyone, can be a "mgt. babysitter", anyone (they ought to be the LEAST paid in fact, imo & experience).
However, I had to leave it. Bugged my conscience in the things the job made me HAVE to do @ the behest of my 'superiors' (who were anything but on many levels) - worst being lying to subordinates. Also found out that of 218 other competitors in that company, I was outperforming them all 1.5 yrs. straight month in & month out, but I was NOT the highest paid... well, fuck that.
That made me hate myself (the lies I had to tell, lives I ruined possibly, & worst getting PLAYED on pay). I had to go & grow past and away from it... Comp. Sci. was the answer. It's also a potential route to bettering the world around you imo.
A lot of my pals still in mgt. roles were like "don't be a fool man, stay up here @ the top, IT is dead, & the stockmarket makes SURE it's dead" (payroll being the single easiest thing to control overheads-wise, real "business 101" microeconomics class stuff)... no thanks. Ask me to sell my soul too, ok?
There's NOT ENOUGH promote from within the ranks, & too much "promote from the billionaire boys club frat" out there. Results are showing what the end result of THAT is, macro-economically in the USA, cascading to the rest of the planet (mostly).
Man - it's what you GET, with people leading people who have NEVER DONE THE JOB OF THEIR SUBORDINATES... head doesn't know what the ASS is doing or rather how it's done (makes for shit decisions/bad product). 1 look @ Mr. Ballmer, says it ALL. Heck - why look so small here? The nation's economic, & credit status show it too RIGHT TO THE TOP (fake top, it's the 1% that run the show behind the curtain).
IF you watch StarTrek? You'll "get this":
Imo @ experience: Too many "geeks" are of the "Mr. Spock Mindset" (for lack of a better analogous comparison here): They much prefer their scientific duties to the Captaincy. By way of comparison & contrast?? Too much mgt. is Lt. Commander Gary Mitchell ("Morals... are for men: NOT 'Gods'"). We need "mixtures" of that.
You cited Russinovich - I agree, & used to be a 'co-worker' of his via Sunbelt, & have corrected his work before telling him WHAT (pagedefrag) but not only that but how to & why/where as well, which he thanked me for in email (and got the best of him in a debate @ Windows IT Pro too (using MS own docu
NT is being used in remote communications infrastructure by a specific pacific country in Afghanistan.
Why I use Delphi's VCL (statically compiled) http://it.slashdot.org/comments.pl?sid=3958509&cid=44243717 per your Dr. Dobbs journal article - makes for decent "single moving part self-contained" executables, like this one -> http://start64.com/index.php?option=com_content&view=article&id=5851:apk-hosts-file-engine-64bit-version&catid=26:64bit-security-software&Itemid=74 from "yours truly".
AND, again - per my last post http://tech.slashdot.org/comments.pl?sid=4020769&cid=44402835
I.E.-> On what to do to AVOID "DLL HELL", IF you use "extra moving parts" DLL's!
(imo, something to be avoided but, easily gotten around using static libs + doing placement as I noted, "seconding your article's motion" in the same stroke)
APK
P.S.=> Experience, even BAD experience (& yes I've had them) is like a punch in the head - you either learn by it, and do better, or keep getting them!
... apk