Отличия операционных систем windows и linux

Основные функции файловых систем

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

Основными функциями файловой системы являются:

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

▍Немного теории

LTOLink Time OptimizationASTАбстрактное Синтаксическое Дерево

  • Оптимизируется Абстрактное Синтаксическое Дерево. Оптимизируются циклы, удаляется мертвый код, результат которого нигде не используется. Раскрываются выражения, например 2+5 можно заменить на 7, чтобы при работе приложения не вычислять его значение каждый раз и тем самым сделать его быстрее и т.д.
  • Оптимизированное дерево может быть преобразовано в машинный псевдокод понятный компилятору. Псевдокод используется для дополнительной оптимизации, упрощает разработку универсального компилятора для разных архитектур процессора, например для x86-64 и ARMv7. Так же как ASM листинг, этот псевдокод еще используется, чтобы понять, как компилятор генерирует машинный код, и служит для понимания работы компилятора, поиска ошибок, например, ошибок оптимизации и unpredictable behavior. Стоит заметить этот этап не является обязательным и в некоторых компиляторах отсутствует.
  • Происходит векторизация. Векторизация ,Automatic Vectorization, SIMD
  • Генерируется объектный файл. Объектный файл содержит в себе машинный код для компьютера, и специальные служебные структуры, в которых все еще есть неизвестные адреса функций и данных, поэтому этот файл все еще не может быть запущен на исполнение. Чтобы разрешить неизвестные адреса, был добавлен этап линковки.

На этапе линковки:

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

LTO оптимизацияFull LTOThin LTOFull LTOThin LTOFull LTOFull LTOThin LTOThin LTOДополнительная информация:

  • blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html>
  • clang.llvm.org/docs/ThinLTO.html>

▍Установка LLVM 12 и Clang

Cборка LLVM 12 из Arch User Repository

makepkg MAKEFLAGS NINJAFLAGS

ESCSHIFT + :(буква Ж)wqwqq!vimtutor

  • Build with clang and llvm toolchain? — Собрать с помощью llvm и clang? Отвечаем Y или Enter если да, и N если нет. Рекомендую собирать LLVM с помощью Clang.
  • Skip build tests? Пропустить сборку тестов? Отвечаем Y или Enter. Так как во время сборки, не все тесты проходят проверку, то сборка будет прекращена. Поэтому мы пропускаем сборку тестов, и на самом деле сборка будет идти даже быстрее.
  • Skip build documentation? Пропустить сборку документации? Отвечаем Y или Enter если да, и N если нет. Если вам не нужна документация, то можно пропустить, это ускорит сборку. Лучше читать документацию на официальном сайте, это удобнее.
  • Skip build OCaml and Go bindings? Пропустить сборку OCaml и Go биндингов? Отвечаем Y или Enter если да, и N если нет. Для большинства ответ Y и их сборку можно смело пропустить в угоду скорости сборки. Для тех кому они нужны, а это очень маленькое количество людей могут ответить N.

Первоначальная настройка операционной системы Linux Mint после установки

Предположим, что установка ОС Linux Mint прошла удачно и компьютер без проблем загрузился (уверен, что в подавляющем большинстве случаев так и будет).

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

Настройка раскладок клавиатуры

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

Открываем “Menu” –> “Параметры” –> “Регион и язык” –> “Раскладки клавиатуры”.

Нажимаем “+”, выбираем в открывшемся списке нужную новую раскладку клавиатуры и говорим “Добавить”.

Нажимаем “Параметры”, в открывшемся окне “Параметры раскладки клавиатуры” раскрываем список “Клавиша(и) для смены раскладок” и выбираем предпочтительный вариант. Я исторически выбираю для переключения раскладок во всех системах сочетание “Ctrl+Shift”. Вы можете выбрать любое другое.

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

Установка драйверов

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

Идем “Menu” –> “Администрирование” –> “Менеджер драйверов”. Для входа потребуется ввести пароль администратора, в данном случае, первого пользователя, заданный при установке системы.

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

Например, один из моих Linux-ноутбуков с видеокартой от Nvidia категорически не дружит со свободными дефолтными видеодрайверами Nouveau – работает он с ними нормально, но не выходит из спящего режима. После установки драйверов Nvidia все встает на место.

Что делает операционная система

Операционная система является основным набором программного обеспечения на устройстве, которое «держит всё вместе». Операционные системы взаимодействуют с аппаратным обеспечением устройства. Они обрабатывают всё, от клавиатуры и мыши до Wi-Fi, устройств хранения и дисплея. Другими словами, операционная система обрабатывает команды устройств ввода и вывода. Операционные системы используют драйверы устройств, написанные создателями оборудования для связи со своими устройствами.

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

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

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

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

