Tw-city.info

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Ос на базе ядра linux

Что такое ядро Linux

Ядро Linux содержит более 13 миллионов строк кода и является одним из самых крупных проектов с открытым исходным кодом в мире. Так что такое ядро Linux и для чего оно используется?

Что такое ядро Linux?

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

Виды и версии ядра

Что такое ядро Linux вы уже знаете, но какие вообще бывают виды ядер? Есть различные способы и архитектурные соображения при создании ядер с нуля. Большинство ядер могут быть одного из трех типов: монолитное ядро, микроядро, и гибрид. Ядро Linux представляет собой монолитное ядро, в то время как ядра Windows и OS X гибридные. Давайте сделаем обзор этих трех видов ядер.

Микроядро

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

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

Плюсы

  • Портативность
  • Небольшой размер
  • Низкое потребление памяти
  • Безопасность

Минусы

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

Монолитное ядро

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

Плюсы:

  • Более прямой доступ к аппаратным средствам
  • Проще обмен данными между процессами
  • Процессы реагируют быстрее

Минусы:

  • Большой размер
  • Занимает много оперативной памяти
  • Менее безопасно

Гибридное ядро

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

Плюсы

  • Возможность выбора того что будет работать в пространстве ядра и пользователя
  • Меньше по размеру чем монолитное ядро
  • Более гибкое

Минусы

  • Может работать медленнее
  • Драйверы устройств выпускаются производителями

Где хранятся файлы ядра?

Где находится ядро Linux? Файлы ядра Ubuntu или любого другого Linux-дистрибутива находятся в папке /boot и называются vmlinuz-версия. Название vmlinuz походит с эпохи Unix. В шестидесятых годах ядра привыкли называть просто Unix, в 90-х годах Linux ядра тоже назывались — Linux.

Когда для облегчения многозадачности была разработана виртуальная память, перед именем файла появились буквы vm, чтобы показать что ядро поддерживает эту технологию. Некоторое время ядро называлось vmlinux, но потом образ перестал помещаться в память начальной загрузки, и был сжат. После этого последняя буква x была изменена на z, чтобы показать что использовалось сжатие zlib. Не всегда используется именно это сжатие, иногда можно встретить LZMA или BZIP2, поэтому некоторые ядра называют просто zImage.

Нумерация версии состоит из трех цифр, номер версии ядра Linux, номер вашей версии и патчи или исправления.

В паке /boot можно найти не только ядро Linux, такие файлы, как initrd.img и system.map. Initrd используется в качестве небольшого виртуального диска, который извлекает и выполняет фактический файл ядра. Файл System.map используется для управления памятью, пока еще ядро не загрузилось, а конфигурационные файлы могут указывать какие модули ядра включены в образ ядра при сборке.

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

Так как ядро Linux имеет монолитную структуру, оно занимает больше и намного сложнее других типов ядер. Эта конструктивная особенность привлекла много споров в первые дни Linux и до сих пор несет некоторые конструктивные недостатки присущие монолитным ядрам.

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

Представьте себе возможность установить пакет обновлений Windows без необходимости постоянных перезагрузок.

Модули ядра

Что, если бы Windows уже имела все нужные драйвера по умолчанию, а вы лишь могли включить те, которые вам нужны? Именно такой принцип реализуют модули ядра Linux. Модули ядра также известные как загружаемые модули (LKM), имеют важное значение для поддержки функционирования ядра со всеми аппаратными средствами, не расходуя всю оперативную память.

Модуль расширяет функциональные возможности базового ядра для устройств, файловых систем, системных вызовов. Загружаемые модули имеют расширение .ko и обычно хранятся в каталоге /lib/modules/. Благодаря модульной природе вы можете очень просто настроить ядро путем установки и загрузки модулей. Автоматическую загрузку или выгрузку модулей можно настроить в конфигурационных файлах или выгружать и загружать на лету, с помощью специальных команд.

