

I think the main requirement for general purpose computing is the decoupling of software from hardware and allowing modularity.
The problem is that with Apple, Samsung, etc fully integrate the hardware and software in house, this means all the drivers and blobs can be kept in house secret.
On the other hand a PC can be built by anyone from hardware components they choose. In order to make this work all the drivers and blobs for all the hardware components need to be public, and therefore can be integrated into the Linux kernel, allowing anyone to use an open source OS on their system.
Back in the day when people wanted to share something with the world they would set up a website (instead of sharing on social media, because there were no social media). When large files needed to be moved between people, Bittorrent was used (instead of CDNs, because there were no CDNs).
These still work and needs to be rediscovered and used. Perfection is reached when torrent downloads are integrated into the browser itself.