Sie sind auf Seite 1von 11

Instituto Tecnolgico de Las Amricas (ITLA) Sistemas Operativos I

Jhon N. Catano Pineda

2013-1706

Kernel O Nucleo

Que es el kernel/ncleo? El kernel ncleo de linux se puede definir como el corazn de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos. Las funciones ms importantes del mismo, aunque no las nicas, son: Administracin de la memoria para todos los programas y procesos en ejecucin. Administracin del tiempo de procesador que los programas y procesos en ejecucion utilizan. Es el encargado de que podamos acceder a los perifricos/elementos de nuestro ordenador de una manera cmoda. Hasta que empez el desarrollo de la serie 2.6 del ncleo, existieron dos tipos de versiones del ncleo: Versin de produccion: La version de produccion, era la version estable hasta el momento. Esta version era el resultado final de las versiones de desarrollo o experimentales. Cuando el equipo de desarrollo del ncleo experimental, decidia que tenia un nclo estable y con la suficiente calidad, se lanzaba una nueva versin de produccin estable. Esta versin era la que se debia utilizar para un uso normal del sistema, ya que eran las versiones consideradas ms estables y libres de fallos en el momento de su lanzamiento.

Versin de desarrollo: Esta versin era experimental y era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas caractersticas, correcciones, etc. Estos ncleos solian ser inestables y no se debian usar sin saber lo que se hacia. Como interpretar los numeros de las versiones de las series por debajo de la 2.6: Las versiones del ncleo se numeraban con 3 numeros, de la siguiente forma: AA.BB.CC AA: Indicaba la serie/versin principal del ncleo. Solo han existido la 1 y 2. Este nmero cambiaba cuando la manera de funcionamiento del kernel habia sufrido un cambio muy importante. BB: Indicaba si la versin era de desarrollo de produccin. Un nmero impar, significaba que era de desarrollo, uno par, que era de produccin. CC: Indicaba nuevas revisiones dentro de una versin, en las que lo nico que se habia modificado eran fallos de programacin. Unos ejemplos nos ayudaran a entenderlo mejor: ej1: versin del ncleo 2.4.0: Ncleo de la serie 2 (AA=2), versin de produccin 4 (BB=4 par), primera versin de la serie 2.4 (CC=0) ej2: versin del ncleo 2.4.1: Ncleo de la serie 2, versin 4, en el que se han corregido errores de programacin presentes en la version 2.4.0 (CC=1) ej3: versin del ncleo 2.5.0: versin 0 del ncleo de desarrollo 2.5. Con la serie 2.6 del ncleo, el sistema de numeracin asi como el modelo de desarrollo han cambiado. Las versiones han pasado a numerarse con 4 digitos y no existen versiones de produccion y desarrollo. Las versiones del ncleo se numeran hoy en dia con 4 digitos, de la siguiente forma: AA.BB.CC.DD. AA: Indica la serie/versin principal del ncleo. BB: Indica la revision principal del ncleo. Numeros pares e impares no tienen ningun significado hoy en dia. CC: Indica nuevas revisiones menores del ncleo. Cambia cuando nuevas caracteristicas y drivers som soportados. DD: Este digito cambia cuando se corrigen fallos de programacin o fallos de seguridad dentro de una revisin. Hoy en dia se suele usar el nucleo distribuido con la distribucion que el usuario utiliza. Son las distribuciones las encargadas de distribuir ncleos estables a sus ausuarios y estos nucleos se

basan en el ncleo ("vanilla") distribuido por Linus Torvalds y el equipo de programadores del ncleo. Configuracin e instalacin de un nuevo ncleo Este es uno de los temas que asustan a los nuevos usuarios de Linux. Lo primero, deciros que no hay razn para asustarse, la configuracin e instalacin de un nuevo ncleo en nuestro sistema es mas fcil de lo suena. Lo segundo, es que podeis tener un sistema estable, actualizado y que funcione sin problemas durante meses sin tener que compilar un solo ncleo, siempre y cuando utiliceis los ncleos distribuidos con vuestra distribucin. Es muy recomendable el utilizar los ncleos distribuidos por la distribucin que utiliceis. Estos ncleos tienen muy buena calidad y son muy completos y con esto os evitais el trabajo de configurar, compilar y mantener nuevas versiones del ncleo. Si sois de los que os gustan experimentar y aprender nuevas cosas, adelante, nadie os impide bajaros el ltimo ncleo y experimentar con el, esto era mucho ms comn hace unos aos y una tarea casi imprescindible en muchos casos.