Сторонние, проприетарные модули с закрытым исходным кодом доступны в некоторых дистрибутивах, таких как Ubuntu, но они не поставляются по умолчанию, и их нужно устанавливать вручную. Например, разработчики видеодрайвера NVIDIA не предоставляют исходный код, но вместо этого они собрали собственные модули в формате .ko. Хотя эти модули и кажутся свободными, они несвободны. Поэтому они и не включены во многие дистрибутивы по умолчанию. Разработчики считают что не нужно загрязнять ядро несвободным программным обеспечением.

Теперь вы ближе к ответу на вопрос что такое ядро Linux. Ядро не магия. Оно очень необходимо для работы любого компьютера. Ядро Linux отличается от OS X и Windows, поскольку оно включает в себя все драйверы и делает много вещей поддерживаемых из коробки. Теперь вы знаете немного больше о том, как работает ваше программное обеспечение и какие файлы для этого используются.

Какой дистрибутив операционной системы на базе Linux скачать и установить

Многие из тех, кто перешел на Linux, теперь не хотят возвращаться обратно к операционной системе Windows. Это связано с доступностью этой операционной системы даже для начинающих пользователей. Если вы хотите установить Linux, то необходимо скачать один из многих дистрибутивов, которые написаны на базе ядра Линукс. Приведем примеры лучших из них и расскажем об особенностях системы.

Что такое Линукс и почему так много операционных систем на его базе?

GNU/Linux было разработано как многопользовательское и многозадачное ядро для разных операционных систем. Для которого программисты создали множество графических менеджеров и программных оболочек. От дистрибутива (операционной системы) зависит, для чего вы будете использовать компьютер. Каждая ОС на базе Linux отличается своей функциональной частью. Единой частью всех дистрибутивов является «Терминал», это их основная часть. С его помощью вы можете:

  • проводить установку и запуск программ;
  • добавлять хранилища для хранения ПО;
  • проводить настройку конфигурационных файлов и самого дистрибутива.

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

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

Не все операционные системы на базе Linux можно скачать. Например, Google Chrome OS (да-да, есть и такая операционная система, не только браузер) идет предустановленным на некоторых моделях ноутбуков Samsung, HP и т.п. В открытом доступе официальных дистрибутивов это операционной системы не найти. Зато есть много форков и копий. Мы не будем в этой обзоре давать ссылки на такие сайты. Для каждого дистрибутива в обзоре мы даем ссылку для скачивания на официальный сайт или официальное сообщество.

Читать еще:  Как выглядит операционная система linux

Почему пользователи отказываются от Windows в пользу Linux?

Чаще всего в качестве достоинств операционных систем на базе Линукс называют:

  1. Отсутствие вирусов. Нельзя сказать, что эту систему вообще невозможно взломать, но хакеры крайне редко проявляют интерес к Linux. Есть несколько рутикулов, которые помогают проникать на сервера, но в домашние ПК они практически не запускаются. О том, что система безопасна говорит и то, что ни у одной антивирусной утилиты нет баз данных специально для Linux. В основном программы настроены на поиск вредоносного кода, который был перенесен с Windows при помощи флешек или дисков.
  2. Практически все дистрибутивы распространяются бесплатно, что позволяет людям с несколькими домашними устройствами не тратить кучу денег на лицензии. При этом вы можете регулярно переустанавливать дистрибутивы, тестировать их и менять. Дополнительное преимущество в том, что программное обеспечение для Linux так же распространяется бесплатно. И приятным бонусом является отсутствие рекламных вставок и сторонних программ, которые загружаются в память ПК вместе с основной утилитой.
  3. Система многообразна и безграничные возможности по настройке внешнего вида. Помимо множества дистрибутивов, вы можете установить на свой ПК разные рабочие окружения. Это поможет вам менять их по необходимости или настроению.
  4. В систему встроен репозиторий. Его идея легла в основу магазина приложений Google Play. Из него вы сможете установить самые разные программы, не прибегая к помощи сайтов и сторонних программ. Единственное неудобство, которое заметно сразу после перехода с Windows, отсутствие привычных названий утилит.
  5. Система удобна по внешнему интерфейсу и разделению программ в меню. Каждая утилита занимает свой раздел в меню, что облегчает ее поиск. Такие небольшие приятные моменты помогают сделать работу намного удобней.
  6. В ядро Linux вшиты практически все необходимые драйвера для периферийного оборудования. Вы можете установить любое устройство, и оно тут же начнет работу. Вам не придется искать драйвера, как для Windows, скачивать их на другом компьютере, чтобы потом оборудование начало работать без сбоев. Неудобств не возникнет даже при подключении новой сетевой карты.
  7. По умолчанию система самостоятельно шифрует диски, что позволяет защитить файлы при попадании компьютера в чужие руки. В Windows подобная опция доступна только при помощи сторонних программ.

