Почему Linux считался независимой ОС

Обновлено: 01.07.2024

Линукс

Операционная система

Операционная система Linux — это бесплатная UNIX-подобная операционная система, написанная Линусом Торвальдсом и первоначально разработанная для домашних ПК, но теперь работающая на различных платформах, включая PowerPC, Macintosh, Amiga, Atari, DEC Alpha, Sun Sparc, АРМ и многие другие. Linux, вероятно, самая популярная UNIX-подобная ОС в мире. Центральная нервная система операционной системы Linux, которая управляет всей системой, называется ядром. Системы Linux преуспевают во многих областях, начиная от проблем конечного пользователя, таких как стабильность, скорость и простота использования, и заканчивая серьезными проблемами, такими как разработка и работа в сети. Помимо того, что он экономически эффективен, он постоянно обновляется и совершенствуется с использованием новейших технологий. Linux является независимой реализацией POSIX и включает в себя настоящую многозадачность, виртуальную память, разделяемые библиотеки, загрузку по запросу, правильное управление памятью, работу в сети TCP/IP и другие функции, совместимые с системами типа Unix. По мере того, как Linux получает все большее признание в компьютерной индустрии, все больше и больше компаний поддерживают Linux как с точки зрения совместимости приложений, так и с точки зрения аппаратного обеспечения. В настоящее время Linux даже предлагает множество коммерческих пакетов повышения производительности и офисных пакетов, которые могут импортировать и экспортировать файлы с других платформ, включая Windows и MacOS.

Нажмите ниже, чтобы узнать больше о функциях Linux:

Где используется Linux?

Linux используется в качестве основной серверной операционной системы многими веб-сайтами и интернет-провайдерами. Он используется в качестве рабочей станции для дизайнеров многими художниками-графиками. Это платформа разработки, которую выбирают программисты C по всему миру. Linux запускает все приложения, которые должна запускать серверная система Unix, включая веб-серверы, такие как Apache, программное обеспечение для обслуживания почты, такое как Sendmail, и серверы баз данных, такие как Oracle, Informix, или более открытые приложения, такие как MySQL и Postgres. Linux поддерживает широкий спектр типов файловых систем, а с помощью таких программ, как Samba, может легко заменить NT в качестве файлового сервера Windows. Благодаря использованию технологии кластеризации Linux можно масштабировать, чтобы справляться с нагрузками суперкомпьютеров, необходимыми для многих научных/инженерных приложений, а также в средах с высокой доступностью.

Кластеризация Linux

Светорассеяние и моделирование физики поверхности

Численная квантовая теория поля Обработка данных высоких энергий

Астрофизическое моделирование Высокотемпературная сверхпроводимость

Моделирование физики плазмы Исследования в области прикладной математики

Вычислительная гидродинамика, климатические исследования и химия атмосферы

Чем Linux отличается от других операционных систем?

Linux — это программное обеспечение с открытым исходным кодом, т. е. программное обеспечение, которое пользователи могут использовать и изменять в соответствии со своими потребностями в соответствии со Стандартной общественной лицензией для бесплатного программного обеспечения. В отличие от Windows, которая требует от пользователей лицензии Microsoft, базовая программа для Linux доступна бесплатно через Интернет.

Почему пользователи компьютеров должны перейти на Linux?

Одним словом, стабильность. В отличие от Windows, которая представляет пользователям «синий экран смерти» при малейшей аномалии, Linux очень стабилен. Он также предлагает защиту от взлома кода. По словам Торвальдса, ключом к Linux является свобода — свобода от «контроля Microsoft и мелкого шрифта» и постоянного роста цен.

Зачем устанавливать Linux?

Для тех, кто ищет быструю, надежную и недорогую операционную систему, способную работать с несколькими пользователями, работать в качестве интернет-сервера и при этом поддерживать простой в использовании интерфейс рабочего стола, Linux лучше, чем Windows. Linux также работает на старых машинах, которые не поддерживают Windows, таких как старая 486 или на Apple Macintosh. Кроме того, Linux обеспечивает превосходную интернет-среду, требующую минимальных ресурсов, но обеспечивающую полное подключение к Интернету.

Некоторые отрицательные стороны Linux