Configuracin del kernel Adems de cargar y descargar mdulos, algunas caractersticas del kernel pueden ser modificadas mientras est en funcionamiento el sistema, bien escribiendo en algunos archivos del directorio/proc/, o con el programa sysctl. Este programa con la opcin -a presenta todas las variables modificables y su valor, entre otras encuentra variables que mantienen datos autodetectados en dispositivos (en particular del CD-ROM), datos de la interaccin entre el kernel y el sistema de archivos, datos sobre los protocolos y dispositivos de redes, y detalles del kernel. Para cambiar un valor se emplea: /sbin/sysctl -w kernel.hostname=comp con un nombre de variable en lugar de kernel.hostname y un valor adecuado en lugar de comp. Pueden hacerse cambios que se vuelven a tomar cada vez que el sistema inicia en el archivo/etc/sysctl.conf. En cuanto a los mdulos, las imgenes precompiladas del kernel producidas por Debian incluyen estticamente varios controladores comunes y prcticamente los dems controladores los incluye como mdulos. Por esto, si la versin del kernel que tiene soporta sus dispositivos y los servicios que desea, casi con seguridad usted NO necesita recompilar el kernel (puede confirmar si la imagen que tiene, soporta el controlador como mdulo revisando en el

directorio de mdulos, o puede comprobar si ste se incluye estticamente, efectuando el segundo paso para una instalacin usando como archivo de configuracin el de la imagen de su kernel). Eventualmente, si su dispositivo no es detectado automticamente o el mdulo apropiado no es cargado automticamente (6), tendr que pasar los parmetros apropiados de una de las dos siguientes formas: Controlado esttico Pase los parmetros apropiados desde el cargador de arranque o configrelos de forma permanente con su cargador de arranque. Mdulo (dinmico) Pase los parmetros de configuracin a insmod/modprobe o configrelos de forma permanente en /etc/modules, o en un archivo de /etc/modutils. Eventualmente puede encontrar y usar algn programa que le ayude a determinar los parmetros apropiados y/o a realizar las configuraciones, o tendr que consultar los manuales del dispositivo o incluso probar varias opciones hasta determinarlos. Si tras consultar esta documentacin o la del kernel o cualquier otra ms actualizada, determina que una versin del kernel diferente a la que tiene, soporta cierto dispositivo o servicio que requiere, el mtodo ms sencillo que puede intentar es instalar una imagen precompilada disponible en algn depsito de paquetes de Debian (el nombre es de la forma kernel-image-version). En caso de requerir un kernel con una configuracin muy especial (por ejemplo, que incluya estticamente ciertos mdulos o que excluya de la compilacin mdulos para hacer un kernel pequeo) o si requiere una versin para la que que no haya imgenes precompiladas de Debian, recomendamos instalar primero una versin precompilada con una versin cercana a la que desea instalar, para tomar la configuracin de sta y modificarla antes de compilar la nueva versin. Adems recomendamos esto porque las imgenes precompiladas actualizan otros programas indispensables para las nuevas versiones del kernel. Para obtener las fuentes, puede recurrir a paquetes Debian para algunas versiones de las fuentes en depsitos oficiales (paquetes con nombres de la forma kernel-sources-version) y las fuentes de cualquier versin en el sitio de desarrollo del kernel. Cuando obtenga fuentes del kernel de Linux, tenga en cuenta que el segundo nmero de la versin sea par, si es impar se trata de una versin para desarrolladores pero NO para usuarios finales. Eliminar kernel antiguos

Los kernels van cambiando de versin y a medida que van apareciendo los vamos actualizando, pero tengamos en cuenta que cuando uno actualiza un kernel, no hace ms que instalar la ltima versin del mismo, y las versiones anteriores siguen estando en nuestras mquinas, uno lo nota en el aumento del listado del GRUB. Una vez probada la ltima versin del kernel y viendo que no nos present ningn problema, estamos en condiciones de eliminar los kernels antiguos. 1. Listar los kernels instalado con el siguiente comando: dpkg --get-selections | grep linux-image 2. Eliminar los kernels anteriores, excepto el ultimo con el siguiente comando: sudo aptitude purge paquete paquete es el nombre del kernel, ej: linux-image-2.6.20-12-generic 3. Si el paquete no se encuentra actualizado te pedira hacerlo, esto no es necesario ya que procederemos a eliminar el kernel con el siguiente comando: sudo aptitude remove paquete

Tipos de Kernel

