Library types in linux

Библиотеки Linux

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

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

Что такое библиотеки?

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

Библиотеки делятся на два типа — динамические и статические. Статические библиотеки linux подключаются на этапе сборки программы, а динамические — во время выполнения и они общие для нескольких программ. Нас будут интересовать именно динамические библиотеки linux. Они находятся в папках /lib, /lib64, /usr/lib, /usr/lib/x86_64-linux-gnu. Каждая библиотека имеет расширение .so, за которым следует номер версии. Этот номер увеличивается каждый раз, когда разработчики вносят серьезные изменения. Такой подход необходим для того, чтобы сохранить совместимость для программ, использующих старые версии. Например, в системе может быть две библиотеки libfuse.so.0 и libfuse.so.1. Далее мы рассмотрим основные библиотеки и их предназначение.

Как получить информацию о библиотеках?

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

Во всех перечисленных здесь каталогах находятся статические и динамически библиотеки Linux:

Информацию о зависимостях каждой библиотеки вы можете посмотреть командой ldd:

А еще можно узнать какому пакету принадлежит библиотека в Ubuntu:

dpkg -S /lib/x86_64-linux-gnu/ld-2.24.so

Как видите, библиотека ld.so принадлежит пакету libc6, точнее она входит в набор инструментов Си. Более подробно, о том, как устанавливать новые библиотеки и решать проблемы с ними, описано в статье библиотеки Ubuntu.

Читайте также:  Linux what is my internet ip

Основные библиотеки

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

  • libanl.so — библиотека работы с DNS;
  • libc.a — основная статическая библиотека языка Си;
  • libdl.a — библиотека, отвечающая за загрузку других библиотек во время запуска программы;
  • libnsl.so — работа со службой NIS;
  • libstdc++.so — стандартная библиотека C++;
  • libutil.so — реализует основные часто используемые функции;
  • libelf.so — библиотека для работы с бинарными файлами ELF;
  • libevent.so — библиотека с реализацией механизма вызова функций после события;
  • libgnutls.so — библиотека с основными методами и возможностями, используемыми в стандартных утилитах Linux;
  • ld-linux.so — главная библиотека, она собрана в виде статической и не имеет зависимостей. Загружает другие библиотеки и исполняемые файлы. Вы можете вызвать эту библиотеку как программу и передать ей адрес исполняемого файла для запуска.

Библиотеки кодеков

Эти библиотеки содержат наборы кодеков для воспроизведения различных медиа данных. Некоторые из них имеют несвободную лицензию или закрытый исходный код:

  • liba52.so — свободный декодер ATSC A/52;
  • libavfilter6.so — библиотека фильтров ffmpeg;
  • libavcodec57.so — библиотека кодеков ffmpeg;
  • libavformat57.so — библиотека форматов ffmpeg;
  • libavutil55.so — библиотека дополнительных функций ffmpeg;
  • libdv.so — программный кодек для DV;
  • libmad.so — MPEG аудио декодер;
  • libmpeg2.so — потоковый декодер видео данных;
  • libmpg123.so — библиотека консольного плеера mpg123;
  • libwebp.so — декодирование формата Webp;
  • libxvidcore.so — медиа кодек MPEG-4.

Звуковые библиотеки

  • libao.so — библиотека проигрывания звука с простым интерфейсом;
  • libasound.so — библиотека взаимодействия со звуковой подсистемой ALSA;
  • libaudio2.so — библиотека работы со звуком, входит в состав ALSA;
  • libespeak.so — библиотека синтеза речи;
  • libpulse.so — библиотека с основными методами PulseAudio;

Работа с архивами

  • libarchive.so — библиотека для работы с архивами различных форматов;
  • liblzma.so — работа с архивами LZMA.

Графические библиотеки

  • libart.so — библиотека с реализацией функций для работы с 3d графикой;
  • libaa.so — библиотека ASCII графики;
  • libgtk-3.so — набор методов графического фреймворка GTK 3;
  • libgd.so — базовые функции работы с графикой и рисования;
  • libgif.so — работа с форматом изображений Gif;
  • libjpeg.so — работа с изображениями Jpeg;
  • libglapi.so — свободная реализация методов для работы с OpenGL;
  • libgtk-x11-2.0.so — набор методов библиотеки GTK 2;
  • libwx_baseu.so, libwx_baseu_net-3.0.so и другие — набор библиотек фремворка создания графических приложений WX;
  • libX11.so — основные методы и функции X сервера;
  • libncurses.so — одна из самых популярных библиотек псевдографики;
  • libQtGui.so, libQt5Svg.so, libQt5Widgets.so и другие — библиотеки фреймворка разработки графических приложений Qt.

Работа с текстом

  • libaspell.so — библиотека проверки орфографии;
  • libfreetype.so — библиотека отрисовки шрифтов;
  • libharfbuzz.so — библиотека обработки символов Unicode;
  • libxml2.so — библиотека разбора XML;
  • libyaml-0.so — библиотека разбора Yaml.
Читайте также:  Установка драйверов видеокарты arch linux

