Comprender Kernel, modulos y Compilacion

2006-05-05 Por tema Eric Pap
Hola amigos. Antes que nada gracias por leer y responder.
mi Pregunta es mas bien de concepto

Tengo un Debian funcionando con un kernel 2.6.12. Al hacer un lsmod, veo
un monton de modulos cargados muchos de los cuales seguramente no uso.
He logrado hacer andar casi todo el hard de mi pc. Y aca viene la
pregunta.
No entiendo si la interfaz (driver) entre mi harware y linux esta dada
por el kernel en si, o si se da a travez de los modulos. Mi idea es
tener cargado solo los drivers que necesito, para que la maquina
funcione mejor, arranque mas rapido etc. Si los drivers son los modulos,
lo unico que tengo que hacer es darlos de baja (siempre y cuando supiera
cuales) si los drivers estan en el kernel tendria que recompilarlo
supongo, que si no me equivoco este es el sentido, hacer que tenga solo
lo que tu compu necesita.
Segun tengo entendido un kernel de stock como el que tengo yo, tiene
drivers para casi todo el hard disponible. O sea que recompilandolo me
aseguro que queden solo los drivers para mi hard.

Si esto es asi no entiendo como se elije a la hora de compilar el
kernel, que drivers meter y cuales no.

Mucho lio hice no? creo que tengo los conceptos medio mezclados.
Alguien me orienta un poco?
gracias
Eric


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Comprender Kernel, modulos y Compilacion

2006-05-05 Por tema Jorge
El Viernes 05 Mayo 2006 07:40, Eric Pap escribió:
 Hola amigos. Antes que nada gracias por leer y responder.
 mi Pregunta es mas bien de concepto

 Tengo un Debian funcionando con un kernel 2.6.12. Al hacer un lsmod, veo
 un monton de modulos cargados muchos de los cuales seguramente no uso.
 He logrado hacer andar casi todo el hard de mi pc. Y aca viene la
 pregunta.
 No entiendo si la interfaz (driver) entre mi harware y linux esta dada
 por el kernel en si, o si se da a travez de los modulos. Mi idea es
 tener cargado solo los drivers que necesito, para que la maquina
 funcione mejor, arranque mas rapido etc. Si los drivers son los modulos,
 lo unico que tengo que hacer es darlos de baja (siempre y cuando supiera
 cuales) si los drivers estan en el kernel tendria que recompilarlo
 supongo, que si no me equivoco este es el sentido, hacer que tenga solo
 lo que tu compu necesita.
 Segun tengo entendido un kernel de stock como el que tengo yo, tiene
 drivers para casi todo el hard disponible. O sea que recompilandolo me
 aseguro que queden solo los drivers para mi hard.

 Si esto es asi no entiendo como se elije a la hora de compilar el
 kernel, que drivers meter y cuales no.

 Mucho lio hice no? creo que tengo los conceptos medio mezclados.
 Alguien me orienta un poco?
 gracias
 Eric


Linux (el núcleo) no tiene ningún driver, todas y cada una de las 
funcionalidades las obtiene de los módulos que los cargará o no.

Hablando sencillamente, no carga ningún módulo que no sirva para tu hardware, 
es decir, solo carga los módulos si el componente hardware está presente.
Esto es en los casos normales, hay otros módulos que se cargan siempre, como 
el ndiswrapper, el de la webcam, etc. Pero dudo mucho que los hayas 
instalado a mano para luego no usarlos.

Si quieres entender todo esto, no esperes que por inspiración mágica aprendas 
todo, ni por leer cuatro cosas sepas manejarlo. Olvida que el núcleo existe, 
y déjalo que haga sus cosas.

Linux y por consiguiente sus módulos se intenta que sean lo más rápidos y 
eficientes posibles para tener una latencia mínima en el núcleo del sistema.

No vas a notar nada porque quites algún módulo, ni siquiera en el arranque. Si 
te molestan esos mensajes tipo no se puede cargar tal módulo, no te 
preocupes, no pasa nada por que los muestre.


Lo único que puedes conseguir jugando con él es cargarte el sistema. No hagas 
el tonto intentando mejorar las prestaciones del núcleo. Para eso bájate una 
nueva versión que seguro que esta un poquitín más optimizada y funciona un 
pelín más rápido.

