3 ms·
Computers are general purpose in that they are capable of doing anything possible by a Turing machine with limited memory. Software built on top of that can be
by grawprog 6y ago
Computers are general purpose in that they are capable of doing anything possible by a Turing machine with limited memory.
Software built on top of that can be whatever we want within those limits. Even most proprietary operating systems are relatively general purpose. On windows and Mac os, you can generally acquire a wide range of software capable of doing many things and can create your own with relative ease.
Smartphones get a little less general purpose, again above the level of the actual computer though. In the case of smartphones and consoles and such, the extra software thwarting the general purpose nature of the computer is buried a little deeper as firmware flashed onto rom chips.
Then with computer powered appliance type devices, the only software is whatever is flashed onto the rom chip buried inside there that you can't really touch without some hardware modding.
In the end, computers have never stopped being general purpose, and likely never will. It's just the software separating the user from the computer is getting deeper and deeper into hardware.
I realize there's good security and user friendliness arguments to be made for this kind of thing, but it's a worrying trend. It'll create almost a pseudo class system with the people who have real computers and can use them to make money and do things and the people who have toys that suck money from them and feed them consumer garbage.
- akiselev 6y agoI’m having a hard time coming up with anything that a modern OS on a modern CPU can’t do - they’re about as general purpose as can be for any nontrivial but nuanced definition of “general purpose.” The only exception I can think of is real-time IO, which we offload to specialized chips with buffers and queues through PCIe and other busses. However, that’s a physical limitation since these peripherals would be impractical to implement in software until FPGA tech improves and gets significantly cheaper.
- seniorivn 6y agorun a technologically secure code, with root of trust in cryptography/security model your software uses On modern pc/server/mobile computers it's impossible, your root of trust there is manufacturer and their microcode/embedded security modules with separate operating system etc
- grawprog 6y agoYeah...even 'general purpose' computers are shipped with hardware level 'software' that's beyond access from users. Intel and AMD have their management engines, Microsoft's got their in with uefi. I'm not sure if there even are any modern processors available with the kind of access allowed by 8 and 16-bit CPUs...
- TheOtherHobbes 6y agoThere's a lot you can't do, or can only do too slowly to be useful. This is why scientific and commercial mainframes still exist, and why a lot of computing is offloaded to cloud services, relegating the modern OS on a modern CPU to a client system. There are also entirely classes of fairly conventional applications - A(G)I, true holographic displays, pseudo-real telepresence, real-time photo-realistic rendering (although that's starting to become possible), distributed non-localised filesystems, associative semantic storage of all kinds - that modern hardware is still too slow for. And more speculative classes too. In fact contemporary hardware is mostly quite slow and dumb. It's incredibly fast, small, and cheap compared to a mid-80s mainframe, but it's going to look very underpowered and crude fifty years from now.