640k Really Is Enough for Anyone
blog.sourcerer.io
blog.sourcerer.io
https://www.computerworld.com/article/2534312/operating-syst...
He has since gotten way, way better PR handling though. Just look at the way Reddit absolutely adores him nowadays (he's done lots of very carefully managed AMAs). Heck, even on HN there's enough young people who have no idea how much this one individual repressed computing progress over 1-2 decades through market abuse.
Here's one example of many of how the pro billg PR is done:
https://www.reddit.com/r/secretsanta/comments/5iphpa/i_won_s...
Back then, you could just deny something happened, and often get away with it because you weren't being surveilled 24 hours a day.
It's like when someone very knowledgeable about a subject posts information on Wikipedia. Even if they were there first hand; even if they were personally involved with the event; even if they wrote magazine articles about it and did radio interviews about it, and it was covered by television — if it happened before 2000, it'll get erased from Wikipedia by someone on the other side of the planet because there's not a web link or an ancient library book to cite for "proof."
/Yes, I'm speaking from experience.
Sort of related:
It's a bit distressing, in away, how hard it is to access information from before like year 2007. Most of it is locked up in government reference libraries and you generally have to bonafide "researcher" to even access physical copies of publications. Oh, and it's not allowed to make copies of the material.
Thanks a lot, Disney.
You seem to have a pretty prominent chip on your shoulder regarding Bill Gates.
Gates has donated billions of dollars of his fortune to charity and he's largely credited for having eradicated malaria through these efforts in multiple countries.
It's hard to find a good reason to dislike someone like that.
Did you ever pause to consider how much humanity would have progressed without him stopping so much progress in the first place?
(I deleted a section on the malaria stuff; I misread your comment slightly at first.)
Many, many people disliked him after his predatory business days. This is the perfect way to a) keep doing interesting work, b) getting people to like him again, c) get some personal karma.
I can quite easily see the appeal of this.
Also; I'm a big fan of his current work. I loved how my country (Sweden) matched a very large billg foundation program funding the other year; I think he's way better equipped with handling that money than my government's idealistic but fumbling people.
I just think we shouldn't forget his past just because he's turned into modern day santa. We should learn from history...
Yeah, you definitely have something against him, don't you?
I don't really care what his motives are, I just look at the results of his contributions and there is no doubt in my mind he will be remembered as someone who was instrumental in saving millions of lives and advancing our civilization.
> Many, many people disliked him after his predatory business days.
I profoundly disliked him as well back in the days, especially since I was a hard code Amiga fan.
As opposed to you, I have changed my opinion based on additional data.
Well, yeah.
I think we'd be at least 5 years further into the future in terms of software than we currently are, possible 10, unless he hadn't abused the markets so gravely.
#cough# Safari on Apple devices
#cough# Chrome on Android and ChromeOS devices
Besides, the integration with the operating system isn't the problem. It's the integration with the only operating system. It isn't monopoly abuse if you don't have a monopoly.
This is way too non-inclusive, but at least it's something:
https://www.pcmag.com/feature/302767/9-companies-microsoft-d...
In the 80s Microsoft under Bill Gates was extremely fierce. Silicon Valley software companies lived in constant fear.
There was a bunch of well-documented market abuse using the control of the OS (MS-DOS).
Further reading:
Hardly. Market share is still roughly 85% Windows, 15% Mac, and fuck-all % Linux, which is reflected in the level of support provided for applications, games, hardware etc. Even disregarding compatibility, MacOS is not a straightforward alternative as it only runs on Apple hardware, which is very expensive and only offers a narrow range of opinionated designs.
Please no ad hominem attacks, focus on what I said, not how old I am.
But if it matters to you, I wrote my first lines of code in 1979 on an Apple ][ and I've lived through the exact same times you did.
I find little point in speculating on what could have happened that didn't, I focus on reality and what people have actually achieved in their life time.
Is fine.
> How old are you? Let me just guess; not old enough to have experienced living/working in tech while Bill was doing his thing
Is an ad hominem attack.
I know you're struggling to find hidden reasons that could lead someone to not despise Bill Gates, but you're wasting your time.
The man is saving millions of lives with his fortune, just deal with it and the reality that he might not be as evil as you want him to be.
It does illustrate the power of the combination of time and lots of money. You can literally alter truths.
The lack of a sense of history here is disturbing. I thought HN was better than this.
Microsoft made their own version of Java that almost killed Sun. I think it was J++ and later J# and then Microsoft made C# to replace it.
The original DOS was CP/M that Seattle Software and Microsoft made their DOS do CP/M API calls and a program to convert CP/M programs to DOS. At the time this was not illegal, ECT. Microsoft did Basic, Fortran, Cobol without getting a license for them for 8 bit Pcs.
Those are just a few examples, mostly unethical but not criminal in 1970s and 1980s. By 1999 the DOJ investigated Microsoft.
https://www.justice.gov/atr/us-v-microsoft-courts-findings-f...
Also Apple fans claim Microsoft ripped off the Macintosh with Windows and tried to put Apple out of business.
To people like Gates there are good and bad things, and people only know the good things and ignore the bad things because Microsoft built their own industry, ect.
(Is this an attack? I can't tell any longer.)
Same reason plenty of people still believe in the Loch Ness Monster or that Crop Circles were made by aliens.
Some people are hopelessly refractory to critical thinking and will never change their mind, no matter the evidence presented to them.
- To emphasize that the definition of "a lot of [computational resource X]" changes over time.
- That people previously had to do a lot of similar computational tasks with a lot less (which this article is making use of).
With that said, I agree that he shouldn't be asserted as the author of the quote like it's a fact, but that just means you should quote it as "attributed to Bill Gates".
That being said, I actually did install MS-DOS 6.22 on three computers over the last couple of years, because the company I work at does - among other things - industrial automation, and (at least) one of our customers has a plant built with automation technology that can apparently only be programmed and configured with a program running on DOS. And it must do some rather funky things, because the software will reliably fail to talk to the PLC if it is running in a virtual machine or on FreeDOS. And of course the company that has written this software has gone out of business a long time ago, so there won't be any updates, either. ;-) If I didn't have more important things to do, figuring out why it does not work on FreeDOS could have been a lot of fun, but just installing MS DOS was the faster solution.
Still, installing DOS these days is an interesting experience. The whole system comes on three floppy disks, the installation procedure takes about 15 minutes, and the freshly installed system boots up in about 30 seconds, including the BIOS doing its thing. Admittedly, you cannot do very much with it without additional software.
Three floppy disks - that is about 4.5 Megabyte, Ladies and Gentlemen. Today's high end CPUs have as much L2 cache, or more.
And primitive as it is, there are situations where DOS is a reasonable choice.
I'm still glad, though, that I never had to deal with segmented memory. That sounds horrible.
Honest question/clarification, is that... considered fast?
My DOS system used to boot that fast. A C64 is almost instant. And my old ~2013 Chromebook boots in ~7 seconds into Linux with an eMMC drive (slower than an SSD but still fairly fast). It's only got 2 GB of RAM so when it hits swap it'll bog to a standstill so it's often faster just to hit the reset key than try and recover.
I'd far rather OOMkiller killed off non active tabs (there's almost always a web browser using the memory on a desktop), or run away apache processses, than try to swap. For that reason I never configure swap on any of my machines.
There are other, more cooperative ways of doing it. For example, always save enough state to restore after a kill when becoming a background task. But it's also more work.
Booting from ROM is one thing. Loading something from tape, that's another story.
I think some C64 units had a spare socket for GEOS the GUI made for the C64.
Compared to that, <30 seconds is very fast. SSDs have been a real game-changer, though. My home desktop takes less than 10 seconds from boot manager to display manager. I used to be very patient, now I kind of regret all the time I spent waiting for some computer to boot. ;-)
The C64 boots off ROM, IIRC? So that is kind of cheating. ;-) But yes, I had a C64, too, the delay between switching it on and the machine being usable was too low to notice.
Surely every plant like this would pay something for the ability to run on modern OSes, and presumably there are enough plants using this kind of software to recoup the cost of development?
Context: I used to work on solar power management and control, and developed manufacturing processes to build our hardware.
For the first part, if the original company has gone out of business, and enough records and knowledge lost and scattered, then it'd actually potentially be very difficult for a new group to identify what the original customers were, much less identify what the potential size of market is today. That's quite a lot of risk to take on (in my mind anyways). Industrial automation is one of those things that people don't openly disclose in a way that makes it easy to canvas the market cheaply.
Moreover, for software that was put in place 20 years ago, it's likely that some of the functionality is unknown, i.e. the whole system works together, but exactly what is being done by each piece of software isn't fully understood by anyone still at the company. So it would require a bunch of work to even spec a replacement.
So it's totally rational to keep the existing, working system, even if you need a dedicated PC to administer it.
(Source: I was in a similar situation ~20 years ago.)
I've thought of reverse engineering the software but to tell the truth the program and the machine it controls were just built very well and so long as we have spare hardware it could go forever.
Due to driver problems I'm not sure you could even build a system these days that would be guaranteed future proofed for 30+ years.
I worked at a textile company 17 years ago and the bought brand new "state of the art" embroidery machines from Germany and they ran Windows 3.11 for Workgroups. At the time I was just "the web and IT guy" so it was my job to set up a token ring network with coaxial cables to network these machines together so the control computer could send embroidery designs remotely. This was cutting edge stuff, prior to that we had 3.5" floppies and a sneaker net.
But even at the time Windows 3.11 was 8 years old. To this day it is the only time I have seen token ring. I have "fond" memories of walking through hundreds of feet of coax checking each connection to find out which one came loose and took the entire network down.
https://en.wikipedia.org/wiki/10BASE2
Even back then when we wanted to add a new host to the network we had to hunt in the "junk bin" in the local store to get a networking card, then pray that it was supported under Linux.
I can say that I've never used token-ring though.
As a dumb example I saw a platformer for the ZX spectrum not long ago, where the falling speed was not linear but accelerated, which may seem trivial now but back then was something really unusual and I didn't realized how big was the difference after watching it. Then you have stuff way more complex such as the RTS for the Commodore mentioned by the author.
About the quote. Bill Gates said once in an interview:
> I've said some stupid things and some wrong things, but not that. No one involved in computers would ever say that a certain amount of memory is enough for all time.
And a guy in Texas recently released a very interesting looking Ultima IV-style game for the Commodore 64.
http://www.atari-forum.com/viewtopic.php?t=28171
I think they can buy the ROM and put it on the Harmony cart Sdcard and it will play.
There seems to be new games that can't afford to burn a ROM and ship a cartridge so they use this cart instead to download ROM images to it.
The article mentions coding in C++ (which, except for the << operator, is actually C) and with a generic (and therefore a little clumsy) interface to assembly-level DPMI stuff.
64kB is enough to run non trivial programs written in modern C.
(Disclosure: I wrote it:) A cross-development environment with a thin and clean C API to the original assembly-level firmware interface of the Amstrad CPC.
https://github.com/cpcitor/cpc-dev-tool-chain and a puzzle game to exercise the whole thing https://github.com/cpcitor/color-flood-for-amstrad-cpc
Do git clone ; configure ; make run and it runs.
There's something to be said for using FreeDOS simply as a loader for a real-time control program. It's not doing anything in the background. There's no networking stack. There's no way to attack it without physical access.
Also synchronous (and also often non-preemptible) disk/FS IO was for the long time the only way it was done. For example the reason that on Linux process that got stuck accessing NFS or removable drive that got removed was unkillable (in 'D' state) was to preserve illusion of such semantics to user processes (ie. that IO to filesystem and block devices will never fail with EINTR). And I would not be surprised if many deeply-embedded RTOSes do the same to this day.
Also having no network stack or USB stack is pretty limiting these days. I'm sure FreeDOS can implement these, there are definitely DOS drivers out there for older network cards to get TCP/IP up and running and there was always serial modems which we used extensively in "the old days" (pause while audience cringes!)
Being cut-off from the outside world is of course security bliss but the PC still needed to be physically secure as there were no passwords/encryption and remote maintenance is not an option.
A glaring omission is access to long mode. There's no DPMI for long mode. You can knock the PC into long mode, but DOS calls are no longer accessible in any fashion.
My memory is vague on this, but I believe the core DOS commands (e.g., copy) were part of the ROM BIOS (or maybe they were just always loaded into non-user-accessible RAM as part of boot). So they were always present and did not affect available user RAM. The non-core DOS commands (e.g., xcopy) had to be loaded into user RAM to run. What's more, if you had a diskette-based system (i.e., no hard drive), you would have to load the floppy diskette that had the particular extended DOS command you wanted to run, before you could run it (because it had to be read off the diskette).
No dos commands were normally part of ROM. In fact even command.com was designed such that large part of it could be thrown away if additional memory was required and then reloaded from disk when user program terminated (this was implemented by relocating the "transient" part onto the end of usable address space and detecting whether it was overwritten by user programs). Larger DOS file managers usually use similar approach, but simpler: the UI is implemented by separate binary that simply records what the user wants to run somewhere and then exits passing control to small stubbinary that starts requested program and restarts the UI when the program ends.
Edit: MS-DOS 2.0's command.com detects that the transient part was overwritten by means of single byte checksum. The reason why it is done in this somewhat hackish way is that DOS allocates all of the available memory for most MZ EXE programs regardless of how many they actually use (MZ header specifies minimum and maximum amount of unitialized memory needed, with no maximum being the default).
"I have to say that in 1981, making those decisions, I felt like I was providing enough freedom for 10 years. That is, a move from 64k to 640k felt like something that would last a great deal of time. Well, it didn’t – it took about only 6 years before people started to see that as a real problem."
Can you imagine an entire OS in 20-something being built today? BIOSes are larger than that.
What would you do on the system as soon as you need to look something up though? Even though it's easy to look something up via smartphone, if the code snippet is more than a sentence, do you really want to retype the whole thing rather than just copy and paste?
It's a very romantic notion though, and there's even a kickstarter for the writer's version [1], and I recommend setting up a system like that as a fun weekend project, but (at least for me) it turns out, through years of (mis)training, those 30 browser tabs I have open are an important part of my workflow, so I need an operating system that allows for that, in order to be productive (and unproductive) on a day-to-day basis.
[1] https://www.kickstarter.com/projects/astrohaus/hemingwrite-a...
There was a glorious period of the DOS days, when:
* all sound cards had a mode compatible with SoundBlaster or at least AdLib cards;
* all Ethernet cards had a mode compatible with NE2000 cards;
* all video cards had EGA/VGA/VESA compatibles modes.
So that defined an informal standard for PC/DOS. Your programs just needed to support these and you could get a working system (even if you didn't have specific driver to use the full power of the specific card).
Nowadays, if you try installing DOS on a current machine, you won't be able to get your games to play sound, nor to connect to your LAN. Video cards still seem to honour VESA standards (however only old ones, with old resolution, there was no VESA update to support modern resolutions), but for how long?
I hit that reality when I tried to install DOS on two machines a few months ago. Then you fetch old Ethernet or sound cards from dusty boxes in the attic and... there is no ISA (or even PCI) slot on your motherboard, damned!
And modern chips have ditched the compatibility layer with older chips :-(
And of course, it has been a while since manufacturer stopped providing DOS drivers for their specific chips.
This is such a reckless statement, IMO. Sort of like the opposite of "If a tree falls..."
But yeah, even when you moved drivers to the higher memory areas, there had to be the actual memory manager loaded to do that, so the full 640k wasn't really possible. And despite Origin games like Wing Commander and Ultima basically needing the next generation of PCs not released yet, they didn't really demand the impossible.
You could make menus items in the config.sys to chose between different options, you did not need several boot disks. I don't remember in which MS DOS version it was introduced (perhaps 5.0?), but that was the normal way to go after that.