Хотя Linux может понравиться многим, начало работы с ним может быть пугающим. Для установки Linux требуется не менее 500 МБ свободного места на жестком диске. Несмотря на то, что его установка не является такой громадной рутинной работой, как раньше, это все еще не оптимизированный процесс, особенно потому, что Linux не может автоматически обнаруживать все оборудование в системе. Поскольку Linux — многопользовательская операционная система, для каждой установки Linux требуется пароль пользователя, даже если есть только один пользователь. К сожалению, Linux не соответствует почти автоматической установке Windows 98, энциклопедической поддержке оборудования по принципу plug-and-play и надежному набору доступных приложений.

Хотите улучшить этот вопрос? Обновите вопрос, чтобы на него можно было ответить фактами и цитатами, отредактировав этот пост.

Закрыт 3 года назад.

Я проверил словарное определение операционной системы:

программное обеспечение низкого уровня, которое поддерживает основные функции компьютера, такие как планирование задач и управление периферийными устройствами.

Ну, это очень похоже на определение ядра.

Linux обрабатывает все аппаратные интерфейсы; пользовательские программы обрабатывают все остальное. Тем не менее, я постоянно слышу, как люди говорят, что «linux — это ядро, а не операционная система». Так. что такое операционная система? А почему Linux нет?


Просто добавив bussybox и некоторое программное обеспечение входа/выхода в ядро, вы получите ОС. Я не думаю, что без них у вас может быть "операционная" система... потому что какие "операции" вы могли бы выполнять?

откуда это определение? Есть ли в этом определении что-то еще, что также подразумевает использование? Linux — это, по сути, API. Вы можете добавить на него «интерфейс», и это будет ОС, но без него это просто API, если я не очень запутался. Я рекомендую установить только ядро ​​Linux и посмотреть, можно ли назвать это ОС

5 ответов 5

Эта тема представляет собой такой же семантический спор, как и святая война. Этот сайт SE посвящен операционным системам UNIX и Linux; Спрашивать здесь «что такое операционная система» кажется неискренним.

Хотя технически, я полагаю, нам нужно знать, что такое операционная система, чтобы иметь возможность отвечать на вопросы по теме. Не то чтобы обсуждение семантики здесь было бы очень полезным.

Я думаю, что отношение к Linux здесь не в том, что мы должны уладить семантические «дебаты», а, возможно, в том, чтобы ответить, почему Linux вообще считается ядром. Зачем вообще проводить такое различие.

Однажды.

<р>. Два известных компьютерных наркомана по имени Брайан В. Керниган и Роб Пайк написали книгу под названием Среда программирования Unix (1984, ISBN 0139376992), и вот две цитаты, предвещающие грядущие проблемы (стр. 1):

"Что такое UNIX? В самом узком смысле это ядро операционной системы с разделением времени: программа, которая контролирует ресурсы компьютера и распределяет их между пользователями. ."

Хорошо, поэтому UNIX=ядро. Однако в следующем абзаце Керниган и Пайк говорят (стр. 1):

"В более широком смысле под UNIX часто понимается не только ядро, но и важные программы, такие как компиляторы, редакторы, командные языки, программы для копирования и печати файлов и так далее."< /p>

Эм, значит, его также можно использовать для обозначения ядра ПЛЮС "окружения", построенного вокруг ядра.

Проект GNU и ядро ​​Linux

Еще в 1980-х годах, примерно в то же время, когда была опубликована Среда программирования Unix, Ричард Столлман начал проект GNU, чтобы построить свободный как в свободе, а не как в пиво «операционная система» в более широком смысле, набор инструментов GNU, расположенных поверх «The Hurd», который, в свою очередь, находится поверх микроядра GNU Mach. Эта операционная система GNU так и не появилась, отчасти потому, что систему Mach-plus-Hurd оказалось сложно создать, отчасти потому, что появилось другое ядро, и большая часть работы была перенесена на это новое ядро.

В 1991 году Линус Торвальдс выпустил свое ядро ​​​​Linux (за этим названием тоже стоит история: «рабочее название» проекта, по-видимому, было «Linux» для UNIX Линуса (или MINIX, которое на самом деле он «клонировал»). и Линус хотел назвать его «Freax», но Ари Леммке сохранил название Linux). Linux попал под GPL v. 2 (без пункта «и позже»), он был (до сих пор) скомпилирован с gcc, и инструменты GNU были установлены поверх этого ядра, чтобы стать.

В зависимости от того, кого вы спросите, либо "Linux", либо "Gnu\Linux" (читай Gnu-slash-Linux).

Спор об именах

