lunes, 18 de abril de 2011

FUNCION DE LAS PARTICIONES: /(raiz) , /boot, /root y swap

LA PARTICION swap: 

son utilizadas para apoyar a la memoria virtual. En otras palabras, los datos son escritos a una partición swap cuando no hay suficiente memoria RAM para almacenar los datos que su sistema está procesando.
















PARTICION /boot:


Contiene el kernel del sistema operativo (el cual permite a su sistema arrancar Red Hat Enterprise Linux) junto con archivos utilizados durante el proceso de arranque. Para la mayoría de los usuarios, una partición de arranque de 250 MB es suficiente.


















PARTICION /raiz O /root: 

Aquí es donde se localiza "/" (el directorio raíz). En esta configuración, todos los archivos (excepto aquellos almacenados en /boot) están en la partición raíz.

3.0 GB le permite instalar una instalación mínima, mientras que una partición raíz de 5.0 GB le permite realizar una 

instalación completa, seleccionando todos los grupos de paquetes



La partición / (o raíz) es la cima de la estructura del directorio. El directorio /root (algunas veces pronunciado "slash-root") es el directorio principal de la cuenta del usuario-administrador del sistema.





















TIPOS DE ARCHIVOS ADMITIDOS:DOS, Windows 95, Windows 98, Windows XP, Windows 7, Linux, MacOS, OS/2, Sun Solaris e IBM AIX

la elección de un sistema de archivos depende en primer lugar del sistema operativo que esté usando. Generalmente, cuanto más reciente sea el sistema operativo, mayor será el número de archivos que admita. 

Por esto, se necesita contar con FAT16 en DOS y en las primeras versiones de Windows 95.

Sistema operativo
Tipos de sistemas de archivos admitidos
Dos
FAT16
Windows 95
FAT16
Windows 95 OSR2
FAT16, FAT32
Windows 98
FAT16, FAT32
Windows NT4
FAT, NTFS (versión 4)
Windows 2000/XP
FAT, FAT16, FAT32, NTFS (versiones 4 y 5)       
Linux
Ext2, Ext3, ReiserFS, Linux Swap (FAT16, FAT32, NTFS)
MacOS
HFS (Sistema de Archivos Jerárquico), MFS (Sistemas de Archivos Macintosh)
OS/2
HPFS (Sistema de Archivos de Alto Rendimiento)
SGI IRIX
XFS
FreeBSD, OpenBSD
UFS (Sistema de Archivos Unix)
Sun Solaris
UFS (Sistema de Archivos Unix)
IBM AIX
JFS (Sistema Diario de Archivos)



DIFERENCIA ENTRE GNU HURD Y GNU MACH

GNU Hurd. 

- Es un conjunto de programas servidores que simulan un núcleo Unix que establece la base del sistema operativo GNU. 
Hurd intenta superar los núcleos tipo Unix en cuanto a funcionalidad, seguridad y estabilidad, aun manteniéndose compatible con ellos. Esto se logra gracias a que Hurd implementa la especificación POSIX (entre otras), pero eliminando las restricciones arbitrarias a los usuarios.

GNU Hurd. 

- Es un conjunto de programas servidores que simulan un núcleo Unix que establece la base del sistema operativo GNU. 
Hurd intenta superar los núcleos tipo Unix en cuanto a funcionalidad, seguridad y estabilidad, aun manteniéndose compatible con ellos. Esto se logra gracias a que Hurd implementa la especificación POSIX (entre otras), pero eliminando las restricciones arbitrarias a los usuarios.

GNU Mach.
Es el micro núcleo oficial del Proyecto GNU. Como cualquier otro micro núcleo, su función principal es realizar labores mínimas de administración sobre el hardware para que el grueso del sistema operativo sea operado desde el espacio del usuario.
En la actualidad el GNU Mach sólo funciona en máquinas de arquitectura Intel de 32 bits  y su uso más popular es servir de soporte a Hurd, el proyecto que pretende reemplazar a los núcleo tipo Unix en el sistema operativo libre GNU.

PORQUÉ LINUX ES LLAMADO GNU/LINUX

