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

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

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

В многопользовательских системах необходимо обеспечивать защиту объектов (файлов, процессов), принадлежащих одному пользователю, от всех остальных. ОС UNIX предлагает базовые средства защиты и совместного использования файлов на основе отслеживания пользователя и группы, владеющих файлом, трех уровней доступа (для пользователя-владельца, для пользователей группы-владельца, и для всех остальных пользователей) и трех базовых прав доступа к файлам (на чтение, на запись и на выполнение). Базовые средства защиты процессов основаны на отслеживании принадлежности процессов пользователям.

Для отслеживания владельцев процессов и файлов используются числовые идентификаторы. Идентификатор пользователя и группы — целое число (обычно) в диапазоне от 0 до 65535. Присвоение уникального идентификатора пользователя выполняется при заведении системным администратором нового регистрационного имени. Значения идентификатора пользователя и группы — не просто числа, которые идентифицируют пользователя, — они определяют владельцев файлов и процессов. Среди пользователей системы выделяется один пользователь — системный администратор или суперпользователь, обладающий всей полнотой прав на использование и конфигурирование системы. Это пользователь с идентификатором 0 и регистрационным именем root.

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

Краткий обзор

Yocto Project – это совместный Open Source-проект разработки шаблонов, инструментов и методов для создания специальных дистрибутивов Linux для встраиваемых систем на базе различных аппаратных архитектур (yocto означает наименьшую единицу измерения в системе СИ, равную 10^-24).

В этой статье даются пошаговые инструкции для начала работы с инструментами Yocto Project, соответствующими промышленным стандартам и позволяющими создавать собственные дистрибутивы Linux для встроенных устройств и запустить операционную систему на виртуальной машине при помощи QEMU. Проект Yocto Project поддерживается организацией Linux Foundation и финансируется многими известными компаниями-производителями оборудования и программного обеспечения; этот проект развивает инструменты, методы и метаданные для создания Linux-систем, соответствующие промышленным стандартам.

В связке с проектом OpenEmbedded поддерживаются два основных компонента проекта Yocto: система сборки BitBake и ядро OpenEmbedded-Core, состоящее из наборов команд («рецептов»), необходимых в процессе сборки. Все компоненты проекта описываются в следующем разделе.

Разработка модулей ядра ОС Linux

Пример, при работе с файлами программы могут не заботиться о типе безжалостного диска и файловой системе на нем. Системные вызовы заручат безопасность и стабильность системы. Так как ядро работает арбитром между ресурсами системы и программами, оно может получать решения о предоставлении доступа в соответствии с правами юзера и другими критериями. Ядро Linux предоставляет комплект интерфейсов, именуемых системными вызовами, которые дают обеспечение взаимодействие прикладных программ, работающих в пространстве юзера, и аппаратной части компьютера. POSIX, WinAPI – образцы таких API. Прикладные программы разрабатываются с применением программных интерфейсов прибавлений (Application Programming Interface, API). В этом случае нет нужды между в корре ляции между интерфейсами, какие используют приложения и интерфейсами, которые предоставляет ядро.

Сможет существовать один и тот же API для различных операционных систем, а осуществление его может отличаться. Например, операционные системы Linux и FreeBSD отвечают стандарту POSIX (Linux на 100% соответствует эталону POSIX 1003.1), и многие приложения, написанные для FreeBSD, смогут сравнительно легко быть перенесены в Linux и и наоборот. Этим объясняется схожесть наборов приложений для данных операционных систем. Частично интерфейс к системным функциям дает обеспечение библиотека C. Например, функция printf() формирует строчку в соответствии с заданным форматом и передает ее системному призыву write(), который отправляет ее на стандартное механизм вывода (чаще всего терминал).

Жесткие диски

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

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

Материнская плата, процессор, ОЗУ, а также видеокарта — внутренние компоненты ПК. Жесткий диск может быть как внутренним, так и внешним, и в этом случае чаще всего съемным. Основные аналоги жесткого диска — флешки, карты памяти. В ряде случаев они могут полностью его заменить, но по возможности рекомендуется все же оснащать ПК хотя бы одним жестким диском.

Понятие архитектуры ПК открытого типа, конечно же, не ограничивается возможностью замены и выбора указанных пяти компонентов. Есть очень много устройств иного назначения, которые входят в состав компьютера. Это приводы DVD и Blue-ray, звуковые карты, принтеры, сканеры, модемы, сетевые карты, вентиляторы. Набор соответствующих компонентов может предопределять конкретная брендированная архитектура ПК. Системная плата, процессор, ОЗУ, видеокарта и жесткий диск — элементы, без которых современный ПК работать не сможет или его функционирование будет крайне затруднено. Они же главным образом определяют скорость работы. И потому, обеспечив установку на компьютере технологичных и современных компонентов соответствующего типа, пользователь сможет собрать высокопроизводительный и мощный ПК.

Лекции

Лекция 1

История создания LINUX: возникновение и версии ОС LINUX

Linux в генеалогическом дереве UNIX.

Основные стандарты и Linux. IEEE POSIX, X/Open XPG, AT&T SVID, ANSI/ISO C, OpenGroup SUS, LSB&FHS.

Движение свободного программного обеспечения GNU Is Not UNIX (GNU) и LINUX.

  • Фонд Free Software Foundation (FSF);
  • Лицензия GNU Public License (GPL).

Движение Open Source и LINUX.

Дистрибутивы LINUX.

Обзор архитектуры LINUX

Ядро. Прикладные программы. Системные и прикладные услуги.

Файловая подсистема.

Подсистема ввода-вывода.

Подсистема управления процессами.

Основы работы в операционной системе LINUX

Пользователи системы. Стандартные пользователи и группы.

Пользовательское окружение

  • Терминальный доступ в систему. Управляющие терминальные символы;
  • Командный интерпретатор LINUX — BASH: Интерактивный и пакетный режимы работы. Основной синтаксис команд;
  • Командный интерпретатор BASH: Переменные окружения и внутренние переменные. Встроенные команды;
  • Утилиты LINUX: Получение информации о системе и работающих пользователях. Справочные системы LINUX;
  • Утилиты LINUX: Управление пользовательскими свойствами учетных записей;
  • Конфигурационные файлы пользовательского окружения;
  • Интернациональное пользовательское окружение LINUX: локализация и интернационализация.

Лекция 2

Файлы и файловая система

  • Структура дерева каталогов LINUX. Адресация в дереве каталогов LINUX;
  • Виртуальная файловая система (VFS) LINUX: монтирование файловых систем;
  • Файловая система LINUX — EXT2/3: Типы файлов;
  • Псевдофайловые системы; procfs, devfs, usbfs, ptsfs, tempfs.

Пользовательское окружение (продолжение)

  • Утилиты LINUX: Навигация в дереве каталогов LINUX;
  • Утилиты LINUX: Манипулирование объектами файловой системы LINUX;
  • Командный интерпретатор BASH: Переназначение ввода-вывода команд. Подстановки вывода команд, подстановки имен файлов.

Лекция 3

Файлы и файловая система (продолжение)

  • Владельцы файлов;
  • Права доступа к файлу. Дополнительные атрибуты файла.

Пользовательское окружение (продолжение)

  • Утилиты LINUX: Управление владельцами, разрешениями и дополнительными атрибутами объектов файловой системы LINUX;
  • Утилиты LINUX: Инструментальные средства LINUX;

Лекция 4

Процессы

  • Атрибуты процесса;
  • Жизненный путь процесса. Дерево процессов LINUX. Типы процессов;
  • Сигналы. Средства межпроцессного взаимодействия;
  • Подсистема управления заданиями.

Пользовательское окружение (продолжение)

  • Утилиты LINUX: Управление процессами;
  • Командный интерпретатор BASH: Подсистема управления заданиями;
  • Командный интерпретатор BASH: Расширенный синтаксис языка командного интерпретатора. Основы программирования.

Лекция 5

Сетевое окружение LINUX

  • Реализация стека протоколов TCP/IP в LINUX;
  • Стандартные сетевые службы LINUX: удаленный доступ, передача файлов, передача почты, диалоговые коммуникации;

Графический система X Window

  • X сервер, X клиенты, оконные менеджеры, библиотеки Xlib, Xt/Xaw, Motiff, Qt, Gtk+;
  • Настольные окружения: KDE, GNOME.

Пользовательское окружение (продолжение)

  • Утилиты LINUX: Сетевые службы;
  • Утилиты LINUX: Система X Window;
  • Конфигурационные файлы сетвого и графического окружения пользователя.

Какую роль играют подсистемы?

Существует четыре основные подсистемы среды: Win32, OS/2, Windows для Linux и POSIX.

Подсистема среды Win32 может запускать 32-битные приложения «Виндовс». Она содержит консоль, а также поддержку текстового окна, завершение работы и обработку серьезных ошибок для всех других подсистем среды. Она также поддерживает Виртуальные машины DOS (VDM), которые позволяют MS-DOS и 16-разрядным приложениям Win16 работать в Windows NT.

Существует специальный VDM MS-DOS, который работает в своем собственном адресном пространстве и эмулирует Intel 80486 под управлением MS-DOS 5.0. Программы Win16, однако, работают в Win16 VDM. Каждая из них по умолчанию выполняется в одном и том же процессе, используя одно и то же адресное пространство, и Win16 VDM предоставляет каждой программе свой собственный поток для выполнения. Однако архитектура системы Windows NT позволяет пользователям запускать ее в отдельном окне, что дает возможность превентивно выполнять многозадачность, поскольку «Виндовс» будет опережать весь процесс VDM, который содержит только одно работающее приложение.

Процесс подсистемы среды Win32 (csrss.exe) также включает в себя функциональность управления окнами, иногда называемую «оконным менеджером». Она обрабатывает события ввода (например, с клавиатуры и мыши), а затем передает сообщения приложениям, которым необходимо получить этот ввод. Каждое приложение отвечает за появление или обновление своих собственных окон и меню в ответ на эти сообщения.

Подсистема среды OS/2 поддерживает 16-разрядные символьные приложения OS/2 и эмулирует OS/2 1.x, но не 32-разрядные или графические приложения OS 2, используемые в OS/2 2.x или более поздней версии только для компьютеров x86.

Для запуска графических программ OS/2 1.x должна быть установлена ​​подсистема надстроек Windows NT для Presentation Manager. Последней версией NT, имеющей подсистему OS/2, была «Виндовс-2000», затем она была удалена, начиная с архитектуры Windows XP.

Подсистема среды POSIX поддерживает приложения, которые строго написаны либо для POSIX.1, либо для соответствующих стандартов ISO/IEC. Она была заменена Interix, которая является частью Windows Services for UNIX.

Подсистема безопасности работает с токенами безопасности, предоставляет или запрещает доступ к учетным записям пользователей на основе разрешений на ресурсы, обрабатывает запросы на вход в систему и инициирует проверку подлинности входа, а также определяет, какие системные ресурсы должны проверяться Windows NT.

Послесловие

Итак, настройка ядра закончена. Теперь коснёмся вопроса о сборке. Процесс сборки и установки ядра можно выполнить одной командой:

Когда ядро будет собрано, у Вас должны появиться следующие файлы:

и каталог модулей

И последним шагом подправим строки загрузчика, чтобы можно было загрузиться с новым ядром (пример для grub-legacy):

Единственное, что там не указано: как в этом случае будут выглядеть
настройки загрузчика. В них больше не будет указания на initrd — последней
строки — и ram0:

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

P.S: при указанном способе сборки в gentoo автоматически не появится initrd. Если он вам нужен, наиболее простой способ: после сборки ядра использовать для его создания :

P.S2: не забудьте добавить своего пользователя в соответствующие группы. Если нет звука, прежде всего проверьте, добавлен ли пользователь в группу , если не заводится камера — в группу .

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

Аннотация

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

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

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

Тем не менее, современные пользователи часто боятся UNIX-подобных систем, даже не подозревая, что, возможно именно эти системы как ничто больше подходят для решения задач, поставленных перед пользователями. Возможно, UNIX-подобная система станет вторым домом и позволит экономить силы и средства, а иногда и деньги, позволяя решать задачи эффективнее и профессиональнее.

Цель курса “Архитектура UNIX” – подготовить пользователей UNIX подобных систем, показать внутреннее строение и возможности UNIX-систем, а так же научить основам работы в двух взаимодополняющих друг друга интерфейсах операционных систем UNIX: интерфейсе командной строки и графической подсистемы.

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

Небольшое внимание уделяется приемам и методам программирования на языке командного интерпретатора UNIX

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

В курсе уделяется внимание освоению справочных систем UNIX систем, позволяющих эффективно саморазвиваться после окончания данного курса, даются практические рекомендации по автоматизации повседневной рутиной работы, обсуждаются и исправляются типичные ошибки пользователей при работе. При проведении практических занятий используется операционная система ALTLinux на рабочих станциях слушателей, операционные системы FreeBSD и HP-UX в качестве серверов

При проведении практических занятий используется операционная система ALTLinux на рабочих станциях слушателей, операционные системы FreeBSD и HP-UX в качестве серверов

Знания и умения, полученные в результате обучения

После окончания данного курса слушатели будут обладать знаниями по следующим направлениям:

  • история возникновения и редакции операционной системы UNIX, основные стандарты UNIX
  • архитектура UNIX
  • пользовательское окружение системы (включая сетевое и графическое)
  • инструментальные средства

К числу полученных практических навыков, полученных после окончания данного курса следует отнести:

  • использование UNIX для решения прикладных задач
  • программирование на языке командного интерпретатора UNIX.

Особенности ПО для компьютеров архитектуры IBM

Важный критерий отнесения ПК к платформе IBM — его совместимость с разными операционными системами. И в этом также прослеживается открытость рассматриваемого типа архитектуры. Компьютеры, относящиеся к IBM-платформе, могут управляться ОС Windows, Linux в большом количестве модификаций, а также иными операционными системами, которые совместимы с аппаратными компонентами ПК рассматриваемой архитектуры. Не считая ПО от крупных брендов, на IBM-платформу можно устанавливать различные авторские программные продукты, выпуск и инсталляция которых обычно не требуют согласования с фирмами-производителями аппаратных элементов.

