Linux. Системное программирование.
Данная книга рассказывает о системном программировании в Linux. Системное программирование — это практика написания системного ПО, низкоуровневый код которого взаимодействует непосредственно с ядром и основными системными библиотеками. Иными словами, речь далее пойдет в основном о системных вызовах Linux и низкоуровневых функциях, в частности тех, которые определены в библиотеке C. Есть немало пособий, посвященных системному программированию для UNIX-систем, но вы почти не найдете таких, которые рассматривают данную тему достаточно подробно и фокусируются именно на Linux. Еще меньше подобных книгучитывают новейшие релизы Linux и продвинутые интерфейсы, ориентированные исключительно на Linux. Эта книга не только лишена всех перечисленных недостатков, но и обладает важным достоинством: дело в том, что я написал массу кода для Linux, как для ядра, так и для системных программ, расположенных непосредственно «над ядром». На самом деле я реализовал на практике ряд системных вызовов и других функций, описанных далее. Соответственно книга содержит богатый материал, рассказывая не только о том, как должны работать системные интерфейсы, но и о том, как они действительно работают и как вы сможете использовать их с максимальной эффективностью. Таким образом, данная книга одновременно является и руководством по системному программированию для Linux, и справочным пособием, описывающим системные вызовы Linux, и подробным повествованием о том, как создавать более интеллектуальный и быстрый код. Текст написан простым, доступным языком. Независимо от того, является ли создание системного кода вашей основной работой, эта книга научит полезным приемам, которые помогут вам стать по-настоящему высокопрофессиональным программистом.
Почему Linux лучше подходит для программирования?
Многие задавали мне вопрос почему же программисты предпочитают Linux и почему он очень популярен среди программистов. На самом деле на то существует много причин и читая отзывы в интернете (особенно в зарубежных странах) я лишний раз убедился в этом.
Однако я постарался упростить статью и собрал наиболее общепринятые причины, почему Linux популярен среди программистов. Поэтому в этой статье я приведу топ 6 причин почему многие программисты так ценят операционную систему Linux.
1. Безопасность
Первая причина — это конечно же безопасность. Linux имеет тенденцию быть более безопасной системой и это факт, так что вам не понадобится устанавливать дополнительное антивирусное ПО и вообще в связи с тем, что Linux менее популярен среди общего количества пользователей компьютеров, соответственно он менее подвержен вирусным атакам.
Отсутствие необходимости установки антивируса значительно упрощает жизнь разработчикам. Вам не нужно платить за лицензию и антивирус не съедает системные ресурсы компьютера.
Причина безопасности Linux — это то что данная операционная система с открытым исходным кодом. Это означает, что любой желающий может посмотрите исходный код системы. Те кто не хорошо знаком с этой концепцией может подумать что, ну если исходный код системы доступен всем, то любой желающий сможет просмотреть его и найти уязвимости или баги которые приводит к уязвимостям и создадут для этого вирус. Это логично и отчасти они будут правы, однако на самом деле все происходит чуть иначе.
Поскольку Linux популярная открытая операционная система и наверное является одним из основоположников современной философии open source, то есть открытости, многие скажем «добрые» разработчики найдя уязвимость, обязательно дадут инициативу по его исправлению или как минимум сообщат разработчикам системы об этом. В итоги если определенно количество «плохих» людей ищут уязвимости из исходного кода Linux и захотят сделать вирус, найдутся ещё больше «хороших» людей которые захотят исправить данную уязвимость и помочь всем пользователям данной системы.
Из этого всего можно сделать вывод, что Linux действительно безопасная операционная система.
2. Менеджер пакетов
Вторая причина в том, что Linux намного улучшает рабочий процесс для программистов с помощью менеджера пакетов встроенный в почти каждый дистрибутив. Это полезно для программистов с точки зрения эффективность, то есть если вы хотите установить новую программу или обновить уже имеющуюся, просто введите sudo apt (если у вас например ubuntu или linux mint) и напишите соответствующую команду. И всё это происходит буквально за пару минут.
Например на Windows данный процесс является относительно кропотливым, так-как все это вам нужно будет делать вручную.
Допустим, что вы хотите установить программу VLC media player. Для этого вам сначала надо будет открыть браузер, затем в поиске набрать скачать vlc, найти официальный сайт (так-как в пиратках часто бывают вирусы), далее нажать на кнопку скачать, после это открыть скачанный .exe файл и выбрать место для установки программы. После установки многие программы потребуют перезагрузки, чтобы изменения вступили в силу. И уже после ожидания перезагрузки вы полноценно сможете воспользоваться программой.
Конечно можно будет установить менеджер пакетов chocolatey, однако новичку данный процесс покажется сложным.
С дистрибутивами Linux вы получаете менеджер пакетов прямо из коробки, то есть после установки менеджер пакетов уже установлен и настроен.
Теперь допустим, что ты хотите сделать то же самое, но в Linux. Все, что вам нужно сделать, это открыть окно терминала и ввести sudo apt-get install vlc и нажать на Enter. И все после ожидания установки вы можете полноценно ей пользоваться. При этом вы уверены что скачали программу из надежного источника.
Данный фактор очень важен для программиста, так-как сегодня разработка лишь одного проекта требует скачивания нескольких программ.
3. Нет надобности в перезагрузки
Отсутствие перезагрузки, это то, о чем я говорил в предыдущей главе, когда я объяснял, как устанавливаются программы на Windows. То есть в большинстве программ, после установки требуется перезагрузка для полноценной работы с программой.