Comprender Kernel, modulos y Compilacion
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
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
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
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]