Этих положительных сторон достаточно, чтобы вы захотели попробовать операционную систему на ядре Linux. Но перед тем как выбирать дистрибутив, стоит ознакомиться с особенностями каждой оболочки и тщательно изучить недостатки ОС.

Недостатки Linux

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

  1. Плохая совместимость с рядом современных устройств. Большинство принтеров, сканеров, роутеров и прочих устройств созданы для Windows. Поэтому они могут работать не всегда корректно. Пользователи могут самостоятельно изменить дистрибутив, чтобы подключенные устройства работали корректно. Если вы не умеете самостоятельно корректировать настройки ОС в том же терминале, то стоит просто скачать и загрузить современную версию дистрибутива.
  2. Некорректная работа графической подсистемы. После выхода из спящего режима, при использовании дискретных видеокарт, может наблюдаться зависание. Избавиться от этой проблемы можно только путем перезагрузки. Проблемы с видеокартами чаще всего появляются после обновления ядра или компонентов, ответственных за вывод графики.
  3. Несмотря на то что многие драйвера вшиты в ядро, они могут переставать устанавливаться автоматически или удаляться после обновления системы. Эта проблема решается откатом на прежнюю версию дистрибутива или установкой новой оболочки.
  4. Некорректная работа системы охлаждения в ноутбуках. Из-за неправильного управления кулеры начинают шуметь или плохо справляются со своей работой.
  5. Steam for Linux развивается очень медленно, пользователи не могут скачивать и приобретать любую музыку и приложения. Если вы выберите платную программу, то могут возникнуть проблемы при введении данных карты (не весь пластик принимается магазином). Хотя стоит отметить, что магазин приложений Windows развит не лучше, при его использовании могут возникнуть проблемы. Но в последнем случае есть много альтернативных источников для программ.

Чтобы не сталкиваться с этими проблемами, стоит устанавливать только современные версии операционных систем. Для большинства рядовых пользователей такие неприятности могут стать причиной для отказа от Linux ОС.

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

Обзор лучших дистрибутивов Linux со ссылками скачать с официальных сайтов

Перед тем как установить Linux, стоит ознакомиться с особенностями его дистрибутивов. У каждого из них есть свои плюсы и минусы.

А еще помните, что для тестирования ОС не обязательно удалять Windows! Просто используйте виртуальную машину. Как это сделать читайте здесь: Лучшие виртуальные машины для Windows 7, 8 и 10.

Ос на базе ядра linux

By signing up, you agree to our Terms of Service and Privacy Policy.

Новичкам в сфере администрирования достаточно сложно определиться с выбором дистрибутива LINUX, так как их разработано очень большое количество и каждый из них имеет свои особенности и предназначение. Популярные мифы о Linux рассмотрены тут .

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

В данно статье рассмотрим дистрибутивы:

  • Debian
  • Red Hat
  • Arch Linux
  • Gentoo
  • Linux From Scratch
  • ChromeOS
  • Android
  • Slackware
  • OpenWrt 10. Tizen
  • ОС для суперкомпьютеров