Сталлман настаивает на включении в название «GNU». «Принято считать», что это чисто семантическая дискуссия. На практике существует приоритет использования имени ядра для обозначения всей «операционной системы», как показывает вступительная цитата Кернигана и Пайка. Некоторые люди настаивают на том, чтобы называть систему «Linux» из прагматических или эстетических соображений, например, в руководстве по Linux (или Gnu\Linux. ) How Linux Works Брайана Уорда Уорд говорит: «Я пытался использовать самые распространенные и наименее неуклюжие имена». (стр. xxii, ISBN 9781593275679).

Некоторые люди пытаются ранжировать части операционной системы по важности и настаивают на использовании названия, которое лучше всего отражает эти важные части. Столлман настаивает на том, что Linux — это небольшая часть экосистемы Gnu\Linux, делая упор на инструменты и компилятор. Напротив, Уильям Ф. Шоттс в своей книге Командная строка Linux настаивает на том, что Linux\GNU «будет более точным с технической точки зрения, поскольку сначала загружается ядро, а все остальное выполняется поверх него». (стр. xxix, ISBN 9781593273897). Поскольку в настоящее время существует основной дистрибутив Linux, который не использует элементы GNU, — он называется Android, — прагматические причины различия между GNU\Linux и Other\Linux несколько усилились.

В сообщении Линуса Торвальдса 1996 года, перепечатанном в книге Питера Х. Салуса The Daemon, The Gnu, and the Penguin: A History of Free and Open Source (стр. 143–4, ISBN 9780979034237). ), Линус говорит:

На самом деле _ не имеет значения _ то, что люди называют Linux, если кредит дается там, где он должен (с обеих сторон). Лично я буду продолжать называть его «Linux».

Проблема видимости

Что иногда упускается из виду, так это то, что есть еще одна причина настаивать на включении «GNU» в название, и это проблема видимости. У Ричарда Столлмана есть философия, которую нужно сформулировать, и организация, которую нужно продвигать. Он хочет, чтобы люди знали название его организации, он хочет, чтобы люди участвовали, использовали инструменты GNU и делились ими, делали пожертвования, работали, поэтому, конечно, Столлман хочет, чтобы в названии было «GNU». В статье под названием Пользователи GNU, которые никогда не слышали о GNU Столлман сетует на тот факт, что многие люди, ежедневно использующие инструменты GNU, никогда не слышали о GNU. Почти каждый в наши дни слышал о Linux.

Этот вид продвижения, как бы банально это иногда ни звучало, работает. Услышав о споре об именах GNU/Linux, я захотел узнать больше о GNU и FSF. Я смутно знал о Ричарде Столлмане как о меме-хиппи, который ест что-то между пальцами ног, но только в результате того, что я докопался до сути этого надоедливого дела с GNU\Linux, я прочитал такие вещи, как его сборник эссе Free as in Свобода. Квазимифический догматик Столлмана (столлманьяк, если хотите) доминирует в обсуждении этой темы, поэтому такие трезвые вещи, как тот факт, что он решил сформулировать свое философское видение в первую очередь через юридический документ, или такие вещи, как «вопрос стратегии " это означает, что Меньшая GPL не получает того эфира, которого заслуживает.

Идеи Столлмана продолжают оказывать реальное влияние, и он не одинок в формулировании концепции "свободной культуры". На самом деле Свободная культура — это название книги Лоуренса Лессига, профессора права Роя Л. Фурмана в Гарварде, основателя Creative Commons и неудачного кандидата в президенты в 2016 году. В этой книге Лессиг говорит:

Вдохновением для названия и большей части аргументации этой книги послужили работы Ричарда Столмена и Фонда свободного программного обеспечения. Действительно, когда я перечитывал собственные работы Столлмана, особенно эссе в Свободное программное обеспечение, свободное общество, я понял, что все теоретические выводы, которые я здесь развиваю, основаны на выводах, описанных Столлманом несколько десятилетий назад.

На практике я довольно часто использую «Linux», но меня все больше поражает видение FSF, поэтому я просто могу присоединиться к настойчивой толпе GNU\Linux.

Или. и эта мысль щекотал мое чувство озорства. что, если мы дадим ему имя, исключающее и GNU, и Linux, например, Ginux (gee-nix)? Это было бы. веселая. Просто мысль.

Постскриптум

Спустя почти двадцать лет после выпуска ядра Linux эта тема все еще волнует (и, возможно, слишком волнует) людей. Брайан Лундюк недавно написал в The Linux Journal шутливую статью под названием Почему Linux пишется неправильно, в которой он пришел к выводу, что слово «Linux» следует писать «Linucs», подобно старому MULTICS, используемому в UNIX. (и, следовательно, MINIX и, следовательно, Linux). По состоянию на 15 марта 2018 года к статье оставлено 123 комментария. Некоторые люди восприняли это очень серьезно, и г-н Лундюк почувствовал необходимость снять видеоответ на YouTube на «спор». Эта проблема НАВСЕГДА будет беспокоить фанатов FLOSS.

Получите полный доступ к Understanding the Linux Kernel, 3-е издание и более 60 000 других книг с бесплатной 10-дневной пробной версией O'Reilly.

Есть также прямые онлайн-мероприятия, интерактивный контент, материалы для подготовки к сертификации и многое другое.

Каждая компьютерная система включает в себя базовый набор программ, называемый операционной системой . Самая важная программа в наборе называется ядро . Он загружается в оперативную память при загрузке системы и содержит множество важных процедур, необходимых для работы системы. Другие программы являются менее важными утилитами; они могут предоставить пользователю широкий спектр интерактивных возможностей, а также выполнять все задачи, для которых пользователь купил компьютер, но основная форма и возможности системы определяются ядром. Ядро предоставляет ключевые средства для всего остального в системе и определяет многие характеристики более высокого программного обеспечения. Поэтому мы часто используем термин «операционная система» как синоним «ядру».

Операционная система должна выполнять две основные задачи:

Взаимодействовать с аппаратными компонентами, обслуживая все низкоуровневые программируемые элементы, входящие в состав аппаратной платформы.

Предоставить среду выполнения приложениям, работающим в компьютерной системе (так называемые пользовательские программы).

Некоторые операционные системы позволяют всем пользовательским программам напрямую работать с аппаратными компонентами (типичным примером является MS-DOS). Напротив, Unix-подобная операционная система скрывает все низкоуровневые детали, касающиеся физической организации компьютера, от приложений, запускаемых пользователем.Когда программа хочет использовать аппаратный ресурс, она должна отправить запрос в операционную систему. Ядро оценивает запрос и, если оно решает предоставить ресурс, взаимодействует с соответствующими аппаратными компонентами от имени пользовательской программы.

Для реализации этого механизма современные операционные системы полагаются на наличие определенных аппаратных функций, которые запрещают пользовательским программам напрямую взаимодействовать с низкоуровневыми аппаратными компонентами или получать доступ к произвольным участкам памяти. В частности, аппаратное обеспечение вводит как минимум два разных режима выполнения для ЦП: непривилегированный режим для пользовательских программ и привилегированный режим для ядра. Unix называет их User Mode и Kernel Mode соответственно.

В оставшейся части этой главы мы познакомим вас с основными концепциями, лежащими в основе разработки Unix за последние два десятилетия, а также Linux и других операционных систем. Хотя эти концепции, вероятно, знакомы вам как пользователю Linux, в этих разделах мы попытаемся рассмотреть их немного глубже, чем обычно, чтобы объяснить требования, которые они предъявляют к ядру операционной системы. Эти общие соображения относятся практически ко всем Unix-подобным системам. Мы надеемся, что другие главы этой книги помогут вам понять внутреннее устройство ядра Linux.

Многопользовательские системы

Многопользовательская система — это компьютер, способный одновременно и независимо выполнять несколько приложений, принадлежащих двум или более пользователям. Одновременно означает, что приложения могут быть активны одновременно и конкурировать за различные ресурсы, такие как ЦП, память, жесткие диски и т. д. Независимо означает, что каждое приложение может выполнять свою задачу, не заботясь о том, что делают приложения других пользователей. Переключение с одного приложения на другое, конечно же, замедляет работу каждого из них и влияет на время отклика, которое видят пользователи. Многие сложности ядер современных операционных систем, которые мы рассмотрим в этой книге, присутствуют, чтобы свести к минимуму задержки в каждой программе и предоставить пользователю максимально быстрые ответы.

Многопользовательские операционные системы должны включать несколько функций:

Механизм аутентификации для подтверждения личности пользователя

Механизм защиты от ошибочных пользовательских программ, которые могут блокировать работу других приложений в системе

Механизм защиты от вредоносных пользовательских программ, которые могут вмешиваться в действия других пользователей или следить за ними

Механизм учета, который ограничивает количество единиц ресурсов, назначенных каждому пользователю

