Основные приложения с открытым исходным кодом для Linux

Введение

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

Программные пакеты

Почти каждый дистрибутив Linux поставляется с предустановленным набором стандартных приложений. Помимо этих предустановленных приложений, дистрибутив имеет репозиторий пакетов с обширной коллекцией приложений, доступных для установки через его менеджер пакетов. Хотя различные дистрибутивы предлагают примерно одни и те же приложения, для разных дистрибутивов существует несколько различных систем управления пакетами. Например, Debian, Ubuntu и Linux Mint используют инструменты dpkg, apt-get и apt для установки программных пакетов, обычно называемых DEB-пакетами. Дистрибутивы, такие как Red Hat, Fedora и CentOS, вместо этого используют команды rpm, yum и dnf, которые, в свою очередь, устанавливают RPM-пакеты. Поскольку упаковка приложений отличается для каждого семейства дистрибутивов, очень важно устанавливать пакеты из правильного репозитория, предназначенного для конкретного дистрибутива. Конечному пользователю обычно не нужно беспокоиться об этих деталях, так как менеджер пакетов дистрибутива выберет правильные пакеты, необходимые зависимости и будущие обновления. Зависимости — это вспомогательные пакеты, необходимые программам. Например, если библиотека предоставляет функции для работы с изображениями JPEG, которые используются несколькими программами, эта библиотека, скорее всего, упакована в собственный пакет, от которого зависят все приложения, использующие эту библиотеку.

Команды dpkg и rpm работают с отдельными файлами пакетов. На практике почти все задачи управления пакетами выполняются командами apt-get или apt в системах, использующих DEB-пакеты, или yum или dnf в системах, использующих RPM-пакеты. Эти команды работают с каталогами пакетов, могут загружать новые пакеты и их зависимости, а также проверять наличие более новых версий установленных пакетов.

Установка пакетов

Предположим, вы слышали о команде figlet, которая печатает увеличенный текст в терминале, и хотите её опробовать. Однако после выполнения команды figlet вы получаете следующее сообщение:

$ figlet
-bash: figlet: command not found

Это, вероятно, означает, что пакет не установлен в вашей системе. Если ваш дистрибутив работает с DEB-пакетами, вы можете выполнить поиск в его репозиториях, используя apt-cache search имя_пакета или apt search имя_пакета. Команда apt-cache используется для поиска пакетов и вывода информации о доступных пакетах. Следующая команда ищет любые вхождения термина "figlet" в именах и описаниях пакетов:

$ apt-cache search figlet
figlet - Make large character ASCII banners out of ordinary text

Поиск определил пакет с именем figlet, который соответствует отсутствующей команде. Установка и удаление пакета требуют специальных разрешений, предоставленных только администратору системы: пользователю с именем root. На настольных системах обычные пользователи могут устанавливать или удалять пакеты, добавляя команду sudo перед командами установки/удаления. Это потребует ввода вашего пароля для продолжения. Для DEB-пакетов установка выполняется командой apt-get install имя_пакета или apt install имя_пакета:

$ sudo apt-get install figlet
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  figlet
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.

На этом этапе пакет будет загружен и установлен в систему. Любые зависимости, которые могут потребоваться пакету, также будут загружены и установлены:

Need to get 184 kB of archives.
After this operation, 741 kB of additional disk space will be used.
Get:1 http://archive.raspbian.org/raspbian stretch/main armhf figlet armhf 2.2.5-2 [184 kB]
Fetched 184 kB in 0s (213 kB/s)
Selecting previously unselected package figlet.
(Reading database ... 115701 files and directories currently installed.)
Preparing to unpack .../figlet_2.2.5-2_armhf.deb ...
Unpacking figlet (2.2.5-2) ...
Setting up figlet (2.2.5-2) ...
update-alternatives: using /usr/bin/figlet-figlet to provide /usr/bin/figlet (figlet) in auto mode
Processing triggers for man-db (2.7.6.1-2) ...

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