No necesariamente se necesita un ncleo para usar una computadora. Los programas pueden cargarse y ejecutarse directamente en una computadora vaca, siempre que sus autores quieran desarrollarlos sin usar ninguna abstraccin del hardware ni ninguna ayuda del sistema operativo. sta era la forma normal de usar muchas de las primeras computadoras: para usar distintos programas se tena que reiniciar y reconfigurar la computadora cada vez. Con el tiempo, se empez a dejar en memoria (an entre distintas ejecuciones) pequeos programas auxiliares, como el cargador y el depurador, o se cargaban desde memoria de slo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de lo que llegaran a ser los primeros ncleos de sistema operativo. Hay cuatro grandes tipos de ncleos: Los ncleos monolticos facilitan abstracciones del hardware subyacente realmente potentes y variadas. Los microncleos: proporcionan un pequeo conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad. Los ncleos hbridos: son muy parecidos a los microncleos puros, excepto porque incluyen cdigo adicional en el espacio de ncleo para que se ejecute ms rpidamente. Los exoncleos: no facilitan ninguna abstraccin, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware. El kernel de Linux En la carpeta / boot tambin habr otros archivos muy importante llamado initrd.img-versin, la versin System.map, y config-version. El archivo initrd es utilizado como un disco RAM pequeo que extrae y ejecuta el archivo del kernel actual. El archivo System.map se utiliza para la gestin de la memoria antes de que el kernel totalmente se cargue, y el archivo de configuracin le dice al ncleo qu opciones y mdulos de carga ejecute al inicio. Arquitectura del Kernel Linux Debido a que el kernel de Linux es monoltico, tiene ms complejidad que en los otros tipos de kernels. Esta fue una caracterstica de diseo que estaba bajo un poco de debate en los primeros das de Linux y an tiene algunos de los defectos de diseo que los ncleos monolticos son inherentes a tener. Una cosa que los desarrolladores del kernel de Linux hicieron para conseguir solucionar estas fallas es hacer mdulos del kernel que pueden ser cargados y descargados en tiempo de ejecucin, lo que significa que puede agregar o quitar caractersticas de su ncleo en el

momento. Esto puede ir ms all de la adicin de la funcionalidad de hardware para el ncleo, mediante la inclusin de mdulos que ejecutan los procesos del servidor, como la vitalizacin de bajo nivel, pero tambin puede permitir que el ncleo pueda ser del todo reemplazado sin necesidad de reiniciar el equipo en algunos casos. Modulos del Kernel Los mdulos del kernel, tambin conocido como un mdulo del kernel cargables (LKM), son esenciales para mantener el funcionamiento del ncleo con todo el hardware sin consumir toda la memoria disponible. Un mdulo generalmente, aumenta la funcionalidad del ncleo de base para cosas como los dispositivos, sistemas de archivos y las llamadas al sistema. LKMs tienen la extensin .Ko y normalmente se almacenan en el directorio /lib/ modules. Debido a su carcter modular, usted puede personalizar fcilmente su ncleo mediante el establecimiento de mdulos de carga, o no, durante el arranque con el comando menuconfig o editando el archivo /boot /config, o usted puede cargar y descargar los mdulos sobre la marcha con el comando modprobe. Los mdulos de terceros y de codigo cerrado estn disponibles en algunas distribuciones, como Ubuntu, y no puede ser instalado de forma predeterminada porque el cdigo fuente de los mdulos no est disponible. Las empresas desarrolladoras de software (es decir, nVidia, ATI, entre otros) no proporcionan el cdigo fuente, sino que construyen sus propios mdulos y compilan sus archivos . Ko archivos para su distribucin. Si bien estos mdulos son libres como en la cerveza, no son libres como en el habla y por lo tanto no estn incluidos en algunas distribuciones, ya los mantenedores sienten contaminar el ncleo por el suministro de software no-libre. El Kernel de Windows Windows es un Sistema Operativo serio, capaz de competir en el mercado con otros como Unix que ya tienen una posicin privilegiada, en cuanto a resultados, debe tener una serie de caractersticas que le permitan ganarse ese lugar. Modo Kernel: Capa de Abstraccin de Hardware (HAL).Conocido por sus siglas en ingls HAL (Hardware AbstractionLayer) es una interfaz entre el hardware y el resto del Sistema Operativo, est implementada como una biblioteca de enlace dinmico (dll) y es responsable de proteger el resto del sistema de las especificaciones del hardware, tales como controladores de interrupcin e interfaces de entrada/salida. Esta abstraccin hace al sistema ms portable ya que el resto del sistema no tiene que preocuparse sobre que plataforma est corriendo.

