2011-06-26 9 views
14

Lo siento, sé que esto es estúpido, pero ¿dónde está disponible el código fuente de Linux libc? Lo que descargué de GNU no parecía ser lo que quería, específicamente no pude encontrar nada en la familia de funciones pthreads.libc source location - para descargar o ver en línea?

¿Hay una versión en línea (hipertexto con referencias cruzadas) en alguna parte?

+0

pthreads están en nptl/carpeta. El enlace derecho es http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.bz2 – osgx

+3

"específicamente no pude encontrar nada" - wow, pthreads SON livianos. –

Respuesta

17

La mayoría de los linux usan una versión de libc llamada glibc.

El LXR (sistema de referencias cruzadas en línea) para glibc es, p. aquí http://koala.cs.pub.ro/lxr/glibc/ para la versión 2.9 (el enlace está roto). Debo decir que algo no se puede analizar porque algunas fuentes se generan en el proceso de compilación, por ejemplo, como puedo recordar, envoltorios de llamadas a un sistema.

Pthreads están en la carpeta nptl/. enlace de la derecha a las fuentes de libc es http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.bz2 (o cambiar 2.14 a su versión)

Actualización: Después de cerrar de LXR de koala, se encuentran:

  1. MetaGer con glibc: http://code.metager.de/source/xref/gnu/glibc/ (servido con OpenGrok de Sun, que era originalmente utilizado para generar x-ref línea para Solaris/OpenSolaris)

  2. Google de búsqueda de código (sé que estaba cerrado, pero también sé que es otra versión que es hacia arriba): http://code.google.com/codesearch y tratar de buscar algo glibc- específico

UPD (marzo de 2013) Mataron CodeSearch nuevo:

404. That’s an error. 

La URL/CodeSearch solicitado no se encuentra en este servidor. Eso es todo lo que sabemos.

UPD 2017

  1. MetaGer con glibc: http://code.metager.de/source/xref/gnu/glibc/

  2. Hay git en línea por los autores de glibc: https://sourceware.org/git/?p=glibc.git (árbol es browserable en https://sourceware.org/git/?p=glibc.git;a=tree)

  3. Glibc git se refleja a github (que tiene algunas funciones de búsqueda) https://github.com/bminor/glibc

  4. Hay una búsqueda como codesearch de google en todos los paquetes Debian: https://codesearch.debian.net/. Se puede buscar en las fuentes de glibc por "paquete: solicitud de glibc" petición y también tener un navegador de archivos: http://sources.debian.net/src/glibc/2.23-1/

+0

Guau, excelente 2-para. Gracias. – ValenceElectron

+2

Ese primer enlace parece estar roto para mí. – paxdiablo

+0

link is brokern .... ¿puedes actualizar cualquier nuevo enlace para LXR OF glibc .. ?? –

5

Si estás en un sistema derivado de Debian, puede utilizar apt-get source libc6. Esto descomprimirá un directorio eglibc-2.12.1 (el número de versión puede diferir, por supuesto) en su directorio de trabajo actual, y el soporte pthreads está en el directorio nptl/ debajo de eso. linuxthreads/ es para el estilo de enhebrado más antiguo, en caso de que sea arqueólogo.

+0

Para ser un arqueólogo, debería descargar no un 2.12, sino algo así como 2.2 o 2.3 porque los hilos linux están borrados (como vanilla bz2). – osgx

+1

@osgx, estoy sorprendido, pensé que iban a mantener las cosas viejas para toda la eternidad. Bien por ellos. :) – sarnold

+0

Veo archivos separados de linuxthreads en http://ftp.gnu.org/gnu/glibc/ Realmente no sé si estaban en los principales tarots glibc en cualquier momento o no. Como mi opinión, linuxthreads es mejor que nptl porque me permiten establecer 'setitimer' por separado en cada hilo. ^) – osgx

1

Pruebe el FreeBSD and Linux Kernel Cross-Reference.

Diviértase :)

+2

Las fuentes de libc son un poco difíciles de encontrar rápidamente. Por lo tanto, abra http://fxr.watson.org/fxr/source/?v=FREEBSD-LIBC para FreeBSD libc o http://fxr.watson.org/fxr/source/?v=GLIBC27 para glibc-2.7 – osgx

+1

estos ya no funcionan, ¡ay! – sendmoreinfo

7

Info en el repositorio de glibc: http://sourceware.org/glibc/wiki/GlibcGit

clonarlo para obtener su propia copia y buscarla como usted quiera:

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

lo cargo en una El proyecto IDE (usando el IDE preferido) y el código de navegación funcionan bastante bien para que me permita encontrar lo que me interesa.

Navegue en la fuente en línea http://sourceware.org/git/?p=glibc.git

Cuestiones relacionadas