Se sei su un sistema derivato da Debian, puoi usare apt-get source libc6
. Questo scompatterà un eglibc-2.12.1
directory (il numero di versione potrebbe essere diverso, ovviamente) nella tua attuale directory di lavoro, e il supporto pthreads si trova nel nptl/
directory sottostante. linuxthreads/
è per il vecchio stile di threading, nel caso tu sia un archeologo.
La maggior parte dei Linux usa una versione di libc chiamata glibc
.
L'LXR (sistema di riferimenti incrociati online) per glibc è ad es. qui http://koala.cs.pub.ro/lxr/glibc/ per la versione 2.9 (il collegamento è interrotto). Devo dire che qualcosa potrebbe non essere lxr'ed perché alcuni sorgenti vengono generati nel processo di compilazione, ad esempio - come ricordo - wrapper attorno a chiamate di sistema.
I Pthread sono in nptl/
cartella. Il collegamento corretto ai sorgenti di libc è http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.bz2 (o modifica 2.14 nella tua versione)
Aggiornamento:dopo la chiusura di koala's lxr, ci sono:
-
Metager con glibc:http://code.metager.de/source/xref/gnu/glibc/(Servito con OpenGrok di Sun, originariamente utilizzato per generare x-ref online per Solaris/OpenSolaris) -
Ricerca codice Google (so che è stato chiuso, ma so anche che è attiva un'altra versione):
http://code.google.com/codesearch e prova a cercare qualcosa di specifico per glibc
UPD (marzo 2013) Hanno ucciso di nuovo codesearch:
404. That’s an error.
L'URL /codesearch richiesto non è stato trovato su questo server. Questo è tutto ciò che sappiamo.
AGGIORNAMENTO 2017
-
Metager con glibc:http://code.metager.de/source/xref/gnu/glibc/ -
C'è git online degli autori di glibc:https://sourceware.org/git/?p=glibc.git (l'albero è navigabile su https://sourceware.org/git/?p=glibc.git;a=tree)
-
Glibc git è mirrorato su github (che ha alcune funzioni di ricerca) https://github.com/bminor/glibc Buildroot 2018.05 utilizza in particolare questo mirror.
-
C'è una ricerca come la ricerca in codice di Google in tutti i pacchetti Debian:https://codesearch.debian.net/. Può cercare nei sorgenti di glibc tramite la richiesta "package:glibc request" e ha anche un browser di file:http://sources.debian.net/src/glibc/
Prova il riferimento incrociato tra FreeBSD e Linux Kernel.
Divertiti :)
Informazioni sul repository glibc:http://sourceware.org/glibc/wiki/GlibcGit
Clonalo per ottenere la tua copia e cercalo come preferisci:
git clone git://sourceware.org/git/glibc.git
Lo carico in un progetto IDE (usando qualsiasi IDE preferito) e la navigazione del codice funziona abbastanza bene per farmi trovare ciò che mi interessa.
Sfoglia la fonte online http://sourceware.org/git/?p=glibc.git