Конфигурирование и компиляция ядра linux

Компиляция

Скомпилировать собственное ядро можно двумя способами:

/Arch Build System
Преимущества — наличие готового PKGBUILD для пакета и удобство системы управления пакетами.
/Традиционная компиляция
Ручная загрузка архива файлов с исходными кодами ядра и их компиляция.

Важно:

  • Нестандартное ядро чревато всевозможными проблемами в плане надёжности и стабильности работы, поэтому настоятельно рекомендуется использовать .
  • Arch Linux поддерживает только . Если вы работаете с другим ядром, то не забывайте упоминать это в запросах в поддержку.

Совет:

  • Лучший способ повысить производительность — адаптировать ядро под свою систему, в первую очередь под архитектуру и тип процессора.
  • Если оставить в ядре только действительно нужные вам функции, то удастся уменьшить его размер и, следовательно, время сборки. Например, удалите из него Bluetooth, Video4Linux, 1000Mbit Ethernet и прочие вещи, которые на вашей машине точно не понадобятся.

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

Ядра kernel.org

Git — ядро Linux, собранное из файлов с исходным кодом из git-репозитория Линуса Торвальдса.

Mainline — ядра, в которых появляются все нововведения. Выходят каждые 2-3 месяца.

Next — самые новейшие ядра, с улучшениями, которые будут добавлены в следующий mainline-выпуск.

Longterm 4.4 — LTS-ядро версии 4.4.

Longterm 4.9 — LTS-ядро версии 4.9.

Longterm 4.14 — LTS-ядро версии 4.14.

Longterm 4.19 — LTS-ядро версии 4.19.

Longterm 5.4 — LTS-ядро версии 5.4.

Неофициальные ядра

Aufs — совместимое с aufs ядро Linux. Полезно при работе с Docker.

Ck — патч от Con Kolivas, повышение быстродействия для настольных систем с любым типом нагрузки.

Clear — патчи проекта Clear Linux от Intel. Содержит улучшения производительности и безопасности.

GalliumOS — ядро Linux с патчами GalliumOS для Хромбуков.

Libre — без проприетарных или обфусцированных драйверов устройств.

Liquorix — ядро, собранное из исходного кода Zen с настройками для Debian. Разработан для настольных, мультимедийных и игровых систем, часто используется в качестве замены основному ядру Debian. Создатель патча Liquorix, Damentz, также является разработчиком набора патчей Zen.

MultiPath TCP — ядро с поддержкой Multipath TCP.

pf-kernel — набор неплохих улучшений, не вошедших в mainline. Сопровождается разработчиком ядра. Предоставляет порты улучшений для новых версий ядра, если они не были выпущены официально. Наиболее важные нововведения — UKSM и планировщик процессорного времени PDS.

Realtime kernel — поддерживается небольшой группой разработчиков, возглавляемой Ingo Molnar. Патч позволяет применять kernel preemption практически ко всему ядру за исключением небольших участков кода («raw_spinlock critical regions»). Этого удалось добиться за счёт замены большинства спинлоков ядра на мьютексы с поддержкой наследования приоритета, а также перемещением всех прерываний (в том числе и программных) в потоки ядра.

Tkg — ядро с набором патчей для планировщиков PDS и Project C / BMQ. Стандартный планировщик CFS также доступен. Изменения нацелены на улучшение баланса интерактивность/производительность в играх. Автор и сопроводитель — Etienne Juvigny (Tk-Glitch).

VFIO — патч ядра от Alex Williamson с поддержкой PCI Passthrough для KVM на некоторых машинах.

XanMod — улучшение производительности ядер рабочих станций, игровых компьютеров, медиацентров и других систем. Включает планировщик MuQSS, планировщик ввода-вывода BFQ, алгоритм дедупликации памяти в реальном времени UKSM, алгоритм управления перегрузками TCP BBR, расширенный набор команд для архитектуры x86_64 и другие изменения.

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

На нынешний день Linux — монолитное ядро с поддержкой занимаемых модулей. То, что архитектура Linux не является микроядерной, потребовало обширнейшие прения между Линусом Торвальдсом и Эндрю Таненбаумом в конференции comp.os.minix (англ.) в 1992 г. Ядро Linux удерживает многозадачность, виртуальную память, динамические библиотеки, зарезервированную загрузку, производительную систему управления памятью и почти многие сетевые протоколы. В отличие от обычных монолитных ядер, драйверы механизмов легко собираются в виде модулей и загружаются или разгружаются во время работы системы. Драйверы устройств и продолжения ядра обычно запускаются в 0-кольце защиты, с целым доступом к оборудованию.

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