$ figlet Awesome!
    _                                         _
   / \__      _____  ___  ___  _ __ ___   ___| |
  / _ \ \ /\ / / _ \/ __|/ _ \| '_ ` _ \ / _ \ |
 / ___ \ V  V /  __/\__ \ (_) | | | | | |  __/_|
/_/   \_\_/\_/ \___||___/\___/|_| |_| |_|\___(_)

В дистрибутивах на основе RPM-пакетов поиск выполняется с помощью yum search имя_пакета или dnf search имя_пакета. Допустим, вы хотите отобразить текст более вызывающим способом, за которым следует мультяшная корова, но вы не уверены, какой пакет может выполнить эту задачу. Как и в случае с DEB-пакетами, команды поиска RPM принимают описательные термины:

$ yum search speaking cow
Last metadata expiration check: 1:30:49 ago on Tue 23 Apr 2019 11:02:33 PM -03.
==================== Name & Summary Matched: speaking, cow ====================
cowsay.noarch : Configurable speaking/thinking cow

После нахождения подходящего пакета в репозитории его можно установить с помощью yum install имя_пакета или dnf install имя_пакета:

$ sudo yum install cowsay
Last metadata expiration check: 2:41:02 ago on Tue 23 Apr 2019 11:02:33 PM -03.
Dependencies resolved.
==============================================================================
 Package         Arch           Version               Repository         Size
==============================================================================
Installing:
 cowsay          noarch         3.04-10.fc28          fedora             46 k

Transaction Summary
==============================================================================
Install  1 Package

Total download size: 46 k
Installed size: 76 k
Is this ok [y/N]: y

И снова желаемый пакет и все его возможные зависимости будут загружены и установлены:

Downloading Packages:
cowsay-3.04-10.fc28.noarch.rpm                    490 kB/s |  46 kB     00:00
==============================================================================
Total                                              53 kB/s |  46 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing        :                                                          1/1
Installing       : cowsay-3.04-10.fc28.noarch                               1/1
Running scriptlet: cowsay-3.04-10.fc28.noarch                               1/1
Verifying        : cowsay-3.04-10.fc28.noarch                               1/1

Installed:
cowsay.noarch 3.04-10.fc28

Complete!

Команда cowsay делает именно то, что подразумевает её название:

$ cowsay "Brought to you by yum"
 _______________________
< Brought to you by yum >
 -----------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Хотя они могут показаться бесполезными, команды figlet и cowsay предоставляют способ привлечь внимание других пользователей к важной информации.

Удаление пакетов

Те же команды, которые используются для установки пакетов, используются и для их удаления. Все команды принимают ключевое слово remove для удаления установленного пакета: apt-get remove имя_пакета или apt remove имя_пакета для DEB-пакетов и yum remove имя_пакета или dnf remove имя_пакета для RPM-пакетов. Для выполнения удаления также требуется команда sudo. Например, чтобы удалить ранее установленный пакет figlet из дистрибутива на основе DEB:

$ sudo apt-get remove figlet
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  figlet
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 741 kB disk space will be freed.
Do you want to continue? [Y/n] Y

После подтверждения операции пакет удаляется из системы:

(Reading database ... 115775 files and directories currently installed.)
Removing figlet (2.2.5-2) ...
Processing triggers for man-db (2.7.6.1-2) ...

Аналогичная процедура выполняется в системе на основе RPM. Например, чтобы удалить ранее установленный пакет cowsay из дистрибутива на основе RPM:

$ sudo yum remove cowsay
Dependencies resolved.
==================================================================================
 Package          Arch             Version                Repository         Size
==================================================================================
Removing:
 cowsay           noarch           3.04-10.fc28           @fedora            76 k

Transaction Summary
==================================================================================
Remove  1 Package

Freed space: 76 k
Is this ok [y/N]: y

Аналогично запрашивается подтверждение, и пакет удаляется из системы:

Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                          1/1
  Erasing          : cowsay-3.04-10.fc28.noarch                               1/1
  Running scriptlet: cowsay-3.04-10.fc28.noarch                               1/1
  Verifying        : cowsay-3.04-10.fc28.noarch                               1/1

