Comment by TickleSteve
5 years ago
Its not the difficulty, but the scale.
Working on one bare metal system is relatively easy as long as you're willing to dive into drivers. Getting 1001 I2C drivers or maybe writing a drivers for tens of different types of flash devices is a different matter.
Your project will quickly become overrun with drivers for literally tens of thousands of devices... then comes maintenance.
Look at the Linux source tree... Good drivers are not trivial either. Simple ones are of course.
Basically, its a time-sink and it doesn't become useful for claiming "portability" until you're approaching the scale of something like Linux.
You're confusing portability with requirements. I'm aware that a long tail exists. Linux is a big tent for that sort of thing. I think that's great. I also want the freedom to live outside that tent during the times when all I need are the other 85% of use cases, which as I've shown, can be easily achieved by just one person. I don't believe that just because I ship actually portable executables that are able to do e1000/virtio that every hardware manufacturer is going to be kicking down my door eager to get support for their silicon merged. Linux is already doing a great job at that and I think Cosmopolitan is complementary.