Для * nix я обнаружил, что «Искусство программирования Unix» Эрика Рэймонда очень хорошо выражало идеи философии Unix. Вся книга в сети, я рекомендую эту главу, чтобы увидеть, о чем я говорю. Это в основном излагает объединяющие концепции Unix операционных систем и их приложений. Например:
- Правило модульности: пишите простые части, соединенные чистыми интерфейсами.
- Правило прозрачности: Создавайте видимость, чтобы упростить проверку и отладку.
Затем он рассказывает, как применяются эти правила.
Что составляет философию Windows?
Я никогда не понимал философию операционных систем Windows и никогда не знал никого, кто знает достаточно, чтобы ответить на вопрос. Гугл это для меня просто вызывает кучу пустяков. Существует ли эквивалентная книга или набор статей по программированию в Art Of Unix, но для операционных систем Windows?
Мне также было бы интересно, если кто-то думает, что у него есть хороший ответ, но это может быть слишком длинный пост.
Ответы:
Взгляните на канал MSDN9. Там вы получите невероятную информацию о том, что инженеры Microsoft намеревались / рассуждали об определенной программе или функции.
Для Windows: мой самый любимый видео-блог Дэйва Проберта о ядре Windows (с некоторыми замечаниями о различиях с Unix): http://channel9.msdn.com/shows/Going+Deep/Windows-Part-I-Dave- Probert / .... и другая часть 2-4 .... (вы также можете посмотреть другие видео "Going Deep" :-).
Радоваться, веселиться.
HTH, Томас
PS: Кроме того, вы найдете очень много информации в книгах «Внутри Windows NT», первая часть издания была довольно замечательной для понимания внутренней работы WIndows NT.
источник
Unix, от "канала" и выше, предназначен для процессов, взаимодействующих в виде простых текстовых протоколов. Следовательно, дизайн различных интернет-протоколов - SMTP, HTTP, IMAP, POP и т. Д. Понятен человеку. Таким образом, разработчики должны писать протокол для написания и анализа кода, но часто просто взаимодействовать с программами, которые вы не контролируете.
Окно, напротив, построено вокруг вызова процедуры / вызова метода. COM и преемники предоставляют способы расширения вызовов процедур в DLL, между потоками процесса, между процессами и по сети. Все это довольно прозрачно, особенно в объектно-ориентированных языках. Это облегчает написание очень больших сетевых приложений - при условии, что вы контролируете все компоненты. Это усложняет замену части сложной взаимосвязанной системы на новый фрагмент кода. Например, формат файла Microsoft Word очень странен как формат файла, но прост как представление объектов в памяти, используемых Word. Проводной протокол Exchange - это MAPI-over-DCOM: с точки зрения разработчиков Outlook все, что им нужно, это получить объект почтового ящика и вызвать на нем методы,
источник
Блог Рэймонда Чена ( http://blogs.msdn.com/oldnewthing/ ) является фантастическим источником информации такого рода, а также предоставляет подробные сведения о том, почему некоторые вещи такие же, как в Windows (пример : почему вы должны нажать на кнопку «Пуск», чтобы завершить работу? Потому что во время тестирования, когда пользователей просили выключить свои ПК, именно там они и щелкали).
источник
Я думаю, что вы можете почувствовать разницу в системах, посмотрев в меню «Пуск» Windows и сравнив его с меню «Пуск» KDE или Gnome. Меню * NIX организованы по задачам или категориям, а меню Windows - по программным компаниям. Это говорит о разнице в приоритетах создателей прямо здесь.
(Да, да, KDE / Gnome не являются «философией UNIX», но это по-прежнему разительная разница.)
источник