Описание 2 этапа:

 Второй этап можно характеризовать так: подготовка системы для запуска служб демонов. При подготовке, Загрузчик загружает в память образ ядра из каталога /boot. Давайте рассмотрим пример образа ядра на примере ОС Debian 6:

boot@debian:~# file /boot/vmlinuz-2.6.32-5-686
/boot/vmlinuz-2.6.32-5-686: Linux kernel x86 boot executable bzImage, \
     version 2.6.32-5-686 (unknown@Debian) #, RO-rootFS, swap_dev 0x2, Normal VGA

В приведенном листинге, видно, что команда file выводит информацию о файле образа ядра. В данной информации говориться, что это ядро линукс (Linux kernel), 32-битной архитектуры (x86), содержащий возможность загрузки (boot), исполняемый (executable), в формате bzImage (то есть сжатое, бывают образы не сжатые), далее указывается версия ядра и кое-какие другие параметры образа. Данных файлов может быть несколько (в зависимости от количества установленных версий ядра) и для загрузки выбирается тот, который указан в настройках загрузчика. Образ ядра, инициализирует и подготавливает память, процессор/ы, остальное оборудование, монтирует корневой раздел в режиме только для чтения для загрузки остальной системы (устройство и раздел на котором размещен корень системы должен быть указан в настройках загрузчика GRUB (/boor/grub.conf) или LILO (/boor/lilo.conf)) в виде параметра root=. При этом, выводится сообщение VFS: Mounted root (ext2 filesystem) readonly. Кроме того, ядро из конфигурационного файла загрузчика получает параметры загрузки, такие как корневая файловая система, отображать сообщения ядра или нет и т.п. Параметры, переданные текущему загруженному ядру можно посмотреть в . Вот пример параметров все того же Debian:

boot@debian:~# cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-2.6.32-5-686 root=UUID=6852e86c-b8f1-49d0-b1eb-9d10171083c3 ro quiet

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

root@debian:~# file /boot/initrd.img-2.6.32-5-686
/boot/initrd.img-2.6.32-5-686: gzip compressed data, from Unix, last modified: Thu Mar 17 09:44:39 2011

Какой архив initrd подгружать при загрузке, так же указывается в FSB GRUB или LILO:

boot@debian:~# grep initrd -B4 /boot/grub/menu.lst
title           Debian GNU/Linux, kernel 2.6.26-2-686
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro quiet
initrd          /boot/initrd.img-2.6.26-2-686

Т.к. (вывод сообщений на экран) должен быть связан с каким-либо процессом, соответственно с идентификатором процесса, а у ядра нет идентификатора, оно оно помещает сообщения ядра (и модулей) в буфер кольца ядра и выводит на экран. Данный буфер еще называется dmesg. Его содержимое можно просмотреть, выполнив команду dmesg. После полной инициализации ядро передает управление процеcсу init (первому системному процессу с PID=1). На экран выводится сообщение INIT: version 2.76 booting. При этом, бинарный файл init последовательно ищется в корневом разделе в каталогах: /sbin/init, /etc/init, /bin/init, если в указанных местах не обнаружен файл, то ядро пытается запустить шелл /bin/sh (это, собственно, есть однопользовательский режим загрузки, он же режим восстановления). При этом, не запускается ни один демон. Если не найден и шелл, то вываливается ошибка Kernel panic: No init found. Try passing init= option. Данная ситуация может возникнуть скорее всего, потому что неверно смонтирован корневой раздел.

Предисловие

Об этом руководстве

Добро пожаловать в «Системное администрирование», последнюю из четырех частей руководства, предназначенного для подготовки к экзамену “101 Linux Professional Institute’s”. В этой части, вы познакомитесь с такими навыками администрирования Linux, как файловые системы, процесс загрузки, уровни запуска, файловые квоты, а также системные журналы (логи).

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

К концу этой серии учебных пособий (всего их восемь для экзаменов LPI 101 и 102), вы будете иметь знания, необходимые, чтобы стать администратором систем Linux и будете готовы для достижения первого уровня LPIC сертификации от “Linux Professional Institute” если вы того пожелаете.

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

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

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

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

Windows имеет кардинально другой вид ядра. Оно состоит из множества небольших частей библиотек dll, каждая из которых отвечает за свою функцию. Системные вызовы вообще не применяются. В замену этому пользовательские программы обращаются к библиотекам user32.dll, gdi32.dll, kenel32.dll, advapi32.dll, которые вызывают функции из ntdll.dll (напрямую имеет отношение к ядру).

Библиотека hal.dll управляет драйверами, которые подключаются к ядру отдельно. Пользовательский режим ядра дает возможность просто адаптировать систему к любому ПО. Но за это приходится жертвовать производительностью системы.

Сменный интерфейс

