К основным чертам, определившим популярность ОС UNIX можно отнести:
1) Код системы написан на языке высокого уровня С, что сделало её простой для понимания, изменений и переноса на другие платформы. По оценкам одного из создателей UNIX, система на языке С имела на 20-40% больший размер, а производительность её была на 20% ниже аналогичной системы, написанной на ассемблере. Однако, ясность и переносимость, а в результате и открытость системы сыграли решающую роль.
2) UNIX – многозадачная многопользовательская система с широким спектром услуг. Система может выполнять различные функции – работать как вычислительный сервер, обслуживающий сотни пользователей, как сервер базы данных, как сетевой сервер.
3) Наличие стандартов. Несмотря на многообразие версий UNIX, основой всего семейства являются принципиально одинаковая архитектура и ряд стандартных интерфейсов.
4) Простой, но мощный модульный пользовательский интерфейс. Имея в своём распоряжении набор утилит, каждая из которых решает узкую специализированную задачу, можно конструировать из них сложные комплексы.
5) Использование единой, легко обслуживаемой иерархической файловой системы. Файловая система обеспечивает не только доступ к данным, хранящимся на диске. Через унифицированный интерфейс файловой системы осуществляется доступ к терминалам, принтерам, магнитным лентам, сети и даже памяти.
6) Очень большое количество приложений, в том числе и свободно распространяемых.
В центре находится ядро системы (Kernel). Ядро непосредственно взаимодействует с аппаратной частью компьютера, изолируя прикладные программы от особенностей её архитектуры. Ядро имеет набор услуг, предоставляемых прикладным программам. К услугам ядра относятся операции ввода/вывода (открытия, чтения, записи и управления файлами), создания и управления процессами, их синхронизации и межпроцессорного взаимодействия. Все приложения запрашивают услуги ядра посредством системных вызовов. Второй уровень составляют приложения или задачи, как системные, определяющие функциональность системы, так и прикладные, обеспечивающие пользовательский интерфейс UNIX. Однако, несмотря на внешнюю разнородность приложений, схемы их взаимодействия с ядром одинаковы. Взаимодействие происходит посредством стандартного интерфейса системных вызовов. Ядро состоит из трёх основных подсистем: