
Почему так сложно писать операционные системы?

По сути - да, ОС - набор программ. Только делают эти программы совсем не то, что делает простая рабочая программа, ориентируемая на решение какой-то задачи.
Эта программа уже загружена в память, на неё нацелено всё внимание процессора. Ей остаётся только захватить нужные ресурсы - память, прерывания и пр. и исполнять свою задачу.
У ОС же всё сложнее. Рабочих программ, загруженных одновременно - а каждую нужно загрузить, после исполнения выгрузить, или оставить резидентной - множество. Следовательно, нужно распределить между ними все ресурсы по приоритетам, прежде всего главный ресурс - процессор, затем память, прерывания и пр. Как-то разрешить конфликты между программами, если они требуют одновременно одинаковые ресурсы, и всё это нужно делать чётко, быстро и без коллизий. Программы, требующие инсталляций, нужно зарегистрировать. Следить за выгрузкой подобных программ, вовремя освобождая их бывшие ресурсы. Все эти задачи решаются в реальном режиме времени с максимальной скоростью исполнения.
Так, что любая, даже самая простая ОС (например, DOS) довольно сложная система программ.
Конечно, есть рабочие программы, по сложности сравнимые с ОС, а по своим размерам во много раз их превосходящие, написать и отладить такие - тоже колоссальный труд.
Однако, что показывает мировая практика? Рабочих программ - миллионы всяких и разных, а различных ОС считанные сотни. Если ОС было бы написать так же просто, как среднюю рабочую программу, то таких бы ОС было великое множество, но это в целом не так.
автор вопроса выбрал этот ответ лучшим