Debian и основанные на нем системы – набор дистрибутивов, которые используют систему управления пакетами Deb. Она была создана для Debian и сейчас довольно часто используется популярных дистрибутивах, к примеру, Debian, Ubuntu, LinuxMint, AstraLinux, Elementary и другие. В их основе лежит оригинальное ядро Linux с несколькими исправлениями, которые только убирают ошибки. Преимущества Debian рассмотрены в этой статье.

Вторая по популярности система, которая основана на ядре Linux, это Red Hat . Компания Red Hat создала собственный менеджер пакетов — Rpm. Поэтому все традиционные дистрибутивы Linux разделились на две стороны — те, которые используют deb и поклонники rpm. Не можно сказать, что какая-то система лучше или хуже, ведь каждая из них имеет преимущества и недостатки. Систему управления пакетами RPM используют дистрибутивы CentOS, Fedora, Red Hat, OpenSUSE и другие менее популярные, но все же востребованные ОС.

Следующая в обзоре система, которая не использует пакеты Deb и Rpm. Это дистрибутив ArchLinux . В основе его работы собственный пакетный менеджер pacman, который имеет аналогичные функции что и deb, но в дополнение реализована простая система скользящих релизов. Это обеспечивает всегда новое ПО. Arch достаточно популярный и на его основе разработаны другие дистрибутивы — Manjaro, Antergos, Cinnarch.

Система Gentoo разработана для пользователей, которым необходима возможность компилировать свою систему самостоятельно. Это позволяет выбрать программное обеспечение, а также получить оптимизацию под свое оборудование. Дистрибутив Gentoo разработан на основе ядра Linux, с использованием пакетного менеджера emerge. Пользователь системой получает скользящие релизы, а также возможность легко скомпилировать операционную систему на своем ПК. Пакетный менеджер emerge уже содержит готовые сборочные скрипты, поэтому не нужно ничего дописывать.

LINUX FROM SCRATCH – специальный это набор инструментов, которые позволяют вам собрать собственный дистрибутив на основе ядра Linux. Вам предоставляется ядро и необходимы исходники нужных программ. Вы создаете свой дистрибутив начиная от системы инициализации и командной оболочки и заканчивая окружением рабочего стола.

Компания Google выпустила свою специализированную ОС для нетбуков на ядре Linux. ChromeOS основана на Gentoo, правда эти операционные системы в корне разные, поэтому объединять их в один пункт не стоит. Google реализовала идею облачной операционной системы Linux. При этом Ваше рабочее пространство — это браузер, где предоставляется возможность редактировать документы, работать с видео и терминал Linux в браузере. Все файлы хранятся в облаке.

Читать еще:  Ошибка 43 ноутбука с двумя видеокартами

ANDROID наиболее популярная ОС для мобильных телефонов также использует ядро Linux. Правда, от Linux здесь осталось исключительно ядро. Все остальное Google заменила различными фреймворками. Возможности Linux ограничены, но в терминале можно работать с командами Linux, а в chroot окружении можно запустить Linux дистрибутив. Поэтому ANDROID также считается дистрибутивом Линукс.

SLACKWARE – очень старый дистрибутив Линукс. Когда-то на нем было основано несколько дистрибутивов – Blacktrack, Slax, VectorLinux и др. Но со временем он стал не популярным. Система использует собственный менеджер пакетов, который по сравнению с deb и rpm более слабый. Среди недостатков системы пользователи выделяют и то, что не поддерживается разрешение зависимостей. Команды для удаления и установки пакетов находятся в разных утилитах, что достаточно неудобно.

OpenWrt — специализированная ОС, которая предназначена для роутеров и маршрутизаторов на базе Linux. Система поставляется с урезанной версией библиотеки Си, стандартными утилитами Linux и BusyBox. Она разработана специально под маршрутизаторы, поэтому занимает мало места. Настройки выполняются с помощью коммандной строки.