Настраиваемые параметры ядра

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

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

Но как и всё в системах UNIX и Linux, настройка параметров ядра по информационным каналам завязана на файловой системе. Чтобы просматривать конфигурацию ядра и управлять ею, в файловой системе в каталоге /proc/sys существуют специальные файлы. Это обычные файлы, но они играют роль посредников в предоставления интерфейса для динамического взаимодействия с ядром. Однако документация, касающаяся этого аспекта, в частности об описании конкретных параметров и их значений довольно скудна. Одним из источников, из которого можно почерпнуть некоторые сведения по этой теме, является подкаталог Documentation/sysent в каталоге с исходными кодами ядра.

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

$ cat /рrос/sys/fs/file-max
34916
$ sudo sh -c "echo 32768 > /proc/sys/fs/file-max"

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

Также можно использовать специализированную утилиту sysctl. Она позволяет получить значения переменных прямо из командной строки, либо список пар вида переменная=значение из файла. На этапе начальной загрузки утилита считывает начальные значения некоторых параметров, которые заданы в файле /etc/sysctl.conf. Более подробную информацию об утилите sysctl можно найти на страницах man-руководства.

В следующей таблице приводятся некоторые настраиваемые параметры ядра:

Каталог Файл/параметр Назначение
С autoeject Автоматическое открывание лотка с компакт-диском при размонтировании устройства CD-ROM
F file-max максимальное число открытых файлов. Для систем, которым приходится работать с большим количеством файлов, можно  увеличивать это значение до 16384
F inode-max Максимальное число открытых индексных дескрипторов в одном процессе. Полезно для приложений, которые открывают десятки тысяч дескрипторов файлов
К ctrl-alt-del Перезагрузка системы при нажатии комбинации клавиш <Ctrl+Alt+Del>.
К printk ratelimit Минимальный интервал между сообщениями ядра, в секундах
К printk_ratelimi_burst Количество сообщений, которые должны быть получены, перед тем как значение минимального интервала между сообщениями printk станет активным
К shmmax Максимальный размер совместно используемой памяти
N conf/default/rp_filter Включает механизм проверки маршрута к исходному файлу
N icmp_echo_

ignore_all

Игнорирование ICMP-запросов, если значение равно 1
N icmp_echo_

ignore_

broadcasts

Игнорирование широковещательных ICMP-запросов, если значение равно 1.
N ip_forward Перенаправление IP-пакетов, если значение равно 1. Например, когда машина на Linux используется как  маршрутизатор, то это значение нужно устанавливать равным 1
N ip_local_port_

range

Диапазон локальных портов, выделяемый при конфигурировании соединений. Для повышения производительности серверов, инициирующих много исходящих соединений, этот параметр нужно расширить до 1024-65000
N tcp_fin_timeout Интервал для ожидания (в секундах) заключительного RN-пакета. В целях повышения производительности серверов, которые пропускают большие объемы трафика, нужно устанавливать более низкие значения (порядка 20)
N tcp_syncookies Защита от атак волнового распространения SYN-пакетов. Нужно включать при наличии вероятности DOS-атак

Условные обозначения: F — /proc/sys/fs, N — /proc/sys/net/ipv4, К — /proc/sys/kernel, С — /proc/sys/dev/cdrom.

Пример:

$ sudo sysctl net.ipv4.ip_forward=0

В результате выполнения этой команды будет отключено перенаправление IP-пакетов. Есть одна особенность для синтаксиса этой команды: символы точки в «net.ipv4.ip_forward» заменяют символы косой черты в пути к файлу ip_forward.

История возникновения Unix

В 1969 году команда разработчиков в лице Кена Томпсона, Денниса Ритчи и Дугласа Макилроя из исследовательского центра «Bell Labs» компании AT&T начала проект по созданию единой операционной системы (сокр. «ОС») для всех компьютеров, назвав её — «Unix». Первая версия системы была написана на Ассемблере. В 1972 году для того, чтобы переписать систему на более простой язык, Деннис Ритчи создает язык программирования Си, благодаря чему, 15 октября 1973 года выходит новая версия Unix (четвертая), ядро которой было переписано на Си. А через 2 года (в 1975 году) появляется уже полностью написанная на языке Си редакция Unix (пятая).