Для обеспечения надежных механизмов защиты операционные системы должны использовать аппаратную защиту, связанную с привилегированным режимом ЦП. В противном случае программа пользователя могла бы получить прямой доступ к схемам системы и преодолеть наложенные ограничения. Unix – это многопользовательская система, обеспечивающая аппаратную защиту системных ресурсов.

Пользователи и группы

В многопользовательской системе у каждого пользователя есть личное пространство на компьютере; как правило, ему принадлежит некоторая квота дискового пространства для хранения файлов, получения личных почтовых сообщений и т.д. Операционная система должна гарантировать, что приватная часть пользовательского пространства видна только ее владельцу. В частности, он должен гарантировать, что ни один пользователь не сможет использовать системное приложение с целью нарушения личного пространства другого пользователя.

Все пользователи идентифицируются по уникальному номеру, называемому ID пользователя или UID . Обычно только ограниченному числу лиц разрешается пользоваться компьютерной системой. Когда один из этих пользователей начинает рабочий сеанс, система запрашивает логин и пароль . Если пользователь не вводит правильную пару, система отказывает в доступе. Поскольку пароль считается секретным, обеспечивается конфиденциальность пользователя.

Чтобы выборочно делиться материалами с другими пользователями, каждый пользователь должен быть членом одной или нескольких групп пользователей , которые обозначаются уникальным номером, называемым идентификатором группы пользователей . Каждый файл связан ровно с одной группой. Например, доступ можно настроить так, чтобы пользователь, владеющий файлом, имел права на чтение и запись, группа имела права только на чтение, а другим пользователям в системе было отказано в доступе к файлу.

В любой Unix-подобной операционной системе есть специальный пользователь с именем root или superuser . Системный администратор должен войти в систему как пользователь root для работы с учетными записями пользователей, выполнения задач по обслуживанию, таких как резервное копирование системы, обновление программ и т. д. Пользователь root может делать практически все, потому что операционная система не применяет к ней привычные механизмы защиты. В частности, пользователь root может получить доступ ко всем файлам в системе и управлять каждой запущенной пользовательской программой.

Процессы

Все операционные системы используют одну фундаментальную абстракцию: процесс . Процесс может быть определен либо как «экземпляр исполняемой программы», либо как «контекст выполнения» работающей программы.В традиционных операционных системах процесс выполняет одну последовательность инструкций в адресном пространстве ; адресное пространство — это набор адресов памяти, на которые процесс может ссылаться. Современные операционные системы допускают процессы с несколькими потоками выполнения, то есть несколькими последовательностями инструкций, выполняемых в одном и том же адресном пространстве.

Многопользовательские системы должны обеспечивать среду выполнения, в которой несколько процессов могут быть активны одновременно и конкурировать за системные ресурсы, в основном ЦП. Системы, допускающие параллельные активные процессы, называются мультипрограммными или многопроцессорными . [*] Важно отличать программы от процессов; несколько процессов могут выполнять одну и ту же программу одновременно, а один и тот же процесс может выполнять несколько программ последовательно.

В однопроцессорных системах только один процесс может занимать центральный процессор, поэтому одновременно может выполняться только один поток выполнения. Как правило, количество процессоров всегда ограничено, поэтому одновременно могут выполняться только несколько процессов. Компонент операционной системы, называемый планировщиком, выбирает процесс, который может выполняться. Некоторые операционные системы допускают только невытесняемые процессы, что означает, что планировщик вызывается только тогда, когда процесс добровольно освобождает ЦП. Но процессы многопользовательской системы должны быть вытесняемыми ; операционная система отслеживает, как долго каждый процесс удерживает ЦП, и периодически активирует планировщик.

Unix — это многопроцессорная операционная система с вытесняемыми процессами. Даже когда ни один пользователь не вошел в систему и не запущено ни одно приложение, несколько системных процессов контролируют периферийные устройства. В частности, несколько процессов прослушивают системные терминалы, ожидая входа пользователя в систему. Когда пользователь вводит имя для входа, процесс прослушивания запускает программу, которая проверяет пароль пользователя. Если личность пользователя подтверждается, процесс создает другой процесс, запускающий оболочку, в которую вводятся команды. Когда графический дисплей активирован, один процесс запускает оконный менеджер, и каждое окно на дисплее обычно запускается отдельным процессом. Когда пользователь создает графическую оболочку, один процесс запускает графические окна, а второй процесс запускает оболочку, в которой пользователь может вводить команды. Для каждой пользовательской команды процесс оболочки создает другой процесс, который выполняет соответствующую программу.