Removed:
  cowsay.noarch 3.04-10.fc28

Complete!

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

Офисные приложения

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

Долгое время наиболее используемым офисным пакетом в Linux был пакет OpenOffice.org. OpenOffice.org был версией с открытым исходным кодом пакета StarOffice, выпущенного Sun Microsystems. Несколько лет спустя Sun была приобретена корпорацией Oracle, которая, в свою очередь, передала проект Фонду Apache, и OpenOffice.org был переименован в Apache OpenOffice. Тем временем другой офисный пакет, основанный на том же исходном коде, был выпущен Document Foundation, который назвал его LibreOffice.

Два проекта имеют одни и те же базовые функции и совместимы с форматами документов Microsoft Office. Однако предпочтительным форматом документов является Open Document Format, полностью открытый и стандартизированный ISO формат файлов. Использование файлов ODF гарантирует, что документы могут передаваться между операционными системами и приложениями от разных поставщиков, такими как Microsoft Office. Основные приложения, предлагаемые OpenOffice/LibreOffice:

  • Writer: Текстовый редактор
  • Calc: Электронные таблицы
  • Impress: Презентации
  • Draw: Векторная графика
  • Math: Математические формулы
  • Base: Базы данных

И LibreOffice, и Apache OpenOffice являются программным обеспечением с открытым исходным кодом, но LibreOffice распространяется под лицензией LGPLv3, а Apache OpenOffice — под лицензией Apache License 2.0. Различие в лицензировании подразумевает, что LibreOffice может включать улучшения, сделанные Apache OpenOffice, но Apache OpenOffice не может включать улучшения, сделанные LibreOffice. Это, а также более активное сообщество разработчиков, являются причиной того, что большинство дистрибутивов принимают LibreOffice в качестве своего стандартного офисного пакета.

Веб-браузеры

Для большинства пользователей основная цель компьютера — предоставить доступ в Интернет. В настоящее время веб-страницы могут функционировать как полноценные приложения с преимуществом доступности из любого места без необходимости установки дополнительного программного обеспечения. Это делает веб-браузер самым важным приложением операционной системы, по крайней мере для среднестатистического пользователя.

Совет: Один из лучших источников для изучения веб-разработки — MDN Web Docs, доступный по адресу https://developer.mozilla.org/. Поддерживаемый Mozilla, сайт полон учебных пособий для начинающих и справочных материалов по большинству современных веб-технологий.

Основными веб-браузерами в среде Linux являются Google Chrome и Mozilla Firefox. Chrome — это веб-браузер, поддерживаемый Google, но основанный на браузере с открытым исходным кодом под названием Chromium, который можно установить с помощью менеджера пакетов дистрибутива и который полностью совместим с Chrome. Поддерживаемый Mozilla, некоммерческой организацией, Firefox — это браузер, чье происхождение связано с Netscape, первым популярным веб-браузером, принявшим модель открытого исходного кода. Фонд Mozilla глубоко вовлечен в разработку открытых стандартов, лежащих в основе современного веба.

Mozilla также разрабатывает другие приложения, такие как почтовый клиент Thunderbird. Многие пользователи предпочитают использовать веб-почту вместо выделенного почтового приложения, но такой клиент, как Thunderbird, предлагает дополнительные функции и лучше интегрируется с другими приложениями на рабочем столе.

Мультимедиа

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

  • Blender: 3D-рендерер для создания анимации. Blender также можно использовать для экспорта 3D-объектов для печати на 3D-принтере.
  • GIMP: Полнофункциональный редактор изображений, который можно сравнить с Adobe Photoshop, но имеющий свои собственные концепции и инструменты для работы с изображениями. GIMP можно использовать для создания, редактирования и сохранения большинства растровых файлов, таких как JPEG, PNG, GIF, TIFF и многих других.
  • Inkscape: Редактор векторной графики, похожий на Corel Draw или Adobe Illustrator. Форматом Inkscape по умолчанию является SVG, открытый стандарт для векторной графики. Файлы SVG можно открыть в любом веб-браузере, и благодаря своей природе векторной графики их можно использовать в гибких макетах веб-страниц.
  • Audacity: Аудиоредактор. Audacity можно использовать для фильтрации, применения эффектов и преобразования между многими различными аудиоформатами, такими как MP3, WAV, OGG, FLAC и т.д.
  • ImageMagick: ImageMagick — это инструмент командной строки для преобразования и редактирования большинства типов файлов изображений. Его также можно использовать для создания PDF-документов из файлов изображений и наоборот.