Es uno de los terminos empleados para referise a la combinacion del nucleo o kernel libre similar a unix denominado linux que es usado con herramientas del sistema GNU.
fue un proyecto de larga trayectoria para desarrollar un sistema operativo libre, del cual el núcleo solo fue una pieza. Los defensores del término Linux argumentan que los usuarios y los desarrolladores que han escogido de forma notable mantener este nombre se debe a que es más corto, aunque reconocen que GNU es el más grande contribuyente.


DIFERENCIA ENTRE SOFTWARE LIBRE, SOFTWARE GRATUITO Y SOFTWARE DE DOMINIO PUBLICO

SOFTWARE GRATUITO 
se le denomina a aquel que podemos acceder gratuitamente, sin previo pago.

SOFFTWARE LIBRE

El software libre es software con autorización para que cualquiera pueda usarlo, copiarlo y distribuirlo, ya sea con o sin modificaciones, gratuitamente o mediante una retribución. En particular, esto significa que el código fuente debe estar disponible. «Si no es fuente, no es software». Ésta es una definición simplificada; ver también la definición completa.
Se denomina software libre o de código abierto (disponemos de su código fuente) al software que puede ser usado, copiado, estudiado, modificado y redistribuido libremente.

Si un programa es libre, puede ser potencialmente incluido en un sistema operativo libre tal como GNU o los sistemas GNU/Linux libres.

SOFTWARE DE DOMINIO PUBLICO

El software de dominio público es software que no está protegido por derechos de autor. Es un caso especial de software libre no protegido con copyleft, lo que significa que algunas copias o versiones modificadas pueden no ser completamente libres.
En algunos casos, un programa ejecutable puede ser de dominio público sin que su código fuente esté disponible. Este software no es software libre, porque para que lo sea es preciso que el código fuente sea accesible. Por su parte, la mayoría del software libre no es software de dominio público; está protegido por derechos de autor, y los poseedores de estos han dado permiso legal para que cualquiera lo emplee libremente usando una licencia de software libre.

Ejecutar el programa, para cualquier propósito
Estudiar el funcionamiento del programa, y adaptarlo a sus necesidades;
Redistribuir copias;
Mejorar el programa, y poner sus mejoras a disposición del público, para beneficio de toda la comunidad.” 

 el Software Libre puede ser gratuito o no, dependiendo de como y donde lo obtengamos. El término Gratis debe de ser un término que no interfiera con la libertad del Software Libre, es decir, no debe de ser un término obligatorio para su uso, sino ser una parte más de las verdaderas libertades que nos ofrece.

 la siguiente tabla nos muestra las diferencias de una forma mas resumida.

VULNERABILIDAD DEL NÚCLEO DE WINDOWS VISTA

Se acaba de descubrir una nueva vulnerabilidad de seguridad en Windows Vista que afecta a la capa de red. Este problema de seguridad enVista puede corromper la memoria mediante un buffer overflow provocando sendos pantallazos azules.

Además de lo comentado anteriormente, esta vulnerabilidad podría ser usada para ejecutar código (aunque parece improbable ya que se necesitarían permisos de administrador) y lo que puede ser más peligroso aún, activar este bug de forma remota.

La empresa phion AG, que se dedica a desarrollar soluciones de seguridad, ha descubierto una vulnerabilidad en el núcleo de Windows Vista que podría ser explotada para provocar un desbordamiento de búfer y ejecutar código arbitrario. Un atacante podría tomar el control total del equipo aprovechando el fallo.



NOMENCLATURA DEL KERNEL EN LINUX

Originalmente Linux era monolítico, es decir, como ya hemos comentado, todas las funcionalidades estaban incluidas en el código del núcleo y era necesario recompilarlo para soportar un nuevo dispositivo, etc. Sin embargo, esta idea no encaja con la enorme diversidad de componentes hardware que existen. Raro es que todo el mundo posea los mismos componentes en su ordenador y Linux, como buen sistema operativo Unix pretende obtener todo el partido de la máquina en la que se está ejecutando. Debido a todo esto, el diseño fue migrando paulatinamente a un modelo basado en módulos. Se procura así que el núcleo sea lo más ligero posible y cuando sea necesario añadir una nueva funcionalidad como soportar una nueva tarjeta de sonido, sólo haya que compilar el módulo y añadirlo al núcleo.