Долгое время операционная система являлась лишь исследовательским проектом, но в 1973 году проходит конференция Ассоциации по вычислительной технике (сокр. «ACM» от «Association for Computing Machinery»), на которой создатели Unix рассказывают о своей системе, и к ним сразу же начинают обращаться люди с просьбой поделиться её копией. И тут стоит отметить одну очень важную историческую деталь, которая сыграла свою роль в дальнейшем развитии событий. Дело в том, что в 1956 году компания AT&T (являющаяся на тот момент монополистом на американском рынке местной и междугородней связи) завершает очередное разбирательство с федеральными властями и антимонопольным комитетом по поводу своего монопольного положения, результатом которого становится подписание соглашения, накладывающее на AT&T ограничения по продажи продуктов и услуг, не связанных напрямую с телефонами и телекоммуникациями. А это значит, что Unix не могла продаваться всем желающим её заполучить. В связи с этим фактом, распространение исходных кодов системы Unix происходило абсолютно бесплатно.

Первоначально Unix использовалась в основном в университетах и крупных финансовых корпорациях. К 1978 году насчитывалось около 600 машин с установленной на них системой Unix.

Выполнение в режиме ядра

Существуют всего три события, при которых выполнение процесса переходит в режим ядра:

  1. аппаратные прерывания
  2. особые ситуации
  3. системные вызовы

Во всех случаях ядро Linux получает управление и вызывает соответствующую системную процедуру для обработки события. Непосредственно перед вызовом ядро сохраняет состояние системы, а именно состояние прерванного процесса в системном стеке. После завершения обработки, состояние процесса восстанавливается и процесс возвращается в исходный режим выполнения. Чаще всего это режим задачи, например, когда прерывание возникло, когда процесс уже находился в режиме ядра, после обработки события он останется в том же состоянии.
Стоит разграничить особые ситуации и прерывания. Аппаратные прерывания генерируются периферией при наступлении исключительных событий ( например, завершение печати или поступление данных на последовательный вход ввода ) и имеют асинхронный характер, поскольку невозможно в тот или иной момент сказать, когда система нам пробросит исключение. Часто, эти прерывания не связаны с текущим процессом, а вызваны внешними событиями. Именно поэтому, обработка прерываний происходит в системном контексте, при этом недопустим доступ к адресному пространству процесса. По этой причине обработка ситуаций не должна блокироваться, поскольку это вызовет блокирование выполнения независимого процесса
Системные вызовы позволяют процессам воспользоваться базовыми услугами ядра. Интерфейс системных вызовов определяет ограниченный набор точек входа в ядро системы, обращение к которым изменяет режим выполнения процесса и позволяет выполнять привилегированные функции ядра. Стандартная библиотека C, позволяющая использовать системные функции как обычные процедуры, на самом деле содержит заглушки, обеспечивающие фактическую реализацию вызова соответствующей точки входа ядра. Эта реализация практически не зависит от аппаратной части системы. Например, для систем на базе процессоров Intel используются шлюзы. Имеются два типа шлюзов: шлюзы ловушек и шлюзы вызовов. Для осуществления вызова через шлюз ловушки процесс выполняет команду прерывания, а при работе через шлюз вызова — команду межсегментного вызова. Выполнение системного вызова происходит в режиме ядра, но в контексте процесса, сделавшего системный вызов. Таким образом, открыт доступ к адресному пространству процесса и используется стек ядра процесса.

Ядро

В системе Windows ядро не выполняет все задачи, которые выполняются в режиме ядра. Ядру помогает “Исполнительная система“. Подробнее про неё будет написано в следующей статье. А пока посмотрим чем занимается само ядро.

Ядро состоит из набора функций Ntoskrnl.exe, которые являются фундаментальными в операционной системе. Эти функции используются компонентами исполнительной системы.

А также ядро поддерживает работу с оборудованием, например работу с прерываниями и процессором. И ещё ядро следит за синхронизацией процессоров в многопроцессорной системе.

С другим оборудованием ядро работает через HAL.

Установка ядра Linux в систему

После окончания компиляции, в директории /usr/src должны появится два файла с продолжением «deb» они являются установочными пакетами нашего нового ядра и водворить их можно с помощью утилиты dpkg:

sudo dpkg -i linux-image-3.8.5-mykernel_3.8.5-mykernel-10.00.Custom_i386.deb
sudo dpkg -i linux-headers-3.8.5-mykernel_3.8.5-mykernel-10.00.Custom_i386.deb

Приветствую! Ядро установлено, теперь система будет загружаться с данным ядром по умолчанию, но если у вас возникнут проблемы с новоиспеченным ядром вы всегда можете загрузится со старым избрав его на экране загрузки — Grub.

Концепции [ править ]

В этом разделе представлен обзор основных концепций, относящихся к ALSA.

Как правило, ALSA поддерживает до восьми карт , пронумерованных от 0 до 7; каждая карта представляет собой физическое или логическое устройство ядра, способное осуществлять ввод и вывод. Кроме того, к каждой карте можно обращаться по ее идентификатору , который представляет собой поясняющую строку, например « Гарнитура » или « ICH9 ».

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

Устройство может иметь подустройства , пронумерованные, начиная с 0; подустройство представляет некоторую соответствующую звуковую оконечную точку для устройства, например пару динамиков. Если подустройство не указано или если указан номер подустройства -1, то используется любое доступное подустройство.

Интерфейс карты — это описание протокола ALSA для доступа к карте; возможные интерфейсы включают: hw , plughw , default и plug: dmix . Интерфейс hw обеспечивает прямой доступ к устройству ядра, но не поддерживает микширование программного обеспечения или адаптацию потока. Параметры plughw и default включают вывод звука, при котором интерфейс hw выдает ошибку.

Приложение обычно описывает вывод звука путем объединения всех вышеупомянутых спецификаций в строку устройства [ необходима ссылка ] , которая имеет одну из следующих форм (с учетом регистра ):

  • интерфейс: карта, устройство, подустройство
  • интерфейс: CARD = 1, DEV = 3, SUBDEV = 2 .

Поток ALSA — это поток данных, представляющий звук; наиболее распространенным форматом потока является PCM, который должен создаваться таким образом, чтобы соответствовать характеристикам или параметрам оборудования, включая:

  • частота дискретизации : часто 44,1 кГц в домашних стереосистемах или 48 кГц в домашних кинотеатрах, но до 88,2 кГц, 96 кГц или даже 192 кГц для производства или воспроизведения звука Hi-Fi.
  • ширина выборки : измеряется в некотором количестве бит на выборку (например, 8, 16, 24 или 32 бит / выборка)
  • кодировка образца : например, порядок байтов
  • количество каналов : 1 для моно, 2 для стерео или 6 для AC-3 / IEC958

Архитектура Windows

Чтобы лучше понять архитектуру Windows я подготовил такой рисунок:

При запуске Windows приложения идет обращение к “Подсистеме Windows“, а уже от туда идет обращение к “Исполнительной системе“, которая запустит процесс для этого приложения.

Microsoft также разработали “Подсистему для Linux” (WSL). Для этого в режим ядра поместили два драйвера: Lxss.sys и Lxcore.sys. Эти драйвера эмулируют ядро Linux. А также, в пользовательском режиме работает специальный менеджер – LX Manager. Этот менеджер обрабатывает приложения для Linux.

Когда вы запускаете Linux приложение, например bash.exe, то идет обращение через LX Manager к драйверам эмулирующим ядро Linux. И уже это ядро запускает и обслуживает данный процесс.

То-есть для Windows приложений существует “Подсистема Windows” в пользовательском режиме и “Исполнительная система” в режиме ядра. А для Linux приложений существует LX Manager в пользовательском режиме и специальные драйвера в режиме ядра.

Помимо “Исполнительной системы” и драйверов эмулирующих работу ядра Linux в режиме ядра работают:

  • драйвера устройств или приложений, которые являются исполняемыми файлами с расширением .sys;
  • ядро операционной системы;
  • HAL – прослойка между ядром (или драйверами) и оборудованием (системной платой).

Что такое ядро ОС? Типы ядер

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

Как правило, большинство ядер ОС делятся на три типа:

   микроядра;

   монолитные;

   гибридные.