Существует также множество приложений, предназначенных для воспроизведения мультимедиа. Самым популярным приложением для воспроизведения видео является VLC, но некоторые пользователи предпочитают другие альтернативы, такие как smplayer. Для локального воспроизведения музыки также есть много вариантов, таких как Audacious, Banshee и Amarok, которые также могут управлять коллекцией локальных звуковых файлов.

Серверные программы

Когда веб-браузер загружает страницу с веб-сайта, он фактически подключается к удаленному компьютеру и запрашивает конкретную часть информации. В этом сценарии компьютер, на котором работает веб-браузер, называется клиентом, а удаленный компьютер называется сервером.

Серверный компьютер, который может быть обычным настольным компьютером или специализированным оборудованием, нуждается в специальной программе для управления каждым типом информации, которую он будет предоставлять. Что касается обслуживания веб-страниц, большинство серверов по всему миру используют серверные программы с открытым исходным кодом. Эта конкретная серверная программа называется HTTP-сервером (HTTP расшифровывается как Hyper Text Transfer Protocol — протокол передачи гипертекста), а самыми популярными из них являются Apache, Nginx и lighttpd.

Даже простые веб-страницы могут требовать много запросов, которые могут быть обычными файлами (так называемый статический контент) или динамическим контентом, сгенерированным из различных источников. Роль HTTP-сервера заключается в сборе всех запрошенных данных и отправке их обратно в браузер, который затем организует содержимое, как определено полученным HTML-документом (HTML расшифровывается как Hyper Text Markup Language — язык гипертекстовой разметки) и другими вспомогательными файлами. Следовательно, рендеринг веб-страницы включает операции, выполняемые на стороне сервера, и операции, выполняемые на стороне клиента. Обе стороны могут использовать пользовательские сценарии для выполнения конкретных задач. На стороне HTTP-сервера довольно часто используют язык сценариев PHP. JavaScript — это язык сценариев, используемый на стороне клиента (веб-браузера).

Серверные программы могут предоставлять всевозможную информацию. Нередко серверная программа запрашивает информацию, предоставленную другими серверными программами. Так обстоит дело, когда HTTP-серверу требуется информация, предоставленная сервером базы данных.

Например, когда запрашивается динамическая страница, HTTP-сервер обычно запрашивает базу данных для сбора всей необходимой информации и отправляет динамический контент обратно клиенту. Аналогичным образом, когда пользователь регистрируется на веб-сайте, HTTP-сервер собирает данные, отправленные клиентом, и сохраняет их в базе данных.

База данных — это организованный набор информации. Сервер базы данных хранит содержимое в структурированном виде, позволяя надежно и с высокой скоростью читать, записывать и связывать большие объемы данных. Серверы баз данных с открытым исходным кодом используются во многих приложениях, не только в Интернете. Даже локальные приложения могут хранить данные, подключаясь к локальному серверу базы данных. Наиболее распространенным типом баз данных являются реляционные базы данных, где данные организованы в предопределенные таблицы. Самыми популярными реляционными базами данных с открытым исходным кодом являются MariaDB (произошедшая от MySQL) и PostgreSQL.

Обмен данными

В локальных сетях, таких как офисные и домашние, желательно, чтобы компьютеры не только имели доступ в Интернет, но и могли взаимодействовать друг с другом. Иногда компьютер выступает в роли сервера, иногда тот же компьютер выступает в роли клиента. Это необходимо, когда нужно получить доступ к файлам на другом компьютере в сети — например, получить доступ к файлу, хранящемуся на настольном компьютере, с портативного устройства — без хлопот с копированием его на USB-накопитель или что-то подобное.

