Теперь, после знакомства с основными понятиями, относящимися к операционным системам, и изучения конкретных механизмов, реализующих известные методы организации вычислительных процессов, вкратце рассмотрим архитектурные особенности современных операционных систем для персональных компьютеров типа ibm pc.
Прежде всего, отметим тот общеизвестный факт, что наиболее популярными являются операционные системы семейства windows компании microsoft. Это и windows 95/98/me, и windows nt/2000, и новое поколение windows хр/2003. Здесь же мы рассмотрим операционные системы, не относящиеся к продуктам microsoft, — это unix-подобные операционные системы linux и free bsd, а также системы qnx и os/2. При изучении известных всему миру систем с общим названием linux и системы free bsd, по которым сейчас появляется немало монографий и учебников, упор будет сделан именно на основных архитектурных особенностях семейства unix, в абсолютном своем большинстве относящихся ко всем unix-системам. Система qnxбыла выбрана потому, что является наиболее известной и удачной операционной системой реального времени. Операционную систему os/2 мы рассмотрим последней. Хотя сейчас эта система уже практически всеми забыта1, она была одной из первых полноценных и надежных мультипрограммных и мультизадачных операционных систем для персональных компьютеров, в которой поддерживалось несколько операционных сред.
Unix является исключительно удачным примером реализации простой мультипрограммной и многопользовательской операционной системы. В свое время она проектировалась как инструментальная система для разработки программного обеспечения. Своей уникальностью система unix обязана во многом тому обстоятельству, что была, по сути, создана всего двумя разработчиками1, которые делали ее исключительно для себя и первое время использовали на мини-эвм с очень скромными вычислительными ресурсами. Первая версия этой системы занимала всего около 12 кбайт и могла работать на компьютерах с очень небольшим объемом оперативной памяти. Поскольку при создании второй версии unix разработчики отказались от языка ассемблера и специально придумали язык высокого уровня, на котором можно было бы писать не только системные, но и прикладные программы (речь идет о языке с), то и сама система unix, и приложения, выполняющиеся в ней, стали легко переносимыми (мобильными). Компилятор с языка с для всех оттранслированных программ дает реентерабельный и разделяемый код, что позволяет эффективно использовать имеющиеся в системе ресурсы.