Введение
Дистрибутивы семейства Ubuntu, по словам основоположника этого проекта, Марка Шаттлворта (см. интервью в журнале LinuxFormat, #2(71), 2005), рассчитаны на две категории пользователей: тех, кто только начинают свое приобщение к Linux и Open Source, и тех, которые многое знают и умеют в этой сфере.
Основные представители этого семейства — собственно Ubuntu и Kubuntu — потребности первой группы удовлетворяют во все возрастающем объеме: графический инсталлятор текущей версии (6.06 Dapper) с CD Desktop позволяет установить систему буквально шестью кликами мыши, а фиксированный набор приложений охватывает все сферы настольного применения Linux.
Что же до категории пользователей опытных — их такое положение дел часто не устраивает. Каждый из них за годы работы в Linux обзавелся собственным устойчивым кругом постоянно используемых программ, далеко не всегда совпадающим с умолчальным выбором майнтайнеров любого дистрибутива. И потому предпочитает собирать себе систему по кирпичикам.
Появление еще одного представителя семейства, Xubuntu, было в определенной мере реакцией на потребности именно таких пользователей. Предоставляя легкий, не обремененный встроенными приложениями, десктоп — XFce, и минимальный набор пользовательских программ, дальнейшую комплектацию системы он возлагает уже на пользователя.
Тем не менее, и Xubuntu не способен в полной мере удовлетвориь запросы тех, что с претензиями, навязывая, с одной стороны, пусть и легкий, но все же интегрированный, десктоп, с другой стороны — некоторое количество достаточно тяжеловесных приложений, подобных FireFox.
Так можно ли на базе Ubuntu собрать, как конструктор, собственную систему, следующую пути разумного минимализма? Систему, в которой, как в рюкзаке хорошего туриста, не должно быть ничего лишнего — но все необходимое — должно быть?
Можно. Потому что любой из «главных» дистрибутивов семейства предоставляет и еще одну возможность подбора собственного комплекта приложений. Это — так называемая серверная установка, доступная из инсталлятора текстового режима с CD Alternate.
Сборка Ядра
Теперь, когда мы сконфигурировали ядро, мы готовы к его сборке. Если вы не знаете, каково состояние дерева для сборки, прежде чем приступать к конфигурированию нового ядра выполните . Для более полной очистки выполните (при этом — — будет удален файл .config, а также некоторые другие файлы, используемые в процессе сборки).
В ходе пробы конфигурирования, желательно дать новому ядру специальное название, которое позволит вам легко его идентифицировать. Чтобы сделать это, необходимо установить значение Local version и активировать опцию Automatically append version information to the version string в соответствующей строке раздела General setup.
В принципе, для сборки ядра не требуются полномочия root, несмотря на то, что для установки нового ядра эти полномочия необходимы.
Чтобы начать сборку ядра 2.6, необходимо выполнить .
Чтобы начать сборку ядра 2.4, необходимо выполнить 3 команды:
Первая создает файлы необходимых зависимостей. Вторая собирает ядро. И последняя собирает модули.
Наращивание системы: Иксы и менеджеры окон
Так что оставим слесарево, то есть тотальную сборку, слесарю, взяв себе кесарево, сиречь пакетную установку. Для чего нам понадобятся такие инструменты, какaptitude search для поиска нужных пакетов, aptitude show — для просмотра их свойств и, наконец, aptitude install — собственно для установки того, что мы нашли и сочли для себя подходящим.
Начинаем с оконной системы X, или, по простому, с Иксов. Для начала ищем пакет, который обеспечит нам базовую поддержку X-сервера:
$ aptitude search xorg
что даст нам длинный список оных, в том числе и интегральный xserver-xorg. Просмотр его зависимостей
Зависимости: xserver-xorg-core, xserver-xorg-driver-all | xserver-xorg-driver, xserver-xorg-input-all | xserver-xorg-input, x11-common, laptop-detect, xresprobe, mdetect, discover1, dmidecode
и описания
Описание: the X.Org X server This package depends on the full suite of the server and drivers for the X.Org X server, as well as providing a configuration infrastructure to manage xorg.conf. It does not provide the actual server itself, but removing it is strongly discouraged.
приводят нас к выводу, что он-то нам и нужен, почему подлежит немедленной установке:
Впрочем, его недостаточно — требуются еще базовые компоненты Иксов. Отыскиваем соответствующий пакет посредством
$ aptitude search x-window
А из вывода команды
$ aptitude show x-window-system-core
убеждаемся, что это как раз и есть искомое недостающее:
Описание: X Window System core components This metapackage provides the essential components for a standalone workstation running the X Window System. It provides the X libraries, an X server, a set of fonts, and a group of basic X clients and utilities.
и, значит, также должно быть немедленно установлено:
$ sudo aptitude install x-window-system-core
Теперь, дав в свободной виртуальной консоли команду
$ startx
имеем удовольствие наблюдать чистые Иксы, то есть серое поле с крестообразным курсором мыши. Реакция его на перемещение грызуна означает, что X-сервер функционирует исправно. Впрочем, на от этого ни холодно, ни жарко: едиснтвенное, что можно сделать с чистыми Иксами — это выйти из них. А для практической работы требуется как минимум программа под названием менеджер окон. Можно, конечно, установить и всамделишний десктоп, то есть интегрированную среду, типа KDE, GNOME или XFce — но не для того же мы отказывались от укомплектованных дистрибутивов Kubuntu, Ubuntu или Xubuntu, чтобы ту же кучу приложений устанавливать вручную.
В проблему выбора оконного менеджера вмешиваться не буду — это все равно, что лезть в личную жизнь пользователя. И потому просто продемонстрирую дальнейшую процедуру на некоем подопытном кролике — пусть в качестве такового выступит fluxbox, которого ни один пурист True Unix GUI не заподозрит в Windows-подобии.
Итак, устанавливаем нашего кролика:
$ sudo aptitude install fluxbox
Затем с помощью редактора nano создаем в нашем домашнем каталоге файл.xinitrc, в который вносим единственную (пока) строку:
exec fluxbox
И теперь в ответ на команду startx вместо мертво-серого поля видим элегантное рабочее поле с аккуратной панелькой и контекстным меню по нажатию правой клавиши мышы.
Впрочем, до полного благополучия пока еще далеко. Во-первых, не факт, что видимая нами картина соответствует ожидаемой, исходя из возможностей видеосистемы. Во-вторых, наблюдает некоторый напряг с русскими буквами: местами в меню они есть, а местами — подменяются кракозябрами.
Первая проблема решается переконфигурированием X-сервера:
$ sudo dpkg-reconfigure xserver-xorg
В ходе его придется ответить на большое количство вопросов. Я на этом останавливаться не буду: в первом приближении ответы достаточно тривиальны, а детальное описание сути того, что за ними стоит, далеко выходит за рамки этой заметки.
Вопрос же с неполной русификацией fluxbox также решаем — подбором тем и редактированием их описаний на предмет подключения только тех шрифтов, которые содержат символы кириллицы. Я полагаю, что любители этого оконного менеджера знаю, как это делается — тем паче, что в других менеджерах окон все может быть совсем по другому.
Вступление или подготовка к сборке ядра
Для сборки можно использовать ядро с kernel.org.
Если вам удобнее собрать ядро, поставляемое с вашим дистрибутивом, вы можете
смело пропустить этот шаг.
Пройдите по указанной выше ссылке и скачайте ядро .
Должен скачаться файл примерно с таким наименованием: .
Помимо этого, иногда вам может понадобиться поставить заплатки для ядра. Если
вы не знаете, что это, значит оно вам и не нужно. Хотя мы рассмотрим процесс
наложения заплаток для полноты картины. Получить их можно всё на том же сайте.
Рекомендация по собственно сборке ядра одна на все дистрибутивы, что естественно.
А вот инструмент для сборки вполне возможно, что придётся доустановить.
Для gentoo это пакет (если предполагается сборка дистрибутивного
ядра). Для дебиана понадобится установить
целую пачку пакетов,
для арча понадобится эта инструкция.
Перед сборкой неплохо сесть и подумать какое же ядро собрать. Ядро может быть:
— монолитным
такое ядро полностью грузится при старте системы и остаётся в оперативной памяти
до выключения машины. Его компоненты нельзя изменить, невозможно подгружать и
выгружать модули благодаря чему ядро становится нечувствительным к различным
троянским программам, направленным на подмену оригинальных модулей своими — это
просто невозможно. Но с другой стороны монолитность ядра привносит и некоторые минусы,
такие как невозможность установить стороннюю прошивку или проприетарный драйвер для
видеокарты (ведь его модуль нельзя будет подгрузить!). То есть для домашних машин
лучше не использовать монолитные ядра, а вот для серверов — самое оно.
— модульным
это ядро напротив позволит включать многие компоненты не жёстко, а модульно
(соответственно своему названию), что уменьшит размер ядра и сделает возможным…
да, загрузку и выгрузку нужных модулей. В готовых дистрибутивах для создания такого
ядра используется initramfs (раньше — initrd). Но при сборке под себя можно обойтись
и без него, достаточно лишь жёстко встроить поддержку файловой системы и контроллёра
HD корневого раздела для того, чтобы система смогла определить их и загрузиться.
Это интересно
в чём разница между initrd и initramfs прочитать.
Обычно предлагается включить в ядро жёстко те компоненты, которые нужны вам постоянно,
а те, что предполагается использовать время от времени, включить модулями.
Итак, вы скачали ядро и заплатки. Переместите их в каталог и
сами перейдите в него. Теперь следует распаковать исходники ядра и архивы с заплатками, наложить
заплатки:
При наложении заплаток есть лишь один нюанс: сначала накладывается заплатка
для обновления версии ядра ( как дано выше) и уже затем
все остальные.
Обратите внимание на вывод команды. Если заплатка идеально подходит к
ядру, то в выводе должны быть только строчки .
Строка означает что заплатка наложена успешно,
но место наложения сдвинуто на несколько строк
Если же вы увидите
слово — заплатка не подходит. Лучше удалить каталог
и начать все сначала уже без этой заплатки.
Далее могут выполнены следующие команды:
- — очистит каталог от мусора предыдущей сборки
- — запустит окно настроек ядра
- — опция включена жёстко
- — опция включена модульно
- — опция отключена
Вы можете воспользоваться поиском по параметрам ядра, для этого
нажмите (слеш) и введите искомое. Также не забывайте о справке:
остановитесь на параметре, подробное описание которого вам хотелось бы видеть,
и выбирайте внизу экрана.
General setup
Содержит общие настройки
Некоторые вещи, которые поддерживает Linux (таких, как сетевые драйверы,
файловые системы, сетевые протоколы и т.д.) могут находиться в состоянии
разработки, где функциональность, стабильность или уровень тестирование еще
не достаточно высоки для общего использования. То есть данная опция включает
дополнительные экспериментальные настройки. Рекомендуется включить, чтобы
отображались все доступные опции.
Сюда можно внести наименование, которым дополнится название вашего ядра.
Бывает полезно, когда вы собираете несколько ядер одной и той же версии. Обычно не нужно.
Доступные алгоритмы сжатия, отличающиеся по скорости, эффективности,
компрессии и декомпрессии. Скорость сжатия имеет значение только при сборке ядра.
Поддержка ядром своп-файла. Включаем.
— механизм связи между процессами. Набор библиотечных
функций и вызовов ядра, позволяющий процессам обмениваться информацией. Некоторые
программы требуют этого механизма.
— очередь для сообщений формата POSIX с использованием
приоритетов. Часть механизма связи между процессами. Нужно, если запускать программы написанные под этот формат, например с ОС Solaris.
— поддержка дополнительных сведений о процессах
(время запуска, владелец, командная строка запуска, использование памяти).
Полезно для контроля процессов.
— включение механизма проверки ядра. Например
используется системой SELinux (система расширенной безопасности для Linux).
— включение системных вызовов для
механизма проверки ядра.
Сохранять настройки ядра в нем самом. Это полезно, если у Вы удалите папку с
исходниками ядра, а потом захотите немного изменить ядро.
Если эта опция включена, вы сможете получать параметры текущего ядра из
Рекомендуется включить. Пригодится.
Поддержка группирования процессов. Используется такими подсистемами как CPUSETS,
CFS, контроль памяти или устройства изоляции.
Позволяет двум процессам в разных виртуальных средах иметь один и тот же .
Эта возможность делает реальными такие сценарии, как апгрейд сервера без необходимости его перезагрузки.
Включает поддержку интерфейса некоторых файловых систем (таких как debugfs). Предназначена для эффективного механизма передачи больших объёмов данных из пространства ядра в пользовательское пространство.
Поддержка initrd/initramfs.
Если собирается ядро без оных, следует отключить опцию.
Оптимизация кода ядра по размеру. Может быть полезно для создания загрузочных дискет. В обычных случаях не требуется.
Включение расширенной поддержки профилирования (например, OProfile). Обычно не нужно.
Ubuntu Linux
Ubuntu Linux has become one of the most popular of all the Linux distributions. And through the process of updating a system, you should be able to tell exactly why this is the case. Ubuntu is very user friendly. Ubuntu uses two different tools for system update:
- apt-get: Command line tool.
- Update Manager: GUI tool.
The Update Manger is a nearly 100% automatic tool. With this tool you will not have to routinely check to see if there are updates available. Instead you will know updates are available because the Update Manager will open on your desktop (see Figure 1) as soon as the updates depending upon their type:
- Security updates: Daily
- Non-security updates: Weekly
If you want to manually check for updates, you can do this by clicking the Administration sub-menu of the System menu and then selecting the Update Manager entry. When the Update Manager opens click the Check button to see if there are updates available.
Figure 1 shows a listing of updates for a Ubuntu 9.10 installation. As you can see there are both Important Security Updates as well as Recommended Update. If you want to get information about a particular update you can select the update and then click on the Description of update dropdown.
 
In order to update the packages follow these steps:
- Check the updates you want to install. By default all updates are selected.
- Click the Install Updates button.
- Enter your user (sudo) password.
- Click OK.
The updates will proceed and you can continue on with  your work. Now some updates may require either you to log out of your desktop and log back in, or to reboot the machine. There are is a new tool in development (Ksplice)  that allow even the update of a kernel to not require a reboot.
Once all of the updates are complete the Update Manage main window will return reporting that Your system is up to date.
Now let’s take a look at the command line tools for updating your system. The Ubuntu package management system is called apt. Apt is a very powerful tool that can completely manage your systems packages via command line. Using the command line tool has one drawback – in order to check to see if you have updates, you have to run it manually. Let’s take a look at how to update your system with the help of Apt. Follow these steps:
- Open up a terminal window.
- Issue the command sudo apt-get upgrade.
- Enter your user’s password.
- Look over the list of available updates (see Figure 2) and decide if you want to go through with the entire upgrade.
- To accept all updates click the ‘y’ key (no quotes) and hit Enter.
- Watch as the update happens.
That’s it. Your system is now up to date. Let’s take a look at how the same process happens on Fedora (Fedora 12 to be exact).
Что есть Ubuntu, что есть Linux и какая между ними связь
Есть операционная система Linux — это программа, которая работает как прослойка между пользователем, программами и компьютерным железом. Она существует наравне с Windows и другими операционками. В Linux можно управлять файлами, запускать программы и делать дела.
На разных версиях Linux работает огромное количество серверов, смартфонов и компьютеров по всему миру. Например, по разным подсчётам, от 70 до 90% серверов в мире работают на Linux. Linux любят за гибкость, скорость и глубину настройки.
На основе Linux делают много модификаций и дистрибутивов. Дистрибутив — это как подарочный набор: в него может входить сама операционка, какой-то набор программ и драйверов, графическая оболочка, может быть, даже игры. Например, в дистрибутиве Raspbian, который обычно ставят на миникомпьютеры на Raspberry Pi, сразу установлены среды для программирования.
Ubuntu — это один из дистрибутивов Линукса, ориентированный на простых людей, которым нужно делать простые людские дела. Там есть графический интерфейс и офисные программы.
Скачивается здесь: ubuntu.com/download
Предостережение
Выполнение каких-либо экспериментов с ядром может привести к самым разным пагубным процессам, так как обновить ядро Linux может не каждый специалист. Последствия могут быть самые серьезные, включая полный крах системы и полное уничтожение информации, находящейся на вашем диске. Именно по этой причине для обеспечения максимальной безопасности рекомендуется использовать исключительно отдельный дистрибутив, который устанавливается на виртуальную машину.
Помимо безопасности вы с его помощью сможете добиться единой конфигурации всех компьютеров, которые были задействованы в данной процедуре. Рекомендуется использовать в качестве такого дистрибутива Slackware Linux, так как в нем применяются немодифицированные программные компоненты. Виртуальной машиной может выступать VMware или же QEMU, но это не обязательно.
Установка ядра Linux занимает приблизительно 20 минут, при этом стоит отметить, что сборка ядра, которое собирается по стандартной конфигурации, может осуществляться без создания RAM-диска, так как в данном случае отсутствует создание каких-либо важных загрузочных драйверов.
Коммерческая ценность документации
После того как появился Unix, его коды были известны широкой массе, вследствие чего активно изучались по всему миру. Наиболее известной книгой, описывающей данную ОС, была Lions Commentary on Unix, которую впервые опубликовали еще в далеком 1977 году. Данная книга описывала работу этой операционной системы максимально подробно, вследствие чего ее использовали в различных университетских курсах, посвященных изучению операционных систем. Однако с течением времени стало понятно, что Unix постепенно превращается в коммерческий продукт, вследствие чего было полностью запрещено изучать исходный код на различных курсах для того, чтобы статус коммерческого секрета не подвергался риску.
Как говорят специалисты, для создания предпосылки действительно успешного частного бизнеса первоначально нужно сформировать полностью закрытую коммерческую инфраструктуру, при помощи которой можно будет добиться понимания кода, причем она должна работать исключительно для данной компании. Любое сокрытие информации об архитектуре – это крайне эффективная стратегия контроля над проектом, где присутствуют открытые исходники.
Networking support
В подпунктах включается поддержка протокола TCP/IP, в частности возможность включения/отключения IPv6. Поскольку автор не является специалистом в данной области, детально раздел не рассматривается. Сетевые администраторы, безусловно, найдут для себя множество полезных опций. Для домашнего же использования рекомендуется оставить опции по-умолчанию.
Скорее всего включать не понадобится. Обеспечивает поддержку инфракрасного модуля.
Для тех, у кого встроен модуль беспроводной передачи данных bluetooth. Как правило, сейчас это ноутбуки. Хотя ранее bluetooth был достаточно популярен и соответствующие устройства покупались и использовались на настольных ПК.
позволит выбрать из списка поддержку определённого устройства.
Для ноутбуков, где, как правило, радиопередатчик wifi-чипа включается нажатием клавиши «Kill Switch». Если эта клавиша не нажата и передатчик не включен, wi-fi не заведётся. Кстати, если параллельно у вас установлена Windows, обязательно оставьте под ней включенной кнопку wi-fi. В противном случае в linux при попытке включить интерфейс wlan вам будут объяснять, что Kill Switch отключен и включать его будет бесполезно.
Поддержка стандарта 802.11 для беспроводных сетей.
Шаг 2. Обновление установленных пакетов
Перед началом обновления системы лучше всего установить самые последние версии всех пакетов для текущей версии операционной системы.
Для этого сначала обновим список пакетов:
Далее обновим установленные пакеты до последних доступных версий:
Вам будет представлен список обновлений пакетов. Отвечайте y и нажимайте Enter для продолжения.
Этот процесс может занять некоторое время. После его завершения используйте команду , которая выполнит обновления, затрагивающие зависимости пакетов, добавляя или удаляя пакеты при необходимости. В результате могут обновиться пакеты, которые не обновились в результате :
Отвечайте y для продолжения и дождитесь завершения установки обновлений пакетов.
Теперь, когда у вас есть полностью обновлённая версия Ubuntu 15.10, вы можете использовать для обновления до 16.04.
Интерфейс и его удобство
Все удобно, привычно. Все на месте
В отличие от прошлых версий системы, Ubuntu 19.10 имеет разнесенное управление: внизу меню программ, вверху — подобие панели задач Windows.
Кроме этого, дистрибутив предлагает быструю и простую настройку сетевых подключений в специальном меню быстрого вызова в графическом виде, что среди Linux является киллер-фичей.
Пара кликов — и любое подключение реализовано. Обычно для этого нужна командная строка и правка системных файлов в ней.
И визуальные параметры имеют гибкую настройку
Офисная работа в Ubuntu не отличается для пользователя от аналогичных действий в любой другой современной системе для настольных ПК, будь то Windows, macOS или даже ChromeOS.
Несколько непривычное расположение управляющих элементов меняется по желанию. Ярлыки знакомые, программы обладают схожим с Win-аналогами меню.
Рабочий стол может выглядеть и так
Если что-то не понравится — интерфейс предлагает доступное для понимания меню, в котором можно все поправить на свой вкус.
Разве что темы нельзя по дефолту менять: потребуется сначала скачать дополнительный пакет (погуглить, потом скачать).
Зато они есть, и, кстати, серьезно меняют восприятие: есть имитации других ОС, есть более оригинальные интерфейсы.
Правда стоит быть осторожнее — в некоторых могут потеряться отдельные элементы управления, такие как быстрое подключение/отключение дисков и сетевые настройки.
Ingress Controller
В данной инструкции не будет рассказано о работе с Ingress Controller. Оставляем данный пункт для самостоятельного изучения.
Данное приложение позволяет создать балансировщик, распределяющий сетевые запросы между нашими сервисами. Порядок обработки сетевого трафика определяем с помощью Ingress Rules.
Для установки Ingress Controller Contour (среди множества контроллеров, он легко устанавливается и на момент обновления данной инструкции полностью поддерживает последнюю версию кластера Kubernetes) вводим:
kubectl apply -f https://projectcontour.io/quickstart/contour.yaml
Сборка
Сборка ядра Linux осуществляется при помощи специализированной программы Make. После того как вами будут получены исходные коды ядра, нужно распаковать архив linux-2.6.18.tar.bz2, что делается при помощи специальной утилиты Tar, открывающейся от имени суперпользователя.
Команда make defconfig позволит вам использовать стандартную конфигурацию для данной архитектуры, но при этом вы должны понимать, что в преимущественном большинстве случаев этого оказывается недостаточно, поэтому нужно проводить конфигурацию ядра вручную. Для вызова программы конфигурации ядра нужно ввести команду make menuconfig. Всю дополнительную информацию касательно того, что представляют собой параметры команды make, вы сможете найти в отдельном файле README.
Для запуска ядра в минимальной конфигурации вполне достаточно просто указать тот драйвер контроллера IDE, который вы используете, в разделе «PCI IDE chipset support»
Помимо этого, вам следует обратить свое внимание на раздел «File systems», где должны быть отмечены присутствующие файловые системы
Сборка ядра запускается после нажатия команды make. В преимущественном большинстве случаев используется команда make –j2, так как обновить ядро Linux в данном случае можно будет гораздо быстрее. В данном случае параметр –j2 говорит о том, что одновременно запускается сразу два потока выполнения.