> Force hardware vendors to only sell hardware. If any software that can be changed remotely or by the user is off limits. Even firmware. Conversely, software vendors can only sell (or freely distribute) software.
So, I would go buy a smartphone at a shop, and then buy an OS to run on it at another shop? Or would it be allowed for a third party to integrate the two and sell me a working phone?
Also, would “any software that can be changed remotely or by the user is off limits” mean Intel/Samsung/… couldn’t sell CPUs with microcode installed, or even write microcode? It may be hard to legally define where the border between “software that’s part of the hardware” and “software.” lies.
> You'll get the necessary specs required to make it work on all OSes
I don’t see how that follows. Software company C could pay hardware company H to build hardware according to specs they give, with the specs under NDA, possibly even forbidding H to sell that hardware design to others than C.
I think banning trade secrets (https://www.wipo.int/tradesecrets/en/tradesecrets_faqs.html) on the interface between software and hardware, rather than splitting companies into hardware and software parts is the way to achieve your goals.
> So, I would go buy a smartphone at a shop, and then buy an OS to run on it at another shop?
Good point, by default you would. Perhaps allowing some third party to bundle the two could be a nice convenience, but then we must make absolutely sure that they never sell the bundle for less than the separate parts, that would be anti-competitive.
Also, I'm sick of paying for a Windows copy I never use. I'd very much like to see the OEM deals Microsoft make with laptop vendors just die.
> Also, would “any software that can be changed remotely or by the user is off limits” mean Intel/Samsung/… couldn’t sell CPUs with microcode installed, or even write microcode?
Depends whether that microcode can be changed by the user or remotely, or if doing so basically means returning the CPU to the factory. If it can conveniently be changed, that's software, and the actual interface to the CPU is not the final ISA, but how to encode that micro-code to make the final ISA. If however the microcode is etched or locked, then it's part of the hardware.
Another example would be an FPGA implementation of a RISC-V core: if the bitstream is locked into the NVCM it can no longer be modified, and thus counts as hardware. But if it's in the easily rewritable SPI flash, then it's software, and it can't be bundled with the FPGA itself.
While I'm not absolutely certain my border is the right one, I believe it's at least one that can be fairly easily delimited.
> Software company C could pay hardware company H to build hardware according to specs they give, with the specs under NDA, possibly even forbidding H to sell that hardware design to others than C.
Correct, some trade secrets need to be banned. Even further, I would void all ISA related patents and copyright. Specifically, cloning the functionality of any piece of hardware should be allowed, similar to how the IBM PC was cloned.
Note thought that splitting the activities is still worth it: when software is bundled with the hardware, we still need exploitable specs. Banning trade secrets doesn't force vendors to disclose them, and even if they do disclose them, nothing forces them to make especially readable beyond regulatory mandate, and nothing forces them to simplify their hardware interfaces. Exposing hardware interfaces to the competition however may provide very strong incentive to improve not only the hardware, but it's programming interfaces as well.
So, I would go buy a smartphone at a shop, and then buy an OS to run on it at another shop? Or would it be allowed for a third party to integrate the two and sell me a working phone?
Also, would “any software that can be changed remotely or by the user is off limits” mean Intel/Samsung/… couldn’t sell CPUs with microcode installed, or even write microcode? It may be hard to legally define where the border between “software that’s part of the hardware” and “software.” lies.
> You'll get the necessary specs required to make it work on all OSes
I don’t see how that follows. Software company C could pay hardware company H to build hardware according to specs they give, with the specs under NDA, possibly even forbidding H to sell that hardware design to others than C.
I think banning trade secrets (https://www.wipo.int/tradesecrets/en/tradesecrets_faqs.html) on the interface between software and hardware, rather than splitting companies into hardware and software parts is the way to achieve your goals.