Между машинами Linux часто используется NFS (Network File System — сетевая файловая система). Протокол NFS является стандартным способом совместного использования файловых систем в сетях, состоящих только из машин Unix/Linux. С помощью NFS компьютер может предоставить общий доступ к одному или нескольким своим каталогам определенным компьютерам в сети, чтобы они могли читать и записывать файлы в этих каталогах. NFS можно даже использовать для предоставления общего доступа к дереву каталогов всей операционной системы клиентам, которые будут использовать его для загрузки. Эти компьютеры, называемые тонкими клиентами, чаще всего используются в больших сетях, чтобы избежать обслуживания каждой отдельной операционной системы на каждой машине.

Если в сети есть другие типы операционных систем, рекомендуется использовать протокол обмена данными, понятный всем им. Это требование выполняется с помощью Samba. Samba реализует протокол для совместного использования файлов по сети, изначально созданный для операционной системы Windows, но сегодня совместимый со всеми основными операционными системами. С помощью Samba компьютеры в локальной сети могут обмениваться не только файлами, но и принтерами.

В некоторых локальных сетях авторизация, предоставляемая при входе в систему на рабочей станции, осуществляется центральным сервером, называемым контроллером домена, который управляет доступом к различным локальным и удаленным ресурсам. Контроллер домена — это служба, предоставляемая Microsoft Active Directory. Рабочие станции Linux могут связываться с контроллером домена с помощью Samba или подсистемы аутентификации SSSD. Начиная с версии 4, Samba также может работать в качестве контроллера домена в гетерогенных сетях.

Если цель состоит во внедрении облачного решения, способного предоставлять различные методы веб-совместного использования данных, следует рассмотреть две альтернативы: ownCloud и Nextcloud. Два проекта очень похожи, потому что Nextcloud является ответвлением ownCloud, что не редкость среди проектов с открытым исходным кодом. Такие ответвления обычно называются форками. Оба предоставляют одни и те же базовые функции: обмен файлами и синхронизация, совместные рабочие пространства, календарь, контакты и почта, все это через настольный, мобильный и веб-интерфейсы. Nextcloud также предоставляет приватные аудио/видеоконференции, в то время как ownCloud больше ориентирован на обмен файлами и интеграцию со сторонним программным обеспечением. Множество других функций предоставляются в виде плагинов, которые можно активировать позже по мере необходимости.

И ownCloud, и Nextcloud предлагают платную версию с дополнительными функциями и расширенной поддержкой. Что отличает их от других коммерческих решений, так это возможность установить Nextcloud или ownCloud на частный сервер бесплатно, избегая хранения конфиденциальных данных на неизвестном сервере. Поскольку все службы зависят от HTTP-коммуникации и написаны на PHP, установка должна выполняться на предварительно настроенном веб-сервере, таком как Apache. Если вы планируете установить ownCloud или Nextcloud на свой собственный сервер, обязательно включите HTTPS для шифрования всех подключений к вашему облаку.

Сетевое администрирование

Связь между компьютерами возможна только при правильной работе сети. Обычно настройка сети выполняется набором программ, работающих на маршрутизаторе, отвечающих за настройку и проверку доступности сети. Для достижения этой цели используются два основных сетевых сервиса: DHCP (Dynamic Host Configuration Protocol — протокол динамической настройки узла) и DNS (Domain Name System — система доменных имен).

DHCP отвечает за назначение IP-адреса узлу при подключении сетевого кабеля или при входе устройства в беспроводную сеть. При подключении к Интернету DHCP-сервер интернет-провайдера предоставит IP-адрес запрашивающему устройству. DHCP-сервер также очень полезен в локальных сетях для автоматического предоставления IP-адресов всем подключенным устройствам. Если DHCP не настроен или работает неправильно, потребуется вручную настраивать IP-адрес каждого устройства, подключенного к сети. Непрактично вручную устанавливать IP-адреса в больших сетях или даже в небольших, поэтому большинство сетевых маршрутизаторов поставляются с предварительно настроенным DHCP-сервером по умолчанию.