Операционные системы, подобные Unix, используют модель процесса/ядра . У каждого процесса есть иллюзия того, что он единственный процесс на машине и имеет монопольный доступ к службам операционной системы. Всякий раз, когда процесс выполняет системный вызов (то есть запрос к ядру, см. главу 10), аппаратное обеспечение меняет режим привилегий с режима пользователя на режим ядра, и процесс запускает выполнение процедуры ядра со строго ограниченной целью. Таким образом, операционная система действует в контексте выполнения процесса, чтобы удовлетворить его запрос. Всякий раз, когда запрос полностью удовлетворен, процедура ядра заставляет аппаратное обеспечение вернуться в режим пользователя, и процесс продолжает выполнение с инструкции, следующей за системным вызовом.

Архитектура ядра

Как указывалось ранее, большинство ядер Unix являются монолитными: каждый уровень ядра интегрирован во всю программу ядра и работает в режиме ядра от имени текущего процесса. Напротив, микроядерные операционные системы требуют от ядра очень небольшого набора функций, обычно включающих несколько примитивов синхронизации, простой планировщик и механизм межпроцессного взаимодействия. Несколько системных процессов, выполняемых поверх микроядра, реализуют другие функции уровня операционной системы, такие как распределители памяти, драйверы устройств и обработчики системных вызовов.

Хотя академические исследования операционных систем ориентированы на микроядра , такие операционные системы, как правило, медленнее, чем монолитные, потому что явный обмен сообщениями между различными уровнями операционной системы имеет свою цену. Однако операционные системы с микроядром могут иметь некоторые теоретические преимущества перед монолитными. Микроядра вынуждают системных программистов применять модульный подход, поскольку каждый уровень операционной системы представляет собой относительно независимую программу, которая должна взаимодействовать с другими уровнями через четко определенные и понятные программные интерфейсы. Более того, существующую микроядерную операционную систему можно легко перенести на другие архитектуры, поскольку все аппаратно-зависимые компоненты обычно инкапсулированы в код микроядра. Наконец, микроядерные операционные системы, как правило, лучше используют оперативную память (ОЗУ), чем монолитные, потому что системные процессы, которые не реализуют необходимые функции, могут быть заменены или уничтожены.

Для реализации многих теоретических преимуществ микроядер без снижения производительности ядро ​​Linux предлагает модули .Модуль — это объектный файл, код которого может быть связан с ядром (и отсоединен от него) во время выполнения. Объектный код обычно состоит из набора функций, которые реализуют файловую систему, драйвер устройства или другие функции на верхнем уровне ядра. Модуль, в отличие от внешних слоев микроядерных операционных систем, не запускается как отдельный процесс. Вместо этого она выполняется в режиме ядра от имени текущего процесса, как и любая другая статически связанная функция ядра.

Основные преимущества использования модулей включают в себя:

Поскольку любой модуль может быть связан и разъединен во время выполнения, системные программисты должны ввести четко определенные программные интерфейсы для доступа к структурам данных, обрабатываемым модулями. Это упрощает разработку новых модулей.

Даже если модуль может полагаться на определенные аппаратные функции, он не зависит от фиксированной аппаратной платформы. Например, модуль драйвера диска, основанный на стандарте SCSI, работает как на IBM-совместимом ПК, так и на Hewlett-Packard Alpha.

Незначительное использование основной памяти

Модуль можно связать с работающим ядром, когда требуется его функциональность, и разъединить, когда он больше не нужен; это весьма полезно для небольших встроенных систем.

После компоновки объектный код модуля эквивалентен объектному коду статически компонуемого ядра. Следовательно, не требуется явная передача сообщений при вызове функций модуля. [*]

[*] Некоторые многопроцессорные операционные системы не являются многопользовательскими; пример — Microsoft Windows 98.

[*] Небольшое снижение производительности происходит, когда модуль связан и отключен. Однако этот штраф можно сравнить со штрафом, вызванным созданием и удалением системных процессов в микроядерных операционных системах.

Получите Понимание ядра Linux, 3-е издание прямо сейчас с онлайн-обучением O’Reilly.

Члены O’Reilly проходят онлайн-обучение в режиме реального времени, а также получают книги, видео и цифровой контент от более чем 200 издателей.


< /p>

Линус Торвальдс

Творение Линуса Торвальдса превратилось во всемирно известную операционную систему Linux.

В апреле 1991 года Линус Торвальдс, 21-летний студент факультета компьютерных наук Хельсинкского университета, Финляндия, начал свой личный проект по созданию нового ядра операционной системы. Этот скромный проект разовьется во всемирно известную операционную систему Linux и сделает Линуса одним из самых влиятельных людей в современном мире технологий.

Линус Бенедикт Торвальдс (Святой Линус был вторым Папой Римским, 64-76 гг. н.э.) родился 28 декабря 1969 года в Хельсинки, Финляндия. Он сын Нильса и Анны Торвальдс. Нильс был репортером, Ана была переводчиком, но оба выбрали журналистскую карьеру. Дедом Торвальдса был известный финский поэт Оле Торвальдс (1916–1995). Его родители развелись, когда Линус был маленьким, и его воспитывали мать, бабушка и дедушка. Семья Торвальдс принадлежит к шведскоязычному меньшинству в Финляндии, численность которого составляет около 300 000 человек.

Линус рано заинтересовался компьютерами, в основном под влиянием своего деда по материнской линии — Лео Торнгвиста, профессора статистики Хельсинкского университета. В середине 1970-х Торнгвист купил один из первых персональных компьютеров, Commodore Vic 20. Вскоре Линусу наскучило несколько доступных для него программ, и к 10 годам он начал создавать новые, сначала на языке программирования BASIC, а затем на гораздо более сложном, но и более мощном языке ассемблера.

Программирование и математика стали увлечениями Торвальдса в средней школе. Попытки отца заинтересовать его спортом, девушками и другими социальными мероприятиями оказались напрасными, и Линус без колебаний признает, что у него мало таланта или интереса к таким занятиям. В 1988 году Торвальдс пошел по стопам своих родителей и поступил в Хельсинкский университет, ведущее высшее учебное заведение Финляндии. К тому времени он уже был состоявшимся программистом и, естественно, специализировался в области компьютерных наук. В 1990 году он прошел свой первый курс по языку программирования C, языку, который вскоре будет использоваться для написания ядра Linux (то есть ядра операционной системы).

В начале 1991 года он приобрел IBM-совместимый персональный компьютер с процессором Intel 386 33 МГц и огромным для того времени объемом памяти 4 МБ. Этот процессор очень понравился ему, потому что он представлял собой огромное улучшение по сравнению с более ранними чипами Intel. Однако, как бы Линус ни был заинтригован оборудованием, он был разочарован операционной системой MS-DOS, которая поставлялась вместе с ним.Эта операционная система не была достаточно продвинутой, чтобы даже начать использовать значительно улучшенные возможности чипа 386, и поэтому он решительно предпочитал гораздо более мощную и стабильную операционную систему UNIX, которую он привык использовать на университетских компьютерах. /p>

Пытаясь получить версию UNIX для своего нового компьютера, ему не удалось найти даже базовую систему менее чем за 5000 долларов США. Вот почему он приобрел MINIX, небольшой клон UNIX, созданный в 1987 году экспертом по операционным системам Эндрю Таненбаумом в Нидерландах для обучения UNIX студентов университетов. Однако, хотя MINIX намного мощнее, чем MS-DOS, и предназначен для работы на процессорах Intel x86, он все же имел ряд серьезных недостатков. Они включали в себя тот факт, что не весь исходный код был обнародован, в нем отсутствовали некоторые функции и производительность UNIX, а также имелась незначительная (хотя и более низкая, чем для многих других операционных систем) лицензионная плата.

Линус особенно сетовал на то, что MINIX не может выполнять эмуляцию терминала, которая была ему нужна для подключения к университетским компьютерам Unix. Линус решил сам создать программу эмуляции терминала, независимо от MINIX. Это были первые шаги к созданию Linux.

Разработка выполнялась для MINIX с использованием компилятора GNU C, который до сих пор является основным выбором для компиляции Linux (хотя код можно собрать с помощью других компиляторов, таких как Intel C Compiler). Линус быстро разработал программу эмуляции терминала, и на какое-то время ее хватило для его нужд. Однако он начал думать, что было бы неплохо иметь возможность делать с ним другие вещи, такие как передача и сохранение файлов. Именно здесь действительно родился Linux.

Изначально Линус хотел назвать свое творение Freax, сочетание слов "freak", "free" и "x" (намек на Unix), но когда в сентябре 1991 г. файлы были загружены на FTP-сервер (ftp.funet.fi) FUNET (чтобы облегчить разработку), его друг Ари Леммке, один из администраторов FTP-сервера, подумал, что «Freax» не очень хорошее имя, решил назвать его «Linux» на сервере, не посоветовавшись с Линусом. Однако позже Торвальдс согласился на «Linux».

В августе 1991 года Линус объявил, что работает над этой операционной системой, в группе новостей Usenet пользователей Minix:

Привет всем, кто использует minix –

Я делаю (бесплатную) операционную систему (просто хобби, не будет такой большой и профессиональной, как gnu) для клонов 386(486) AT. Это назревает с апреля и начинает готовиться. Я хотел бы услышать ваши отзывы о том, что людям нравится/не нравится в minix, так как моя ОС чем-то на нее похожа (такая же физическая структура файловой системы (из практических соображений) среди прочего).

В настоящее время я портировал bash(1.08) и gcc(1.40), и вроде все работает. Это означает, что я получу что-то практичное в течение нескольких месяцев, и я хотел бы знать, какие функции нужны большинству людей. Любые предложения приветствуются, но я не обещаю, что буду их реализовывать 🙂

ПС. Да — он свободен от кода minix и имеет многопоточный fs. Он НЕ переносимый (использует переключение задач 386 и т. д.) и, вероятно, никогда не будет поддерживать ничего, кроме AT-жестких дисков, так как это все, что у меня есть :-(.

17 сентября того же 1991 года, после периода самоизоляции и интенсивной концентрации, Линус завершил грубую версию (0.01) своей новой операционной системы. Вскоре после этого, 5 октября, он анонсировал версию 0.02, первую официальную версию. В нем была возможность запускать как оболочку bash (программу, предоставляющую традиционный текстовый пользовательский интерфейс для Unix-подобных операционных систем), так и GCC (компилятор GNU C), две ключевые системные утилиты.

Tux, символ Linux

Такс, символ Linux

С тех пор получившееся в результате ядро ​​Linux на протяжении всей своей истории постоянно развивалось. С момента первоначального выпуска его исходного кода в 1991 году он вырос из небольшого количества файлов C по лицензии, запрещающей коммерческое распространение, до более чем 370 мегабайт исходного кода в 2009 году по Стандартной общественной лицензии GNU.

Одним из лучших решений Линуса было то, что он решил выпустить Linux под лицензией GPL (Стандартная общественная лицензия GNU), а не под более ограничительной лицензией, которую он планировал ранее. Разработанная Ричардом Столлманом, известным программистом и ведущим защитником свободного программного обеспечения, эта самая популярная из лицензий на свободное программное обеспечение позволяет любому изучать, использовать, модифицировать, расширять и распространять программное обеспечение при условии, что исходный код находится в свободном доступе для всех. измененные версии, которые они создают, а затем распространяют.

Разработка Linux – один из наиболее ярких примеров совместной работы над бесплатным программным обеспечением с открытым исходным кодом. как правило, весь базовый исходный код может использоваться, свободно модифицироваться и распространяться как в коммерческих, так и в некоммерческих целях любым лицом по лицензиям, таким как Стандартная общественная лицензия GNU. Linux — не единственная подобная операционная система, хотя и наиболее широко используемая.

В 1993 году Линус читал вводный компьютерный курс в Хельсинкском университете. Девушка из класса по имени Туве Монни, воспитательница детского сада и шестикратная чемпионка Финляндии по карате, написала ему по электронной почте и пригласила на свидание. Позже она станет его женой. У Туве и Линуса родились три дочери: Патрисия (1996 г.), Даниэла (1998 г.) и Селеста (2000 г.).

В конце 1996 года Линус принял приглашение посетить штаб-квартиру Transmeta в Калифорнии, молодой компании, которая находилась на первых этапах разработки энергосберегающего процессора. Линус был заинтригован их работой, и в начале 1997 года он принял должность в Transmeta и вместе с семьей переехал в Калифорнию. Параллельно с работой в Transmeta Линус продолжал следить за разработкой ядра.

В июне 2003 года Линус покинул Transmeta, чтобы сосредоточиться исключительно на ядре Linux, и начал работать под эгидой Open Source Development Labs (OSDL) — консорциума, созданного высокотехнологичными компаниями, в который входят IBM, Hewlett- Packard, Intel, AMD, RedHat, Novell и многие другие. Целью консорциума является содействие развитию Linux. В январе 2007 года OSDL объединилась с The Free Standards Group и стала The Linux Foundation.

Читайте также: