§ 1. Введение

Краткая история ядра Linux

01 История Linux началась в 1991, когда Линус Торвальдс решил написать программу, использующую все возможности его нового процессора Intel 80386, но в итоге написал целую операционную систему. Основной особенностью этой системы был полностью открытый исходный код и возможность использования без коммерческой лицензии. Свое детище молодой программист опубликовал в новостной группе. Постепенно ядро начало набирать популярность: под него начали переписывать другие программы, в том числе систему управления графическими окнами X и программное окружение GNU. Вслед за этим окружением Linux стал использовать лицензию GPL, что способствовало переписыванию еще большего количества программ под это ядро. На данный момент некоторые большие компании содержат штат сотрудников, которые занимаются исключительно разработкой ядра Linux, а само ядро используется в целом спектре сложных систем: на серверах и в облаке, на суперкомпьютерах и одноплатных компьютерах, на подводных лодках и кораблях, на смартфонах и в умных устройствах, на Земле и в открытом космосе.

02 Что же послужило такому успеху ядра Linux? Здесь можно выделить несколько факторов. Во-первых, это удачное время появления первой версии ядра. На момент появления Linux существовало несколько альтернативных ядер операционных систем (Minix, BSD и другие) и несколько программных окружений (GNU, BSD и другие). Ядро BSD, разработанное в университете Беркли, было наиболее развитым на тот момент, однако оно позаимствовало исходный код из ядра Unix, разработанного в компании AT&T, из-за чего на его разработчиков подали в суд, а его популяризация замедлилась. Ядро Minix было написано для шестнадцатибитных процессоров, что затрудняло его использование для новых тридцатидвухбитных процессоров. Проект GNU (GNU is not Unix), начатый Ричардом Столманом, сумел привлечь людей к разработке программного окружения, но не смог популяризовать ядро Hurd, в результате чего оно не дописано до сих пор. В ситуации, когда силы разработчиков направлены на развитие конкурирующих технологий, каждая из которых имеет существенные недостатки, появление нового ядра операционной системы, которое их лишено, обречено на успех. Код Linux на момент появления был полностью написан Линусом Торвальдсом, который позаимствовал лишь идеи из ядер-конкурентов, он был написан под новые 80836-е процессоры, а также он использовал открытую лицензию, ограничивающую коммерческое использование. В последствии лицензия была заменена на GPL, которая позволяет использовать код в коммерческих проектах при условии опубликования всех произведенных над оригиналом изменений, что стало вторым фактором успеха Linux.

03 Лицензия GPL (GNU General Public License) позволяет использовать код в исходном виде или в виде динамически или статически связываемой библиотеки в любой, в том числе коммерческой программе, при условии, что пользователь программы может получить исходный код этой программы и всех ее зависимостей (всех библиотек, которые она использует). В случае ядра операционной системы это означает, что пользователю программы необходимо предоставить все изменения, которые были произведены над оригинальным ядром. Если же код не менялся, то получается, что ядро можно использовать без каких-либо ограничений, потому что его все равно нельзя подключить к программе в виде библиотеки. Это означает, что программы, работающие поверх такого ядра, могут иметь закрытый исходный код. На данный момент большинство компаний используют ядро Linux именно так: у них есть сервер, на котором установлено ядро Linux, окружение GNU и запущены их собственные сервисы с закрытым исходным кодом. При этом компании, которые производят оборудование, заранее добавляют необходимый для взаимодействия с этим оборудованием код в ядро Linux, и при установке операционной системы, устройства автоматически обнаруживаются, и с ними можно взаимодействовать. Для таких компаний наличие одного ядра, для которого нужно писать код, экономит время и деньги. Конечно, все это касается серверов, а настольные и портативные компьютеры редко используют ядро Linux, и, как следствие, не всегда в ядре можно найти драйвер для тачпада или устройства считывания отпечатка пальца, а иногда и для сетевой платы Wi-Fi. В корпоративной среде, как правило, на рабочих компьютерах установлены другие операционные системы, с которых сотрудники подключаются к серверам Linux удаленно. Тем не менее, в мировом сообществе программистов, а также в сообществе людей, выступающих за свободное программное обеспечение, много людей используют Linux на настольных и портативных компьютерах, потому что он предоставляет лучшие средства разработки и отладки программ, а также полный контроль над компьютером. Когда ядро предоставляет человеку полный контроль над компьютером, это приятно, но это также означает высокий уровень ответственности: Linux никогда не спросит, вы действительно хотите удалить все файлы на своем компьютере?, вы действительно хотите обнулить первые несколько секторов жесткого диска и потерять все данные?. Для того чтобы у вас не возникало проблем с взаимодействием с компьютерами под управлением Linux, и был создан этот курс. На нем вы научитесь решать повседневные задачи и получать удовольствие от работы с ядром и его окружением.

Задания

Базовые команды 1 балл

Файловая система sysfs1 балл

04 Напишите команду, которая выведет один из следующих параметров: температуру процессора, уровень заряда батареи ноутбука, яркость экрана монитора, — считав эти данные из соответствующего файла в sysfs. Воспользуетесь поисковиком, чтобы найти нужный файл.

Установка Linux 2 балла

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