Mostrando entradas con la etiqueta gnu/linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta gnu/linux. Mostrar todas las entradas

miércoles, 30 de noviembre de 2011

Inicio/arranque del sistema


El arranque de un sistema GNU/Linux consta de las siguientes fases:

  • Ejecución del gestor de arranque (ej.: LILO o GRUB).
  • Carga y ejecución del kernel.
  • Ejecución de init (proceso número 1)* Ejecución de scripts de iniciación genéricos en /etc/rcS.d.
  • Entrada en el runlevel por defecto: ejecución de scripts del runlevel en /etc/rcX.d, donde X el el número del runlevel.

A grandes rasgos el proceso ocurre así:

Al conectar o reiniciar el ordenador, la BIOS busca en su configuración el dispositivo de arranque por defecto, el cual suele ser un disco duro, indicado generalmente en la configuración de la BIOS por C. Entonces carga en memoria el primer sector del dispositivo de arranque y le transfiere el control. Cuando se trata de un disco duro, este primer sector es el Master Boot Record (MBR) y contiene, además del código cargado por la BIOS, la tabla de particiones del disco. El código en el MBR, generalmente, lee en la tabla de particiones cuál es la partición activa y carga en memoria el primer sector de la misma, transfiriéndole el control.

En nuestro caso, este sector estará ocupado por un gestor de arranque que nos permitirá arrancar GNU/Linux u otro sistema operativo. Opcionalmente, puede instalarse el gestor en el MBR, tomando antes el control. Una vez cargado el gestor de arranque, éste se ejecuta, busca el kernel de Linux en una posición conocida del disco, carga el kernel en memoria y le cede el control. El kernel se almacena comprimido en disco, por lo que lo primero que hace el código del kernel que se ejecuta inicialmente es descomprimir el propio kernel y situarlo en memoria. Entonces se ejecuta realmente el kernel y empieza una lista de comprobaciones y activación de módulos internos del mismo.
Una vez funcionando, el kernel monta el disco principal donde se almacena el sistema operativo (root filesystem y ejecuta el primer proceso: init. La misión de init es ejecutar el resto de procesos del sistema: comprobación de discos, detección/configuración de hardware adicional, apertura de terminales, servidores, etc.
Una vez que el kernel se ha cargado en memoria, ejecuta el programa init, que se convierte en el proceso número 1 y se encarga de ejecutar el resto de programas que hacen que el sistema funcione. La operación de init se configura en el fichero /etc/inittab. Empezando en este fichero se puede seguir paso a paso el proceso de arranque (y parada) del sistema. Lo importante a saber aquí es que init no hace demasiado por si mismo, sino que se limita a ejecutar una serie de guiones o scripts que activan ordenadamente los diferentes servicios que hacen funcionar el sistema.
En primer lugar se ejecutan por orden alfabético todos los scripts que se encuentren bajo el directorio /etc/rcS.d que comiencen por ’S’ con “start” como argumento. Por convenio estos scripts se nombran comenzando por un número de dos cifras para establecer el orden adecuado. Cada script tiene una función particular, por ejemplo:
S10checkroot.sh comprueba el sistema de ficheros.
S20adjtimex ajusta el reloj del sistema.
S40networking activa los interfaces de red.
En realidad, y por convenio, estos scripts no se sitúan directamente en /etc/rcS.d, sino que se guardan en el directorio /etc/init.d y desde ahí se hacen enlaces simbólicos a /etc/rcS.d. De esta forma es más fácil añadir, eliminar y ordenar los componentes. Las tareas realizadas por los scripts en /etc/rcS.d son las básicas para arrancar el sistema. Luego se ejecutan otra serie de scripts correspondientes a un runlevel o nivel de ejecución.
Los runlevels (niveles de ejecución) son un mecanismo para permitir que el ordenador trabaje con diferentes configuraciones de arranque (diferentes servicios, etc.).
Los runlevels se numeran del 0 al 6. El 0 se ejecuta para parar el sistema (halt), el 6 para reiniciar (reboot) y el 1 para arrancar en modo single user, que viene a ser una cofiguración mínima para realizar tareas de administración.
El resto de los runlevels son para funcionamiento normal. El runlevel por defecto es el 2 (se configura en /etc/inittab), empleando los otros sólo en situaciones especiales. En Debian, los runlevels del 2 al 5 se configuran inicialmente de forma idéntica.
Así, el proceso de arranque suele continuar ejecutando los scripts del runlevel correspondiente situados en /etc/rcX.d, donde X es el número del runlevel. La forma de ejecutar estos scripts es análoga al caso anterior, salvo que ahora se ejecutan primero los scripts que comiencen con ’K’ con argumento “stop” y luego los que comienzan con ’S’ con argumento “start”.
La idea es que cada script gestione una tarea o servicio. Este servicion se inicia cuando el script se ejecuta con el argumento “start” y se detiene cuando se usa el argumento “stop”. De esta forma en cada runlevel puden detenerse los servicios que no se necesiten y activarse aquellos que interese. Este sistema también facilita el arranque y parada de servicios, ejecutando estos scripts manualmente con el argumento apropiado. En cualquier momento, el administrador puede hacer que el sistema cambie a otro runlevel ejecutando el comando telinit con un argumento numérico indicando el nuevo runlevel. Por ejemplo:
# telinit 3
En general, no hay que preocuparse por la configuración del arranque, ya que el sistema de instalación se ocupa automáticamente de actualizar la configuración en función de los paquetes instalados.

Tras todos estos pasos, el sistema muestra la pagina de bienvenida. Donde se debe escribir el nombre de usuario y la clave de acceso y si existen instalados mas de una interfaz, se puede elegir en cual trabajar.

Proyecto UBUNTU

Acerca del nombre
Ubuntu es una ideología ética propia de Sudáfrica, que se centra en la lealtad a las personas y en las relaciones entre ellas. La palabra procede de los idiomas zulú y xhosa. Ubuntu se percibe como un concepto tradicional africano, siendo considerado uno de los principios fundadores de la nueva república de Sudáfrica, y está conectado a la idea de un Renacimiento Africano.
Una traducción a grandes rasgos del principio de Ubuntu sería «humanidad hacia los demás». Otra traducción podría ser: «la creencia en un vínculo universal de convivencia que conecta a toda la humanidad».
«Una persona con ubuntu está abierta y disponible para los demás, se afirma en los demás, no se siente amenazada por la habilidad y bondad de los demás, tiene una seguridad en sí mismo que proviene del hecho de saber que él o ella forman parte de un gran todo y se reduce cuando los demás son humillados o disminuidos, cuando los demás son torturados u oprimidos.» Arzobispo Desmond Tutu
Como una plataforma basada en software libre, el sistema operativo Ubuntu lleva el espíritu de ubuntu al mundo del software.

Pilares de Ubuntu

  • Ubuntu siempre será gratuito y no tiene costes adicionales en la «enterprise edition»; hacemos accesible nuestro mejor trabajo a cualquiera en los mismos términos de gratuidad.
  • Ubuntu usa lo mejor en infraestructura de traducciones y accesibilidad que la comunidad del software libre es capaz de ofrecer, para hacer que Ubuntu sea utilizable por el mayor número de personas posible.
  • Ubuntu se publica se manera regular y predecible; se publica una nueva versión cada seis meses. Puede usar la versión estable actual o ayudar a mejorar la versión actualmente en desarrollo. Cada versión está soportada al menos durante 18 meses.
  • Ubuntu está totalmente comprometido con los principios del desarrollo de software de código abierto; animamos a la gente a utilizar software de código abierto, a mejorarlo y a compartirlo.
Hay muchos sistemas operativos distintos basados en Linux: Debian, SuSE, Gentoo, RedHat y Mandriva son algunos ejemplos. Ubuntu es otro competidor más en lo que ya es un mundo altamente competitivo. Así que ¿qué hace a Ubuntu diferente?
Basada en Debian, una de las distribuciones más aclamadas, tecnológicamente avanzadas, y bien soportada, Ubuntu intenta crear una distribución que proporcione un sistema al día y coherente con sistemas Linux de escritorio y servidor. Ubuntu incluye un cuidadoso número de paquetes seleccionado de la distribución Debian y manteniendo su poderoso sistema de administración de paquetes que permite una fácil instalación y eliminación limpia de programas. A diferencia de la mayoría de las distribuciones que vienen con una gran cantidad de programas que pueden o no ser útiles, la lista de paquetes de Ubuntu se reduce a un número importante de aplicaciones de alta calidad.
Al centrarse en la calidad, Ubuntu produce un entorno robusto y lleno de características que es adecuado para su uso en el hogar y en entornos comerciales. El proyecto se toma el tiempo necesario para centrarse en los detalles más pequeños y es capaz de liberar una versión que ofrece lo último y lo mejor de hoy en día el software, una vez cada seis meses. Ubuntu está disponible para 32-bit y 64-bit y se ejecuta en la mayoría de los equipos modernos. También está disponible para las arquitecturas Sun UltraSPARC y Amazon EC2.

Lanzamiento y Versiones

Las versiones estables se liberan cada 6 meses y Canonical proporciona soporte técnico y actualizaciones de la seguridad para la mayoría de las versiones de Ubuntu durante 18 meses, excepto para las versiones LTS (Long term support) que ofrece 3 años para la versión escritorio y 5 años para la versión servidor, a partir de la fecha del lanzamiento.

Soporte técnico extendido (LTS)

Cada 4 versiones de Ubuntu se libera una versión con soporte técnico extendido a la que se añade la terminación LTS.
Esto significa que los lanzamientos LTS contarán con actualizaciones de seguridad de paquetes de software durante tres años en entorno de escritorio y cinco años en servidor por parte de Canonical, a diferencia de los otros lanzamientos de Ubuntu que sólo cuentan con 18 meses de soporte.

El software incluido

Posee una gran colección de aplicaciones para la configuración de todo el sistema, valiéndose principalmente de interfaces gráficas. El entorno de escritorio predeterminado de Ubuntu es GNOME y se sincroniza con sus liberaciones. Existen otras dos versiones oficiales de la distribución, una con el entorno KDE, llamada Kubuntu, y otra con el entorno Xfce, llamada Xubuntu; existen otros escritorios disponibles, que pueden ser instalados en cualquier sistema Ubuntu independientemente del entorno de escritorio instalado por defecto.
Aplicaciones de Ubuntu: Ubuntu es conocido por su facilidad de uso y las aplicaciones orientadas al usuario final. Las principales aplicaciones que trae Ubuntu son: navegador web Mozilla Firefox, cliente de mensajería instantánea Empathy, cliente de redes sociales Gwibber, cliente de correo Thunderbird, reproductor multimedia Totem, reproductor de música Banshee, gestor y editor de fotos Shotwell, cliente de torrents Transmission, grabador de discos Brasero, suite ofimática LibreOffice, y el instalador central para buscar e instalar aplicaciones Centro de software de Ubuntu.
Seguridad y accesibilidad: El sistema incluye funciones avanzadas de seguridad y entre sus políticas se encuentra el no activar, de forma predeterminada, procesos latentes al momento de instalarse. Por eso mismo, no hay un cortafuegos predeterminado, ya que no existen servicios que puedan atentar a la seguridad del sistema. Para labores o tareas administrativas en la línea de comandos incluye una herramienta llamada sudo (de las siglas en inglés de SuperUser do), con la que se evita el uso del usuario administrador. Posee accesibilidad e internacionalización, de modo que el sistema esté disponible para tanta gente como sea posible.
No sólo se relaciona con Debian por el uso del mismo formato de paquetes .deb. También tiene uniones muy fuertes con esa comunidad, contribuyendo con cualquier cambio directa e inmediatamente, y no sólo anunciándolos. Esto sucede en los tiempos de lanzamiento. Muchos de los desarrolladores de Ubuntu son también responsables de los paquetes importantes dentro de la distribución Debian.
Para centrarse en solucionar rápidamente los bugs, conflictos de paquetes, etc. se decidió eliminar ciertos paquetes del componente main, ya que no son populares o simplemente se escogieron de forma arbitraria por gusto o sus bases de apoyo al software libre. Por tales motivos inicialmente KDE no se encontraba con más soporte de lo que entregaban los mantenedores de Debian en sus repositorios, razón por la que se sumó la comunidad de KDE creando la distribución GNU/Linux Kubuntu.

Modos de instalar.

  • Wubi: un instalador libre y oficial de Ubuntu para sistemas operativos Windows cuyo objetivo es el de permitir que usuarios de ese sistema, no acostumbrados a Linux, puedan probar Ubuntu sin el riesgo de perder información durante un formateo o la modificación de particiones. El programa viene de serie en el LiveCD de Ubuntu, aunque es posible descargarlo de la página oficial.
  • LiveUSB: una herramienta que viene de serie y que permite la creación de un LiveUSB de la distribución, de modo que se pueda cargar el sistema desde una memoria USB permitiendo guardar datos y configuraciones en el mismo, pero con la limitación de que sólo funciona en una computadora cuya placa base soporte el arranque desde un medio USB.95
  • LiveCD/DVD personalizado: existen herramientas como Reconstructor, UCK o remastersys que permiten a cualquiera crear fácilmente un LiveCD/DVD personalizado de una instalación existente de Ubuntu.
  • CD de instalación mediante red: se trata de una imagen ISO de apenas unos 10 MB que contiene los paquetes necesarios para descargar el sistema base desde los repositorios oficiales de Ubuntu y posteriormente elegir el escritorio deseado.96

GNU/Linux vs Windows


Ventajas tiene GNU/Linux sobre Windows


  • Es más seguro: Ya que la gran mayoría de los ataques de hackers son dirigidos a servidores Windows al igual que los virus los cuales se enfocan principalmente a servidores con éste sistema operativo. La plataforma Linux es más robusta lo cual hace más difícil que algún intruso pueda violar el sistema de seguridad de Linux. 
  • Es más rápido:  Al tener una plataforma más estable, ésto favorece el desempeño de aplicaciones de todo tipo tales como: bases de datos, aplicaciones XML, multimedia, etc. La eficiencia de su código fuente hace que la velocidad de las aplicaciones Linux sean superiores a las que corren sobre Windows lo cual se traduce en velocidad de su página.
  • Es más económico: Ya que requieren menor mantenimiento. En servidores windows es más costoso debido a que es necesaria una frecuente atención y monitoreo contra ataques de virus, hackers y errores de código, instalación y actualización de parches y service packs. El software Linux así como también un sin número de aplicaciones son de código abierto (gratuitos).
  • No requieren supervisión tan estrecha ni pagos de pólizas de mantenimiento necesarias para obtener los Service Packs.



¿Qué ventajas tiene Windows sobre GNU/Linux?


  • Es más fácil: Al ser de mayor facilidad de uso Windows en este momento continúa siendo el sistema operativo más comercial lo cual se refleja en la disponibilidad de aplicaciones, facilidad de mantenimiento así como soporte en el desarrollo de nuevas aplicaciones, puntos que pueden ser cruciales en la elección de servidores que corren aplicaciones web.
  • Aplicaciones desarrolladas en menor tiempo : Fruto de la inversión realizada por Microsoft y aunado a una comunidad de programadores cada vez más grande se ha logrado facilitar el desarrollo de aplicaciones y sistemas que corran sobre servidores Windows lo cual se ve reflejado en tiempos de desarrollo menores.
  • La curva de aprendizaje en el sistema Windows es mucho menor.

Ventajas y desventajas del Software Libre

Ventajas
  • Bajo costo de compra: Se trata de un software económico ya que permite un ahorro de grandes cantidades en la adquisición de las licencias. 
  • Innovación tecnológica: esto se debe a que cada usuario puede aportar sus conocimientos y su experiencia y así decidir de manera conjunta hacia donde se debe dirigir la evolución y el desarrollo del software. Este es un gran avance en la tecnología mundial. 
  • Independencia del proveedor: al disponer del código fuente, se garantiza una independencia del proveedor que hace que cada empresa o particular pueda seguir contribuyendo al desarrollo y los servicios del software. 
  • Control  público: esto hace que la corrección de errores y la mejora del producto se lleven a cabo de manera rápida y eficaz por cada uno de los usuarios que lleguen a utilizar el producto. 
  • Maleabilidad del software : esta cualidad resulta de gran utilidad para empresas e industrias específicas que necesitan un software personalizado para realizar un trabajo específico y con el software libre se puede realizar y con costes mucho más razonables. 
  • Diversidad de Idioma: aunque el software se cree y salga al mercado en una sola lengua, el hecho de ser software libre facilita en gran medida su traducción y localización para que usuarios de diferentes partes del mundo puedan aprovechar estos beneficios.
Desventajas
  • La curva de aprendizaje es mayor.
  • El software libre no tiene garantía proveniente del autor.
  • Se necesita dedicar recursos a la reparación de erratas.
  • No existiría una compañía única que respaldará toda la tecnología.
  • Las interfaces amigables con el usuario (GUI) y la multimedia apenas se están estabilizando.
  • El usuario debe tener nociones de programación, ya que la administración del sistema recae mucho en la automatización de tareas y esto se logra utilizando, en muchas ocasiones, lenguajes de guiones (perl, python, shell, etc).
  • La diversidad de distribuciones, métodos de empaquetamiento, licencias de uso, herramientas con un mismo fin, etc., pueden crear confusión en cierto número de personas.

Origenes de GNU/linux.


Un sistema operativo es software que se ejecuta en el hardware de una computadora u otro dispositivo electronico (celular, tablet, etc.) para administrar los recursos de hardware y software del sistema. El sistema operativo debe ofrecer al usuario, una maquina  virtual simple con la sea sencillo interactuar. Entre estos servicios se cuenta la ejecucion de programas (aplicaciones), las operaciones de entrada / salida, la comunicación entre procesos, la deteccion de errores y la manipulacion de archivos.
GNU/ Linux es un sistema operativo completamente gratuito. Es la creación de Linus B. Torvalds. A comienzos de la década de 1990, Torvalds quiso crear su propio sistema operativo para su proyecto de graduación. Linus Torvalds intentó desarrollar una versión de UNIX que pudiera utilizarse en una arquitectura de tipo 80386. El primer clon de UNIX que funcionó en un PC fue Minix, escrito por Andrew Tanenbaum. Éste era un sistema operativo mínimo que se podía usar en un PC. Después, Linus Torvalds decidió ampliar las posibilidades de Minix al desarrollar lo que se convertiría en Linux. Entusiasmados con esta iniciativa, diversas personas contribuyeron para ayudar a Linus Torvalds a hacer de su sistema una realidad. En 1991, la primera versión del sistema salió al mercado. En marzo de 1992 se distribuyó la primera versión, la cual no tenía prácticamente ningún error.
Al aumentar la cantidad de desarrolladores que trabajaban en el sistema, éste integró rápidamente nuevos desarrollos gratuitos de herramientas disponibles en sistemas UNIX comerciales. Después, comenzaron a aparecer nuevas herramientas para Linux con una velocidad increíble.

La originalidad de este sistema radica en el hecho de que Linux no se desarrolló con fines comerciales. De hecho, no se copió ni una sola línea de código de los sistemas UNIX originales (en realidad, Linux se inspira en diferentes versiones comerciales de UNIX: BSD UNIX, System V). Por lo tanto, una vez creado, todos pueden usar Linux gratuitamente e incluso pueden mejorarlo. Si bien en un principio Linux se diseñó para ejecutarse en una plataforma de PC, se ha expandido (es decir, adaptado) para otras plataformas como Macintosh, estaciones SPARC, DEC Alpha e incluso plataformas como las que utilizan los asistentes personales (PDA), ¡hasta consolas de videojuegos!