¿Puedo crear una distribución de Linux con libc en lugar de glibc?

¿Puedo crear una distribución de Linux con libc en lugar de glibc?

Recientemente tuve una conversación con un amigo que es un ingeniero de software altamente calificado y me mostró algunos artículos que describen el hecho de que libc era mucho mejor que glibc.

Me pregunto si es posible utilizar libc en su lugar y ¿qué tipo de problemas me encontraría si siguiera este camino?

Respuesta1

Contexto: asumiendo por los comentarios anteriores que libcse refiere a un BSDish.

Creo que se ha investigado, pero libctiende a estar estrechamente vinculado a un kernel determinado ( glibctiene una capa de abstracción, lo que le permite cierta portabilidad pero causa los problemas habituales que causa una capa de abstracción) y hacer que BSD libcfuncione con un kernel de Linux requeriría un reescritura casi completa. Los servicios clave del sistema son muy diferentes entre los dos sistemas (un ejemplo: BSD libcsupone que no hay tuberías/FIFO, porque BSD usa pares de sockets en su lugar; por el contrario, Linux no admite pares de sockets compatibles con tuberías).

Ir en la otra dirección (creo que Debian tiene un espacio de usuario experimental de Linux en un kernel de FreeBSD) es posible debido a glibcla capa de portabilidad de .

Respuesta2

Hay muchas implementaciones de libc. Es posible y bastante común construir un sistema usandouClibcoEGLIBC. Ni siquiera es particularmente difícil: inténtaloraíz de compilación.

Respuesta3

Muchos programas dependen de glibcsí mismos, de glibcmacros o simplemente glibcdel estilo, por lo que la compilación falla. Puedes arreglar cualquier software fácilmente si lo conoces glibcdesde dentro. Por ejemplo podemos ver aquíencabezados de Linuxpara musl. Los encabezados no están terminados, pero puedes consultar las confirmaciones y ver cómo se ve este trabajo.

Cada desarrollador prueba su software utilizando glibcun sistema basado. No es posible arreglar todo el desarrollo de software en vivo y hacerlo compatible con otros libcusando la solución adecuada como la solicitud de extracción. Por lo tanto, los sistemas de propósito general como este gentoono se pueden construir utilizando libc alternativo sin un dolor infinito.

Los desarrolladores integrados ( openwrtpor ejemplo) están arreglando versiones de software y trabajando duro para solucionarlo. Entonces, un sistema integrado (como openwrt) solo puede proporcionar unafuenteque se puede construir con libc alternativa como muslo uclibc.

La única forma correcta e indolora de reemplazar glibccon other libces implementar un contenedor especial que simule todos glibclos comportamientos usando other libc. Hoy en día no existe tal proyecto.

información relacionada