Расположение источника libc - для скачивания или просмотра онлайн? - PullRequest
16 голосов
/ 26 июня 2011

Извините, я знаю, что это глупо, но где доступен исходный код Linux Linux? То, что я скачал из GNU, похоже, не то, что я хотел, в частности, я ничего не мог найти в семействе функций pthreads.

Есть ли где-нибудь онлайн-версия с гипертекстовой перекрестной ссылкой?

Ответы [ 4 ]

20 голосов
/ 26 июня 2011

Большинство linux используют версию libc с именем glibc.

LXR (онлайновая система перекрестных ссылок) для glibc, например, здесь http://koala.cs.pub.ro/lxr/glibc/ для версии 2.9 (ссылка не работает). Я должен сказать, что что-то может быть не lxr'ed, потому что некоторые источники генерируются в процессе сборки, например - как я помню - обертки вокруг системных вызовов.

Pthreads находятся в папке nptl/. Правильная ссылка на исходники libc: http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.bz2 (или измените 2.14 на вашу версию)

Обновление: после закрытия lxr коалы есть:

  1. Метагер с glibc: http://code.metager.de/source/xref/gnu/glibc/ (Подается с OpenGrok от Sun, который изначально использовался для создания онлайнового x-ref для Solaris / OpenSolaris)

  2. Поиск кода Google (я знаю, что он был закрыт; но я также знаю, что это другая версия, которая работает): http://code.google.com/codesearch и попробуйте найти что-то специфичное для glibc

UPD (март 2013) Они снова убили codesearch:

404. That’s an error.

Запрошенный URL / поиск кода не найден на этом сервере. Это все, что мы знаем.

UPD 2017

  1. Метагер с glibc: http://code.metager.de/source/xref/gnu/glibc/

  2. Имеется онлайновый git, созданный авторами glibc: https://sourceware.org/git/?p=glibc.git (дерево доступно для просмотра в https://sourceware.org/git/?p=glibc.git;a=tree)

  3. Glibc git зеркалируется на github (который имеет некоторые функции поиска) https://github.com/bminor/glibc Buildroot 2018.05 , в частности, использует это зеркало .

  4. Во всех пакетах Debian есть поиск, подобный google codesearch: https://codesearch.debian.net/. Он может искать в источниках glibc по запросу "package: glibc request", а также иметь браузер файлов: http://sources.debian.net/src/glibc/

7 голосов
/ 18 ноября 2012

Информация о хранилище glibc: http://sourceware.org/glibc/wiki/GlibcGit

Клонируйте его, чтобы получить собственную копию и ищите ее так, как вам нравится:

git clone git://sourceware.org/git/glibc.git

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

Просмотр источника в Интернете http://sourceware.org/git/?p=glibc.git

5 голосов
/ 26 июня 2011

Если вы работаете в системе, основанной на Debian, вы можете использовать apt-get source libc6.Это позволит распаковать каталог eglibc-2.12.1 (номер версии, конечно, может отличаться) в текущем рабочем каталоге, а поддержка pthreads находится в каталоге nptl/ ниже этого.linuxthreads/ для более старого стиля потоков, если вы археолог.

1 голос
/ 26 июня 2011

Попробуйте Перекрестная ссылка на ядро ​​FreeBSD и Linux .

Получайте удовольствие:)

...