Безопасность

  • libcrack.so — библиотека с реализацией методов перебора паролей для проверки их надежности;
  • libcrypt.so — библиотека, отвечающая за шифрование;
  • libssl3.so — библиотека шифрования SSLv3;
  • libapparmor.so — библиотека управления системой безопасности AppArrmor;
  • libaudit.so — библиотека слежения за состоянием системы и регистрации событий.

Библиотеки драйверов

  • libcups.so — библиотека работы с принтером;
  • libfuse.so — библиотека организации виртуальных файловых систем;
  • libgphoto2.so — библиотека взаимодействия с камерами по USB;
  • libsensors.so — используется для получения информации от датчиков на материнской плате;
  • libudisks2.so — библиотека usisks, которая отвечает за автоматическое монтирование и обнаружение подключенных устройств;
  • libv4l1.so — библиотека работы с веб-камерами;
  • libpci.so — библиотека работы с PCI устройствами;
  • libusb-1.0.so — библиотека управления USB;
  • libdrm.so — библиотека с общими возможностями Direct Rendering Manager, отрисовки графики с помощью видеокарты;
  • libdrm_amdgpu.so — DRM для драйвера AMDGPU;
  • libdrm_intel.so — DRM для карт Intel;
  • libdrm_nouveau.so — свободный DRM для видеокарт Nvidia;

Сеть

  • libresolv.so — библиотека получения IP адреса по имени хоста;
  • libpcap.so — библиотека анализа и захвата сетевых пакетов;
  • libproxy.so — настройка и управление прокси;

Эмуляция

  • libSDL.so — библиотека эмуляции загрузки компьютера и базовых возможностей BIOS;
  • libwine.so — библиотека прослойки для запуска приложений Windows в Linux.
  • libvirt.so — библиотека управления KVM;

Выводы

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

На завершение урок про библиотеки Linux:

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Understanding .a , .so and .la library files in Linux

In order to understand what the libraries of files with the extensions .a, .so and .la actually mean, we first must be aware of the concept of libraries in Linux. A Linux in its very simple terms is a collection of pre-compiled pieces of code which are known as functions. Libraries are very useful as they provide reusable functions, classes and data structures. Some examples of libraries in Linux are glibc (GNU version of standard C library), libc (the C standard library).

In total we can divide the libraries in Linux in two categories. These categories are −

Static Libraries

The libraries that are locked into a program at compile time are known as static libraries. They are also known as statically-linked libraries and if made up of a set of routines, external functions and variables. After locking into a program at compile time, it is then copied to a target application by a linker, binder or compiler, which in turn produces an object file and a stand-alone executable.

Читайте также:  Linux изменить пароль пользователя можно командой

These types of libraries are faster than the shared libraries as a set of object files that are commonly used is put into a single library executable file.

The downside of using a static library is that the code that is used to build it, is locked into the final executable and it cannot be modified without re-compiling the library.

The static libraries have a .a extension, where the .a stands for “archive” and below output shows some of the static libraries inside the go source code.

immukul@192 darwin_amd64 % ls -tlr total 49376 -rw-r--r-- 1 root wheel 356788 Apr 1 23:13 unicode.a -rw-r--r-- 1 root wheel 1023672 Apr 1 23:13 time.a -rw-r--r-- 1 root wheel 1534494 Apr 1 23:13 syscall.a -rw-r--r-- 1 root wheel 288140 Apr 1 23:13 sync.a -rw-r--r-- 1 root wheel 501654 Apr 1 23:13 strings.a -rw-r--r-- 1 root wheel 537834 Apr 1 23:13 strconv.a -rw-r--r-- 1 root wheel 227774 Apr 1 23:13 sort.a

Dynamic Libraries

Libraries that exist as separate files outside of the executable files are known as dynamic libraries. At compile time the program makes one copy of the library’s files.

The benefit of using a dynamic library is that one single library can be used by multiple applications without the need for each application to have its own copy of the library like we have in case of the static libraries.

The downside of a dynamic library is that the chances of breaking is much higher as compared to a static library. A simple case would be that if a dynamic library becomes corrupt, the executable file may no longer be working.

The files with the .so extension are nothing but dynamic libraries and the suffix “.so” stands for shared object.

Consider the output shown below that denotes some of the dynamic libraries present inside the /usr/lib folder on my Ubuntu machine.

Output

lrwxr-xr-x 1 root wheel 27 Jan 1 2020 libhunspell-1.2.0.so -rwxr-xr-x 1 root wheel 177440 Jan 1 2020 libgmalloc.so -rwxr-xr-x 1 root wheel 104112 Jan 1 2020 libffi-trampolines.so -rwxr-xr-x 1 root wheel 2851232 Jan 1 2020 libMTLCapture.so -rwxr-xr-x 1 root wheel 137824 Jan 1 2020 libLeaksAtExit.so

.la files

The files with the .la extension are not libraries but in fact they are textual files that include a description of the library. They are generated by the GNU “libtools” package and are used to describe the files that make up the corresponding libraries.

Источник

Оцените статью
Adblock
detector