Микроядро

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

Плюсы:

   переносимость;

   малый размер;

   небольшие требования к используемой памяти;

   безопасность.

Минусы:

   аппаратное обеспечение сильнее абстрагировано от системы;

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

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

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

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

Плюсы:

   практически прямой доступ программ к оборудованию;

   процессам проще взаимодействовать друг с другом;

   если ваше устройство поддерживается ядром, никаких дополнительных установок ПО не потребуется;

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

Минусы:

   большой размер ядра;

   больший размер занимаемой памяти;

   проблемы с безопасностью, т.к. все части работают в пространстве ядра.

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

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

Плюсы:

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

   меньший размер в сравнении с монолитным ядром;

   гибче в отличие от других ядер.

Минусы:

   может страдать от пониженной производительности (как и микроядро);

   работа драйверов устройств, как правило, сильнее зависит от производителей оборудования.

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

Дистрибутивы Linux

Самые популярные дистрибутивы:

  • Ubuntu — ориентирован на лёгкость в освоении и использовании.
  • openSUSE — бесплатно распространяемая версия дистрибутива SuSE, принадлежащая компании Novell. Отличается удобством в настройке и обслуживании благодаря использованию утилиты YaST.
  • Fedora — поддерживается сообществом и корпорацией RedHat, предшествует выпускам коммерческой версии RHEL.
  • Debian — международный дистрибутив, разрабатываемый обширным сообществом разработчиков в некоммерческих целях. Послужил основой для создания множества других дистрибутивов. Отличается строгим подходом к включению несвободного ПО.
  • Mandriva — французско-бразильский дистрибутив, объединение бывших Mandrake и Conectiva.
  • Mageia — дистрибутив Linux, основанный на Mandriva Linux бывшими сотрудниками компании Mandriva, разрабатываемый в цикле, составляющем 9 месяцев.
  • Slackware — один из старейших дистрибутивов, отличается консервативным подходом в разработке и использовании.
  • Gentoo — дистрибутив, собираемый из исходных кодов. Позволяет очень гибко настраивать конечную систему и оптимизировать производительность, поэтому часто называет себя мета-дистрибутивом. Ориентирован на экспертов и опытных пользователей.
  • Arch Linux — ориентирован на применение самых последних версий программ, постоянно обновляется, поддерживает одинаково как бинарную, так и установку из исходных кодов и «KISS» («Keep it simple, stupid» / «Не усложняй»).
  • Linux Mint — дистрибутивы, основанные как на Ubuntu, так и на Debian (LMDE) и полностью с ними совместимые, включающие в себя по умолчанию Java, Adobe Flash и многое другое.
  • CentOS (Community ENTerprise Operating System)|CentOS — дистрибутив, основанный на свободных исходных текстах коммерческого дистрибутива Red Hat Enterprise Linux компании Red Hat, и совместимый с ним. Срок поддержки каждой версии CentOS составляет 7 лет (с помощью выпуска обновлений безопасности). Новая версия CentOS выходит раз в 2 года и каждая версия регулярно обновляется (каждые 6 месяцев) для поддержки новых аппаратных средств. В результате это приводит к безопасной, легко обслуживаемой, надёжной, предсказуемой и масштабируемой Linux среде.
  • PCLinuxOS — LiveCD дистрибутив с возможностью установки операционной системы на жёсткий диск. Основанный изначально на Mandrake 9.2, PCLinuxOS придерживается собственного пути развития.

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

Достоинства

  • Бесплатность: При установке Linux открываются возможности получения набора из тысяч бесплатных программ, которые абсолютно функциональны.
  • Надежность: Корректная работа аппаратной части ПК, позволит Linux’у работать годы без перезагрузки и зависаний. А кнопка Reset вообще никогда не понадобится.
  • Безопасность: В Linux практически нет вирусов. Само построение операционной системы исключает работу вредоносных программ. И поэтому можно обойтись без антивирусных программ, замедляющих работу компьютера. Нет необходимости постоянно обновлять антивирусные базы и проверять жесткий диск на вирусы.
  • Открытый исходный код: Это дает возможность использовать и модифицировать код по своему желанию. Можно в любой момент исправить какие-нибудь ошибки или недочёты системы, а также расширить её функциональность, путём написания дополнений или программ, работающих под ее управлением.

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

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

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