Other operating systems certainly could. Work from the minimum set of tools you need to create the OS, and allow users to either build those tools they need or have them ready to build quickly. Keep the resolution small and the color depth shallow so that you learn to do more with less, rather than trying to always reach for the newest, latest, and greatest. Build for the oldest possible machine first, and make newer machines to reach back into the shadows of the past. There is nothing on this Earth worth doing which requires the processing power we now possess in our pockets. If you can't do it in 64Kb, I assure you, it isn't worth doing.<p>There's also something here which Microsoft used to know in the 9x days and has since forgot (because it's not immediately profitable to remember in the current paradigm). The needs of a single-user system are different from the needs of a network terminal. Since Windows 2000, every Windows PC is a network terminal. Since OSX, every Apple PC is a network terminal. Unix-derived OSes have always been targeted at network terminals. In a network terminal, the machine might be used by more than one user; therefore, you can't allow too much customization. The data on that terminal might be needed by another user on the network; therefore you must protect a significant amount of that data and must prioritize system operation over user desire at every turn.<p>Oh, and one more thing. Stop worrying about profit and trying to hamstring the user. Either create a good, working, product that you stand behind with every fiber of your being... or don't create a product in the first place.