Tocar cosas de Linux requiere conocer como es tu máquina. Y por mucho que 
tengas las facturas delante no sabes cómo es tu máquina (por dentro). El 
99.99 % de las ocasiones el núcleo ya viene bien configurado, dudo que tu 
seas la excepción de la regla. Piesa que Debian funciona en servidores, y por 
lo tanto tiene que venir preparado para ello.

Compilando el núcleo no vas a mejorar nada, todo lo contrario, lo puedes dejar 
completamente destrozado, y tu ni darte cuenta.

Si quieres más rendimiento, pillate el 2.6.16, y el nuevo udev, y todo 
solucionado.


Un saludo

-- 
 Jorge Mena
 Linux Registered User 416139



[OT] Re: Comprender Kernel, modulos y Compilacion

2006-05-05 Por tema Gabriel.nnl
 Hola:

El Viernes 05 Mayo 2006 07:40, Eric Pap escribió:
 (...)
No entiendo si la interfaz (driver) entre mi harware y linux esta dada
por el kernel en si, o si se da a travez de los modulos.

 Veamos, efectivamente, se pueden entender los módulos como drivers; lo
que ocurre explicado en palabras sencillas es que en cuanto un módulo se
carga es como si formara parte del núcleo.

 Por otra parte, uno puede ahorrarse la carga dinámica de módulos
usuales incorporándolos estáticamente al núcleo al compilarlo
('compilar' es algo así como convertir el código fuente que escribieron
los programadores a un archivo ejecutable que puedas usar, en este caso,
digamos que el vmlinuz y alguna cosa más), eso es lo que en compiladores
se llama 'link' (en inglés), o 'linkar' (adaptado del inglés), o
'montar' (traducido al castellano).

 Te pego lo que escribimos un par de amigos en un artículo [1] de 2004,
que era sobre el planificador del núcleo Linux, pero tenía una parte de
características generales del núcleo:

Es capaz de linkar módulos en tiempo de ejecución. Los módulos
contienen funcionalidades particulares que son cargadas dentro del
Kernel cada vez que se requiere y no están permanentemente alojados
dentro del Kernel en sí, ni dentro de la memoria. Además de la reducción
en el uso de memoria, los módulos tienen la ventaja de ser
actualizables. Al compilar el núcleo se da con cada módulo la opción de
incorporarlo estáticamente al binario del kernel o bien compilarlo
aparte para que luego se pueda cargar según demanda. [1]


 Mi idea es tener cargado solo los drivers que necesito, para que la
maquina funcione mejor, arranque mas rapido etc. Si los drivers son los
modulos,lo unico que tengo que hacer es darlos de baja (siempre y
cuando supiera cuales) si los drivers estan en el kernel tendria que
recompilarlo supongo, que si no me equivoco este es el sentido, hacer
que tenga solo lo que tu compu necesita.

 Hotplug, udev y otros demonios están pensados para cargar ciertos
módulos sólo cuando detectan que el hardware que los usa está conectado
y funcionando. En general no debes preocuparte por ello. Aunque sí es
cierto que a veces se fuerza la carga de otros relacionados  con los que
ya hay (en sonido, por ejemplo) y que no hacen falta, no es habitual.

 Especialmente en el arranque, a veces se prueban módulos para intentar
ver si está presente cierto hardware, pero no suelen cargarse si no
hacen falta. Es ese tiempo de arranque en el que a lo mejor puedes
ahorrar unos segundos pero quizá ahorres más desinstalando algún
servidor o demonio que no uses y se arranque al inicio.

 Al recompilar el núcleo puedes elegir qué módulos compilar y de ellos,
cuáles incorporar de manera estática y cuáles se cargarán cuando un
demonio o root decidan que se necesitan. Los que eligieses como
estáticos deberían ser pocos en un sistema normal porque el kernel se
carga entero en memoria y los que se usaran con poca frecuencia
ocuparían espacio en memoria sin necesidad.

Segun tengo entendido un kernel de stock como el que tengo yo, tiene
drivers para casi todo el hard disponible. O sea que recompilandolo me
aseguro que queden solo los drivers para mi hard.

 Cierto, pero esos drivers (módulos) del kernel precompilado que
