Глава 1 Введение в ядро Linux
Глава 1
Введение в ядро Linux
Даже после трех десятилетий использования операционная система (ОС) Unix все еще считается одной из самых мощных и элегантных среди всех существующих операционных систем. Со времени создания операционной системы Unix в 1969 году, это детище Денниса Ритчи (Dennis Ritchie) и Кена Томпсона (Ken Thompson) стало легендарным творением, системой, принцип работы которой выдержал испытание временем и имя которой оказалось почти незапятнанным.
Операционная система Unix выросла из Multics — многопользовательской операционной системы, проект по созданию которой потерпел неудачу в корпорации Bell Laboratories. По прекращении проекта Multics, сотрудники центра Bell Laboratories Computer Sciences Research Center прекратили работу и так и не создали дееспособной диалоговой операционной системы. Летом 1969 года программисты корпорации Bell Labs разработали проект файловой системы, которая в конце концов была включена в операционную систему Unix. Томпсон осуществил реализацию операционной системы для реально не используемой платформы PDP-7. В 1971 году операционная система Unix была перенесена на платформу PDP-11, а в 1973 году переписана с использованием языка программирования С, что было беспрецедентным шагом в то время, но этот шаг стал основой для будущей переносимости. Первая версия операционной системы Unix, которая использовалась вне стен Bell Labs, называлась Unix System версии 6, ее обычно называют V6.
Другие компании перенесли операционную систему Unix на новые типы машин. Версии, полученные в результате переноса, содержали улучшения, которые позже привели к появлению нескольких разновидностей этой операционной системы, В 1977 году корпорация Bell Labs выпустила комбинацию этих вариантов в виде одной операционной системы Unix System III, а в 1982 году корпорация AT&T представила версию System V[2].
Простота устройства операционной системы Unix, а также тот факт, что эта система распространялась вместе со своим исходным кодом, привели к тому, что дальнейшие разработки начали проводиться в других организациях. Наиболее важным среди таких разработчиков был Калифорнийский университет в городе Беркли (University of California at Berkeley).
Варианты операционной системы Unix из Беркли именовались Berkeley Software Distributions (BSD). Первая версия операционной системы Unix, разработанная в Беркли в 1981 году, называлась 3BSD. Следом за ней появились выпуски серии 4BSD: 4.0BSD, 4.1BSD, 4.2BSD и 4.3BSD. В этих версиях операционной системы Unix была добавлена виртуальная память, замещение страниц по требованию (demand paging) и стек протоколов TCP/IP. Последней официальной версией ОС Unix из Беркли была 4.4BSD, выпущенная в 1993 году, которая содержала переписанную систему управления виртуальной памятью. Сейчас разработка линии BSD продолжается в операционных системах Darwin, Dragonfly BSD, FreeBSD, NetBSD и OpenBSD.
В 1980–1990-х годах многие компании, разработчики рабочих станций и серверов, предложили свои коммерческие версии операционной системы Unix. Эти операционные системы обычно базировались на реализациях AT&T или Беркли и поддерживали дополнительные профессиональные возможности, которые обеспечивала соответствующая аппаратная платформа. Среди таких систем были Tru64 компании Digital, HP-UX компании Hewlett Packard, AIX компании IBM, DYNIX/ptx компании Sequent, IRIX компании SGI, Solaris компании Sun.
Первоначальное элегантное устройство операционной системы Unix в соединении с многолетними нововведениями и улучшениями, которые за ними последовали, сделали систему Unix мощной, устойчивой и стабильной. Очень небольшое количество характеристик ОС Unix ответственны за ее устойчивость. Во-первых, операционная система Unix проста: в то время как в некоторых операционных системах реализованы тысячи системных вызовов и эти системы имеют недостаточно ясное назначение, Unix-подобные операционные системы обычно имеют только несколько сотен системных вызовов и достаточно четкий дизайн. Во-вторых, в операционной системе Unix все представляется в виде файлов[3]. Такая особенность позволяет упростить работу с данными и устройствами, а также обеспечить это посредством простых системных вызовов: open(), read(), write(), ioctl() и close(). В-третьих, ядро и системные утилиты операционной системы Unix написаны на языке программирования С — это свойство делает Unix удивительно переносимой и доступной для широкого круга разработчиков операционной системой.
Для ОС Unix характерно очень малое время создания нового процесса и уникальный системный вызов fork(). И наконец, операционная система Unix предоставляет простые и в то же время устойчивые средства межпроцессного взаимодействия, которые, в сочетании с быстрым созданием процессов, позволяют создавать простые утилиты, которые умеют выполнять всего одну функцию, но делают это хорошо, и могут быть связаны вместе для выполнения более сложных задач.
Сегодня Unix — современная операционная система, которая поддерживает многозадачность, многопоточность, виртуальную память, замещение страниц по требованию, библиотеки совместного использования, загружаемые по требованию, и сеть TCP/IP. Многие варианты операционной системы Unix поддерживают масштабирование до сотен процессоров, в то время как другие варианты ОС Unix работают на миниатюрных устройствах в качестве встраиваемых систем. Хотя разработка Unix больше не является исследовательским проектом, все же продолжаются разработки (с целью получить дополнительные преимущества) с использованием возможностей операционной системы Unix, которая при этом остается практичной операционной системой общего назначения.
Операционная система Unix обязана своим успехом простоте и элегантности построения. В основе ее сегодняшней мощности лежат давние идеи Денниса Ритчи, Кена Томпсона и других разработчиков, обеспечившие возможность операционной системе Unix бескомпромиссно развиваться.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
4.1. Введение в модель ввода/вывода Linux/Unix
4.1. Введение в модель ввода/вывода Linux/Unix Модель API Linux/Unix для ввода/вывода проста. Ее можно суммировать четырьмя словами. открыть, прочитать, записать, закрыть. Фактически, это имена системных вызовов: open(), read(), write(), close(). Вот их объявления:#include <sys/types.h> /* POSIX */#include <sys/stat.h>
Потом пришел Линус: введение в Linux
Потом пришел Линус: введение в Linux Операционная система Linux была разработана Линусом Торвальдсом (Linus Torvalds) в 1991 году как операционная система для компьютеров, работающих на новом в то время микропроцессоре Intel 80386. Тогда Линус Торвальдс был студентом университета в
Ядро Linux в сравнении с классическими ядрами Unix
Ядро Linux в сравнении с классическими ядрами Unix Благодаря общему происхождению и одинаковому API, современные ядра Unix имеют некоторые общие характерные черты. За небольшими исключениями ядра Unix представляют собой монолитные статические бинарные файлы. Это значит, что они
Глава 21 Консоль Linux
Глава 21 Консоль Linux Консоль Linux, как правило, имитирует последовательный терминал. Выводя специальные последовательности символов в компонент консоли, можно управлять всеми аспектами воспроизведения на экране. Для вывода информации на экран обычно применяются S-Lang, curses
Глава тринадцатая. Linux на Руси
Глава тринадцатая. Linux на Руси Итог предыдущих глав можно подвести таким образом: на рубеже тысячелетий система, придуманная гиком для себя и, в лучшем случае, для «того парня», то есть группы товарищей-разработчиков, постепенно начала превращаться сначала в систему для
Введение в Linux Mint
Введение в Linux Mint Разговор о Mint и его Cinnamon логично начать с рассказа о том, что же такое, товарищи, Mint, и что такое, братья, Cinnamon. Начну с этого и
Linux (ядро)
Linux (ядро) Официальная ссылкаLinux (2.4.19): ftp://ftp.kernel.org/pub/linux/kernel/Содержимое LinuxПоследняя проверка: версия 2.4.18.Файлы поддержкиЯдро Linux и и его заголовочные файлыОписанияЯдро LinuxЯдро – основа любой системы Linux. Когда компьютер включается и загружает Linux, первое, что загружается –
Глава 1 Особенности ОС Linux
Глава 1 Особенности ОС Linux Я считаю, что Microsoft создала объективно плохую операционную систему, и мне интересно наблюдать, как это постепенно доходит до людей. Линус Торвальдс, создатель ОС Linux Мир операционных систем предоставляет пользователям достаточно большое их
Глава 2 Возможности Linux
Глава 2 Возможности Linux В этой главе пойдет разговор об администраторах, офисном и домашнем применении Linux. Автор достаточно долго занимался сопровождением как программ, так и локальных сетей и компьютеров, поэтому не понаслышке знает проблемы администратора.
Глава 7 Безопасная работа в Linux
Глава 7 Безопасная работа в Linux В этой главе мы в концептуальном плане, особо не вдаваясь в подробности, рассмотрим вопросы увеличения безопасности операционной системы Linux. Подробности вы всегда найдете в соответствующей литературе и главах, описывающих конкретное
Глава 3. Первый запуск ОС Linux
Глава 3. Первый запуск ОС Linux 3.1. Загрузка ОС Linux Итак, инсталляция Linux завершена, и вы перезапускаете компьютер. Если Linux - единственная операционная система, установленная на вашем компьютере (а, значит, загрузчик LILO размещается в главной загрузочной записи - MBR), то после
Глава 7. Wi-Fi для Linux
Глава 7. Wi-Fi для Linux Каждый беспроводной сетевой адаптер (за исключением Apple AirPort Card) поставляется с драйверами и конфигурационными инструментами для Microsoft Windows, но это не означает, что Windows является единственной операционной системой, которая будет работать с данным
1 Введение в Linux
1 Введение в Linux 1.1. Вступительное слово Цель данной книги состоит в том, чтобы развеять миф о «неподъемности» UNIX или Linux-систем, заложить прочный фундамент для построения вашего Интернет-сервера. Излагая материал, я старался объяснять все как можно более понятным языком.
3.1. Как устроен Linux: ядро и процессы
3.1. Как устроен Linux: ядро и процессы Главная, постоянно находящаяся в оперативной памяти, часть ОС Linux называется ядром (Kernel). Ядро ОС обрабатывает прерывания от устройств, выполняет запросы системных процессов и пользовательских приложений, распределяет виртуальную