El kernel de Linux (Linux) está escrito en C y es código abierto licenciado bajo licencia GNU/GPL (excepto el planificador de recursos, el cual pertenece a Linus Torvalds y al resto de programadores que se han ocupado de dicha parte), con lo cual tenemos acceso al código para su estudio y/o modificación.



NUCLEO DE WINDOWS 7 ( MIN WIN)

MinWin básicamente es un kernel medianamente pequeño, con funciones de ejecución, de red y posiblemente un sistema de archivos, todas las funciones de MinWin dependen estrictamente de algún componente del mismo MinWin, sin embargo no contiene todas las funciones del kernel32.
Finalmente podemos ver un kernel pequeño (MinWin) sobre el cual se monta otro kernel más grande (kernel32), lo cual logra mantener compatibilidad hacia atrás con los drivers y aun así contar con este pequeño kernel. 


COMPARACION ENTRE NUCLEO DE LINUX Y WINDOWS


LINUX
WINDOWS
LLAMADA DEL SISTEMA
TIENE 320 LLAMADAS DEL SISTEMA
TIENE MAS DE 1000 LLAMADAS DEL SISTEMA
TIEMPO DE DESARROLLO
DURA 3 MESES
DURA 31 MESES
TAMAÑO RESULTANTE DE KERNEL
LINUX OCUPA 1.3 MB
WINDOWS OCUPA 4.6MB

En la tabla podras observar las diferencias que existen entre nucleo de linux y windows.


ARQUITECTURA DEL WINDOWS Y LINUX

ARQUITECTURA DE LINUX
Linux es un núcleo monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. A diferencia de los núcleos monolíticos tradicionales, los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones. También, a diferencia de los núcleos monolíticos tradicionales, los controladores pueden ser pre volcados (detenidos momentáneamente por actividades más importantes) bajo ciertas condiciones.

ARQUITECTURA WINDOWS

Un Sistema Operativo serio, capaz de competir en el mercado con otros como Unix que ya tienen una posición privilegiada, en cuanto a resultados, debe tener una serie de características que le permitan ganarse ese lugar. Algunas de estas son: 


•Que corra sobre múltiples arquitecturas de hardware y plataformas.

•Que sea compatible con aplicaciones hechas en plataformas anteriores, es decir que corrieran la mayoría de las aplicaciones existentes hechas sobre versiones anteriores a la actual, nos referimos en este caso particular a las de 16-bit de MS-DOS y Microsoft Windows 3.1.

•Reúna los requisitos gubernamentales para POSIX (Portable Operating System Interface for Unix).

•Reúna los requisitos de la industria y del gobierno para la seguridad del Sistema Operativo.

•Sea fácilmente adaptable al mercado global soportando código Unicode.

•Sea un sistema que corra y balancee los procesos de forma paralela en varios procesadores a la vez.

•Sea un Sistema Operativo de memoria virtual.

FUNCIONES DEL KERNEL/NUCLEO

El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.
Las funciones más importantes del mismo, aunque no las únicas, son:
  • Administración de la memoria para todos los programas y procesos en ejecución.
  • Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.
  • Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.

SISTEMA DE ARCHIVOS

(File System).Un sistema de archivos es un método para el almacenamiento y organización de archivos de computadora y los datos que estos contienen, para hacer más fácil la tarea encontrarlos y accederlos. Los sistemas de archivos son usados en dispositivos de almacenamiento como discos duros y CD-ROM e involucran el mantenimiento de la localización física de los archivos.

Más formalmente, un sistema de archivos es un conjunto de tipo de datos abstractos que son implementados para el almacenamiento, la organización jerárquica, la manipulación, el acceso, el direccionamiento y la recuperación de datos. Los sistemas de archivos comparten mucho en común con la tecnología de las bases de datos.

En general, los sistemas operativos tienen su propio sistema de archivos. En ellos, los sistemas de archivos pueden ser representados de forma textual (ej.: el shell de DOS) o gráficamente (ej.: Explorador de archivos en Windows) utilizando un gestor de archivos.

El software del sistema de archivos se encarga de organizar los archivos (que suelen estar segmentados físicamente en pequeños bloques de pocos bytes) y directorios, manteniendo un registro de qué bloques pertenecen a qué archivos, qué bloques no se han utilizado y las direcciones físicas de cada bloque.

Los sistemas de archivos pueden ser clasificados en tres categorías: sistemas de archivo de disco, sistemas de archivos de red y sistemas de archivos de propósito especial.                      Ejemplos de sistemas de archivos son: FAT, UMSDOS, NTFS, UDF, ext2, ext3, ext4, ReiserFS, XFS, etc.

CARGADORES DE ARRANQUE PARA GNU/LINUX

Existen 2 cargadores de arranque para GNU/LINUX
LILO  
(LInux LOader) es el sistema de arranque más extendido en el mundo Linux, aunque es un poco arcáico. Se instala en un sector de arranque - de una partición o de un disco flexible - o en el Master Boot Record (MBR) del disco duro y permite arrancar Linux y otros sistemas operativos instalados en el PC.

La configuración se encuentra generalmente en el archivo /etc/lilo.conf, aunque en realidad se almacena en el sector de arranque o en el MBR, por lo que cada vez que queramos aplicar los cambios hechos en el fichero será necesario ejecutar la orden /sbin/lilo para que reinstale el programa.

GRUB
(GRand Unified Bootloader) es un sistema de arranque más potente que el anterior. Una vez instalado en un sector de arranque (de una partición o un disco flexible) o en el Master Boot Record (MBR) del disco duro, ejecuta un interprete de comandos cada vez que iniciamos el sistema que nos permite arrancar prácticamente cualquier sistema operativo actual.
Este interprete se puede usar de modo interactivo o puede leer un fichero de configuración almacenado en el disco (que por defecto estará en /boot/grub/menu.lst). Una característica importante de GRUB es que es capaz de reconocer gran cantidad de sistemas de ficheros, de modo que no es necesario reinstalarlo cuando cambiamos ese fichero de configuración, que es simplemente un fichero de texto.

CONVENCIONES PARA NOMBRAR LOS DISOS

Nombramiento de discos:
  1. Los discos del IDE primario se denominan /dev/hda y /dev/hdb (en el orden master y slave)
  2. Los discos de la interfaz secundaria se se denominan /dev/hdc y /dev/hdd (en el orden master y slave)
  3. Si posee otras interfaces IDE los dispositivos se denominarán /dev/hde, /dev/hdf, etc.
  4. Los discos SCSI o SATA se denominan /dev/sda, /dev/sdb, etc.
  5. Los CD-ROM SCSI se denominan /dev/scd0, /dev/scd1, etc.
Nombramiento de particiones:

*Las particiones se nombran en base al disco en el cual se encuentran.

·         * Las particiones primarias o extendidas se denominan desde /dev/hdX1 a  /dev/hdX4 o /dev/sdX1 a  /dev/sdX4 o

·         *Las particiones lógicas, si existen, se denominan /dev/hdX5, /dev/hdX6, etc. o  /dev/sdX5, /dev/sdX6, etc.

EL KERNEL

El núcleo (también conocido en español con el anglicismo kernel, de raíces germánicas como kern) es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, el núcleo también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso para el programador.

TIPOS DE NUCLEO

Hay 4 grandes tipos de núcleos:

* Los micronúcleos (en inglés microkernel): proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.
* Los núcleos monolíticos: facilitan abstracciones del hardware subyacente realmente potentes y variadas.
* Los núcleos híbridos (micronúcleos modificados): son muy parecidos a los micronúcleos puros, excepto porque incluyen código adicional en el espacio de núcleo para que se ejecute más rápidamente.
* Los exonúcleos: no facilitan ninguna abstracción, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.

Micronúcleos









Esquema del funcionamiento de un micronúcleo.

El enfoque micronúcleo consiste en definir una abstracción muy simple sobre el hardware, con un conjunto de primitivas o llamadas al sistema que implementan servicios del sistema operativo mínimos, como la gestión de hilos, el espacio de direccionamiento y la comunicación entre procesos.
El objetivo principal es la separación de la implementación de los servicios básicos y de la política de funcionamiento del sistema. Por ejemplo, el proceso de bloqueo de E/S se puede implementar con un servidor en espacio de usuario ejecutándose encima del micronúcleo. Estos servidores de usuario, utilizados para gestionar las partes de alto nivel del sistema, son muy modulares y simplifican la estructura y diseño del núcleo. Si falla uno de estos servidores, no se colgará el sistema entero, y se podrá reiniciar este módulo independientemente del resto. 

 Núcleos monolíticos en contraposición a micronúcleo

Frecuentemente se prefieren los núcleos monolíticos frente a los micronúcleos debido al menor nivel de complejidad que comporta el tratar con todo el código de control del sistema en un solo espacio de direccionamiento. Por ejemplo, XNU, el núcleo de Mac OS X, está basado en el núcleo Mach 3.0 y en FreeBSD, en el mismo espacio de direccionamiento para disminuir la latencia que comporta el diseño de micronúcleo convencional.

Los núcleos monolíticos suelen ser más fáciles de diseñar correctamente, y por lo tanto pueden crecer más rápidamente que un sistema basado en micronúcleo, pero hay casos de éxito en ambos bandos. Los micronúcleos suelen usarse en robótica embebida o computadoras médicas, ya que la mayoría de los componentes del sistema operativo residen en su propio espacio de memoria privado y protegido. Esto no sería posible con los núcleos monolíticos, ni siquiera con los modernos que permiten cargar módulos del núcleo.

Núcleos híbridos (micronúcleos modificados)

Los núcleos híbridos fundamentalmente son micronúcleos que tienen algo de código «no esencial» en espacio de núcleo para que éste se ejecute más rápido de lo que lo haría si estuviera en espacio de usuario. Éste fue un compromiso que muchos desarrolladores de los primeros sistemas operativos con arquitectura basada en micronúcleo adoptaron antes que se demostrara que los micronúcleos pueden tener muy buen rendimiento. La mayoría de sistemas operativos modernos pertenecen a esta categoría, siendo el más popular Microsoft Windows. XNU, el núcleo de Mac OS X, también es un micronúcleo modificado, debido a la inclusión de código del núcleo de FreeBSD en el núcleo basado en Mach. DragonFlyBSD es el primer sistema BSD que adopta una arquitectura de núcleo híbrido sin basarse en Mach.

Exonúcleos








Esquema básico de la interacción entre un Exonúcleo (Exokernel) con el Software a través de bibliotecas.

Los exonúcleos, también conocidos como sistemas operativos verticalmente estructurados, representan una aproximación radicalmente nueva al diseño de sistemas operativos.
La finalidad de un exonúcleo es permitir a una aplicación que solicite una región específica de la memoria, un bloque de disco concreto, etc., y simplemente asegurarse que los recursos pedidos están disponibles, y que el programa tiene derecho a acceder a ellos.

NUCLEO Y FUNCION

En informática, un núcleo o kernel  es un software que actúa de sistema operativo.[Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá hacer uso de un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.

En informática, el núcleo es el programa informático que se asegura de:
  • La comunicación entre los programas que solicitan recursos y el hardware.
  • Gestión de los distintos programas informáticos (tareas) de una máquina.
  • Gestión del hardware (memoria, procesador, periférico, forma de almacenamiento, etc.)
La mayoría de las interfaces de usuario se construyen en torno al concepto de núcleo. La existencia de un núcleo, es decir, de un único programa responsable de la comunicación entre el hardware y el programa informático, resulta de compromisos complejos referentes a cuestiones de resultados, seguridad y arquitectura de los procesadores. El núcleo tiene grandes poderes sobre la utilización de los recursos materiales (hardware), en particular, de la memoria.

 su funcion es:

*Se encarga de decidir qué programa puede hacer uso de un dispositivo y durante cuánto tiempo
*garantiza la carga y la ejecución de los procesos, las entradas/salidas y propone una interfaz entre el espacio núcleo y los programas del espacio del usuario
*asigna recursos para el proceso que lo necesite
*Facilita el acceso al hardware  
*Administración de la memoria para todos los programas y procesos en ejecución 
*Administración del tiempo de procesador que los programas y procesos en ejecución utilizan
      *El núcleo reside siempre en la memoria principal