proporciona Debian están esperando en algún lugar de /usr/src/ a ser
cargados, no se cargan todos (son cientos) por defecto.

 Si quieres compilar es tu elección, pero es algo complicado y largo que
no a todo el mundo le interesa hacer. Hay documentación por ahí de cómo
hacerlo, aunque lo mejor suele ser informarte muy bien primero o
compilar tu primer núcleo acompañado de alguien que ya lo sepa hacer.


Si esto es asi no entiendo como se elije a la hora de compilar el
kernel, que drivers meter y cuales no.

 Creo que ya he contestado a eso.

[1]: http://usuarios.lycos.es/nanoelduende/linux/charla-kernelv1-0-html.html

Saludos
-- 
--
Gabriel Núñez~
   -
gabriel.nnl(at)estudiante.uam.es -- gabriel.nunez(at)hispalinux.es
//May The Source Be With You//
--//--
--//-- Infórmese sobre las patentes de software: /-
http://proinnova.hispalinux.es/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



[OT] Re: Comprender Kernel, modulos y Compilacion

2006-05-05 Por tema Gabriel.nnl
 Hola:

Jorge wrote:
 
 (...)
 Si quieres entender todo esto, no esperes que por inspiración mágica aprendas 
 todo, ni por leer cuatro cosas sepas manejarlo. Olvida que el núcleo existe, 
 y déjalo que haga sus cosas.
 
 Linux y por consiguiente sus módulos se intenta que sean lo más rápidos y 
 eficientes posibles para tener una latencia mínima en el núcleo del sistema.
 
 No vas a notar nada porque quites algún módulo, ni siquiera en el arranque. 
 Si 
 te molestan esos mensajes tipo no se puede cargar tal módulo, no te 
 preocupes, no pasa nada por que los muestre.
 
 
 Lo único que puedes conseguir jugando con él es cargarte el sistema. No hagas 
 el tonto intentando mejorar las prestaciones del núcleo. Para eso bájate una 
 nueva versión que seguro que esta un poquitín más optimizada y funciona un 
 pelín más rápido.
 
 Tocar cosas de Linux requiere conocer como es tu máquina. Y por mucho que 
 tengas las facturas delante no sabes cómo es tu máquina (por dentro). El 
 99.99 % de las ocasiones el núcleo ya viene bien configurado, dudo que tu 
 seas la excepción de la regla. Piesa que Debian funciona en servidores, y por 
 lo tanto tiene que venir preparado para ello.
 
 Compilando el núcleo no vas a mejorar nada, todo lo contrario, lo puedes 
 dejar 
 completamente destrozado, y tu ni darte cuenta.
 
 Si quieres más rendimiento, pillate el 2.6.16, y el nuevo udev, y todo 
 solucionado.
 
 
 Un saludo
 

 Bueno, no hace falta que asustes al chico...

 Es cierto que se suele compilar el núcleo para añadir funcionalidades y
no para quitarlas, pero si quiere hacerlo, esto es software libre (y sin
garantías) y puede hacer lo que le dé la gana.

 El software libre, como Linux y Debian, está bastante bien documentado
y un usuario con interés y curiosidad puede llegar a saber mucho sin
pasar por la universidad (que se lo digan a Marcelo Tosatti [1]).

 Compilando un núcleo, siempre que se coja una versión estable que no
sea 'release candidate' (rc) y elija la opción de no usar módulos
experimentales, lo peor que le puede pasar es un kernel panic o un Oops,
que se soluciona buscando la opción equivocada, corrigiéndola y
recompilando.

 Mientras no borre el núcleo original que le permitía arrancar el
sistema, no hay nada insalvable.

 Pregunta para el FrikiTrivial de hoy: ¿Cuántas oes tiene un oops del
kernel?

[1]: http://es.wikipedia.org/wiki/Marcelo_Tosatti

Saludos
-- 
--
Gabriel Núñez~
   -
gabriel.nnl(at)estudiante.uam.es -- gabriel.nunez(at)hispalinux.es
//May The Source Be With You//
--//--
--//-- Infórmese sobre las patentes de software: /-
http://proinnova.hispalinux.es/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]