Linux как операционная система
Сам термин "Linux" не вполне определен. Прежде всего, он обозначает собственно ядро – сердце любой версии Linux. В более широком понимании, Linux – любой набор программ, выполняемых в этом ядре и называемый дистрибутивом. Задача ядра – обеспечение базовой среды, в которой могут выполняться программы, в том числе программы базового аппаратного интерфейса и системы управления задачами или выполнением программ.
Строго говоря, в конкретный момент времени существует лишь одна текущая версия Linux, и это – текущая версия ядра. Торвальдс считает ядро собственной вотчиной в мире binux, позволяя тысячам разработчиков во всем мире разрабатывать прикладные программы и службы для этого ядра.
Если понимать термин "Linux" в широком смысле – как набор программ, выполняемых на ядре Linux, то версий этой операционной системы окажется великое множество. Каждый дистрибутив имеет собственные уникальные характеристики, отличаясь методом установки, набором средств и способом обновления версии. Но поскольку в.основе каждого дистрибутива – все тот же Linux, почти любая программа, работающая в текущей версии одного, дистрибутива, будет работать в текущей версии другого.
Примечание
Дистрибутивы Linux подробно рассмотрены в гл. 2.
Отметим: двойственность термина "Linux" отражает путаницу в определении понятия операционной системы. В коммерческом смысле операционная система – это широкий набор программ, сосредоточенных вокруг ядра. Под это определение подходят Windows 95, 98 и Me, Windows NT и Windows 2000, а также Macintosh OS.
В техническом представлении операционная система ограничивается ядром, содержащим основные системные функции и необходимым для разработки любой программы.
Исходя из любого определения, Linux является операционной системой. Особенность ядра Linux, отличающая эту систему от прочих операционных систем для настольных ПК, состоит в том, что это система многозадачная и многопользовательская.
Многозадачная операционная система
Скорее всего, термин "многозадачность" вам знаком, даже если не вполне понятен.
Когда настольные вычислительные системы переходили от Windows 3.1 к Windows 95, многозадачность новой системы поднималась на щит как главное достоинство.
Многозадачность системы – это ее способность выполнять одновременно несколько программ (процессов). К примеру, система может одновременно выполнять печать документа, кодирование файла и набор телефонного номера для подключения к Internet, в то время как пользователь, уютно устроившись в кресле, набирает текст в текстовом редакторе. При таком количестве фоновых задач активный текстовый редактор не должен зависать или переходить в нерабочее состояние каким-либо иным образом.
Это и есть чудо многозадачности. Компьютер с единственным процессором способен выполнять несколько задач параллельно. Конечно, процессор не может выполнять одновременно несколько действий, и эффект многозадачности достигается за счет быстрого переключения с одной задачи на другую в соответствии с потребностями каждого процесса.
Если многозадачность хорошо обеспечена, то выполнение нескольких задач в фоновом режиме не должно мешать работе пользователя в текстовом редакторе. Все процессы должны проходить гладко, с хорошим откликом компьютера.
Системы Unix всегда обеспечивали многозадачность более высокого порядка, чем Windows. Unix поддерживает одновременное выполнение нескольких задач способом, идеальным для больших корпоративных серверов и мощных рабочих станций. Сегодня лишь Windows 2000 со своим предшественником Windows NT столь же надежно обеспечивают многозадачность. Даже Windows 95/98/Ме, несмотря на все фанфары, трубившие по этому поводу, с трудом управляется с большим числом одновременно выполняемых процессов.
Система Linux, подобно Windows NT и Windows 2000, поддерживает многопроцессорные компьютеры, наподобие двухпроцессорных систем Pentium III. Эти системы реально выполняют два одновременных действия. Многопроцессорность в сочетании с многозадачностью позволяет значительно увеличить количество программ, одновременно выполняемых на одном компьютере.