Система TIZEN разработана для различных телевизоров, умных часов и других гаджетов. В основе ядро Linux. ОС разработала компаня Samsung. Ее устанавливают на много популярных гаджетов.

ОС для суперкомпьютеров . По исследованиям 2017 года операционные системы на базе Linux чаще всего используются на суперкомпьютерах.Так как каждая компания создает свое решение на базе ядра, и это решение идеально оптимизировано под ее цели и задачи. Так из 500 мощных суперкомпьютеров 498 работают на Linux и еще два на UNIX подобной системе IBM AIX. Как видим Линукс очень популярная ОС для решения разного рода задач.

На наших ВПС-серверах Вы можете протестировать работу большинства популярных дистрибутивов Линукс. Вам обязательно пригодятся полезные команды Linux , которые необходимо знать каждому пользователю. Обращайтесь и мы будем рады подобрать для Вас наилучший вариант!

Отличия операционных систем Windows и Linux в следующей статье .

Собираем собственную ОС на базе Linux

Архив номеров / 2006 / Выпуск №3 (40) / Собираем собственную ОС на базе Linux

Илья Александров

Создаём собственную ОС на базе Linux

Дистрибутивов Linux существует сотни, и неизвестно, сколько появится еще. Десятки компаний и тысячи программистов соревнуются в создании лучшего Linux-проекта, а между тем любой опытный пользователь может стать автором системы для домашнего ПК, не уступающей продуктам гигантов IT-индустрии.

За долгие годы работы с Linux мною было использовано огромное количество различных дистрибутивов: Mandriva, Fedora, SlackWare, Debian, Ubuntu и многие другие. Какой-то проект нравился больше, какой-то – меньше. Но во всех дистрибутивах неминуемо приходилось сталкиваться с серьезными недостатками, которые сильно затрудняли работу. Один слишком требователен к ресурсам, в другом нет поддержки всего нужного оборудования, в третьем не хватает различного ПО. Вот тогда я вспомнил известную восточную мудрость: если нужно что-то сделать хорошо, сделай это сам.

Linux from Scratch

Я не единственный, кто решил заняться построением собственной версии Linux – ОС, в которой за основу будет взята базовая часть системы и ядро, но где не будет ни единого лишнего килобайта от разработчика, то есть от вас. Большое количество Linux-дистрибутивов, не соответствующих требованиям пользователей, подтолкнуло Герарда Бикменса (Gerard Beekmans) к созданию дистрибутива, который даст возможность каждому собрать систему, где будут только необходимые ему компоненты и функции.

Стремление талантливого программиста вылилось в проект Linux from Scratch (www.linuxfromscratch.org), сокращенно – LFS. Этот проект, позволяет сконструировать «с нуля», из исходных кодов, свою операционною систему на базе Linux. Компиляция LFS проходит на компьютере с уже установленной Linux-системой, впрочем, подойдет и «продвинутый» Live-CD, например, Knoppix [6].

При этом Linux-система, используемая для сборки, может быть любой – обязательно лишь наличие компилятора и системных библиотек. Linux From Scratch трудно назвать дистрибутивом в привычном смысле этого слова – это что-то вроде вспомогательного ПО, которое вкупе с базовой частью операционной системы позволит вам создать свою, уникальную версию ОС.

Как известно, Линус Торвальдс разрабатывал свою операционную систему под девизом «Just for fun!» – то есть только ради удовольствия. Нужно признать, что LFS действительно не часто можно встретить на серверах, используют эту систему, как правило, компьютерные энтузиасты. Установка и работа с Linux from Scratch поможет вам разобраться во взаимосвязи компонентов ОС, что пригодится при собственных разработках Linux-дистрибутива, причем не только на базе LFS. Поэтому LFS во многом рассчитан на тех людей, для которых процесс сборки собственного дистрибутива увлекателен и интересен – а таких людей, поверьте, немало.