Cada plataforma en que el sistema corre necesita un HAL especfico. El diseo intenta que cuando Windows sea portado a una nueva arquitectura de procesador, el HAL sea reescrito para el nuevo procesador, pero el resto del sistema simplemente debe ser recompilado. MicroKernel: es el responsable de todas las acciones que se realizan sobre le sistema y casi todas las funciones del sistema pasan a travs de l.El microkernel est situado en el corazn de Windows, trabaja muy estrechamente con el HAL (Nivel de Abstraccin de Hardware), este planifica la ejecucin de hilos y manipula las interrupciones y excepciones de procesos. El papel de este es mantener a los procesadores lo mas ocupado posible. En sentido general este se encarga de las funciones ms bsicas de todo el SO, como son: Ejecucin de subprocesos. Sincronizacin multiprocesador. Manejo de las interrupciones de hardware. El Ejecutor de Windows se encarga de las tareas importantes, las que son de vital importancia para el sistema completo, ya que el microkernel est casi siempre demasiado ocupado para dirigirse directamente. El Administrador de Objetos. El Administrador de Objetos (Object Manager) es usado para crear, modificar y eliminar objetos (tipos de datos abstractos que son usados para representar recursos del Sistema Operativo) usados por todos los sistemas que conforman el Ejecutor de Windows. Este tambin proporciona informacin sobre el estado de los objetos a todo el Sistema Operativo. El Administrador de Procesos. El Administrador de Procesos (Process Manager) es el responsable de crear, quitar y modificar los estados de todos los procesos e hilos. Este tambin proporciona informacin sobre el estado de procesos e hilos al resto del sistema.El Administrador de Memoria Virtual. El Administrador de Memoria Virtual (Virtual Memory Manager o VMM) proporciona la gestin de memoria virtual del sistema. La memoria virtual es un esquema que permite usar los recursos del disco en lugar de la memoria fsica del sistema moviendo las pginas al disco cuando estas no estn siendo usadas y recuperndolas cuando se les necesitan. Este es un segmento integral de Windows el cual asigna espacios de direcciones de 32 bit a cada proceso sin preocuparse de la cantidad de memoria fsica del sistema. Servicios de Llamadas a Procedimientos Locales. (Local ProcedureCallFacility o LPC) se integran al diseo cliente/servidor de Windows. Este es la interfaz entre todos los procesos clientes y servidores que corren localmente en el sistema. El Monitor de Seguridad. El Monitor de Seguridad (Security Reference Monitor o SRM) es el lecho de toda la seguridad dentro del

sistema WINDOWS y es el responsable de hacer cumplir todas las polticas de seguridad en la computadora local. El Administrador de Entrada-Salida: El Administrador de Entrada-Salida (I/O Manager) es responsable de gestionar la comunicacin entre los distintos drivers de dispositivo, para lo cual implementa una interfaz bien definida que permite el tratamiento de todos los drivers de una manera homognea, sin que intervenga el cmo funciona especficamente cada uno. El Subsistema Win32: Este subsistema acta como un servidor para todos los otros subsistemas de ambiente soportados en WINDOWS, los que actan como clientes y traducen sus llamadas API hacia las API apropiadas de Win32. El subsistema Win32 es responsable de toda la entrada y salida. Este posee el control de la pantalla, el teclado, y el ratn. Cuando otros subsistemas, como OS/2 o POSIX, necesitan beneficiarse de estos dispositivos, ellos piden los servicios al subsistema de Win32. Algunos de los objetivos que se trazaron para mantener la compatibilidad con las aplicaciones hechas en versiones anteriores fueron: Permitir que los programas hechos sobre DOS pudieran correr sin modificacin. Suministrar la capacidad para ejecutar la mayora de las aplicaciones Windows de 16 bits sin modificacin. Proteger al sistema y otras aplicaciones de 32 bits de la interferencia de las aplicaciones de 16 bits y DOS. Permitir a las plataformas RISC (ReducedInstruction set Computer, microprocesador cuyo nmero de instrucciones es reducido para lograr una frecuencia ms alta de trabajo) ejecutar aplicaciones Windows de 16 bits y DOS. El Subsistema POSIX.Microsoft prest mucha atencin a los diferentes estndares de sistemas abiertos cuando Windows NT estaba en va de desarrollo. Ellos reconocieron el valor de soportar sistemas abiertos como un mtodo para ganar aceptacin de su nuevo sistema operativo avanzado dentro del mercado. Uno de los estndares ms frecuentemente citados soportados por Windows es el POSIX (Interfaz de Sistema operativo Portable Basado en Unix), el cual representa la interfaz del Sistema Operativo portable y fue desarrollado por el IEEE (Instituto de Ingenieros en Electricidad y Electrnica) como un mtodo de proporcionar portabilidad a las aplicaciones hechas sobre plataformas UNIX. No obstante, POSIX se ha integrado en muchos sistemas no UNIX. El Subsistema OS/2. El Subsistema OS/2 igual que el subsistema POSIX proporciona un entorno para aplicaciones

UNIX, este subsistema da soporte a las aplicaciones OS/2. Proporciona la interfaz grfica y las llamadas al sistema; las llamadas son servidas con ayuda del Ejecutor de Windows. Un ncleo no es magia, pero es completamente esencial para cualquier equipo que ejecute correctamente. El kernel de Linux es diferente a OS X y Windows, ya que incluye los controladores nivel del ncleo y hace muchas cosas mas.

Das könnte Ihnen auch gefallen