- Архитектура ОС Linux
- Архитектура Linux. Детальное описание анатомии Линукса от и до
- Краткая история возникновения Linux — систем
- Архитектура Linux
- Заключение
- Что такое Linux? История создания Linux
- История возникновения Unix
- Появление проекта GNU
- История создания Linux
- Что такое Linux?
- GNU/Linux или Linux?
- Архитектура Linux-систем
- Ядро Linux
- Заключение
Архитектура ОС Linux
Основные компоненты Linux представлены на рис.1.
Являясь операционной системой семейства Unix, Linux следует установленным стандартам и объединяет в себе три основных части:
Ядро (kernel) — основной компонент ОС, отвечающий за управление процессами, виртуальной памятью и драйверами устройств.
Ядро Linux представляет собой единый блок бинарного кода. Все коды ядра и структуры данных, в том числе драйверы устройств, коды распределения ресурсов и виртуальной памяти, сетевой поддержки, а так же файловая система — хранятся в едином адресном пространстве. Преимуществом такой структуры является то, что не требуется никаких переключений при запросах процессами системных ресурсов или прерываниях от различных устройств.
Общее адресное пространство, однако, не препятствует модульности системы. По мере необходимости Linux подгружает в память либо выгружает из нее указанные модули.
В Linux все ядро работает в привилегированном режиме — режиме ядра. Никакая часть кода не работает в режиме пользователя. Фрагменты поддержки ОС, не требующие запуска в режиме ядра, помещаются в раздел системных библиотек.
Разделяемые системные библиотеки (system libraries) содержат стандартный набор функций, используемых приложениями для запросов к системным сервисам ядра. В библиотеках хранятся также код функций отдельных сервисов ядра, исполняемых в обычном режиме без привилегий ядра.
Рис.1 Компоненты Linux
При обращении приложения к системным ресурсам управление от части системы, работающей в пользовательском режиме, передается ядру. Библиотеки осуществляют контроль за корректностью представленного запроса и преобразование параметров/аргументов запроса к требуемому формату.
Под системными утилитами (system utilities, программы управления системой) понимают программы, отвечающие за выполнение отдельных специализированных задач управления (управляющих функций системы). Одни утилиты запускаются лишь один раз для инициализации и конфигурирования отдельных элементов системы, другие вызываются регулярно, например, утилиты принимающие запросы на регистрацию с терминалов системы, либо утилиты обновляющие файлы регистрации.
Не все утилиты выполняют функции системного администрирования. Часть системных программ отвечают за выполнение простых задач, в частности, просмотр каталогов, перенос и удаление файлов, просмотр содержимого файла. Более сложные поддерживают некоторые функции обработки текстовых данных, например, сортировку данных либо поиск по заданному шаблону в тексте.
Источник
Архитектура Linux. Детальное описание анатомии Линукса от и до
Архитектура Linux берет свое начало еще в далеком 1969 -м году. Именно в то время команда разработчиков-энтузиастов начала работу над грандиозным проектом создания обобщенной операционной системы для различных видов компьютеров, дав ей название «Unix».
Краткая история возникновения Linux — систем
Как мы знаем, Linux — это часть сообщества unix-подобных операционных систем, которые функционируют на ядре Линукс. Это ядро в 1991-м году разработал финно-американский студент-разработчик Линус Торвальдс. На такую разработку его вдохновило прочтение книги о проектировании ОС Unix , и он решил продолжить эту идею. В 91-м году выходят 2 прототипа экспериментальных Линукс-систем, которые были, мягко говоря, не работоспособными. Потом в течение 2-х лет велась упорная работа над разработкой рабочей версии ОС Linux. И вот в 1994-м году увидела свет первая стабильная и работоспособная версия операционной системы Линукс. Внутри себя она содержала ядро Linux и небольшое количество программного обеспечения для поддержки работоспособност и системы, которое разработала та же команда разработчиков, которая создала и само ядро. Это был довольно скудный набор инструментов, но зато был дан старт эпохе Linux — систем. Еще один момент — эта «первая» операционная система тогда называлась «Freax», а имя «Linux» она приобрела несколько позже.
Уже с тех времен главным принципом этой ОС была поддержка открытого исходного кода. Именно это позволило развиваться Линукс-системам и дорасти до того, что сегодня имеем мы.
Это сейчас мы в слово «Linux» вкладываем полноценную операционную систему, которую можно инсталлировать и сразу пользоваться, но по сути «Linux» — это просто ядро. А все остальное его программное обеспечение — это труд многих «свободных» программистов, которые трудились над разработкой ядра и создавали для него свое ПО. И то , что мы сейчас понимаем под «операционной системой Линукс», — это симбиоз ядра Linux и стороннего программного обеспечения.
Любая операционная система, которая использует ядро Линукс, будет именоваться «дистрибутивом Линукс а ». И это будет полноценная ОС, как Windows или MacOS. Но дистрибутивы Линукса от других ОС отличает важная особенность — открытый исходный код. А это означает, что фактически любой пользователь способен внести туда собственные корректировки и разработать индивидуальную операционную систему или отредактировать старую под собственные нужды. При этом нужно заметить, что дистрибутивы « пингвина » бывают и платными — это когда их разработчики «закрывают» собственные наработки от стороннего вмешательства.
Даже те, кто не знаком с Линукс — системами, знают, что талисманом ядра Linux является пингвин. У него даже есть имя — Tux. Он стал талисманом еще в 1996-м году и был предложен самим создателем ядра — Линусом Торвальдсом.
Архитектура Linux
Архитектура Linux — систем состоит всего их 4-х основных компонентов , к аждый из которых имеет в своем составе различные собственные элементы. Давайте представим себе круг и начнем двигаться от его центра к краю, перечисляя компоненты:
- «Железо». Это аппаратные характеристики устройства, на котором используется Линукс: архитектура системы, вид е окарта, аудиокарта, процессор, ядра и т. д.
- «Ядро Linux». Это основной компонент Линукс-систем. По сути это «мостик», который связывает низкоуровневое «железо» и высокоуровневые компоненты операционной системы.
- «Оболочка». Это пользовательский интерфейс, который налаживает согласованность между пользователем и ядром операционной системы. Это тоже «мостик», но только более «продвинутый», так как создан для человека, чтобы он мог влиять на работу Линукс-системы.
- «Утилиты». Это программное обеспечение, которое дает возможность пользователю системы использовать ее потенциальные возможности.
Как мы уже писали, основным компонентом Линукс-системы является ядро. Ядро — это важнейшая программа в операционной системе. Именно оно:
- является посредником между всеми компонентами «железа» и налаживает их взаимодействие с пользователем системы;
- распределяет ресурсы системы между работающими программами и всеми запущенными процессами;
- всегда первым загружается в систему и постоянно находится в рабочем состоянии.
Заключение
Архитектура Linux настолько проста и эффективна, что ее можно интегрировать в различные устройства. Линукс можно встретить в:
- персональных компьютерах;
- суперкомпьютерах;
- смартфонах;
- серверах;
- других системах и устройствах.
Linux не задумывался как альтернатива Windows или MacOS. Его разработка являлась желанием сделать доступную и эффективную операционную систему. Но результат превзошел ожидания , и по факту получилась целая экосистема с продуктами Linux, что не может не радовать последователей этой системы.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Источник
Что такое Linux? История создания Linux
Обновл. 27 Июл 2021 |
Раньше компьютеры были такими большими, что могли занимать целую комнату или даже дом. Вы только представьте себе, как трудно было ими управлять. Более того, каждый компьютер имел свою собственную операционную систему, в результате чего работать с такими машинами было жутко неудобно. Программное обеспечение таких компьютеров было узкоспециализированным, и не могло работать на другом компьютере. Не говоря уже о том, что подобная техника стоила таких невообразимо больших денег, что обычные люди не могли себе этого позволить.
В качестве решения вопроса с операционной системой компанией AT&T была создана операционная система Unix, которая дала старт возникновению открытого программного обеспечения и созданию Linux. Но давайте по порядку.
История возникновения Unix
В 1969 году команда разработчиков в лице Кена Томпсона, Денниса Ритчи и Дугласа Макилроя из исследовательского центра «Bell Labs» компании AT&T начала проект по созданию единой операционной системы (сокр. «ОС») для всех компьютеров, назвав её — «Unix». Первая версия системы была написана на Ассемблере. В 1972 году для того, чтобы переписать систему на более простой язык, Деннис Ритчи создает язык программирования Си, благодаря чему, 15 октября 1973 года выходит новая версия Unix (четвертая), ядро которой было переписано на Си. А через 2 года (в 1975 году) появляется уже полностью написанная на языке Си редакция Unix (пятая).
Долгое время операционная система являлась лишь исследовательским проектом, но в 1973 году проходит конференция Ассоциации по вычислительной технике (сокр. «ACM» от «Association for Computing Machinery»), на которой создатели Unix рассказывают о своей системе, и к ним сразу же начинают обращаться люди с просьбой поделиться её копией. И тут стоит отметить одну очень важную историческую деталь, которая сыграла свою роль в дальнейшем развитии событий. Дело в том, что в 1956 году компания AT&T (являющаяся на тот момент монополистом на американском рынке местной и междугородней связи) завершает очередное разбирательство с федеральными властями и антимонопольным комитетом по поводу своего монопольного положения, результатом которого становится подписание соглашения, накладывающее на AT&T ограничения по продажи продуктов и услуг, не связанных напрямую с телефонами и телекоммуникациями. А это значит, что Unix не могла продаваться всем желающим её заполучить. В связи с этим фактом, распространение исходных кодов системы Unix происходило абсолютно бесплатно.
Первоначально Unix использовалась в основном в университетах и крупных финансовых корпорациях. К 1978 году насчитывалось около 600 машин с установленной на них системой Unix.
Появление проекта GNU
В восьмидесятые годы 20 века многие компании, в числе которых IBM и HP, начали создавать свои собственные (в том числе и коммерческие) версии системы Unix. Это привело к путанице дистрибутивов Unix. И к тому же фирмы, продающие свои дистрибутивы, прямо запрещали распространять их исходные коды. Из-за этого другие программисты не могли применять уже внедренные к тому моменту новые компоненты системы, и им приходилось писать их заново.
В 1982 году программист из Массачусетского технологического института (MIT) Ричард Столлман сталкивается с проблемой того, что существующая на тот момент коммерческая лицензия программного обеспечения, с которым он вынужден работать, ограничивает свободу своего использования и не позволяет Столлману обмениваться исходными кодами ПО даже в стенах института.
Поэтому, в 1983 году, с целью создать доступную полноценную Unix-подобную операционную систему с открытыми исходными кодами, обмениваться которой смогут все желающие, он начинает разработку проекта GNU (сокр. от «GNU is Not Unix»).
В рамках проекта GNU создаются необходимые для разработки ядра системы компоненты: текстовый редактор Emacs, набор компиляторов gcc, интерпретатор bash, архиватор gzip, утилиты sed, gawk, Autoconf и многие другие. Помимо этого, в 1988 году с целью юридически закрепить за пользователями права на копирование, модифицирование и распространение программ и исходных кодов проекта GNU, Столлманом публикуется лицензия GNU GPL (сокр. от «GNU General Public License» = «Универсальная общественная лицензия GNU»). Однако, несмотря на все его успехи, даже спустя 8 лет после старта проекта, не хватало самого важного компонента операционной системы — её ядра…
История создания Linux
В январе 1991 года, финский студент Линус Торвальдc, находясь под впечатлением от купленной им книги «Проектирование и реализация операционных систем» автора Эндрю С. Таненбаума, с целью детального изучения концепций и строения ОС Unix, решает купить новый компьютер на базе процессора Intel 80386, на который ставит разработанную Таненбаумом учебную ОС Minix.
Но учебная система — она на то и учебная, что обладает рядом недостатков. В частности, в Minix не только была плохая эмуляция терминала, но и не было возможности перевести в фоновый режим программу, которой временно не пользуешься.
И тогда в августе 1991 года Торвальдс объявляет в сети Usenet о том, что создает свою собственную (свободную) операционную систему с открытыми исходными кодами — Linux. Стоит отметить, что в тот момент речь еще не шла о полноценной системе, скорее это был её прообраз в виде ядра.
17 сентября того же 1991 года, без каких-либо особо публичных объявлений, выходит Linux версии 0.01.
Вскоре после этого, 5 октября, Торвальдс представляет версию 0.02, ставшей первой «официальной» версией своей ОС.
А уже 16 апреля 1994, когда, по мнению Линуса, система стала полностью работоспособной, вышел первый, после более чем двух лет развития, мажорный релиз системы — Linux 1.0.
Примечание: Изначально ОС называлась Freax, что является гибридом от английских слов «freak» (чудак) и «free» (бесплатный) с окончанием X, как дань операционной системе Unix. Однако имя «Linux» системе дал Ари Леммке (Ari Lemmke), по просьбе Торвальдса разместивший ОС на FTP-сервере университета в директории linux , а не freax .
Открытие исходных кодов операционной системы сыграло решающую роль в дальнейшем развитии Linux. Но необходимо все-таки помнить, что технически Linux — это только лишь ядро, без сопутствующих прикладных программ. Полноценной ОС его делает сопутствующее программное обеспечение. Пока роль такого программного обеспечения играли компоненты учебной системы Таненбаума.
Позже, когда Linux немного «окреп и встал на ноги», приложения из проекта GNU заменили соответствующие программы из Minix, так как лицензия (GNU GPL) на исходные коды программ проекта GNU была более удобна для применения в молодой операционной системе.
Таким образом, миру явилась полноценная работающая операционная система под названием «GNU/Linux», которую мы привыкли называть просто «Linux», состоящая из ядра Linux, написанного Торвальдсом, и окружающего программного обеспечения, созданного в рамках проекта Столлмана, GNU.
Что такое Linux?
Linux — это семейство Unix-подобных операционных систем, использующих ядро Linux, которое разработал финно-американский программист Линус Торвальдс. ОС, использующие ядро Linux, называются дистрибутивами Linux, и они являются такими же операционными системами как Microsoft Windows или Apple macOS, но с одной очень важной особенностью, а именно — их исходные коды являются открытыми, так как они распространяются под лицензией GNU GPL, которая подразумевает создание свободного и открытого программного обеспечения (open source software). Это означает, что у любого пользователя есть право изучать и изменять исходный код.
Примечание: Стоит отметить, что есть также и платные дистрибутивы Linux, например, Red Hat Enterprise Linux, Astra Linux Special Edition и др.
Официальным талисманом Linux с 1996 года является пингвин Tux (сокр. от «Torvalds UniX«). Идею использовать пингвина в качестве талисмана Linux выдвинул создатель этого ядра Линус Торвальдс.
Пингвин Tux — талисман Linux
GNU/Linux или Linux?
В сообществе программистов существует спор об именовании операционных систем, использующих ядро Linux и программное обеспечение, разработанное под лицензией GNU GPL. Поскольку ядро Linux само по себе не является работающей операционной системой, то многие предпочитают использовать термин «GNU/Linux».
Примечание: Поскольку статьи цикла «Уроки по Linux» имеют цель донести простыми словами о Linux-системах и их использовании для начинающих, то ради сохранения простоты и лаконичности мы будем использовать термин «Linux», обозначающий операционные системы, работающие на базе ядра Linux.
Вы же можете использовать как термин «Linux», так и термин «GNU/Linux».
Архитектура Linux-систем
На следующем рисунке показана архитектура Linux-систем:
«Железо» — аппаратное обеспечение компьютера (процессор, видеокарта, оперативная память и пр.) со всеми его периферийными устройствами.
Ядро — является основным компонентом операционной системы, взаимодействует непосредственно с аппаратным обеспечением, играя роль посредника между низкоуровневым «железом» и компонентами верхнего уровня.
Оболочка (или «shell», «командный интерпретатор») — интерфейс для взаимодействия между пользователями системы и ядром ОС, абстрагирующий внутреннее устройство системы. Принимает команды от пользователей и запускает на выполнение соответствующие функции.
Утилиты (vi, cat, sed, date, компиляторы и др.) — служебные программы, которые предоставляют пользователю большую часть функциональных возможностей операционной системы.
Ядро Linux
Ядро — это своего рода главная программа, являющаяся основной частью операционной системы. Оно выступает в роли посредника между устройствами компьютера (процессором, видеокартой, оперативной памятью и т.д.) и его программным обеспечением, абстрагируя от обычных программ и пользователей сложную, низкоуровневую работу с «железом» компьютера, предоставляя взамен простой, понятный и удобный в использовании интерфейс. Для этого в код ядра были включены драйверы устройств, которые могут как загружаться в память вместе с ядром ОС, так и подключаться по мере возникновения потребности в ресурсах необходимого устройства.
Примечание: Ядро Linux было разработано в 1991 году программистом Линусом Торвальдсом. Об этом снят документальный фильм «Revolution OS» (2001 г.).
Как вы наверняка знаете, на компьютере может быть запущено сразу несколько программ: какие-то из них работают в фоновом режиме, другие могут ожидать определенных действий от пользователя, а третьим необходимо получать информацию из другой запущенной программы. В такой ситуации именно ядро берет на себя функцию оптимального распределения ресурсов компьютера между запущенными программами и организацию параллельной работы множества различных процессов. Оно первым загружается в оперативную память компьютера и всегда находится в запущенном состоянии, постоянно взаимодействуя с его аппаратным обеспечением и установленными программами.
Как правило, большинство ядер делятся на три типа:
Микроядро — это ядро, состоящее из нескольких подгружаемых в память по мере надобности независимых модулей, выполняющихся в отдельных адресных пространствах. По сути, в таком варианте исполнения оно не сильно отличается от обычных прикладных программ. К достоинствам данного ядра можно отнести теоретически большую надежность в сравнении с другими архитектурами (в действительности же не всё так радужно и гладко) и его модульность (легкость в подключении дополнительных частей ядра). К минусам микроядерной архитектуры относится то, что ядро, построенное по такой схеме, получается очень медленным (ведь ему нужно постоянно переключаться между отдельными частями).
Монолитное ядро — это полная противоположность микроядра, т.к. в памяти компьютера всегда находится весь (или почти весь) код ядра, вследствие чего скорость его работы выше в сравнении с микроядром.
Гибридное ядро — это ядро, сочетающее в себе элементы как монолитной, так и микроядерной архитектур.
Ядро Linux хоть и относится к монолитным ядрам, но оно также заимствует и некоторые идеи из микроядерной архитектуры, что означает, что вся операционная система работает в пространстве ядра, а драйвера устройств (в виде модулей) могут быть легко загружены (или выгружены) прямо во время работы операционной системы.
Заключение
Linux поддерживает целый ряд аппаратных устройств от телефонов и до суперкомпьютеров. Каждая операционная система на базе ядра Linux имеет ядро Linux и набор ПО для управления аппаратными ресурсами компьютера.
На следующих уроках мы детально рассмотрим тему лицензии GNU GPL, сравним Linux и Windows, выполним обзор дистрибутивов Linux и продолжим наше погружение в изучение Linux.
Поделиться в социальных сетях:
Источник