WarGames and the Great Hacking Scare of 1983 331
James W writes "Yesterday was the 25th anniversary of the release of WarGames and Christopher Knight has written a retrospective about the film and its impact on popular culture. In addition to discussing how the movie has held up over time, WarGames was responsible for what Knight calls the Great Hacking Scare of 1983. Some examples mentioned are 'one CBS Evening News report at the time that seriously questioned whether parents should allow their children to access the outside world via their personal computers at home. A magazine article suggested that computer modems be 'locked up' just like firearms, to keep them out of the reach of teenagers. I even heard one pundit proclaim that there was no need for regular people to be able to log in to a remote system: that if you need to access your bank account, a friendly teller was just a short drive away. And Bill Gates once declared that the average person would never have a need for more than 640 kilobytes of memory in a personal computer, too.'" 2008 is also 25 years after the real-life prevention of a WarGames-style nuclear incident.
Ugh... (Score:5, Informative)
Stop spreading these myths. (Score:2, Informative)
No. He actually never said that. Not once.
Re:WarGames and Disillusionment (Score:4, Informative)
Thats because you didn't have S.A.M.
http://en.wikipedia.org/wiki/Software_Automatic_Mouth [wikipedia.org]
Enjoy,
Might as well mention the DEFCON game (Score:5, Informative)
In fact, I think I'll go home and play some.
Re:Locking up computers (Score:3, Informative)
What's more (Score:5, Informative)
You can actually see a similar (though not the same thing) situation today when you approach 4GB of RAM in a 32-bit system. With a 32-bit address bus you can, of course, address 4GB. The problem is that hardware still needs memory areas to work, and actually far more than it used to. So you'll find that you get less than 4GB of RAM accessible, how much depends on what hardware you have installed. To actually get full use of the 4GB of RAM, you'll need to run on a 64-bit chip, which has a larger address bus and thus memory ranges for the hardware.
So DOS was never the reason here. It was the way the hardware was designed.
Re:Thank God (Score:4, Informative)
Re:My favorite 'scare' (Score:3, Informative)
Re:What's more (Score:5, Informative)
First, 64k/page * 100 pages is 6400k.
Second, the 640k limit was due to the video ram being mapped in the memory region between 640k and 1 MB, at address A000:0000. Which is why DOS extenders could get you that memory back in 386+, by remapping the memory to other addresses. Here's a memory map: http://www.infokomp.no/techinfo/doc/DosMemory.htm [infokomp.no]
Third, your 32bit/4GB ram stuff is garbage as well. Most OSs claim address space at the end (the upper 1/2GB) for the kernel. That makes it harder to use. It's not a hardware problem at all, OSs tend to have simplistic userland/kernel memory address space mappings. CPUs went to 64 bit before 4GB was cheap enough for this to be a problem, so no work was done to really reduce the kernel address space footprint (or to separate the address spaces altogether).
Re:What's more (Score:5, Informative)
Actually, I recall x86's real mode pages actually overlapped in the bus address ranges that they mapped to. So in this case number of pages * page size doesn't give total addressable real memory. Can't remember the actual numbers, however.
Actually, although what you say is true, the OP was also entirely correct in noting that hardware sometimes makes large regions of memory unavailable, even in relatively recent computers. The situation in question is independent of the OS memory model, although that has its own implications for memory use.
PCI memory mapped IO needs to be put somewhere at a physical address that the CPU is able to access. Although since the Pentium Pro it's been possible for x86 machines to address 36 bits of physical address space, some motherboards only actually give them 32 address lines to use.
If you stick 4GB of RAM in such a box then the memory mapped IO regions need to go somewhere that the CPU can still address them using only 32 address lines. Since the CPU has only 2^32 bytes = 4GB addressable this necessarily means that they have to alias real RAM regions. Those RAM regions are rendered inaccessible. There's nothing you can do to get them back, either - you can't remap them to a different place because you're limited by the 32 physical address lines. This is sometimes called a "memory hole".
This is compounded by the fact that some BIOSes are worse at allocating memory mapped IO spaces than others. They sometimes seem to use up hundreds of megabytes for these IO regions. I think that's more a case of the allocation policies being stupid than that quantity of addressable memory actually being needed. The problem isn't entirely trivial, though, since I think PCI devices can request certain alignments of their memory regions, so they can't just be placed anywhere.
Event 32-bit server grade hardware typically offers support for the CPU physically to address more than 32-bits of physical memory, enabling these systems to play games with remapping memory to make all 4G (or more) of RAM be accessible, whilst providing the necessary MMIO regions. Those of us who are using lower grade hardware (me, for instance!) are limited to smaller memory sizes by the motherboard, regardless of what the CPU chip and OS are capable of addressing.
I was not pleased when I discovered my own machines suffered from this "feature" but equally well I was pleased when I got this machine cheap. I guess you can't have everything!
Re:Obligatory "WarGames" quote... (Score:3, Informative)
Re:It Was Close (Score:4, Informative)
Re:Lies! (Score:5, Informative)
Perhaps if the real inventors of the internet hadn't basically come out and validated his quote in full, you could get away with saying that, but since they did (and since you took that snippet out of a context that actually explains HOW he did it) I'm left with you having some axe to grind with Gore (and I can't imagine what it is at this point).
Anyway, for anyone out there who still thinks that gore even misspoke... he claimed to have taken initiative in creating the legislation which created (largely by funding) a larger version of ARPAnet that was accessible to the public at large. In other words, he has never claimed any (direct) technical contribution to the internet, but has claimed legislative, financial, legal, and social contributions to it. This makes sense, if you keep in mind that there are ways to contribute to technology other than coding.
Sorry, but he *DID* INDEED say it (Score:2, Informative)
From Wikiquote [wikiquote.org] (Where you can find to pointers to the source)
That means he had some influence on IBM to help them choose a layout. Of all different combination of layout, he went for the one that is hard to extend and is going to be a big problem down the line (rather than putting the ROM first, so ALL the address space after the BIOS is free for memory access, or a mechanism which would allow the BIOS to be mapped to any address space - which would have extended the address space of 16bits softwares up to 1MiB + 64KiB),
Re:Sorry, but he *DID* INDEED say it (Score:4, Informative)
Straight from the horse's mouth:
http://www.usnews.com/usnews/biztech/gatesivu.htm [usnews.com]
http://www.wired.com/politics/law/news/1997/01/1484 [wired.com]
And part of the reason it's misattributed:
http://www.nybooks.com/articles/15180#fn* [nybooks.com]
He *implied* that 640k was a fair amount "for the time being" but that it would need to be significantly increased as technology proved more demanding. He never implied that "no-one will ever need more than 640k".
Re:It Was Close (Score:3, Informative)
Re:It Was Close (Score:2, Informative)
"Pirates of Silicon Valley" is a very faithful account on Apple and Microsoft's early history. They really got all the details right in that one.
Of course, the fact that the plot isn't fictional certainly helped.
Re:What's more (Score:3, Informative)
You seem to be the first one to remember the gist of it. The 8086 had 16 bit pointers (I think there was another term) and 16 bit segments. The physical address was Segment*16 + pointer, meaning only the four least significant bits were identified entirely by the simple pointer and there was effectively 20 bit addressing, for 1MB of addressable memory.
According to my x86 assembler teacher (this is the guy who taught us to time delays by calculating cycles and clock speed, so take it with a grain of salt), the idea was to allow programs to use hard-coded pointer values, while the segment would let the program be put wherever in memory it actually fit. I was taking x86 assembler from the EE department at the time, and when I asked my SPARC assembler teacher in the CS department how SPARC did it, he said that everything there used relative pointers.
I turn 32 in three weeks. I should not be filling in details that were before everyone else's time.
Re:Gee thanks (Score:5, Informative)
Just quit sleeping, it'll be fine ;-)
I don't think it will probably help if I now remind you that all x86 CPUs, even your spiffy new multicore multi-GHz 64-bit gaming rig boot up believing they are an 8086. Your PC relives that memory management hell every time you switch it on until the software comes along and sets the "you're not a stupid old CPU" flag.
For this reason, it's important to remember not to touch the PC case whilst it's booting, otherwise you might get some real mode ectoplasm on you and be contaminated with insane memory models.
PS, don't have nightmares.
Re:What's more (Score:3, Informative)
Ah, thanks for that. Yes, that's what I was remembering but you remembered it better :-)
FWIW, I suspect the "pointers" were probably called something like "logical addresses" or "linear addresses", I can't remember which... x86 has some funny addressing terminology of its own and I think those terms come up when talking about protected mode; I suspect they come up with a slightly different meaning in 8086 as well.
For some reason I genuinely expected you to say "when I asked my SPARC teacher how that CPU did it, he laughed" - I suspect SPARC would have done something somewhat more sane from the start ;-) That's only a guess though, maybe I'm being optimistic! SPARC has it's own crazy functionality, as do all chips but it's still hard to beat x86 for general across-the-board insanity (in my opinion!).
It's quite nice to give this knowledge a dust off once in a while - it was really interesting to have this discussion even though I don't really need to know it.
A nice bit of trivia is that modern x86 processors support something called "big real mode". In real mode on an x86, you can only load segment descriptors that make sense in real mode. So it won't let you, for instance, load a segment descriptor that addresses memory above real mode's normal limit (1MB, I suppose from your description). However, you can switch to protected mode and load that segment descriptor, no problem, as it's valid there. The scary thing is that you can switch back to real mode and leave the segment descriptor in place - and it works, at least for some cases. Big real mode involves pulling that stunt so that you end up with real mode execution but able to access all the machine's memory. And apparently that's a feature, not a bug - some OSes / bootloaders actually expect this.
Anyhow, this stuff may be before everyone else's time. I'm turning 26 at around the time you turn 32 but I've had to grub through it a fair bit in the past few years. In another 10 years I expect either you and I will be sitting back and trying to explain to the young kids of today how computers used to be ....... or, we'll still all be using some future x86 chips that will still support all this in hardware. I shudder to think!
Re:It Was Close (Score:3, Informative)
There were no dialup modems to which you and your buddies could connect, no external connections to MILNET at all.
Actually there was a way in. Then at UC Berkley Cliff Stole [kentlaw.edu] found someone had gained access to a system at Berkley which was then used to access military computers. He later wrote a book, "The Cuckoo's Egg: Tracking a Spy Through the Maze of Computer Espionage" [amazon.com], about it. Some crackers, as they didn't follow the hacker ethic [wikipedia.org] I won't call them hackers, in Germany being paid by the KGB was able to gain access. Stole found them because of a 75 cent discrepancy between two computers, the one broken into and an accounting system that tracked usage and billing.
Falconphreaking (Score:3, Informative)
Phreaking (dunno if the portrayal was accurate, but phone booths around these parts fell victim to something not too far removed from what was shown in the movie).
How it was done was even easier than the movie portrayed it, for long distance calls a signal of 2600 Hz [wikipedia.org] would allow free calls. At the tyme Cap'n Crunch [wikipedia.org] included a whistle in the box that produced that signal. So all you needed to do was blow the whistle to make a free call. Blue boxes [wikipedia.org] which made the sound were also made.
FalconYou want Citations? You can't HANDLE the citations (Score:5, Informative)