По долгу службы мне сейчас постоянно приходится очень плотно копаться как в Windows, так и в Linux. Мне нужно пропустить через себя концепции основных составляющих этих осей, чтобы затем отрыгнуть «птичье молоко» фундаментальных принципов работы той и другой, чтобы эти аспекты можно было донести до моих детей в Клубе.
Перечитывая Таненбаума, я размышлял над тем, какое все-таки впечатление производят на меня nix и винда. И тут меня осенила потрясающая до банальности метафора, на словах, касающихся реализации системных вызовов (все цитаты не точные): «В Windows есть, как правило, несколько способов сделать что-то ... В мире UNIX у вас есть обычно есть один простой способ сделать одну конкретную вещь..». и еще один пассаж: «Процедуры-оболочки транслируют Win32 API из ANSI в Unicode... потому что функции ядра NT работают только с Unicode». Т.е., понимаете, внутри ядро Windows организовано чрезвычайно продумано, нативно поддерживается Unicode и т.д. и т.п., но то, что видит большинство программистов - не то, чем является Windows на самом деле! Прослойка API Win32, которая обеспечивает сквозную совместимость приложений от Windows 98 до Windows 8 (читай: «социализированность», ага) без перекомпиляций и прочего - она нужна, чтобы вне зависимости от версии ядра и его внутреннего устройства, приложения, использующие Win32, видели одно и то же. (В ту же кассу система Windows-on-Windows, которая позволяет запускать 16-разрядные приложения на 32-разрядной системе и 32-разрядные - на 64-разрядных, и прочая, и прочая).
Короче говоря, у меня сложились в голове два образа:
UNIX. UNIX это такое насекомое с ограниченным набором базовых рефлексов (которые работают просто и предсказуемо), однако, обвешанное дополнительными модулямии... Таракан-киборг, проще говоря.
И Windows. Задуманная как переносимая и гибкая система. Скрывающая собственную сущность от самой себя. Внутри лучше, чем снаружи. Ну, понятно: человек.
Филасафия и операционные системы
ximerik
| среда, 04 декабря 2013