Итак, если вы готовы потратить на конструирование системы целый день (а то и больше), то рекомендую скачать с сайта (2) LFS-packages-6.0, LFS-book, и продолжить читать эту статью.

Разбиение диска и создание дерева каталогов

Для лучшего понимания материала опишем весь ход процесса в общих чертах (см. рис. 1).

Рисунок 1. Схема сборки LFS

На первом этапе, с помощью уже инсталлированного дистрибутива или LiveCD, разбивается диск. На жестком диске выделяется раздел для новой системы. После чего на этом разделе нужно будет статически скомпилировать все необходимые программы и ядро системы. Далее происходит смена корневого каталога на раздел жесткого диска, отведенный под нашу новою ОС. Потребуется повторить компиляцию, но на этот раз ПО должно быть собрано динамически (отличие динамической компиляции от статической будет описано ниже). Последний этап включает в себя сборку важнейшей библиотеки glibc и конфигурацию установленной ОС. Как видите, ничего особенно сложного делать не придется.

На протяжении всего процесса ваш главный помощник – документация из пакета LFS-book, русский перевод которой можно взять тут: http://multilinux.sakh.com/download/lfsbook.tar.bz2. В книге подробно описан каждый шаг создания ОС, поэтому обязательно обращайтесь к этому руководству в случае возникновения проблем (данная статья не призвана заменить такую обширную документацию).

Создаем новый раздел – в моем случае это /dev/hda5, так как раздел /dev/hda1 уже занят установленным на жесткий диск Linux Slackware. Рекомендуется предварительно сделать бэкап системы, дабы можно было ее восстановить в случае повреждения, хотя вероятность подобного близка к нулю. И тут, думаю, все понятно: выделяем нужное количество (достаточно 23 Гб) под корневой каталог, пространство, равное удвоенному объему ОЗУ – под swap-раздел, по желанию можно создать отдельные разделы для домашнего каталога (/home) и для /boot. Впрочем, излюбленный многими вариант разбиения – отвести под корневой каталог все доступное пространство минус swap, и последующее создание собственно swap – также вполне допустимо при сборке LFS. На компьютере автора и Linux Slackware, являющийся родительской ОС, и LFS, используют один жесткий диск, впрочем, установить LFS на другой винчестер тоже труда не составит.

Файловую систему выбирайте на ваше усмотрение: и с Ext3, и с ReiserFS никаких проблем под LFS не было. А вот поклонников XFS придется огорчить – попытки заставить Linux From Scratch работать с этой ФС не увенчались успехом.

Теперь монтируем раздел, отведенный под новую ОС :

$ mount /dev/hda5 /mnt/mylin

Для удобства определим переменную MYLIN:

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

$ chown –R mylin $MYLIN

Нужно создать дерево каталогов в корне нового раздела:

$ mkdir –p bin boot dev etc home lib mnt opt root sbin usr/ var

В каталогах usr, usr/X11R6, usr/local создаем необходимую структуру : подкаталоги bin, etc, include, lib, sbin, share, src.

Затем то же самое проделаем для каталогов /var и /opt будущей системы:

