Как создать ос на ядре 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/
В каталогах 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. После подготовки жесткого диска приступаем к статической сборке.
Зачем мы используем статическую сборку? При статической компиляции исходный код библиотеки присоединяется к коду приложения, что влечет за собой увеличение его размера, но при этом сохраняется целостность. При динамической же компиляции библиотека находится в отдельном файле, к которому по мере необходимости обращаются приложения. В итоге все программы работают с одной версией библиотеки
Но когда мы посредством команды 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. Необходимый набор пакетов для сборки
Блог начинающего линуксоида.
советы, руководства, инструкции.
Страницы
вторник, 1 декабря 2015 г.
Собираем своё собственное ядро Linux
Иногда может потребоваться собрать своё собственное ядро Linux. Причины для этого могут быть следующими:
- вам нужно чистое ядро, без дистрибутивных патчей;
- вы хотите наложить собственные патчи (коих очень много);
- вы хотите собрать ядро под свою конфигурацию железа, выкинуть из него лишнее и/или заточить под определённые задачи;
- вы хотите включить в состав ядра эксперементальный драйвер или файловую систему, которой нет в «ванильном» ядре (например ZFS или Raiser 4);
В сборке ядра нет ничего сложного. Важно лишь понимать, для чего это делается, а также не трогать те параметры, которые вам непонятны. В этой заметке я опишу два примера сборки ядра в Debian-based дистрибутивах. В первом примере я покажу как просто собрать чистое, что называется «ванильное» ядро (такое, каким его выпускает Линус Торвальдс), а во втором — как применить собственные патчи и провести оптимизацию ядра. Сразу напишу два предупреждения:
- вам нужно будет пересобирать ядро при каждом его обновлении (качать «обновляющий патч», накладывать его и собирать ядро);
- пересобранное ядро может не заработать, если в вашей системе используются какие-нибудь хаки для обеспечения работоспособности того или иного оборудования;
- при неправильном конфигурировании ядра, особенно в случае неграмотного или бездумного наложения патчей, вы можете получить либо тормозящую до ужаса систему, либо лишиться её вовсе.
ВСЕ ДЕЙСТВИЯ ВЫ ПРОИЗВОДИТЕ НА СВОЙ СТРАХ И РИСК!
Простая сборка ядра без применения патчей.
Исходные коды ядра Linux находятся на сайте kernel.org. Там же находятся «обновляющие патчи». Что нам нужно? Качаем с сайта тарболл (архив) с последней стабильной версией ядра (на момент написания статьи, это версия 4.3). Качаем любым удобным способом. Далее нам потребуются инструменты для сборки:
sudo apt install build-essential gcc kernel-package patch
sudo apt-get build-dep linux
После того как установятся все необходимые инструменты, распакуйте архив с кодом ядра в любую удобную директорию. Пусть это будет /home/user/KERNEL, где «user» — имя пользователя системы. Далее откройте терминал и перейдите туда:
Осталось собрать ядро:
fakeroot make-kpkg -j 3 —initrd —append-to-version=-custom kernel_image kernel_headers #-j 3
Цифра 3 после j — это количество ядер вашего процессора + 1. То есть для двухядерного это 3, для 4-х ядерного это 5 и так далее.
-custom — здесь можете указать удобное имя для ядра, чтобы было легче его отличить от дистрибутивного.
kernel_image и kernel_headers — это само ядро и его заголовочные файлы соответственно. Headers необходимы для сборки драйверов и модулей ядра, а также для некоторых других целей. После выполнения этой команды, начнут появляться несколько вопросов по конфигурированию ядра. Так как мы всё оставляем по умолчанию, просто жмите Enter пока не начнётся сборка. В зависимости от мощности вашего компьютера, сборка может занять от 15-20 минут до нескольких часов. После сборки, в директории /home/user появятся два deb-пакета: ядро и заголовки. Установите их командой:
sudo dpkg -i linux-image-4.3*deb linux-headers-4.3*deb
sudo update-grub
и перезагрузитесь. В меню GRUB теперь можно будет выбрать для загрузки системы другое ядро.
Сборка ядра с применением патчей и дополнительной конфигурации.
В этот раз мы соберём оптимизированное ядро для работы со звуком и видео, а также для большей отзывчивости системы. Для этого мы применим два патча: так называемый патч для режима реального времени (PREEMPT RT) и патч для компилятора GCC, чтобы добавить дополнительные опции для процессорных оптимизаций. Для начала, что такое патч? Патч — это текстовый файл, который создаётся программой diff, содержащий в себе изменения кода в определённых частях, которые при применении патча, заносятся в нужные места. Так как RT-патч выходит с большим запаздыванием, последняя его версия — для ядра 4.1. Впрочем это не так важно. По той же схеме, качаем ядро 4.1 с kernel.org и распаковываем в директорию /home/user/KERNEL-CUSTOM. Теперь качаем патчи. PREEMPT_RT и GCC Patch. Из скачанных архивов, нам нужны файлы с расширением .patch, которые необходимо положить в каталог с исходным кодом ядра. То есть в /home/user/KERNEL-CUSTOM. Перед применением патчей нужно убедиться, что не будет никаких ошибок. Открываем терминал:
cd /home/user/KERNEL-CUSTOM
patch -p1 -i patch-4.1.13-rt15.patch —dry-run
Опция —dry-run позволяет симулировать применение патча, без внесения изменений в файлы. Если ошибок не обнаружено (см. скриншот) — примните патч уже без опции —dry-run. Аналогичные действия проведите и со вторым патчем. Не применяйте одновременно больше одного патча! Теперь нам нужно сконфигурировать наше ядро. На выбор нам предлагаются следующие варианты:
make config — в терминал будут поочерёдно выводиться вопросы о конфигурации той или иной подсистемы ядра. Крайне долгий и утомительный процесс. Забудем о нём 🙂
make oldconfig — будет задействована конфигурация работающего в данный момент ядра. Так как мы собираем своё с нуля, этот способ также бесполезен.
make defconfig — аналогично предыдущему, только значения будут по умолчанию. Такими, какими его задали разработчики ядра. Аналог первого способа сборки.
make menuconfig — псевдографический интерфейс на основе библиотеки Ncurses. На экран будет выводиться интерфейс с удобным иерархическим меню. Управления с помощью клавиш направления, пробела и клавиши TAB. Рекомендуется если вы собираете ядро в системе, не имеющей графической оболочки.
make gconfig — графический интерфейс на основе GTK, рекомендуется в окружениях GNOME, Mate, Xfce, Cinnamon, Unity и прочих, использующих GTK.
make xconfig — графический интерфейс на основе Qt. Рекомендуется в KDE. Так как в моей системе используется KDE, я воспользуюсь этим способом. Помимо этого есть ещё пара способов, но их применения ни чем особенным не отличается. Итак, после применения патчей, запускаем make xconfig и перед нами предстаёт вот это:
Первым делом выключаем dynticks. Для этого идём в Timers subsystem и выбираем Periodic timer ticks
Идём ниже и включаем параметр Full preemptible kernel (RT). Режим жёсткого реального времени.
Листаем ниже и в пункте Timer frequency выставляем частоту системных прерываний на 1000 Гц
Полностью выключаем любое энергосбережение. Это важно! Слева ищем пункт Power management and ACPI options и снимаем галочку с ACPI. Также выключаем энергосбережение процессора
Вот и всё. При желании (и тщательном изучении документации), вы можете внести дополнительные изменения в конфигурацию (отключить лишние драйверы, задействовать дополнительные подсистемы и так далее). Теперь сохраняем конфиг через File — Save, закрываем конфигуратор и собираем ядро:
fakeroot make-kpkg -j 3 —initrd —append-to-version=-rt-custom kernel_image kernel_headers #-j 3
sudo update-grub
На моём компьютере с процессором Intel Core i3-550 (3.2 ГГц), прирост производительности был довольно ощутимый. Но самое главное — при работе в LMMS и Kdenlive, исчезли периодические заикания рассинхронизация звуковой и видеодорожек, а также подвисания при сильной нагрузке на жёсткий диск. Вывод — работает! Напоследок опишу два модифицированных ядра, которые весьма популярны в кругах линуксоидов:
PF-kernel — самый популярный набор патчей от украинца Александра Наталенко (aka post-factum). Это набор патчей, которые не входят в основное ядро, но обеспечивают повышенную отзывчивость системы, предоставляют альтернативную подсистему гибернации, более быструю, нежели основная, а также уменьшают использование памяти с помощью техники объединения одинаковых страниц. В набор входят:
- планировщик процессов BFS от Кона Коливаса (Con Kolivas) с дополнительными исправлениями от Альфреда Чена (Alfred Chen);
- планировщик ввода-вывода BFQ от Паоло Валенте (Paolo Valente), Арианны Аванзини (Arianna Avanzini) и Мауро Маринони (Mauro Marinoni);
- подсистема гибернации TuxOnIce от Найджела Каннингема (Nigel Cunningham);
- реализация техники слияния одинаковых страниц в памяти UKSM от Най Ся (Nai Xia);
- патч от Graysky, расширяющий список процессоров для оптимизации ядра компилятором (тот, что мы применили выше)
Репозиторий модифицированного ядра. Официальный сайт.
Zen-kernel — второй по популярности, но первый по количеству патчей набор. Zen Kernel использует комбинацию нескольких проектов, обновляет код через git-репозиторий, а также имеет несколько специфичных для Zen вещей, стремящихся удовлетворить большинство потребностей пользователей, реализовав их в одном ядре. Некоторые возможности патча: drm-next, wireless-testing, выбор планировщиков CPU (CFS/BFS), BFQ-планировщик ввода-вывода, aufs, unionfs, reiser4, tuxonice, PHC и многие другие вещи, которые замечательно подойдут для оптимизации настольных систем или ноутбуков. Всё это доступно в виде одного патча к ванильному ядру. Официальный сайт. GIT- репозиторий. Пакеты для Debian/Ubuntu.
На сегодня, пожалуй, всё. Больше информации вы можете найти в ссылках к статье. Всё описанное в статье проверено мной на многих конфигурациях.
Какой дистрибутив операционной системы на базе Linux скачать и установить
Многие из тех, кто перешел на Linux, теперь не хотят возвращаться обратно к операционной системе Windows. Это связано с доступностью этой операционной системы даже для начинающих пользователей. Если вы хотите установить Linux, то необходимо скачать один из многих дистрибутивов, которые написаны на базе ядра Линукс. Приведем примеры лучших из них и расскажем об особенностях системы.
Что такое Линукс и почему так много операционных систем на его базе?
GNU/Linux было разработано как многопользовательское и многозадачное ядро для разных операционных систем. Для которого программисты создали множество графических менеджеров и программных оболочек. От дистрибутива (операционной системы) зависит, для чего вы будете использовать компьютер. Каждая ОС на базе Linux отличается своей функциональной частью. Единой частью всех дистрибутивов является «Терминал», это их основная часть. С его помощью вы можете:
- проводить установку и запуск программ;
- добавлять хранилища для хранения ПО;
- проводить настройку конфигурационных файлов и самого дистрибутива.
Сейчас эта система имеет особую популярность среди программистов, также ее очень часто используют для серверов.
Широко распространяться в домашних компьютерах она начала сравнительно недавно, завоевав любовь пользователей за счет широких возможностей настройки: некоторые версии дистрибутивов можно запускать прямо с флеш-накопителя, другие подходят для слабых компьютеров. Дистрибутивы отличаются своим функционалом, размером и внешним видом.
Не все операционные системы на базе Linux можно скачать. Например, Google Chrome OS (да-да, есть и такая операционная система, не только браузер) идет предустановленным на некоторых моделях ноутбуков Samsung, HP и т.п. В открытом доступе официальных дистрибутивов это операционной системы не найти. Зато есть много форков и копий. Мы не будем в этой обзоре давать ссылки на такие сайты. Для каждого дистрибутива в обзоре мы даем ссылку для скачивания на официальный сайт или официальное сообщество.
Почему пользователи отказываются от Windows в пользу Linux?
Чаще всего в качестве достоинств операционных систем на базе Линукс называют:
- Отсутствие вирусов. Нельзя сказать, что эту систему вообще невозможно взломать, но хакеры крайне редко проявляют интерес к Linux. Есть несколько рутикулов, которые помогают проникать на сервера, но в домашние ПК они практически не запускаются. О том, что система безопасна говорит и то, что ни у одной антивирусной утилиты нет баз данных специально для Linux. В основном программы настроены на поиск вредоносного кода, который был перенесен с Windows при помощи флешек или дисков.
- Практически все дистрибутивы распространяются бесплатно, что позволяет людям с несколькими домашними устройствами не тратить кучу денег на лицензии. При этом вы можете регулярно переустанавливать дистрибутивы, тестировать их и менять. Дополнительное преимущество в том, что программное обеспечение для Linux так же распространяется бесплатно. И приятным бонусом является отсутствие рекламных вставок и сторонних программ, которые загружаются в память ПК вместе с основной утилитой.
- Система многообразна и безграничные возможности по настройке внешнего вида. Помимо множества дистрибутивов, вы можете установить на свой ПК разные рабочие окружения. Это поможет вам менять их по необходимости или настроению.
- В систему встроен репозиторий. Его идея легла в основу магазина приложений Google Play. Из него вы сможете установить самые разные программы, не прибегая к помощи сайтов и сторонних программ. Единственное неудобство, которое заметно сразу после перехода с Windows, отсутствие привычных названий утилит.
- Система удобна по внешнему интерфейсу и разделению программ в меню. Каждая утилита занимает свой раздел в меню, что облегчает ее поиск. Такие небольшие приятные моменты помогают сделать работу намного удобней.
- В ядро Linux вшиты практически все необходимые драйвера для периферийного оборудования. Вы можете установить любое устройство, и оно тут же начнет работу. Вам не придется искать драйвера, как для Windows, скачивать их на другом компьютере, чтобы потом оборудование начало работать без сбоев. Неудобств не возникнет даже при подключении новой сетевой карты.
- По умолчанию система самостоятельно шифрует диски, что позволяет защитить файлы при попадании компьютера в чужие руки. В Windows подобная опция доступна только при помощи сторонних программ.
Этих положительных сторон достаточно, чтобы вы захотели попробовать операционную систему на ядре Linux. Но перед тем как выбирать дистрибутив, стоит ознакомиться с особенностями каждой оболочки и тщательно изучить недостатки ОС.
Недостатки Linux
Для начала приведем ситуации, с которыми так и не смогли справиться программисты, создававшие дистрибутивы Linux. Такие неприятности возникают редко, но для начинающих пользователей они могут оказаться фатальными.
- Плохая совместимость с рядом современных устройств. Большинство принтеров, сканеров, роутеров и прочих устройств созданы для Windows. Поэтому они могут работать не всегда корректно. Пользователи могут самостоятельно изменить дистрибутив, чтобы подключенные устройства работали корректно. Если вы не умеете самостоятельно корректировать настройки ОС в том же терминале, то стоит просто скачать и загрузить современную версию дистрибутива.
- Некорректная работа графической подсистемы. После выхода из спящего режима, при использовании дискретных видеокарт, может наблюдаться зависание. Избавиться от этой проблемы можно только путем перезагрузки. Проблемы с видеокартами чаще всего появляются после обновления ядра или компонентов, ответственных за вывод графики.
- Несмотря на то что многие драйвера вшиты в ядро, они могут переставать устанавливаться автоматически или удаляться после обновления системы. Эта проблема решается откатом на прежнюю версию дистрибутива или установкой новой оболочки.
- Некорректная работа системы охлаждения в ноутбуках. Из-за неправильного управления кулеры начинают шуметь или плохо справляются со своей работой.
- Steam for Linux развивается очень медленно, пользователи не могут скачивать и приобретать любую музыку и приложения. Если вы выберите платную программу, то могут возникнуть проблемы при введении данных карты (не весь пластик принимается магазином). Хотя стоит отметить, что магазин приложений Windows развит не лучше, при его использовании могут возникнуть проблемы. Но в последнем случае есть много альтернативных источников для программ.
Чтобы не сталкиваться с этими проблемами, стоит устанавливать только современные версии операционных систем. Для большинства рядовых пользователей такие неприятности могут стать причиной для отказа от Linux ОС.
Хотя стоит отметить, что за последние годы интерфейс оболочек становится все более дружелюбным. Перечисленные выше проблемы разработчики стараются решить, но пока полностью избавиться от них не получается.
Обзор лучших дистрибутивов Linux со ссылками скачать с официальных сайтов
Перед тем как установить Linux, стоит ознакомиться с особенностями его дистрибутивов. У каждого из них есть свои плюсы и минусы.
А еще помните, что для тестирования ОС не обязательно удалять Windows! Просто используйте виртуальную машину. Как это сделать читайте здесь: Лучшие виртуальные машины для Windows 7, 8 и 10.
Обзор Линукс (Linux) — просто о сложном
Это вступительная статья про операционную систему Линукс (Linux). В ней мы пробежимся по основным моментам и особенностям ОС Линукс. Весь материал ориентирован на новичков и написан доступным языком.
1. Что такое Линукс простыми словами
Главная «фишка» операционной системы Линукс в том, что она бесплатна в соответствии с GNU (свободного и открытого программного обеспечения. Например, за привычный всем Windows придется заплатить где-то $100-$200.
Помимо самой ОС Линукс, все пакеты (программы) бесплатны. Это крайне ценится на западе, поскольку у них слабо развито пиратство. Большинство из них платят за программные продукты, которыми они пользуются. В России ситуация не такая. Практически каждый считает, что софт является бесплатным, хотя практически все популярные программы являются платными.
Существует несколько графических интерфейсов или GUI (мы рассмотрим их далее). В большинстве случаев он очень напоминает X Window System, поэтому, кто умеет пользоваться Windows легко освоит и Linux.
Кто является владельцем
ОС Линукс никому не принадлежит. Точнее можно сказать, что она принадлежит сообществу программистов. На бесплатной основе каждый желающий может вносить свои изменения, которые в дальнейшем принимаются сообществом.
Собственно говоря усилиями десятков тысяч программистов и был создан Линукс. Изначально первыми пользователями были опытные пользователи ПК. Сейчас все больше становится и обычных пользователей Линукса.
Отличительно и то, что Линукс работает на всех архитектурах: DEC Alpha, x86, x86-64, ARM и PowerPC.
Линукс является ядром операционной системой, поэтому на профессиональном уровне можно сказать, что Линукс это не ОС, а лишь ядро, но для обычного обывателя для начала работы это мало имеет значение. Ядро Линукс похоже на движок.
Зачастую в различных источниках можно увидеть название «GNU/Linux» (по сути это то же самое, что и Linux). Однако в среде профессионалов даже разгораются жаркие дискуссии по этому поводу.
Тех, кто пользуюется ОС Линукс зачастую называют «линуксойдам».
Говоря про Linux нельзя не упомянуть про проект GNU — это концепция свободного бесплатного программного обеспечения. Основатель Ричард Столлман.
2. История появления Linux
Первым разработчиком и создателем Linux считается «Линус Торвальдс». Собственно в честь его имени и была названа ОС. Торговая марка «Linux» принадлежит его создателю.
В далеком 1981 году он стал работать над собственной операционной системой семейства Unix. В 1984 году на свет появилась первая ее версия доступная для скачивания. В то время ей пользовались буквально пару человек.
Однако широкое распространение система получила лишь 10 лет спустя. После этого сообщество программистов подхватили основную идею GNU и стали вкладывать свои усилия в развитие проекта.
Логотипом и талисманом Linux является пингвин «Tux». От «обычных» пингвинов отличается жёлтым цветом клюва и лап. Придуман и запатентован в 1996 году Ларри Юингом.
В 20 веке Linux стал еще более популярным. Это уже давно не любительский проект, а полноценная операционная система, которая насчитывает миллионы строк кода.
3. Особенности Linux
Перечислим основные особенности ОС Linux.
1 Большинство пользователей среду Линукса являются программисты и администраторы. Это довольно опытные и «прошаренные» пользователи. Поэтому их не пугает то, что очень много действий приходится делать через терминал (консольная строка). Для любителей Windows это покажется настоящим «маразмом», но со временем к терминалу быстро привыкаешь:
Для более быстрого «общения» с командной строкой можно использовать кнопку «Tab», которая сразу подскажет все команды начинающиеся на введённый набор символ или же сразу применит автозаполнение, если возможен лишь один доступный набор.
2 Большинство серверов (хостинги, хранилища и прочее) используют в качестве основной ОС Линукс. Это связано с тем, что она бесплатна, проще настраивается и более стабильна. Однако среди обычных пользователей бесспорное лидерство занимает Windows. Лишь 5% населения пользуются Линуксом в качестве домашней операционной системы.
3 Linux является многозадачной и многопользовательской операционной системой. Windows в этом плане также сильно преуспел, но все же его возможности не очень удобные для работы нескольких пользователей
4 В Linux нету жестких дисков, как на Windows. Здесь все хранится в едином каталоге, который начинается с «/» (корневой каталог, root directory). Файлы пользователей лежат в каталогах «/home/name_users/».
5 Программные оболочки bash или tcsh. С помощью них Linux выполняет команды пользователей. Отдаваемая команда относится к текущему каталогу (current directory). Домашний каталог можно обозначать символом «
» (тильда). Это аналог «/home/name_users/»
6 Файловые системы в Linux отличны от Windows:
- ext4 — журналируемая файловая система (стандарт для Linux)
- btrfs — новая файловая система, основанная на структурах B-деревьев
- xfs — данную файловую систему отличает достаточно высокая производительность в части записи и чтения данных.
Стоит отметить, что Линукс поддерживает очень много файловых систем (в том числе Windows-ие NTFS, FAT32). Напомню, что Windows не поддерживает ext4. Про файловые системы Linux будет рассказано более подробно в отдельной статье.
7 Существует два вида дистрибутивов Linux, которые делятся по способу организации и управления программным обеспечением (пакетами)
- DEB — используются в дистрибутиве Debian и во всех основанных на нем дистрибутивах
- RPM — менеджер пакетов, использующийся в дистрибутиве Red Hat, а также во многих других популярных дистрибутивах (Fedora)
8 Процессы разделены по ресурсам. Чтобы добавить новое устройств нужен драйвер. Его можно написать самостоятельно и запустить в ядре. Драйверы устройств либо интегрируются непосредственно в ядро, либо добавляются в виде модулей, загружаемых во время работы системы.
9 В Linux все считается файлами: жесткие диски, разделы, папки, приводы оптических дисков, съемные носители информации.
4. Дистрибутивы Linux — что это и какие они бывают
Говоря простыми словами:
Существуют множество видов дистрибутивов Linux. Самые распространённые в мире дистрибутивами являются:
- Linux Mint . Самый простой для пользователя дистрибутив. Очень напоминает Windwos 7. Основан на Ubuntu и Debian
- Ubuntu . Долгое время считался самым популярным дистрибутивом. Стабильная и интуитивно понятная версия для ежедневного использования Основан на Debian
- Debian . Лег в основу множества других популярных Линуксов.
- Mageia . Предок бывшей и популярной ОС Mandriva.
- Fedora . Универсальный, быстро развивающейся и современный Linux. Каждый год появляются новые версии.
- OpenSUSE . стабильный и мощный дистрибутив
- ArchLinux . Современный и быстро обновляющейся дистрибутив.
- CentOS
- PCLinuxOS
- Slackware . Консервативный подход разработки и использования
Интересными дистрибутивами также являются и те, которые можно самостоятельно собрать. К таким относятся LFS, Gentoo, CRUX.
Линукс также практикует такой вид дистрибутивов, которые не требуют установки на жесткий диск. Они работают в режиме «LiveCD». Информация загружается в оперативную память и уже работает с нее. Примеры таких систем: Knoppix, Fedora.
Существуют и чисто российские версии:
- Rosa
- ALT Linux
- ASPLinux
- НауЛинукс
- Calculate Linux
- Runtu
- Rosinka
- Astra Linux
5. Интерфейсы Linux
Поскольку дистрибутивов много, то и различных версий оформления рабочего стола/панели инструментов также много. Однако в Линуксе придумано несколько стандартов, которые поддерживаются популярными версиями ОС.
- GNOME (GNU Network Object Model Environment) и Unity . Концепцию значков лаунчеров и отображения в стиле панели мониторинга для выбора
- KDE (K Desktop Environment). Традиционная среда рабочего стола, но она имеет огромное количество функций и основной набор приложений
- Cinnamon . Основан на GNOME. Традиционная среда рабочего стола, которая похожа на Windows 7.
- LXDE (Lightweight X11 Desktop Environment). Легкая и приятная среда.
- MATE является продолжением классического интерфейса GNOME
- XFCE быстрая и легкая
6. Репозиторий Linux
В Linux все программы (пакеты) хранятся в репозиториях, который представляет из себя сервер, где программисты выкладывают софт. Здесь можно скачать самые последние и актуальные версии программ.
Для Линукса репозиторий это аналог Play Market для Android.
Чтобы скачать пакет необходимо в терминале написать:
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, задайте их в комментариях, а я постараюсь на них ответить.