Как я могу настроить avahi для разрешения имени хоста в специальной сети?

Что делает дистрибутив Linux GNU? Действительно ли это - инструменты, с которыми было скомпилировано ядро? Действительно ли это - инструменты, с которыми поставляется распределение?

Да и да. Ядро является одним монолитным автономным исполняемым файлом. Все остальное находится в "пространстве пользователя". Обычно приложения пространства пользователя используют по крайней мере одну системную библиотеку, стандартную библиотеку 1 C В дополнение к различным служебным функциям, это - то, что обеспечивает, доступ к системным вызовам - запрашивает на систему, т.е. ядро, сделать что-то - который необходим даже для очень простых задач, таков как работа с файлами. Реализация библиотеки C, используемая с Linux, является glibc - библиотека GNU C.

Само ядро Linux записано в C и также требует, чтобы библиотека C работала - кроме этого случая, необходимые части компилируются в, и не внешние. Компилятор, обычно используемый для этого, является GCC - "Набор Компилятора GNU" - и библиотека C является glibc.

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

Для иллюстрирования этого можно использовать ldd на различных исполняемых файлах, включая библиотеки (которые являются исполняемым файлом, но не самостоятельно). Как это говорит в странице справочника, "ldd печатает общие библиотеки, требуемые каждой программой или совместно использованной библиотекой, указанной на командной строке". Например:

> ldd /bin/bash
    linux-vdso.so.1 =>  (0x00007fff7348e000)
    libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007fdbdae7f000)
    libdl.so.2 => /lib64/libdl.so.2 (0x00007fdbdac7b000)
    libc.so.6 => /lib64/libc.so.6 (0x00007fdbda8c3000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fdbdb0c8000)

Уведомление "libc.so.6" - это - glibc (не путайте его с бойким, другой продукт GNU, фундаментальный для Linux, но не столь фундаментальные как glibc). При рассмотрении всех других упомянутых вещей (кроме первого, объясненного ниже), Вы заметите, что они все связываются с libc сами. Давайте посмотрим на сам libc.so.6:

> ldd /lib64/libc.so.6
    /lib64/ld-linux-x86-64.so.2 (0x00007f9cefa04000)
    linux-vdso.so.1 =>  (0x00007fffb21ff000)

"ld-linux-x86-64.so.2" является упомянутым выше компоновщиком (обычно, ld, и это имеет страницу справочника). Вы не можете выполнить ldd на нем, но file говорит, что это динамично связано, я предполагаю к libc (это может звучать круговым, но это не), и linux-vdso. Этот последний является видом интересных, потому что Вы заметите просто адрес после =>. Поэтому это - на самом деле часть ядра.

Библиотека C, AFAIK, является единственным общим объектом в системе, которая не связывается с библиотекой C - это в центре целой путаницы. Даже основная библиотека других скомпилированных языков использует libc, например:

> ldd libstdc++.so.6.0.17 
    linux-gate.so.1 =>  (0xf77b8000)
    libm.so.6 => /lib/libm.so.6 (0xf7684000)
    libc.so.6 => /lib/libc.so.6 (0xf74d2000)
    /lib/ld-linux.so.2 (0xf77b9000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf74b5000)

Обратите внимание, что библиотекам и компоновщику реализовали различные псевдонимы с символьными ссылками (например,/lib64/ld-linux-x86-64.so.2 на самом деле/lib64/ld-2.15.so).

Также отметьте это gcc, "собственный" компилятор (так как это компилирует ядро и библиотеку C) не должен присутствовать в системе, но libc и ld делают или иначе ничто не может работать.


Это не единственный набор вещей в том, который обеспечивает GNU. Они также ответственны за bash оболочка и другие базовые инструменты и утилиты, которые делают систему *, отклоняют как и (главным образом) совместимый POSIX. И GNOME, один из первого DE's Linux и один из наиболее широко используемого. И вышеупомянутое бойкое, которое обеспечивает много функций высокого уровня для поддержки вещей как GNOME и другой DE's. GNOME основан на GTK, который был первоначально разработан для GIMP. GTK также фундаментален для различного другого DE's; GTK и GIMP являются также продуктами GNU. Они сделали много материала.


1 существует такая вещь как приложение пространства пользователя, которое не связывается ни с какой библиотекой; их называют статическими исполняемыми файлами, и это по существу означает, что у них были части той библиотеки, скомпилированной в них (точно так же, как ядро делает).

3
23.04.2014, 19:53
1 ответ
[115886] Я думаю, что Avahi нужен [116377]nss-mdns[116378], который является плагином glibc, обеспечивающим разрешение имен хостов через mDNS, и демоном avahi, запущенным при загрузке.[12210]Предположим, что у вас есть машины с именами maple, fig и oak, на всех из которых Avahi запущен. Avahi можно настроить так, чтобы вам не приходилось управлять файлом /etc/hosts для каждого компьютера. Вместо этого вы можете просто использовать maple.local для доступа к любым сервисам, которые есть у maple.[12211]Вы можете получить дополнительную информацию о вики-страницах ArchLinux [116381]wikipage[116382] (смотрите ссылки на вики-страницы [116383]Arch[116384] или [116385]Gentoo[116386] часто. В этих двух википажах просто имеется [12212]лучшая [12213]доступная документация :) ) [115891]
2
27.01.2020, 21:28

Теги

Похожие вопросы