В числе программных компонентов, которые есть практически в любом компьютере на платформе IBM, базовая система ввода и вывода, называемая также BIOS. Она призвана обеспечивать выполнение основных аппаратных функций ПК вне зависимости от того, какого типа операционная система на нем установлена. И это еще один, по сути, признак открытости архитектуры, о которой идет речь: производители BIOS толерантны к производителям ОС и любого другого ПО. Собственно, тот факт, что BIOS может выпускаться разными брендами — это также критерий открытости. Функционально системы BIOS от разных разработчиков близки.

Если на компьютере не установлена BIOS, то его работа практически невозможна. Не имеет значения, инсталлирована ли на ПК операционная система — необходимо обеспечение взаимодействия между аппаратными компонентами компьютера, и его возможно реализовать только с помощью BIOS. Переустановка BIOS на компьютере требует специальных программно-аппаратных инструментов, в отличие от инсталляции ОС или иного вида ПО, работающего в ней. Данная особенность BIOS предопределяется тем, что ее необходимо защищать от компьютерных вирусов.

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

Система BIOS во многих ПК дополнена оболочкой UEFI, как считают многие IT-специалисты, это достаточно полезное и функциональное программное решение. Но базовое назначение UEFI принципиально не отличается от того, что характерно для BIOS. Собственно, это такая же система, но интерфейс в ней несколько ближе к тому, что характерен для операционной системы ПК.

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

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

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

Что такое файловая система?

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

Файловые системы как протоколы

Альтернативный способ состоит в том, чтобы рассматривать файловую систему как протокол. Так же, как сетевые протоколы (например, IP) придают смысл потокам данных, передаваемым через Интернет, файловая система придает значение данным на определенном носителе.

Монтирование

Процесс связывания файловой системы с устройством в Linux называется монтированием (mounting). Для подключения файловой системы к существующей иерархии файловых систем (корню) используется команда . При монтировании указывается файловая система, ее тип и точка монтирования.

Чтобы продемонстрировать возможности уровня файловой системы Linux (и монтирования), создадим файловую систему в файле, расположенном в существующей файловой системе. Это можно сделать путем создания файла заданного размера с помощью (копирование файла из источника /dev/zero) — другими словами, инициализируя файл нулями, как показано в листинге 1.

Листинг 1. Создание инициализированного файла
$ dd if=/dev/zero of=file.img bs=1k count=10000
10000+0 records in
10000+0 records out
$

Теперь у нас есть файл file.img размером 10 МБ. Свяжем с файлом блочное устройство-заглушку (loop) с помощью команды (чтобы он выглядел как блочное устройство, а не как обычный файл файловой системы):

$ losetup /dev/loop0 file.img
$

Теперь, имея файл, который выглядит как блочное устройство (представлен /dev/loop0), создадим на этом устройстве файловую систему с помощью . Эта команда создает новую файловую систему ext2 определенного нами размера, как видно из Листинга 2.

Листинг 2. Создание файловой системы ext2 на устройстве loop
$ mke2fs -c /dev/loop0 10000
mke2fs 1.35 (28-Feb-2004)
max_blocks 1024000, rsv_groups = 1250, rsv_gdb = 39
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
2512 inodes, 10000 blocks
500 blocks (5.00%) reserved for the super user
...
$

Теперь файл file.img, представленный блочным устройством (), смонтирован в точке /mnt/point1 с помощью команды

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

$ mkdir /mnt/point1
$ mount -t ext2 /dev/loop0 /mnt/point1
$ ls /mnt/point1
lost+found
$

Как показано в листинге 4, этот процесс можно продолжить, создавая новый файл в новой файловой системе, связывая его с устройством loop и создавая в нем еще одну файловую систему.

Листинг 4. Создание новой файловой системы loop в уже существующей
$ dd if=/dev/zero of=/mnt/point1/file.img bs=1k count=1000
1000+0 records in
1000+0 records out
$ losetup /dev/loop1 /mnt/point1/file.img
$ mke2fs -c /dev/loop1 1000
mke2fs 1.35 (28-Feb-2004)
max_blocks 1024000, rsv_groups = 125, rsv_gdb = 3
Filesystem label=
...
$ mkdir /mnt/point2
$ mount -t ext2 /dev/loop1 /mnt/point2
$ ls /mnt/point2
lost+found
$ ls /mnt/point1
file.img lost+found
$

Из этого простого примера легко понять, насколько большие возможности предоставляет файловая система (и устройство loop) в Linux. Аналогичным образом с помощью устройства loop можно создавать в файле файловые системы с шифрованием. Это может быть полезно для защиты ваших данных; при необходимости такой файл можно быстро смонтировать с помощью устройства loop.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *