Архитектура -- это что в оси имеется, как всё это взаимодействует, как ось взаимодействует с программами пользователей и т.д. Ну а внутреннее устройство -- это как всё это реализовано на практике.
получается, грубо говоря, что архитектура - теория, а ВУ - эта же теория, но реализованная на практике? Отличия тогда нет получается. Получается, что человек знающий внутренне уст-во знает и архитектуру, но человек знающий архитектуру, не факт, что знает ВУ, так как, например, есть недокументированные возможности внутреннего устройства ОС. Так я понял?
Архитектура это абстракция внутреннего устройства. Если бы вы писали ос, вначале бы вы продумали ее архитектуру - из каких компонентов состоит система, кто, как и с кем взаимодействует, какой планировщик задач и алгоритмы планирования, какие средства IPC там будут использованы, модель безопасности и т.п. архитектурно сравнивают системы, когда выбирают, какую из них лучше применить. А реализацию всю сложно знать, систему писали много человек, скорее всего вы знаете ее отрывочно только что вам нужно с чем вы практически работали и к чему вы видели исходники. Архитекты могут не знать, что там накодили кодеры.
Архитектура - это как видят ОС приложения, какой интерфейс она им предоставляет. А внутреннее устройство это реализация этих интерфейсов внутри ядра. Для того, чтобы писать под ОС обычные приложения надо знать архитектуру, но внутреннее устройство нет. Внутреннее устройство надо знать только для разработки самой ОС или для использования каких либо недокументированных возможностей. А обычным приложениям в эти тонкости лезть вредно - внутреннее устройство в отличии от архитектуры может легко поменяться в другой версии ОС. Пример: Windows и ReactOS - архитектура одинаковая (даже можно запускать приложения и драйвера от Windows в ReactOS и наоборот), но реализация различная. Однако из-за того, что некоторые нехорошие приложения используют недокументированные возможности, особенности реализации совместимость не совсем полная.
Реализация -- слишком низкоуровневая вещь, и там обычно получается по пословице "за деревьями не видно леса". А архитектура -- это взгляд сверху. Где граница, чётко не скажешь, хотя можно выделить вещи, однозначно относящиеся или к архитектуре (например, система с монолитным ядром или микроядерная: подход выбирается именно на макроуровне, а реализация подчиняется выбору), или к реализации (например, какие параметры в какие регистры загружаются при вызове некоей подпрограммы ядра).