Не будем забывать, что существуют более глубокие иерархии, например, /usr/share/man/man1. Но объем статьи не позволяет привести здесь всю информацию о структуре файлового дерева, поэтому нужно либо воспользоваться документом Filesystem Hierarhy Standart (можно найти по адресу: http://linux-ve.net/MyLDP/file-sys/fhs-2.2-rus), либо внимательно изучить структуру уже установленной у вас ОС семейства Linux. После подготовки жесткого диска приступаем к статической сборке.

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

Читать еще:  Тип операционной системы linux

Но когда мы посредством команды chroot установим корневой каталог для вновь собираемой системы, библиотеки «родительской», установленной системы, находящиеся в /lib, /usr/lib, и прочих, станут уже недоступны, поэтому динамически скомпилированные программы работать откажутся, вдобавок совместимость версий никем не гарантирована.

Чтобы избежать этого, все необходимое программное обеспечение для нашей будущей системы мы для начала соберем статически. Начнем, пожалуй, с командного интерпретатора bash. (Поклонники ZSH или TCSH могут установить любимые интерпретаторы после установки системы, но на этапе сборки их использование не предусмотрено автором LFS). Следует проверить, есть ли у вас файл /usr/lib/libcurses.a и если его нет – установите пакет nсursesdev. Все пакеты надо собирать с флагами статической сборки: «—enable-static-link», «—disable-shared» или «—static». Какой именно подходит в каждом конкретном случае, можно узнать из документации к конкретному пакету или из вывода конфигурационного сценария, запущенного с параметром «—help».

Чтобы не спутать позже статически скомпилированные программы с «динамическими», создадим для них специальный каталог:

При сборке и установке пакетов не забываем добавлять параметр «—prefix=$MYLIN/stat» для перемещения файлов именно в этот каталог. И , наконец , ставим bash:

$ ./configure –-enable-static-link —prefix=$MYLIN/stat

По такой же схеме собираем остальные необходимые пакеты : binutils, bzip2, textutils, texinfo, tar, sh-utils, gcc, grep, gzip, gawk, diffutils, fileutils, make, patch, sed, и , собственно , linux-kernel.

Да, при компиляции ядра не забываем, что для старых версий ядер (2.2.x-2.4.x) нужно использовать gcc 2.95, а для текущей версии 2.6.x рекомендуется применить gcc 3.x, дабы не возникло проблем.

Не забываем заглядывать в соответствующие разделы LFS-book, там сказано об этом и многих других нюансах. В целом же компиляция ядра в LFS не отличается от подобной процедуры, проводимой при использовании установленного на HDD дистрибутива. Разархивируем исходники ядра в $MYLIN/usr/src/linux-2.6.xx, после чего конфигурируем, запуская:

Процесс настройки параметров ядра многократно описан в Интернете (6), вряд ли есть необходимость останавливаться на этом подробнее. Далее даем следующие команды в папке с исходными текстами Linux-kernel:

Все, по адресу $MYLIN/usr/src/linux-2.6.xx/arch/i386/boot/bzImage находится новое ядро.

Далее создаем файлы $MYLIN/etc/passwd и $MYLIN/etc/group. В первом прописываем пока единственного пользователя – root с любым паролем, а во втором группы пользователей (для начала одной группы root тоже будет достаточно).

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

Теперь нам нужно сменить корневой каталог на /mnt/mylin, где мы будем пользоваться только статически собранными утилитами – к помощи инструментов из «родительской» ОС мы уже прибегать не сможем. Даем команду в консоли:

$ chroot $MYLIN/usr/bin/env –i

>HOME=/root TERM=$TERM PS1=’u:w$’

>PATH=/bin: /usr/bin: /sbin: /usr/sbin: /stat/sbin

Этой командой мы указали пути к исполняемым файлам, тип терминала, интерпретатор и вид приглашения командной строки.

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

$ mount proc /proc -t proc

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

При сборке мы указывали параметр «—prefix=$MYLIN/stat», поэтому при смене корня все статически собранные пакеты окажутся в каталоге /stat раздела новой ОС.

Итак, распаковываем архив glibc-2.x.x.tar.gz (например, в директорию /usr/src/) и переходим в каталог glibclinuxthreads. Придется немного подправить исходный код ввиду того, что на данном этапе в системе невозможна идентификация пользователя по имени (как раз из-за отсутствия glibc и других библиотек), и того, что для установки glibc нужен интерпретатор Perl, которого у нас нет.

Заменяем имя пользователя root в файле login/Makefile на его uid, то есть 0, а переменную $PERL в файле malloc/Makefile следует заменить на путь к интерпретатору – /usr/bin/perl – и при конфигурировании он просто будет проигнорирован.

$ /usr/src/glibc-2.x.x/configure —prefix=/usr —enable-add-ons —libexecdir=/usr/bin &&

Если вы все сделали правильно, glibc скомпилируется, в строке приглашения наконец-то появится «root», и можно будет динамически перекомпилировать все программы.

Завершим установку ядра :

Чтобы переместить новое ядро в каталог /boot, выполняем еще одну команду:

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

Таблица 1. Необходимый набор пакетов для сборки

komYounity

Мы создаём комьюнити, комьюнити создаёт Linux.

komYounity

Ядро Linux. Объясняем простыми словами

Существует огромное количество дистрибутивов Linux, но де-факто, у них есть только одна общая черта: ядро ​​Linux. И хотя об этом часто говорят, многие люди на самом деле не знают точно, что оно делает.

Давайте посмотрим, что на самом деле делает ядро ​​Linux и зачем оно нужно, используя как можно меньше отвратительных терминов.

Что такое ядро?

Каждая операционная система использует ядро. Без ядра, у вас не может быть операционной системы, которая действительно работает. Windows, Mac OS X и Linux имеют ядра, и все они разные. Это ядро ​​также выполняет основную работу операционной системы. Помимо ядра, есть много приложений, связанных с ядром, чтобы сделать весь пакет чем-то полезным — об этом чуть позже.

Задача ядра — общаться с аппаратным и программным обеспечением и максимально эффективно управлять ресурсами системы. Оно взаимодействует с оборудованием через драйверы, которые включены в ядро ​​(или дополнительно установлены позже в виде модуля ядра). Таким образом, когда приложение хочет что-то сделать (скажем, изменить настройку громкости динамиков), оно может просто отправить этот запрос ядру, и ядро ​​может использовать драйвер для динамиков, чтобы фактически изменить громкость.

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

Что еще составляет операционную систему?

Как я упоминал ранее, операционные системы включают собственное ядро ​​вместе с кучей других приложений. Только с ядром, практически невозможно что-либо сделать с операционной системой. Вам также понадобятся некоторые другие приложения, такие как оболочка. Оболочка отвечает за отображение приглашения, которое вы видите в терминалах или командных строках. Оболочки — гораздо более простой способ запуска приложений, навигации по папкам и многого другого. Все те задачи, которые вы можете выполнять в оболочке, поддерживаются другими приложениями, которые также должны быть связаны. Например, приложение tar необходимо, если вы работаете с tarballs в оболочке.

Затем операционные системы, в частности дистрибутивы Linux, продолжают объединять больше приложений, таких как среда рабочего стола, веб-браузер, офисный пакет и другие приложения, с которыми вы часто взаимодействуете напрямую. Итак, как вы можете видеть, ядро ​​- это очень маленькая часть операционной системы, но, пожалуй, самая важная.

История Linux

Как долго существует ядро ​​Linux? Впервые оно было создано финским студентом по имени Линус Торвальдс в 1991 году. Он отправил электронное письмо в список рассылки со словами: «Привет всем, кто использует Minix! Я делаю (бесплатную) операционную систему для клонов AT на базе процессоров 386 (486). Это просто хобби, а не что-то большое и профессиональное вроде GNU». За более чем два десятилетия, операционная система для хобби, превратилась в основную часть программного обеспечения, которое теперь используется для миллионов устройств по всему миру.

В течение этого времени, Линус решил лицензировать ядро, используя лицензию GPL, что означало, ядро имеет открытый исходный код. Люди могут свободно просматривать код, изменять его в соответствии со своими потребностями, а затем распространять его среди других (по той же лицензии).

Теперь вы знаете о ядре Linux

Итак, теперь, когда кто-нибудь спросит вас, что такое ядро ​​Linux, вы сможете рассказать им об этом! Если у вас есть другие вопросы о ядре Linux, задайте их в комментариях, а я постараюсь на них ответить.

Ссылка на основную публикацию
Adblock
detector