LINUX.ORG.RU

Познание .so файлов

 


0

1

Капитан очевидность утверждает, что это разделяемые библиотеки, подключаемые на этапе исполнения бла-бла-бла... Так вот, объясните мне несмышленышу, зачем у большей части .so из /lib стоит бит на исполнение? Ну и почему у оставшейся части этого бита нет? И почему любая попытка собственно исполнения дает сегфолт?

★★★

LIKAN

И почему любая попытка собственно исполнения дает сегфолт?

Наверное, там нет точки входа. И что вообще, по-твоему, должно произойти после запуска?

post-factum ★★★★★
()

внезапно

$ /lib64/libc.so.6
GNU C Library stable release version 2.15, by Roland McGrath et al.
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.7.1.
Compiled on a Linux 3.4.0 system on 2012-06-30.
Available extensions:
	C stubs add-on version 2.1.2
	crypt add-on version 2.1 by Michael Glad and others
	Gentoo patchset 18
	GNU Libidn by Simon Josefsson
	Native POSIX Threads Library by Ulrich Drepper et al
	Support for some architectures added on, not maintained in glibc core.
	BIND-8.2.3-T5B
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.
anonymous
()
Ответ на: комментарий от strangeman
$ ls -ld /lib | grep x
drwxr-xr-x 23 root root 4096 июня  22 17:53 /lib

Вот тебе результат за вычетом симлинков и директорий (у меня на убунте, по крайней мере).

strangeman ★★★★
()
Ответ на: комментарий от strangeman

Вот тебе результат за вычетом симлинков и директорий (у меня на убунте, по крайней мере).

дык на убунте так. А где ещё?

детектор

$ find /usr/lib/ -name "*.so" ! -type l -executable | wc -l
3294
drBatty ★★
()
Ответ на: комментарий от strangeman
$ find /lib /lib64 /usr/lib -type f -executable | wc -l
904
$ find /lib /lib64 /usr/lib -type l -executable | wc -l
108
nei8Adai
()
Ответ на: комментарий от nei8Adai
> find /lib /lib64 /usr/lib -type f -executable | xargs file {} \; | grep 'shared object' | wc -l
49

Большинством даже и не пахнет, причём лишь несколько из них имеют расширение «so».

GotF ★★★★★
()
Ответ на: комментарий от GotF

Точно. А что эти файлы(которых 1008) делают в /usr/lib?

$ find /lib /lib64 /usr/lib \( -type f -or -type l \) -executable | wc -l   
1012
$ find /lib /lib64 /usr/lib -name '*.so' \( -type f -or -type l \) -executable 
/lib/x86_64-linux-gnu/ld-2.15.so
/lib/x86_64-linux-gnu/libc-2.15.so
/lib/x86_64-linux-gnu/libpthread-2.15.so
/lib/klibc-bhN-zLH5wUTKSCGch2ba2xqTtLE.so

nei8Adai
()
Ответ на: комментарий от nei8Adai

А что эти файлы(которых 1008) делают в /usr/lib?

Часто это разные вспомогательные программы, которые не предназначены для прямого вызова пользователем. Плагины, например. А вот почему они являются ELF executable — это вопрос не ко мне %)

GotF ★★★★★
()
Ответ на: комментарий от GotF

Часто это разные вспомогательные программы, которые не предназначены для прямого вызова пользователем. Плагины, например. А вот почему они являются ELF executable — это вопрос не ко мне %)

народ в интернетах пишет, что это для облегчения работы другого ПО. Проблема в том, что ядро читает заголовки, и таким образом определяет можно-ли исполнять этот код, и если можно, то как. А вот программы такого права могут быть и лишены. Т.е. _только_ исполнение, как у su/sudo.

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

drBatty ★★
()
Ответ на: комментарий от Komintern

Гы. Ой. И правда гоню, неверно бегло опцию прочитал.

strangeman ★★★★
()
Ответ на: комментарий от drBatty

а что происходит ПОСЛЕ подключения .so, когда программа с подключенной библиотекой завершила свою работу. И посоветуйте пожалуйста какую-нибудь лит-ру по этой теме, обрывки информации из гугла не дают полной картины.

LIKAN ★★★
() автор топика
Ответ на: комментарий от LIKAN

а что происходит ПОСЛЕ подключения .so, когда программа с подключенной библиотекой завершила свою работу.

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

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

я-бы и сам с удовольствием почитал-бы..

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.