Интерфейс операционной системы Windows не претерпевал кардинальных изменений долгое время. Конечно, нам доступен интерфейс Aero, который появился с приходом Windows Vista. А до этого времени в XP было сделано всего несколько небольших улучшений по сравнению с Windows Classic. Однако панель задач, системный трей, Windows Explorer и другие опции интерфейса принципиально не отличались.

В Linux, интерфейс полностью не зависит от основной системы. Вы можете переключить или изменить свой интерфейс по своему усмотрению, без полной переустановки системы. Здесь вы найдете GNOME, KDE, а также белее современный Unity, плюс ряд менее известных наименований сосредоточенных на различных аспектах интерфейса.

Где заканчивается OS и начинается программа

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

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

Например, в Windows приложение проводника файлов (или проводника Windows) является одновременно неотъемлемой частью операционной системы Windows – оно обрабатывает интерфейс рабочего стола.

Отсутствие реестра

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

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

Практический пример использования файловых систем

Владельцы мобильных гаджетов для хранения большого объема информации используют дополнительные твердотельные накопители microSD (HC), по умолчанию отформатированные в стандарте FAT32. Это является основным препятствием для установки на них приложений и переноса данных из внутренней памяти. Чтобы решить эту проблему, необходимо создать на карточке раздел с ext3 или ext4. На него можно перенести все файловые атрибуты (включая владельца и права доступа), чтобы любое приложение могло работать так, словно запустилось из внутренней памяти.

Операционная система Windows не умеет делать на флешках больше одного раздела. С этой задачей легко справится Linux, который можно запустить, например, в виртуальной среде. Второй вариант — использование специальной  утилиты для работы с логической разметкой, такой как MiniTool Partition Wizard Free. Обнаружив на карточке дополнительный первичный раздел с ext3/ext4, приложение Андроид Link2SD и аналогичные ему предложат куда больше вариантов.

Флешки и карты памяти быстро умирают как раз из-за того, что любое изменение в FAT32 вызывает перезапись одних и тех же секторов. Гораздо лучше использовать на флеш-картах NTFS с ее устойчивой к сбоям таблицей $MFT. Небольшие файлы могут храниться прямо в главной файловой таблице, а расширения и копии записываются в разные области флеш-памяти. Благодаря индексации на NTFS поиск выполняется быстрее. Аналогичных примеров оптимизации работы с различными накопителями за счет правильного использования возможностей файловых систем существует множество.

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

Подключение новой сетевой карты

Подключение и запуск новой сетевой карты сводится к выполнению нескольких шагов:

1. Физическое подключение карты

2. Запуск Linux

3. Просмотр вывода на обнаружение системой новой сетевой карты:

Посмотрим вывод ДО подключения новой карты:

server:~# dmesg | grep eth
 e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
 e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
 e1000: eth2: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
 e1000: eth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

в выводе видно, что в системе есть 2 сетевые карты eth1 и eth2. Подключаем третью и смотрим вывод:

server:~# dmesg | grep eth
 e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
 e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection
 e1000: eth2: e1000_probe: Intel(R) PRO/1000 Network Connection
 udev: renamed network interface eth2 to eth3
 udev: renamed network interface eth1_rename_ren to eth2
 e1000: eth2: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
 e1000: eth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
 e1000: eth3: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX

В dmesg мы видим, что появилась новая сетевушка — eth3, которая на самом деле — eth2, но переименована менеджером устройств udev в eth3, а eth2 — это на самом деле переименованная eth1 (об udev мы поговорим в отдельном посте). Появление нашей новой сетевой в dmesg нам говорит, что сетевая карта поддерживается ядром и корректно определилась. Осталось дело за малым — настроить новый интерфейс в /etc/network/interfaces (Debian), потому что данная карта не была инициализирована стартовым скриптом /etc/init.d/network. ifconfig данную карту видит:

server:~# ifconfig eth3
eth3      Link encap:Ethernet  HWaddr 08:00:27:5f:34:ad
          inet6 addr: fe80::a00:27ff:fe5f:34ad/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:311847 errors:0 dropped:0 overruns:0 frame:0
          TX packets:126 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:104670651 (99.8 MiB)  TX bytes:16184 (15.8 KiB)

но опять же — не конфигурирует. Как конфигурировать сетевую карту говорилось выше.

Подсистема системных журналов

Проста и остроумна в Linux подсистема ведения системных журналов — демон , управляемый конфигурационным файлом и «. d»-каталогом . Если какой-нибудь демон или служба желает сообщить системе о том, что наступило событие, которое стоит запомнить, у неё есть два пути. Во-первых, можно просто добавлять очередную запись в файл, который сам этот демон и открыл; этот файл будет журналом его сообщений. Во-вторых, можно воспользоваться системным вызовом, который переадресует текстовое сообщение специальному демону — — а уж тот разберётся, что с этим сообщением делать: записать в файл, вывести на 12-ю консоль или забыть о нём. Второй путь (централизованная журнализация) предпочтительнее почти всегда; исключение — случай, когда сообщения по какой-то причине не могут быть текстовыми или этих сообщений предполагается посылать так много, что просто не справится.

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