IP-адрес требуется для связи с другим устройством в IP-сети, но доменные имена, такие как www.lpi.org, запомнить гораздо легче, чем IP-номер, такой как 203.0.113.165. Однако само по себе доменное имя недостаточно для установления связи через сеть. Вот почему доменное имя должно быть переведено в IP-адрес с помощью DNS-сервера. IP-адрес DNS-сервера предоставляется DHCP-сервером интернет-провайдера и используется всеми подключенными системами для преобразования доменных имен в IP-адреса.

Настройки DHCP и DNS можно изменить, войдя в веб-интерфейс, предоставляемый маршрутизатором. Например, можно ограничить назначение IP только известными устройствами или связать фиксированный IP-адрес с конкретными машинами. Также можно изменить DNS-сервер по умолчанию, предоставляемый интернет-провайдером. Некоторые сторонние DNS-серверы, например предоставляемые Google или OpenDNS, иногда могут обеспечить более быстрый ответ и дополнительные функции.

Языки программирования

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

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

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

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

Вот некоторые из наиболее популярных языков программирования:

  • JavaScript: JavaScript — это язык программирования, в основном используемый на веб-страницах. Вначале приложения на JavaScript были очень простыми, например, процедуры проверки форм. На сегодняшний день JavaScript считается языком первого класса и используется для создания очень сложных приложений не только в вебе, но и на серверах и мобильных устройствах.
  • C: Язык программирования C тесно связан с операционными системами, особенно Unix, но используется для написания любых программ практически для любых устройств. Большими преимуществами C являются гибкость и скорость. Один и тот же исходный код, написанный на C, может быть скомпилирован для работы на разных платформах и операционных системах с небольшими изменениями или без них. Однако после компиляции программа будет работать только в целевой системе.
  • Java: Главная особенность Java заключается в том, что программы, написанные на этом языке, переносимы, что означает, что одна и та же программа может выполняться в разных операционных системах. Несмотря на название, Java не связан с JavaScript.
  • Perl: Perl — это язык программирования, наиболее часто используемый для обработки текстового содержимого. Он имеет сильный акцент на регулярных выражениях, что делает Perl языком, подходящим для фильтрации и синтаксического анализа текста.
  • Shell: Shell, в частности Bash, — это не просто язык программирования, а интерактивный интерфейс для запуска других программ. Программы Shell, известные как shell-сценарии, могут автоматизировать сложные или повторяющиеся задачи в среде командной строки.
  • Python: Python — очень популярный язык программирования среди студентов и профессионалов, не связанных напрямую с компьютерными науками. Обладая расширенными возможностями, Python — хороший способ начать изучение программирования благодаря своему простому в использовании подходу.
  • PHP: PHP чаще всего используется как язык сценариев на стороне сервера для генерации веб-контента. Большинство онлайн HTML-страниц — это не статические файлы, а динамический контент, генерируемый сервером из различных источников, таких как базы данных. Программы на PHP (иногда называемые просто PHP-страницами или PHP-сценариями) часто используются для генерации такого контента. Термин LAMP происходит от комбинации операционной системы Linux, HTTP-сервера Apache, базы данных MySQL (или MariaDB) и программирования на PHP. Серверы LAMP — очень популярное решение для запуска веб-серверов. Помимо PHP, все языки программирования, описанные ранее, также могут использоваться для реализации таких приложений.

C и Java — компилируемые языки. Для выполнения системой исходный код, написанный на C, преобразуется в двоичный машинный код, тогда как исходный код Java преобразуется в байт-код, выполняемый в специальной программной среде, называемой виртуальной машиной Java (Java Virtual Machine). JavaScript, Perl, Shell-сценарии, Python и PHP — все это интерпретируемые языки, которые также называют языками сценариев (скриптовыми языками).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *