линукс открытый исходный код
4 дистрибутива Linux с полностью открытым исходным кодом
Linux — предпочтительная ОС для любящих свободу хиппи, но в ядре скрыт грязный маленький секрет
: не все, что вы видите, с открытым исходным кодом!
Ядро Linux содержит двоичные двоичные объекты, собственный код, который обеспечивает работу определенного оборудования. Многие ноутбуки имеют Wi-Fi или видеокарты, которые не работают без встроенного программного обеспечения, поставляемого производителем.
Это не беспокоит многих пользователей Linux. Если производители не хотят делиться своим кодом, но хотят внести свой вклад в Linux, позвольте им! Но, с другой стороны, это закрытый исходный код, и это означает, что пользователи не могут проверить, что происходит внутри. Это частично объясняет, почему Free Software Foundation не поддерживает многие из самых популярных дистрибутивов. Это включает в себя Fedora, которая не допускает никаких программ с открытым исходным кодом в своих репозиториях.
Вместо этого FSF рекомендует дистрибутивы, которые не содержат никакого закрытого исходного кода, даже на уровне ядра. Эти дистрибутивы не так популярны, но есть еще множество вариантов.
1. Трискель — легкий выбор
Ищете простой и удобный в использовании дистрибутив с большим количеством программного обеспечения? Трискель — хорошее место для начала. Этот дистрибутив основан на релизах Ubuntu LTS, что делает его относительно современным.
Большая разница между Trisquel и Ubuntu заключается в отсутствии двоичных двоичных объектов и проприетарного программного обеспечения любого рода. Trisquel не рекомендует устанавливать закрытые драйверы оборудования или кодеки. Но вы сохраняете свободу, вы должны настроить свой опыт, как в Ubuntu. Добавить PPA для установки программного обеспечения
это не доступно в репозиториях.
Поскольку каждый релиз основан на Ubuntu LTS, опыт начинает ощущаться устаревшим через некоторое время. Многое происходит в течение двух лет в мире свободного программного обеспечения. Установка Trisquel 7 означает, что вы будете запускать приложения с 2014 года. Хотя с Ubuntu 16.04 теперь доступно
следующий релиз не должен быть слишком далеко
2. Парабола — для новейшего программного обеспечения
Parabola — это Arch Linux с удаленными или замененными закрытыми битами.
Как Арка, Парабола — это то, что ты делаешь. Веб-сайт предоставляет вам текстовый установщик, который дает то, что вам нужно для создания своего собственного компьютера. В Интернете есть руководство, но здесь мало чего можно ожидать.
Из-за этого Parabola ориентирована на более продвинутых пользователей. Это также для любителей свободного программного обеспечения, которые хотят получить доступ к текущему программному обеспечению, поэтому в отличие от Trisquel, вы не будете застревать, используя устаревшие версии.
3. gNewSense — пробовал и тестировал
Поскольку Trisquel основан на Ubuntu, gNewSense является производным от Debian. Это дает вам представление о том, чего ожидать от каждого. Где первый имеет свою собственную тему и макет, последний довольно ванильный.
Сходства между gNewSense и Debian на этом не заканчиваются. Поскольку Debian использует старые, но стабильные версии программного обеспечения, gNewSense делает то же самое. Это может оставить вас в прошлом. При установке последней версии gNewSense в 2016 году вы будете запускать приложения с 2012 года.
«Преимущество» перед Debian заключается в удалении любых ссылок на программное обеспечение с закрытым исходным кодом. Вы не увидите определенные кодеки и несвободные приложения в репозиториях. Разработчики gNewSense также удалили упоминания и предложения по установке проприетарного программного обеспечения. Если вам нравится Debian, но вам не нравится готовность этого проекта к размещению и предоставлению несвободного кода, это может быть дистрибутивом для вас.
4. BLAG — для любителей RPM
Не фанат экосистемы Debian? Предпочитаете RPM по сравнению с DEB? BLAG — ваша альтернатива Trisquel и gNewSense на основе Fedora.
Вы могли бы описать BLAG как Fedora с удаленными двоичными BLOB-объектами. BLAG также поставляется с несколькими сторонними репозиториями, такими как Freshrpms. Но последняя версия основана на Fedora 14, выпущенной в мае 2011 года.
BLAG означает Brixton Linux Action Group. В дистрибутиве есть антикорпоративная, анархистская культура, которая может отличаться от того, к чему вы привыкли. Будь то за или против — решать вам.
Как насчет моего текущего дистрибутива?
Ubuntu, Fedora, openSUSE, Arch Linux и другие известные дистрибутивы
все поставляются с ядром Linux, которое содержит двоичные двоичные объекты. Но вам не нужно использовать эти ядра. Можно установить ядро linux-libre и продолжить использовать дистрибутив, который вы уже знаете и любите. Фонд свободного программного обеспечения Латинская Америка предлагает несколько способов сделать это.
Это также хороший способ проверить, работает ли ваше оборудование с ядром linux-libre, прежде чем пробовать полноценный дистрибутив. Если они этого не делают, вы можете вернуться к версии ядра, которая работает
Ваш компьютер уважает вашу свободу?
Многие пользователи Linux хотят свободы делать все, что хотят. Некоторые просто используют программное обеспечение с открытым исходным кодом, потому что это практично. Другие пытаются использовать исключительно открытое программное обеспечение
, Но что ваш мотивация?
Считаете ли вы, что дистрибутивы Free Software Foundation рекомендует зайти слишком далеко? Является ли удаление всего закрытого исходного кода единственным способом, которым вы чувствуете себя в безопасности на своем компьютере? Означает ли свобода возможность устанавливать то, что вы хотите? Я хотел бы услышать ваши мысли!
📦 Как получить исходный код пакета с помощью команды apt на Debian или Ubuntu
Мне нужен исходный код кода пакета, установленного с помощью команды apt-get или apt в Debian или Ubuntu.
Как получить или загрузить исходный код пакета в системе Debian или Ubuntu?
Как скачать исходный код пакета Ubuntu / Debian?
Исходный код – это не что иное, как текстовая версия программного обеспечения Debian или Ubuntu.
Обычно мы устанавливаем скомпилированное программное обеспечение, используя команду apt-get command / apt.
Однако иногда нам нужен исходный код, непосредственно написанный на языке программирования.
Первый шаг для этого – загрузить исходный код.
Давайте посмотрим, как загрузить исходный код (файл DEB) с помощью командной строки.
Как получить исходный код пакета с помощью команды apt-get / apt
Процедура загрузки исходного кода для Ubuntu Linux следующая.
Шаг 1 – Добавим репозиторий исходного кода
О тредактируйте файл /etc/apt/sources.list, запустите:
$ sudo vi /etc/apt/sources.list
Убедитесь, что deb-src ссылается на исходный код дистрибутива Ubuntu следующим образом:
# Sources specification for the Ubuntu 20.04 LTS distro #
deb-src http://archive.ubuntu.com/ubuntu focal main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu focal-updates main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse
Шаг 2 – Обновим индекс пакетов
Запустите следующую команду, чтобы повторно синхронизировать файлы индекса пакета из их источников:
$ sudo apt-get update
# или #
$ sudo apt update
Шаг 3 – Скачаем исходный код пакета Ubuntu
Давайте загрузим исходный код оболочки bash, запустим:
$ sudo apt-get source
Вы можете увидеть следующую ошибку, если вы забыли настроить deb-src, как описано в шаге № 1:
E: You must put some ‘source’ URIs in your sources.list
Шаг 4 – Разбор загруженных файлов исходного кода
Давайте запустим команду ls, чтобы увидеть исходный код пакета:
По умолчанию исходный код извлекается в каталог bash-5.0:
Тарбол, с любыми изменениями в исходном коде, плюс все файлы, созданные для пакета Debian, хранятся в файле bash_5.0-6ubuntu1.1.debian.tar.xz.
Если опция –download-only будет передана команде apt-get, то исходный пакет не будет распакован:
После загрузки мы можем извлечь исходные файлы для bash следующим образом:
🐧 10 лучших редакторов кода на Linux с открытым исходным кодом
Программирование является частью жизни каждого разработчика, а IDE (интегрированная среда разработки) облегчает эту работу.
IDE имеют множество удобных функций и поддерживают программирование на различных языках в одной среде.
Кроме того, IDE предоставляют пользователям плагины для добавления дополнительных возможностей в программу и автозаполнения тегов и классов для ускорения программирования.
Пользователи также могут использовать готовые фрагменты кода в своих программах.
IDE делают процесс разработки быстрее и проще, поэтому сегодня мы обсудим 10 лучших редакторов кода (IDE), доступных для Linux.
1. Atom
Atom поставляется с современным пользовательским интерфейсом с интеллектуальным, модным подходом, который упрощает настройку для пользователей.
Он предоставляет пользователям встроенный менеджер пакетов, функцию автозаполнения тегов и классов, браузер файловой системы и позволяет пользователям находить и заменять функции.
Считается, что это лучший редактор кода для Linux, а также для других операционных систем.
Для того чтобы установить Atom на вашу систему Linux, мы воспользуемся командой snap, для чего выполним следующую команду:
После этого запустите его через поиск в вашей системе и приступайте к редактированию кода.
Если вы хотите удалить Atom из системы, выполните следующую команду:
2. Visual Studio Code
Одним из самых популярных редакторов кода, с которым, я уверен, вы уже знакомы, является Visual Studio Code.
Это кроссплатформенный инструмент, который поставляется с пользовательским сниппетом и встроенной поддержкой git.
Пользователи могут использовать его для различных языков программирования и отладки, а также пользоваться функцией расширения и автозавершения.
Для установки Visual Code на Ubuntu необходимо выполнить следующую команду, которая использует команду snap:
После завершения установки запустите его, выполнив поиск в системе.
3. Eclipse IDE
Другим популярным редактором кода является Eclipse, который есть почти у каждого разработчика.
Он предоставляет пользователям различные функции автозавершения, а также функцию перетаскивания, с помощью которой пользователи могут создать графический интерфейс для своего приложения.
Пользователи могут выполнять визуальную отладку и редактировать свои проекты позже, поскольку они сохраняются в библиотеке Eclipse.
4. VSCodium
VSCodium похож на Visual Code Studio, но с ним вам не нужно беспокоиться о лицензии, брендинге и телеметрии Microsoft.
Он предоставляет пользователям современный интерфейс для редактирования, отладки кода и использования функций автозавершения, которые присутствуют в редакторе кода Visual Studio.
Для установки vscode мы воспользуемся snap store и выполним команду в терминале:
Запустите его с помощью поиска в системе.
5. Brackets
Еще один кроссплатформенный редактор кода, предназначенный специально для веб-разработки, – Brackets.
Пользователи могут выполнять кроссплатформенное редактирование, просматривать код в реальном времени и использовать такие расширения, как Emmet, Indent guides.
Кроме того, он предоставляет функции встроенного редактирования и плагины для улучшения вашего кода.
Для того чтобы установить Brackets на вашу систему, выполните команду, приведенную ниже:
6. Sublime Text 3
Еще один замечательный редактор для Linux для разметки и стиля – Sublime Text 3.
Он поставляется с функцией пользовательского регекса для ускорения загрузки и индексации файлов и подсветки кода для придания ему презентабельного вида.
Этот инструмент поставляется с очень настраиваемыми параметрами, которые могут быть выполнены через файлы JSON.
Для установки Sublime Text 3 на ubuntu 20.04 выполните следующую команду:
Теперь запустите программу, найдя ее в системе, и все готово для редактирования кода.
7. Gedit (IDE)
Это предустановленная IDE в среде рабочего стола GNOME в Linux.
Gedit – это простой редактор кода, написанный на языке C, который позволяет пользователям писать код на различных языках, таких как JavaScript, HTML, C, C++, Python и других языках программирования.
Это простой инструмент, который позволяет настраиваемый синтаксис и функции буфера обмена для вырезания/копирования/вставки.
Для установки gedit на ubuntu 20.04 выполните команду и после установки запустите редактор и начните его использовать:
8. VIM
Vim – это самый популярный редактор кода для UNIX, который позволяет легко изменять и редактировать любой текст.
Программное обеспечение для Linux может быть легко создано, так как любой другой язык программирования может быть закодирован в vim и доступны плагины.
Он поддерживает множество форматов файлов, как старых, так и современных.
9. BlueFish
Этот новый кроссплатформенный редактор кода является одним из лучших редакторов HTML.
Он предоставляет пользователям функции автозавершения тегов, поддерживает интеграцию внешних программ, автоиндентирование, плагины и чистый пользовательский интерфейс, чтобы помочь пользователям начать работу с редактированием кода в системах Linux.
Как установить BlueFish?
Для установки BlueFish необходимо выполнить следующую команду в терминале.
Сначала включите PPA-репозиторий BlueFish в репозиторий Ubuntu apt:
Нажмите ENTER для продолжения процесса и теперь установите BlueFish, выполнив команду:
10. Geany
Лучшей IDE для интеграции инструментов GTK+ является Geany, которая поддерживает все основные языки программирования с меньшим количеством зависимостей.
Она имеет настраиваемый пользовательский интерфейс и плагины для добавления различных функций.
Она обеспечивает навигацию по коду, а также автозавершение тегов и листинг символов для легкого редактирования.
Если вы хотите установить Geany в своей системе, выполните приведенную ниже команду:
Теперь запустите программу в вашей системе и начните редактирование.
Если вы хотите удалить Geany из системы, выполните команду:
Заключение
Редакторы кода помогают редактировать код и находить лазейки быстрее и проще.
Они поставляются с различными встроенными плагинами, функциями автозавершения, которые помогают пользователю быстрее программировать.
В этой статье мы рассмотрели 10 лучших редакторов кода для систем Linux.
Существуют различные варианты.
Мы обсудили лучшие из них, чтобы помочь вам понять, какой из них выбрать и для какого конкретного языка.
Кроме того, приведены команды для установки каждого инструмента в вашей системе, а также команды деинсталляции, если вы хотите удалить его.
Как «открытый код» сделал Linux безопасной операционной системой для компаний
Возможно, это не самая распространенная операционная система на компьютерах пользователей, но для компаний нет ничего подобного. Если быть более точным, нет более безопасной системы, чем Linux : корпорации во всем мире доверяют этой операционной системе работать на своих серверах.
Смерть уязвимостей в Linux
Все началось в 2007 году, кода сотрудник Линуса Торвальдса задался целью избавиться от уязвимостей и ошибок в операционной системе. Его имя – Эндрю Мортон. В интервью он признался, что хотел увидеть людей, которые тратят больше времени на исправление ошибок и меньше времени на новые функции.
В результате такой нацеленности и благодаря работе большой группы разработчиков, которые сотрудничали с проектом Торвальдса, стартовавшем в начале 90-х годов, сделало Linux самой безопасной операционной системой по сравнению как с коммерческими «операционками», так и с другими системами с открытым кодом.
Стандарт качества для безопасности в коммерческой операционной системе, как правило, допускает дефект на тысячу строк кода. В июле прошлого года Linux показал результат 0,55 ошибки на каждую тысячу кода.
Один из ключей – «Открытый код»
Безопасность вашей компании возрастет при использовании Linux – это так, но ее использование накладывает дополнительную ответственность. Мы должны не забывать о том, что нет ничего абсолютно безопасного, и что любая уязвимость может поставить под угрозу всю информацию компании.
Наличие компьютеров под управлением Linux не означает, что мы можем забывать о безопасности: на самом деле это означает, что мы должны быть начеку при возможных сбоях системы.
Оригинал статьи : How ‘open source’ has made Linux a secure operating system for companies
Администрирование систем Linux. Ядро Linux
Часть VI. Работа с ядром ОС
Глава 28. Ядро Linux
28.1. О ядре Linux
В 1991 году Linus Torvalds разработал первую версию ядра Linux. Он выложил исходный код ядра в открытый доступ, после чего другие люди начали вносить свой вклад в его развитие. В разработке одной из версий ядра (а именно, версии 2.6.27, выпущенной в ноябре 2008 года) поучаствовало более 4000 разработчиков.
28.1.3. Файл /proc/cmdline
28.1.4. Однопользовательский режим
В некоторых дистрибутивах данная возможность заблокирована (на этапе компиляции ядра ОС).
28.1.5. Параметр init=/bin/bash
28.1.6. Файл журнала /var/log/messages
28.1.7. Утилита dmesg
Утилита dmesg выводит все сообщения ядра ОС (с момента последней загрузки системы).
28.2. Исходный код ядра Linux
28.2.1. Ресурс ftp.kernel.org
Каждый человек может воспользоваться ftp-клиентом для осуществления анонимного входа на ресурс ftp.kernel.org.
Архивы исходного кода всех версий ядра Linux расположены по пути pub/linux/kernel/.
28.2.2. Директория /usr/src
Данная структура поддиректорий очень похожа на структуру поддиректорий директории /usr/src в дистрибутиве Ubuntu за тем исключением, что в данном случае в директории расположен исходный код одной версии ядра (и эта версия более новая).
Нам придется погрузиться немного глубже в дерево директорий для того, чтобы добраться до исходного кода ядра ОС в дистрибутиве Red Hat!
28.2.3. Загрузка исходного кода ядра ОС
После этого вы можете использовать команду aptitude install для загрузки и установки пакета программного обеспечения с исходным кодом ядра Linux из состава дистрибутива Debian.
Red Hat Enterprise Linux
Ранее пакет программного обеспечения с исходным кодом ядра ОС располагался на четвертом установочном диске с пакетами исходного кода дистрибутива Red Hat Enerprise Linux. Файл пакета программного обеспечения носит имя kernel-2.6.9-42.EL.src.rpm (пример для дистрибутива RHEL версии 4 с обновлением 4). Также данный пакет доступен по адресу ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/ (пример для дистрибутива RHEL 5).
Для загрузки пакета исходного кода ядра ОС дистрибутива RHEL следует использовать длинную команду (команда должна располагаться в одной строке без завершающего символа \).
Нам придется выполнить дополнительные действия для того, чтобы использовать исходный код ядра ОС из пакета программного обеспечения по назначению.
28.3. Файлы, используемые в процессе загрузки ядра ОС
Файл vmlinuz из директории /boot является сжатым исполняемым файлом ядра ОС.
28.3.3. Файл System.map
Файл System.map содержит таблицу символов и изменяется при каждой компиляции ядра ОС. Таблица символов также присутствует в файле /proc/kallsyms (до выпуска ядра Linux версии 2.6 данный файл носил имя /proc/ksyms).
Последним файлом, копируемым в директорию /boot, является файл со значениями параметров конфигурации ядра ОС, используемый в процессе его компиляции. Данный файл не должен находиться директории /boot для корректного функционирования ядра ОС, но размещение его копии в данной директории является обычной практикой. Благодаря его наличию появляется возможность осуществления повторной компиляции ядра ОС с использованием тех же значений параметров конфигурации, которые были использованы для компиляции существующего работоспособного ядра ОС.
28.4. Модули ядра Linux
28.4.1. Информация о модулях ядра Linux
Ядро Linux является монолитным ядром с поддержкой загружаемых модулей. Данные модули содержат части ядра ОС, обычно используемые в качестве драйверов устройств, реализаций файловых систем и сетевых протоколов. В большинстве случаев необходимые модули ядра ОС загружаются автоматически и динамически без вмешательства системного администратора.
28.4.2. Директория /lib/modules
28.4.4. Утилита lsmod
28.4.5. Файл /proc/modules
28.4.6. Зависимости модулей ядра ОС
Некоторые модули ядра ОС зависят от других модулей ядра ОС. В следующем примере вы можете увидеть, что модуль ядра ОС с именем nfsd зависит от модулей с именами exportfs, lockd и sunrpc.
28.4.7. Утилита insmod
Утилита insmod не определяет зависимости между модулями ядра ОС, поэтому в следующем примере нам не удалось загрузить с помощью данной утилиты модуль с именем isdn (так как модуль с именем isdn зависит от модуля с именем slhc).
28.4.8. Утилита modinfo
28.4.9. Утилита modprobe
Большим преимуществом утилиты modprobe перед утилитой insmod является возможность первой утилиты загружать все необходимые модули ядра ОС, в то время, как вторая утилита требует загрузки всех необходимых модулей ядра ОС в ручном режиме. Другое преимущество данной утилиты заключается в отсутствии необходимости указания полного пути к файлу загружаемого модуля ядра ОС.
В данном примере показан способ загрузки модуля с именем isdn с помощью утилиты modprobe с автоматической загрузкой модуля с именем shlc в фоновом режиме.
28.4.10. Файл /lib/modules/ /modules.dep
28.4.11. Утилита depmod
28.4.12. Утилита rmmod
28.4.14. Файл конфигурации /etc/modprobe.conf
28.5. Компиляция ядра ОС
28.5.1. Дополнительная версия
Перейдите в директорию /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9/ и измените дополнительную версию ядра ОС, заменив значение параметра extraversion в файле с именем Makefile.
28.5.2. Команда make mrproper
28.5.4. Команда make menuconfig
28.5.5. Команда make clean
28.5.6. Команда make bzImage
Исполнение данной команды завершится выводом информации о пути к результирующему файлу bzImage (а также времени компиляции, если вы также использовали команду time ).
28.5.7. Команда make modules
28.5.8. Команда make modules_install
Для копирования всех скомпилированных модулей ядра ОС в директорию /lib/modules следует всего лишь выполнить команду make modules_install (на установку модулей уйдет примерно 20 секунд). В примере ниже приведен список содержимого директории модулей перед исполнением упомянутой команды.
А это список содержимого этой же директории после исполнения этой команды. Обратите внимание на то, что в процессе исполнения команды make modules_install была создана новая директория для модулей нового ядра ОС.
28.5.9. Директория /boot
28.5.10. Утилита mkinitrd
Ядро ОС обычно использует файл initrd в процессе загрузки. Мы можем использовать утилиту mkinitrd для генерации этого файла. Убедитесь в том, что вы используете корректное имя ядра ОС!
28.5.11. Системный загрузчик
На этом компиляция ядра ОС закончена, но не следует забывать о необходимости создания дополнительного станса для отображения пункта в меню системного загрузчика grub или lilo.
28.6. Компиляция отдельного модуля ядра ОС
28.6.1. Файл исходного кода hello.c
Небольшая программа на языке C послужит основой для нашего модуля ядра ОС.
28.6.2. Файл Makefile
Файл для сборки модуля ядра ОС будет содержать следующие строки.
Для компиляции модуля необходимы только два описанных файла.
Теперь у нас больше файлов.
Отлично, значит мы можем загрузить наш модуль ядра ОС с именем «hello».