п., а также восемь неименованных, от до ). Степеней важности всего восемь, по возрастанию важности: , , , , , , и . Таким образом, каждое событие определяется парой значений, например, означает для событие, связанное с почтой, притом важности не меньшей. Из таких пар (с возможной заменой типа или важности на «», что означает «любые», или , что означает «никакие») составляется конфигурационный файл :

Пример 10. Настройка системных журналов

В первом поле строки указываются профили сообщений, разделённые символом «», а во втором — хранилище сообщений (файл, терминал, есть способы отдавать их на обработку программе и пересылать по сети)

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

Сообщения типа (наивысшей важности) выводятся на все терминалы системы, и, наконец, все сообщения выводятся на 12-ю виртуальную консоль.

Во многих системах используется основательно доработанный , позволяющий фильтровать сообщения не только по типу/важности, но и, например, по отправителю, задавать точные (а не «не меньшие») значения priority и т. п., однако такие доработки нужны для того, чтобы либо вести практически нефильтрованную журнализацию (получаются системные журналы совершенно нечитаемого объёма), либо отводить поток сообщений определённой службы в отдельный журнал, опять-таки, не для чтения, а для последующей обработки

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

Сравнение Windows и Linux. 7 основных различий

За последнее десятилетие Linux добился серьезных успехов, поднявшись из категории «Какая-то открытая операционная система» до уровня «Вау, эта штука действительно нужная вещь!». Linux постепенно переманивала определенных пользователей от операционной системы Windows со своими свободными возможностям и, возможно, даже вы думали о переходе на эту операционную систему. Но стоит ли это делать?

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

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

Особенности управления программами и обновлениями

В этом пункте ощущается большая разница между операционными системами windows и linux. Рассмотрим почему.

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

Windows не имеет репозиториев. Необходимое ПО необходимо скачивать и самостоятельно устанавливать. Программы обновляются сами как и ОС, иногда в очень неудобное время для пользователя. А чтобы обновить, необходимо перезагрузить систему.

Интересует какой хостинг лучше – Linux или Windows? Ответ в статье по этой теме.

Резюме

Подведу маленький итог написанному. Скажу сразу, что загрузиться с переконфигурированного ядра мне удалось раза с пятого:) Посему — пробуйте, экспериментируйте! VirtualBox вам в помощь:)

По моему мнению, указанную в статье процедуру целесообразно выполнять либо при необходимости выиграть несколько мегабайт свободной памяти, либо добавить необходимые модули/драйвера (конечно, можно и другие причины придумать, например для экспериментов ). При этом, в первом случае, сборка ядра растягивается на неопределенный промежуток времени и неопределенное количество попыток сборки и перезагрузки для того чтобы получить «идеально» оптимизированное под железо и заточенное под себя ядро. Во втором случае, сборка ядра сводится к нескольким шагам: 1. получение исходников, 2. подготовка ядра к компиляции, 2.1 выполнение make cloneconfig перед make menuconfig для копирования текущих настроек ядра, 3. Выполнение make menuconfig или другой цели для конфигурирования и добавления новых параметров, 4. Компиляция и установка по вышеуказанной инструкции.

Итак, сборка и настройка индивидуального ядра состоит из нескольких этапов: 1. получение исходников ядра, 2. Конфигурирование ядра, 3. Сборка (компиляция) ядра, 4. Установка ядра. первый этап — это команда wget, второй — make menuconfig, третий — make. Вот так

Буду рад Вашим комментариям.

upd 2010.01.15: добавил новую цель — make nconfig (спасибо S_paul за коммент)

Маленький итог:

В данной статье я постарался, как можно прозрачней описать процесс запуска операционных систем UNIX, в том виде, в каком я его понял. Некоторые пособия/статьи разделяют загрузку на большее количество этапов. Я постарался изложить так, чтобы прочитав статью, можно было понять процесс загрузки UNIX не вчитываясь в кучу других материалов. Конечно, никто не запрещает углубиться в изучение процесса загрузки ОС, благо в интернете их достаточно. Жду комментариев и дополнений.

Что еще почитать:

upd 2011.01.21: переработано и дополнено описание upd 2011.06.10: дополнено описание upd 2011.06.12: переработка и дополнение всех этапов загрузки, добавление процесса загрузки upstart и ОС BSD.upd 2011.06.27: Дополнение .

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: