Download Distribuciones Linux (Ubuntu, Red Hat, Fedora) y

Document related concepts

Chrome OS wikipedia , lookup

Chromium OS wikipedia , lookup

Chromebook wikipedia , lookup

Google Chrome wikipedia , lookup

Chromium (navegador) wikipedia , lookup

Transcript
COMPILACIÓN BIBLIOGRÁFICA
Sistemas Operativos Linux y las diferentes distribuciones
(Detallar Red Hat, Fedora, Ubuntu, etc) y Chrome OS.
Presentado Por:
Daniel Montes Agudelo – Cód.: 0911519
John Elkin Rendón Romero – Cód.: 0911037
Juan Pablo Osorio Arango – Cód.: 0911030
Presentado a:
Carlos Hernán Gómez Gómez
Sistemas Operativos
UNIVERSIDAD NACIONAL DE COLOMBIA
SEDE MANIZALES
ADMINISTRACIÓN DE SISTEMAS INFORMÁTICOS
JUNIO 2, 2014
TABLA DE CONTENIDO
Página
INTRODUCCIÓN
HISTORIA DE LINUX
EMPRESAS QUE PATROCINAN EL USO DE LINUX
CARACTERÍSTICAS DE LINUX
Multitarea
Multiusuario
Multiplataforma
Multiprocesador
Carga de ejecutables por demanda
Política de copia en escritura para la compartición de páginas entre
ejecutables
Memoria virtual usando paginación (sin intercambio de procesos
completos) a disco
Control de tareas POSIX.
Consolas virtuales múltiples
HISTORIA DE GOOGLE
Lanzamiento del Código Abierto
Chrome Notebook (Cr-48)
Chromebook
CARACTERÍSTICAS FUNDAMENTALES DE CHROME OS
Interfaz de usuario
Velocidad
Sincronización
Siempre conectado
Aplicaciones Web
Seguridad
Características Avanzadas Chrome OS
Multitáctil
Reproductor multimedia
Impresión
PRESENTACIÓN GOOGLE CHROME OS
ESTRUCTURA Y COMPONENTES DEL SISTEMA
Firmware
El sistema en sí y los servicios
El navegador y el administrador de ventanas
PLATAFORMAS SOBRE LAS QUE TRABAJA CHROME OS
INSTALACIÓN DE CHROME OS
SISTEMA DE ARCHIVOS EN CHROME OS
Sistema de archivos raíz
Diagrama del proceso de booteo
6
7
8
9
9
9
9
9
9
10
10
11
12
14
14
14
14
15
15
15
16
16
17
17
17
18
19
19
20
21
21
21
25
25
25
pág. 2
DESCRIPCIÓN DE LOS DISPOSITIVOS DE ENTRADA Y SALIDA QUE
SOPORTA (CHROME OS)
GESTIÓN DE COMUNICACIONES Y SEGURIDAD (CHROME OS)
Google Cloud Printing
Chromoting
ANÁLISIS COMPARATIVO ENTRE PLATAFORMA TRADICIONAL Y EL
SMARTPHONE (CHROME OS)
Vs. Android
Vs. Windows
Vs. Linux
ESTADÍSTICAS DE UTILIZACIÓN A NIVEL MUNDIAL DE CHROME OS
SOPORTE PARA LA NUBE E INTEGRACIÓN A ELLA (CLOUD
COMPUTING) DE GOOGLE CHROME OS
GESTIÓN DE PROCESOS Y PROCESADOR LINUX
Estados de un Proceso
GESTIÓN DE MEMORIA LINUX
Direccionamiento Largo de espacios en Memoria
Protección
Mapeo en Memoria
Alojamiento Equitativo de Memoria Física
Memoria Virtual Compartida
Un modelo Abstracto de Memoria Virtual
El concepto de Page HIT y FAULT
Traducción de una página virtual a una página física
SOPORTE A TIEMPO REAL EN LINUX
UBUNTU
ESTRUCTURA Y COMPONENTES DEL SISTEMA – UBUNTU
main
restricted
universe
multiverse
PLATAFORMAS SOBRE LAS QUE TRABAJA UBUNTU
PROCESO DE INSTALACIÓN DE UBUNTU
Requisitos
Imágenes Oficiales
Otras instalaciones
Wubi
LiveUSB
LiveDVD personalizado
CD de instalación mediante red
GESTIÓN DE PROCESOS Y DEL PROCESADOR - UBUNTU
Procesos y Subprocesos
Procesadores
26
28
28
30
31
32
32
33
34
35
36
38
38
38
38
39
39
39
41
42
43
46
47
47
47
47
47
47
48
48
49
49
49
49
50
50
51
pág. 3
Programación
Sincronización Kernel
Multiprocessing (Multiprocesamiento)
GESTIÓN DE MEMORIA - UBUNTU
GESTIÓN DE MEMORIA AUXILIAR (SECUNDARIA Y TERCIARÍA) Y
SISTEMA DE ARCHIVOS - UBUNTU
Sistema de Archivos
Estructura de Directorios
GESTIÓN DE ENTRADA Y SALIDA
DESCRIPCIÓN DE LOS DISPOSITIVOS DE ENTRADA Y SALIDA QUE
SOPORTA (LINUX)
GESTIÓN DE COMUNICACIONES Y SEGURIDAD - UBUNTU
Seguridad
Usuarios y claves
Permisos y grupos
Repositorios seguros
El Cortafuegos
SeLinux / AppArmor
SOPORTE A TIEMPO REAL - UBUNTU
ESTADÍSTICAS DE UTILIZACIÓN MUNDIAL - UBUNTU.
SOPORTE PARA LA NUBE E INTEGRACIÓN A ELLA (CLOUD
COMPUTING) - UBUNTU
ANÁLISIS COMPARATIVO ENTRE PLATAFORMA TRADICIONAL Y
EL SMARTPHONE (UBUNTU).
RED HAT
ESTRUCTURA Y COMPONENTES DEL SISTEMA – RET HAT
Estructura de Directorios FHS en Red HAT Enterprise 6
SISTEMA DE ARCHIVOS – RET HAT
PROCESO DE INSTALACIÓN
INSTALACIÓN BASE
INSTALACIÓN DEL SERVIDOR
GESTIÓN DE PROCESOS Y DEL PROCESADOR – RET HAT
GESTIÓN DE MEMORIA – RET HAT
GESTIÓN DE ENTRADA Y SALIDA – RET HAT
SOPORTE A TIEMPO REAL
SCHED_FIFO
SCHED_RR
SOPORTE PARA LA NUBE E INTEGRACIÓN A ELLA (CLOUD
COMPUTING) – RET HAT
FEDORA
¿QUÉ HACE A FEDORA DIFERENTE?
ESTRUCTURA Y COMPONENTES DEL SISTEMA - FEDORA
PROCESO DE INSTALACIÓN - FEDORA
52
52
53
53
54
54
55
57
59
60
62
62
63
64
64
64
65
65
66
67
68
69
69
71
72
72
72
73
74
76
77
77
77
78
79
79
80
80
pág. 4
GESTIÓN DE MEMORIA - FEDORA
Direccionamiento de Memoria
GESTIÓN DE PROCESOS - FEDORA
Paginación
Sistemas de archivos virtuales /proc y /sys
GESTIÓN Y SISTEMA DE ARCHIVOS - FEDORA
GESTIÓN DE COMUNICACIONES Y SEGURIDAD - FEDORA
SOPORTE PARA LA NUBE E INTEGRACIÓN A ELLA (CLOUD
COMPUTING) - FEDORA
ESTADÍSTICAS - FEDORA
RESUMEN
CONCLUSIONES Y OBSERVACIONES
BIBLIOGRAFÍA
81
82
84
84
84
85
86
87
87
89
98
100
pág. 5
INTRODUCCIÓN
En la actualidad existen múltiples y diversos sistemas operativos destinados para
diferentes usos y plataformas, los hay para equipos personales usados en el hogar,
de tipo empresarial y también para dispositivos móviles como los smartphones. El
objetivo de este trabajo es mostrar las características fundamentales de diferentes
sistemas operativos construidos en dos diferentes plataformas: la tradicional y la
plataforma móvil. Para este trabajo se hará un análisis al sistema operativo más
representativo del campo del software libre, Linux.
En dicho análisis se tocarán temas de la arquitectura de este sistema tales como
componentes, estructura, administración de procesos, de memoria, de memoria
auxiliar y de los dispositivos de entrada y salida soportados por este sistema.
También se hablará de soporte a tiempo real y de computación en la nube.
El otro análisis que se mostrará en este documento es sobre un sistema de
plataforma móvil llamado Google Chrome OS; el análisis tendrá los mismos puntos
que tiene el análisis del sistema Linux.
Por último se citarán algunas conclusiones de acuerdo al análisis hecho a los dos
sistemas operativos que se trabajarán en el presente trabajo.
pág. 6
HISTORIA DE LINUX
Linux, es un sistema operativo. Es una implementación de libre distribución UNIX
para computadoras personales (PC), servidores y estaciones de trabajo. Es uno de
los paradigmas más prominentes del software libre y del desarrollo del código
abierto, cuyo código fuente está disponible públicamente, para que cualquier
persona puede libremente usarlo, estudiarlo, redistribuirlo y, con los conocimientos
informáticos adecuados, modificarlo.
Linux es usado como sistema operativo en una amplia variedad de plataformas de
hardware y computadores, incluyendo los computadores de escritorio (PCs x86 y
x86-64, y Macintosh y PowerPC), servidores, supercomputadores, mainframes, y
dispositivos empotrados así como teléfonos celulares.
En 1983 Richard Stallman fundó el proyecto GNU, con el fin de crear sistemas
operativos parecidos a UNIX y compatibles con POSIX. Dos años más tarde creó la
"Fundación del Software Libre" y escribió la GNU General Public License para
posibilitar el software libre en el sistema de copyright. El software GNU se extendía
muy de prisa y dentro de poco una multitud de programas fueron escritos, de
manera que ya a principios de 1990 había bastantes software GNU como para hacer
un sistema operativo propio, pero faltaba el Kernel.
A principios de los años 1990, no había un sistema operativo libre completo. A pesar
de que el proyecto GNU era desarrollado constantemente, no disponía sin embargo
de ningún buen Kernel basado en UNIX, por el contrario era un número de proyectos
de software libres que podían ser traducidos en las variantes UNIX mediante el
compilador de GNU.
En 1988 Linus Torvalds entró a la Universidad. Ese mismo año fue cuando el
sistema operativo didáctico, basado en UNIX y creado por Andy Tannenbaum,
empezó a cobrar importancia. Dicho sistema era el Minix. Linus entró a formar parte
de la comunidad de usuarios Minix. Andy Tannenbaum cometió un error en su
sistema operativo. Era demasiado limitado, tanto técnicamente como políticamente,
en ningún momento tuvo en cuenta la posibilidad de incluir Minix al proyecto GNU.
La creación de Andy Tannenbaum estaba pensando para ser distribuida. La historia
de Linux está fuertemente vinculada a la del proyecto GNU.
pág. 7
Hacia 1991, cuando la primera versión del núcleo Linux fue liberada, el proyecto
GNU había producido varios de los componentes del sistema operativo, incluyendo
un intérprete de comandos, una biblioteca C y un compilador, pero aún no contaba
con el núcleo que permitiera complementar el sistema operativo. Entonces, el
núcleo creado por Linus Torvalds, llenó el hueco final que el sistema operativo GNU
exigía.
Linus nunca anunció la versión 0.01 de Linux (agosto 1991), esta versión no era
ejecutable, solamente incluía los principios del núcleo del sistema, estaba escrita en
lenguaje ensamblador y asumía que uno tenía acceso a un sistema Minix para su
compilación.
El 5 de octubre de 1991, Linus anuncio la primera versión "Oficial" de Linux, - versión
0.02. Con esta versión Linus pudo ejecutar Bash (GNU Bourne Again Shell) y gcc
(Compilador GNU de C) pero no mucho más funcionaba. En este estado de
desarrollo ni se pensaba en los términos soporte, documentación, distribución.
Después de la versión 0.03, Linus salto en la numeración hasta la 0.10, más
programadores a lo largo y ancho del internet empezaron a trabajar en el proyecto
y después de revisiones, Linus incremento el número de versión hasta la 0.95
(marzo 1992). En Diciembre de 1993 el núcleo del sistema estaba en la versión 0.99
y la versión 1.0, llego el 14 de marzo de 1994.
EMPRESAS QUE PATROCINAN EL USO DE LINUX
Con la adopción por numerosas empresas fabricantes, un buen número de
computadoras se venden con distribuciones pre-instaladas, y GNU/Linux ha
comenzado a tomar su lugar en el vasto mercado de las computadoras de escritorio.
Algunas de las empresas que colaboran en la difusión de este sistema operativo ya
sea trabajando en el núcleo Linux, proporcionando soluciones de software o
preinstalando el sistema operativo, son: Intel, Google, IBM, AMD, Sun
Microsystems, Dell, Lenovo, Asus, Hewlett-Packard (HP), Silicon Graphics
International (SGI), Renesas Technology, Fujitsu, Analog Devices, Freescale, VIA
Technologies, Oracle, Novell y Red Hat, entre otras.
pág. 8
El respaldo de compañías de software también está presente, ya que, entre otras
aplicaciones, Nero, Java, Google Earth, Google Desktop, Adobe Reader, Adobe
Flash, RealPlayer y Yahoo! Messenger están disponibles para GNU/Linux. Al haber
software equivalente, es innecesario instalar los precisamente mencionados con
anterioridad.
CARACTERÍSTICAS DE LINUX
Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas
al mismo tiempo. LINUX utiliza la llamada multitarea preventiva, la cual asegura que
todos los programas que se están utilizando en un momento dado serán ejecutados,
siendo el sistema operativo el encargado de ceder tiempo de microprocesador a
cada programa.
Multiusuario: Muchos usuarios usando la misma maquinan al mismo tiempo.
Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux
son 386-, 486-. Pentium, Pentium Pro, Pentium II, Amiga y Atari, también existen
versiones para su utilización en otras plataformas, como Alpha, ARM, MIPS,
PowerPC y SPARC.
Multiprocesador: Soporte para sistemas con más de un procesador está disponible
para Intel y SPARC. Funciona en modo protegido 386.
Protección de la memoria entre procesos, de manera que uno de ellos no pueda
colgar el sistema.
Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de
un programa que están siendo usadas actualmente.
Política de copia en escritura para la compartición de páginas entre
ejecutables: esto significa que varios procesos pueden usar la misma zona de
memoria para ejecutarse. Cuando alguno intenta escribir en esa memoria, la página
(4Kb de memoria) se copia a otro lugar. Esta política de copia en escritura tiene dos
beneficios: aumenta la velocidad y reduce el uso de memoria.
pág. 9
Memoria virtual usando paginación (sin intercambio de procesos completos)
a disco: A una partición o un archivo en el sistema de archivos, o ambos, con la
posibilidad de añadir más áreas de intercambio sobre la marcha Un total de 16
zonas de intercambio de 128Mb de tamaño máximo pueden ser usadas en un
momento dado con un límite teórico de 2Gb para intercambio. Este límite se puede
aumentar fácilmente con el cambio de unas cuantas líneas en el código fuente.
La memoria se gestiona como un recurso unificado para los programas de usuario
y para el caché de disco, de tal forma que toda la memoria libre puede ser usada
para caché y ésta puede a su vez ser reducida cuando se ejecuten grandes
programas.
Librerías compartidas de carga dinámica (DLL's) y librerías estáticas.
Se realizan volcados de estado (core dumps) para posibilitar los análisis postmortem, permitiendo el uso de depuradores sobre los programas no sólo en
ejecución sino también tras abortar éstos por cualquier motivo.
Compatible con POSIX, System V y BSD a nivel fuente.
Emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a
nivel binario.
Todo el código fuente está disponible, incluyendo el núcleo completo y todos los
drivers, las herramientas de desarrollo y todos los programas de usuario; además
todo ello se puede distribuir libremente. Hay algunos programas comerciales que
están siendo ofrecidos para Linux actualmente sin código fuente, pero todo lo que
ha sido gratuito sigue siendo gratuito.
Control de tareas POSIX.
Pseudo-terminales (pty's).
Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer
su propia emulación matemática. Cualquier máquina que ejecute Linux parecerá
dotada de coprocesador matemático. Por supuesto, si el ordenador ya tiene una
FPU (unidad de coma flotante), esta será usada en lugar de la emulación, pudiendo
incluso compilar tu propio kernel sin la emulación matemática y conseguir un
pequeño ahorro de memoria.
pág. 10
Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir
nuevos dinámicamente.
Consolas virtuales múltiples: varias sesiones de login a través de la consola entre
las que se puede cambiar con las combinaciones adecuadas de teclas (totalmente
independiente del hardware de video). Se crean dinámicamente y puedes tener
hasta 64.
Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos
los sistemas de archivo típicos de System V, y tiene un avanzado sistema de
archivos propio con una capacidad de hasta 4 Tb y nombres de archivos de hasta
255 caracteres de longitud.
Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante
un sistema de archivos especial: no es necesario ningún comando especial para
usar la partición MS-DOS, esta parece un sistema de archivos normal de Unix
(excepto por algunas restricciones en los nombres de archivo, permisos, y esas
cosas). Las particiones comprimidas de MS-DOS 6 no son accesibles en este
momento, y no se espera que lo sean en el futuro. El soporte para VFAT (WNT,
Windows 95) ha sido añadido al núcleo de desarrollo y estará en la próxima versión
estable.
Un sistema de archivos especial llamado UMSDOS que permite que Linux sea
instalado en un sistema de archivos DOS.
Soporte en sólo lectura de HPFS-2 del OS/2 2.1
Sistema de archivos de CD-ROM que lee todos los formatos estándar de CD-ROM.
TCP/IP, incluyendo ftp, telnet, NFS, etc.
Appletalk.
Software cliente y servidor Netware.
Lan Manager / Windows Native (SMB), software cliente y servidor.
Diversos protocolos de red incluidos en el kernel: TCP, IPv4, IPv6, AX.25, X.25, IPX,
DDP, Netrom, etc.
pág. 11
HISTORIA DE GOOGLE
Larry Page y Serguéi Brin comienzan Google como un proyecto universitario en
enero de 1996 cuando ambos era estudiantes de la Universidad de Stanford. Page
y Brin fundan, el 4 de septiembre de 1998, la compañía Google Inc., que estrena en
Internet su motor de búsqueda el 27 de septiembre siguiente. En el 2000 Google
presentó AdWords, su sistema de publicidad online y la llamada Barra Google.
En febrero de 2001 Google compra el servicio de debate Usenet de Google y lo
transforma en Google Grupos. En julio de 2001 lanza su servicio de búsqueda de
imágenes. En febrero de 2002 lanza Google Search Apliance. En mayo lanza
Google Labs que cerrará 9 años más tarde. En septiembre se lanza Google Noticias.
En diciembre del mismo año se lanza el servicio de búsqueda de productos llamado
Froogle, ahora denominado Google Products. En febrero de 2003 Google adquiere
Pyra Labs y con ello el servicio de creación de blogs Blogger. En abril se presenta
Google Grants, un servicio de publicidad gratuito para organizaciones sin ánimo de
lucro. En diciembre de ese año se lanza Google Print, posteriormente Google Libros.
En enero de 2004 lanza la red social orkut. En marzo se lanza Google Local que
más tarde se integraría con Google Maps. En abril Google presentó GMail, su
servicio de correo electrónico con 1 Gb de almacenamiento. En octubre de ese año
lanzan Google Desktop, que será descontinuado. También lanzó el llamado Google
Académico. En 2004 compró la empresa Keyhole.
Un año después, en 2005, sacaron a la luz Google Maps y Google Earth. Ese mismo
año Google compró Android Inc. También lanzó Google Code y se desarrolla el
primer Summer of Code. En agosto presenta Google Talk. En octubre Google lanza
su lector de feeds RSS Google Reader. En noviembre se presenta Google Analytics
y en diciembre Google Transit.
En 2006 lanza Picasa. En marzo adquiere Writely para más tarde lanzar Google
Docs y presenta ese mismo mes Google Finance. En abril se presenta Google
Calendar y en agosto Google Apps, servicio orientado a empresas. En octubre de
2006, Google adquirió por 1650 millones de dólares la página de vídeos YouTube.8
Ese mismo mes adquiere JotSpot que más tarde se convertirá en Google Sites.
pág. 12
Un año después, en 2007, Google lanzó el sistema operativo abierto para móviles
Android y creó la Open Handset Alliance. En abril de 2007, Google compró
DoubleClick, una empresa especializada en publicidad en Internet, por 3100
millones de dólares. En junio lanza Google Gears que más tarde será abandonado
debido a que lo que ofrecía más tarde fue incorporado en HTML5. En julio de 2007,
Google compró Panoramio, un sitio web dedicado a exhibir las fotografías que los
propios usuarios crean y geoposicionan, siendo algunas de ellas subidas al sitio
para que puedan ser vistas a través del software Google Earth, en noviembre
presenta OpenSocial.
En febrero de 2008 se lanza Google Sites. El 2 de septiembre de 2008, Google
presenta su propio navegador web Google Chrome y el proyecto de código abierto
Chromium. En diciembre se lanza Google Friend Connect. En febrero se lanza
Google Latitude. En marzo se presenta Google Voice. En septiembre de 2009
adquiere reCAPTCHA. En noviembre presenta el proyecto de sistema operativo de
código abierto Chromium OS. En diciembre presenta Google Public DNS.
En enero de 2010 Google presenta su primer teléfono móvil, el Nexus One, que
funciona con Android. Ese mismo mes adquiere Aardvark. En marzo adquiere
Picnik. En mayo lanza Google TV. En octubre presenta su proyecto de vehículos
autónomos. En diciembre presenta su segundo teléfono, el Nexus S, fabricado por
Samsung.
En enero de 2011, Larry Page es nombrado CEO. En mayo se presentan los
Chromebooks. En junio se presenta la nueva red social de Google llamada
Google+.En agosto de 2011, Google adquiere Motorola Mobility por 8800 millones
de euros. Google presenta su tercer teléfono inteligente, el Galaxy Nexus, fabricado
por Samsung y que funciona con la cuarta versión de Android.
En abril de 2012, Google presenta el Project Glass, un proyecto para crear unas
gafas de realidad aumentada. En febrero del 2014 Google compra SlickLogin, una
compañía compuesta por grandes desarrolladores, expertos en seguridad, que han
creado un innovador sistema de identificación a través del sonido para los teléfonos
inteligentes.
pág. 13
Lanzamiento del Código Abierto
El 19 de noviembre de 2009 se lanzó el proyecto abierto Chromium OS, proyecto
que permite la colaboración abierta del desarrollo del sistema operativo de Google.
El núcleo del sistema es Linux, y cuenta con herramientas del entorno Linux.
Chrome Notebook (Cr-48)
El 7 de diciembre de 2010, Google anunció un programa piloto que consiste en
enviar una computadora portátil (notebook) sin costo alguno, a aquellas personas
residentes en Estados Unidos que quieran empezar a probar, en una etapa previa,
el sistema operativo Chrome OS. El computador cuenta con una conexión 3G,
gracias al proveedor de telefonía móvil Verizon, conexión Wi-Fi, una pantallaLCD
de 12,1 pulgadas, cámara integrada, tapete táctil multitáctil, y un teclado modificado
especialmente para Chrome OS.
Chromebook
El 11 de mayo de 2011, en el evento Google I/O son presentados dos Chromebooks
potenciados con Chrome OS, fabricados por Samsung y Acer. Ambos Chromebooks
cuentan con discos SSD, sin unidad óptica, tapete multitáctil, pantallas de 12,1 y
11,6 pulgadas, conexión Wi-Fi o 3G, y con baterías de larga duración de hasta 8,5
horas continuas. El 15 de junio de 2011 los Chromebooks se lanzan a la venta para
el público, con precios desde los $349 hasta los $499 USD.
CARACTERÍSTICAS FUNDAMENTALES DE CHROME OS
Interfaz de usuario
Chrome OS está diseñado de una forma minimalista, debido a que su principal
herramienta es el navegador web Google Chrome. De esta forma, la compañía
planea mover gran parte de la interfaz de usuario desde un entorno de escritorio
hacia Internet. De hecho, Google se refiere a su proyecto Chrome OS como una
extensión natural del navegador Chrome. En otras declaraciones para una
audiencia de desarrolladores, Google enfatiza que la web es la plataforma,
destacando que las aplicaciones basadas en web funcionarán en Chrome y
viceversa.
pág. 14
Las principales características de la interfaz de usuario son:
●
Paneles: Los paneles son pequeñas ventanas inferiores que se utilizan
para diferentes tareas, tales como la descarga de archivos, navegador de
archivos, mensajería instantánea en Hangouts, tomar notas, o
notificadores de eventos como Google Calendar, Gmail, y actualizaciones
del sistema. Los paneles también permiten ser minimizados para
ocultarse, y también se pueden utilizar mientras se navega en diferentes
sitios al permanecer estáticos.
● Indicadores: Los indicadores se encuentran en la parte superior derecha,
e indican procesos como la hora, batería, conexión y selector Wi-fi, y
conexión 3G.
● Pestañas: Las pestañas son lo más utilizado en el sistema, se utilizan
para abrir las aplicaciones y sitios, y permiten abrir opciones del sistema.
Las pestañas también se pueden "fijar" y disminuir su tamaño para quedar
ancladas en la parte superior izquierda.
● Lanzadores: Los lanzadores aparecen en la página principal, y son
iconos grandes que se utilizan para abrir aplicaciones web, también ver
los sitios más visitados, y ver los marcadores en una barra superior.
Velocidad
Uno de los puntos que más destaca Google es la velocidad del sistema, con un
tiempo de arranque de 8 segundos y un tiempo de apagado bastante corto, además
de la rapidez con que abre sus aplicaciones web.
Sincronización
Todos los documentos, aplicaciones, extensiones, y configuraciones, son
respaldados en línea bajo el concepto de computación en nube. Así que si el usuario
pierde su máquina, puede obtener otra o acceder desde otra máquina, y obtener
exactamente los mismos datos que mantenía anteriormente.
Siempre conectado
Chrome OS solamente se puede obtener por medio de la compra directa de un
Chromebook, contando con conexión 3G o Wi-Fi para poder estar siempre en línea.
La promesa de Google es que Chrome OS siempre esté conectado, no importa
dónde. Además, en las versiones de desarrollo de Chromium OS, ya se están
probando las conexiones 4G(LTE) con otros dispositivos.
pág. 15
Aplicaciones Web
Chrome OS no utiliza el típico sistema de aplicaciones, las aplicaciones se utilizan
dentro del navegador web Google Chrome, y pueden ser utilizadas en línea o ser
instaladas para poder utilizarse sin la necesidad de una conexión a Internet. El
principal medio para obtener estas aplicaciones web es la tienda en línea Chrome
Web Store, la cual permite adquirir aplicaciones, extensiones y temas para el
navegador Google Chrome en un solo lugar. La tienda también permite comprar
aplicaciones, y que los desarrolladores publiquen sus aplicaciones basadas en
lenguaje web actual.
Seguridad
También contará con una arquitectura de seguridad actualizada. Google enfatiza el
hecho de que sus Chromebooks no sufrirán de virus o programas maliciosos.
Debido a que muchos sistemas operativos actuales fueron diseñados en épocas en
las que internet no era predominante, Chrome se diseña teniendo muy en cuenta
esto, por ende eliminando riesgos de seguridad comunes arraigados.
Los puntos más importantes con respecto a la seguridad de Chrome OS son:
●
●
●
●
●
Actualizaciones automáticas: Las aplicaciones webs instaladas,
extensiones, temas, el navegador, y el sistema operativo se mantendrá al
día con actualizaciones automáticas.
Aislamiento de procesos: Aislar procesos que puedan comprometer la
seguridad del sistema, tales como Flash Player, extensiones o
aplicaciones instaladas.
Verificación de arranque: Monitorea si el sistema ha sido manipulado
por entes externos antes de que el sistema parta, y vuelve a una versión
de respaldo si esto ha sucedido.
Cifrado de datos: Todos los datos descargados en el disco son cifrados.
Modo visita: Parecido a la «cuenta de invitado» presente en sistemas
operativos Windows, GNU/Linux, y Mac OS X. En este modo el usuario
puede pasar la máquina a conocidos para que utilicen una cuenta de visita
sin que sus datos se vean comprometidos.
pág. 16
Características Avanzadas Chrome OS
Multitáctil
Los primeros gestos multitáctiles se vieron en el Chrome Notebook (Cr-48), pero
con funcionamientos básicos, como scroll de página con dos dedos... Pero Google
dará soporte multitáctil completo de hasta cuatro dedos en versiones estables.
Reproductor multimedia
Todo el contenido multimedia descargado, como música o videos, se podrán
reproducir gracias al reproductor multimedia integrado de Chrome OS.
Impresión
Para solucionar el problema de compatibilidad de controladores de hardware de las
diferentes impresoras disponibles en el mercado, Google lanza Google Cloud Print
(aún en Beta). La cual permite imprimir documentos desde cualquier dispositivo y
aplicación, solamente es necesario conectar la impresora a Google Cloud Print y
también conectarse mediante Chrome OS para mandar la orden de impresión.
pág. 17
PRESENTACIÓN GOOGLE CHROME OS
Anuncio
El 7 de julio de 2009, Google anuncia uno de sus más grandes proyectos, su propio
sistema operativo basado en código abierto (Núcleo Linux) diseñado para trabajar
exclusivamente con aplicaciones web, el cual es nombrado «Google Chrome OS»
(o simplemente abreviado Chrome OS), justo 9 meses después de haber lanzado
su navegador Google Chrome. Google explica que Chrome OS es un sistema
operativo diferente a lo que se conoce comúnmente como sistema operativo de
escritorio, siendo el navegador Google Chrome su principal herramienta de uso.
Las primeras características que destaca Google es, que su sistema operativo es
un proyecto de código abierto y sin costo alguno. Al igual que el navegador Google
Chrome que cuenta con el proyecto Chromium como el proyecto abierto para su
desarrollo, Google Chrome OS cuenta con Chromium OS como proyecto de código
abierto para su desarrollo. Google también destaca que su interfaz de usuario es
simple, rápida, y segura, debido a que su principal herramienta de uso es el
navegador Google Chrome. El sistema operativo está diseñado de tal forma que el
usuario pueda conectarse a Internet en cuestión de segundos. Contará con soporte
para procesadores x86 y ARM, y con el soporte de una gran lista de fabricantes de
hardware y software.
pág. 18
ESTRUCTURA Y COMPONENTES DEL SISTEMA
El Chrome OS se divide en 3 partes importantes:
● El navegador basado en el Chrome y el manejador de ventanas.
● El sistema en sí y los servicios: el kernel, los drivers, etc.
● Firmware
Firmware
El firmware tiene un papel clave para que el arranque del sistema sea más rápido y
más seguro. Para lograr esto se eliminaron elementos innecesarios y se añadieron
soporte para la verificación de cada paso en el proceso de arranque. También se
añadió soporte para la recuperación del sistema en el propio firmware. Se evitó la
complejidad en la mayoría de los firmwares de las PC´s tradicionales porque el
Chrome OS no tiene soporte para una buena cantidad de hardware. Por ejemplo no
se prueba si existe el floppy drives.
El firmware implementa las siguientes funcionalidades:
● La recuperación del sistema: El firmware de recuperación puede volver a
instalar Chrome OS en el caso de que el sistema se ha convertido dañada o
en peligro.
● Verificado el arranque: Cada vez que el sistema arranca, Chrome OS
verifica que el firmware, el kernel y la imagen del sistema no han sido
manipulados o corrompidos. El proceso se inicia en el firmware.
● Inicio rápido: Hemos mejorado el rendimiento de arranque mediante la
eliminación de una gran cantidad de componentes que se encuentra
normalmente en el firmware PC.
pág. 19
El sistema en sí y los servicios
Aquí es en donde se utiliza el kernel de Linux, los drivers y los demonios.
He aquí una lista de las cosas de cual el sistema depende:
● D-Bus: El navegador utiliza el D-Bus para interactuar con el resto del
sistema. Un ejemplo de esto es el medidor de la batería, y el indicador de
señal de la red.
● Administrador de conexiones: provee una API para interactuar con los
dispositivos de red, provee DNS proxy y maneja los servicios para los sistema
3G, wireless, y ethernet.
● Autoupdate: el demonio de actualización instala "silenciosamente" nuevas
imágenes del sistema.
● Administrador de energía: se ocupa de los eventos relacionados con la
energía como por ejemplo, cuando la tapa de la PC se cierra o cuando se
presiona el botón de encendido.
● Xscreensaver: administra el bloqueo de la pantalla cuando el sistema queda
ocioso.
● Servicios estándares de Linux: NTP, syslog y cron.
pág. 20
El navegador y el administrador de ventanas
El administrador de ventanas es el responsable de manejar la interacción del
usuario con las múltiples ventanas. Lo hace de manera similar que otros X
manejadores de ventanas, controlando la posición de la ventana, asignando el
"input focus", etc.
PLATAFORMAS SOBRE LAS QUE TRABAJA CHROME OS
El sistema operativo es un sistema realizado con base en código abierto construido
sobre un kernel Linux distribución Debian construido sobre un núcleo monolítico y
orientado inicialmente para miniportátiles, que funciona en procesadores con la
tecnología x86 y ARM. Aunque el sistema se basa en un kernel Linux, tendrá un
gestor de ventanas propio de Google.
INSTALACIÓN DE CHROME OS
Ejecución desde una máquina virtual Con este tipo de ejecución podemos emular
mejor el hardware en el que corre nuestro ChromeOS con lo que tendremos una
experiencia más cercana a una máquina oficial Chrome, además la podemos
ejecutar sobre una ventana en nuestro sistema.
-
Necesitamos es tener instalado un cliente
VirtualBox
de máquina virtual como
-
Descargamos y descomprimimos la versión de ChromeOS para la máquina
virtual que usemos de la web de Hexxeh
-
Ejecutamos Virtualbox y creamos una nueva máquina. Nombre = ChromeOS;
Tipo = Linux; Versión = Other
pág. 21
En el paso siguiente asignamos la memoria para la máquina virtual, entre 512 Mb y
1GB es suficiente. En este paso seleccionaremos la opción de usar un archivo de
disco duro virtual y añadiremos el fichero *.vdi descargado.
pág. 22
Pulsamos con el botón derecho sobre la nueva máquina virtual ChromeOS y vamos
a Configuración. En la categoría Sistema, Placa Base seleccionamos Dispositivo
apuntador = Ratón PS/2.
En esta misma categoría, pestaña Procesador habilitamos PAE/NX.
pág. 23
En la categoría Red pulsamos en Opciones Avanzadas y seleccionamos una
tarjeta de red Intel PRO/1000MT.
Ya podemos iniciar Chrome Os y configurarlo:
pág. 24
Si tenemos problemas con el ratón desactivar en la esquina inferior la integración
automática del ratón, pulsando la tecla Control derecha podemos cambiar el ratón
entre la ventana emulada y la de nuestro sistema.
SISTEMA DE ARCHIVOS EN CHROME OS
Una unidad contiene hasta cuatro particiones:
● Una partición llamada “stateful partition” que es en donde se almacenan los
archivos de los usuarios, log, etc.
● Una partición opcional de intercambio.
● Dos particiones que contienen el sistema de ficheros en sí.
Sistema de archivos raíz
Sólo una de las dos particiones designadas para el sistema de ficheros estará en
uso en un momento dado. El otro se utilizará para autoupdating y para una
alternativa en caso de la partición actual no puede arrancar.
Diagrama del proceso de booteo.
pág. 25
DESCRIPCIÓN DE LOS DISPOSITIVOS DE ENTRADA Y SALIDA QUE
SOPORTA (CHROME OS)
Inicialmente el sistema operativo Google Chrome OS estará instalado en máquinas
de tipo laptop o miniportátil fabricados por ciertas compañías las cuales soportarán
los siguientes dispositivos:
●
●
●
●
●
●
●
●
●
●
●
Pantalla de 12,1 pulg (1280 x 800)
Procesador Intel® Celeron®
4 GB RAM
Unidad SSD de 16 GB
Intel HD Graphics 3000
Módem para conexión Wi-Fi de doble banda 802.11 a/b/g/n, Gigabit Ethernet
y 3G integrado (opcional)
Cámara de alta definición
2 puertos USB 2.0
Ranura para tarjetas 4 en 1
Salida de DisplayPort++ (compatible con HDMI, DVI y VGA)
Ranura de seguridad Kensington
Conversaciones cara a cara con amigos y familiares con la cámara de alta definición integrada
Cómodo teclado de Chrome personalizado de tamaño estándar
pág. 26
Conexión con varias pantallas con el puerto DisplayPort integrado
Panel multitáctil de gran tamaño con reposamuñecas de aluminio
Reinicia y vuelve a la Web en 7 segundos.
pág. 27
GESTIÓN DE COMUNICACIONES Y SEGURIDAD (CHROME OS)
Google Cloud Printing
Google transita paso a paso el largo camino que separa la idea de diseñar un
sistema operativo de la puesta a punto del mismo. Uno de los problemas que
enfrentaban sus desarrolladores era la utilización de periféricos locales, como las
impresoras. Recordemos que este sistema operativo fue sido diseñado desde el
principio para ser utilizado “en la nube”, por lo que sólo manejará aplicaciones que
estén alojadas en un anfitrión de la Web. A la hora de imprimir documentos, Chrome
OS utilizará una tecnología llamada Google Cloud Print, que prescindiría de la
necesidad de instalar controladores y que tiene la capacidad de dirigir los trabajos
de impresión desde la Web, las aplicaciones de escritorio y móviles. Google acaba
de revelar el código del software y la documentación de este proyecto cuya meta es
cumplir el ambicioso objetivo de “permitir a los usuarios del sistema operativo
Chrome imprimir documentos a cualquier impresora desde cualquier aplicación.
En vez de confiarle los trabajos de impresión al sistema operativo local o a los
controladores, las aplicaciones podrán usar Google Cloud Print para enviar y
manejar trabajos de impresión.
Google Cloud Print será el responsable de enviar el trabajo a la impresora apropiada
con las opciones particulares que el usuario haya seleccionado, y devolverá el
estado en que se encuentra el trabajo a la aplicación correspondiente.” Google
Cloud Print todavía se encuentra en la primera etapa de su desarrollo, y todavía es
muy pronto para decir si será o no una solución adecuada. Pero si funciona, será
unos de los motivos que hagan de Google Chrome OS un producto exitoso.
Chromoting
Se trata de una tecnología que permitirá ejecutar aplicaciones de PC remotamente
y que aportará un método muy interesante para no tener que renunciar del todo a
pág. 28
aplicaciones de escritorio en este sistema operativo totalmente orientado a los
servicios web y a la nube de computación. Eso podría solventar una de las mayores
carencias de este desarrollo.
Con esta funcionalidad (llamada de forma no oficial ‘Chromoting’) Chrome OS no
solo será una gran plataforma para ejecutar modernas aplicaciones web, sino que
también te permitirá acceder a aplicaciones tradicionales del PC directamente
dentro del navegador de modo que por lo que parece en Chrome OS se permitirá el
acceso a aplicaciones de Windows, Mac OS X o Linux, pero se manejarán de forma
remota: No se podrá ejecutar aplicaciones directamente, simplemente se usará algo
parecido a una conexión remota de escritorio que conectará a la máquina con
Windows / Mac OS X o Linux y que permitirá utilizarla remotamente. Los datos
permanecerán en el ordenador remoto, no en el ordenador con Chrome OS.
El modelo de seguridad se ha diseñado de la siguiente manera: se utiliza
sandboxing (o cajas de arena), que restringe los privilegios de las principales partes
del navegador de modo que es más difícil de contar con ellas para el montaje de un
ataque, y multi-proceso de la arquitectura, que almacena los sitios web y
aplicaciones de las distintas áreas de áreas de memoria del navegador y aislados
del resto de la computadora.
Esta es un arma clave para combatir la explotación, así como técnicas para la
reducción de superficies de ataque. El objetivo final es una recuperación exitosa
mediante la simple aplicación de una actualización y reiniciando el equipo infectado.
El sistema operativo toma gran parte de su postura de seguridad del navegador
Chrome, y a primera vista se parece al modelo de seguridad utilizado por Apple para
asegurar su dispositivo iPhone. A continuación se muestra cómo Google planea
reforzar la seguridad del sistema operativo para reducir la probabilidad de un ataque
exitoso, y disminuir las posibilidades de explotaciones a nivel usuario.
● Proceso Sandboxing
○ Obligatoria la aplicación de control de acceso que limita recursos,
procesos e interacciones del núcleo.
○ Control del grupo de dispositivos filtrado y restricción de uso indebido
de los recursos.
○ Procesos de chrooting y namespacing para la reducción de recursos
y las superficies de ataque en los cruzamientos de procesos.
pág. 29
○
●
●
●
●
Interposición de los dispositivos de medios para reducir el acceso
directo a la interfaz del núcleo desde el navegador de Chrome y los
procesos de complementos.
Endurecimiento de la cadena de herramientas para limitar explotaciones
fiables y exitosas o NX, ASLR, pila de cookies, etc
Endurecimiento del núcleo y configuración de mondadura.
Restricciones adicionales del sistema de archivos
○ Partición raíz de solo lectura
○ tmpfs basado en / tmp
○ Directorios de usuarios que no pueden tener ejecutables, archivos
ejecutables privilegiados, o nodos de dispositivos.
A largo plazo, mejoras adicionales del sistema se llevarán a cabo, como
sandboxing para controladores.
ANÁLISIS COMPARATIVO ENTRE PLATAFORMA TRADICIONAL Y EL
SMARTPHONE (CHROME OS)
pág. 30
Vs. Android
Android fue diseñado para los teléfonos móviles y puede llegar a funcionar en
netbooks, sin embargo los fabricantes lo consideren insuficiente para ellos,
aunque cada vez más los fabricantes lo están adoptando.
pág. 31
Android es basado en Java mientras que Chrome OS es basado en Linux con una
sencilla interfaz gráfica de usuario.
Vs. Windows
Chrome OS parece una buena idea para ofrecer una alternativa a Windows.
Chrome está en constante desarrollo y una nueva dirección que los diseñadores
quieren tomar es la de separar la interfaz gráfica que incluye ventanas, y el backend. Este último puede entonces ser XLib, OpenGL o DirectX y Win32, es decir,
Linux o Windows.
Vs. Linux
Chrome OS es realmente sólo un navegador en la parte superior de Linux y no se
necesita un sistema operativo especial para eso. Se puede utilizar alternativas
como KDE Plasma o Firefox OS que tiene la ventaja de promover la API estándar
para programar el hardware.
pág. 32
ESTADÍSTICAS DE UTILIZACIÓN A NIVEL MUNDIAL DE CHROME OS
pág. 33
SOPORTE PARA LA NUBE E INTEGRACIÓN A ELLA (CLOUD COMPUTING) DE
GOOGLE CHROME OS
Se ha desarrollado una librería que implementa el lado del cliente de nuestro
protocolo de sincronización así como el lado del servidor de Google proporciona la
infraestructura para servir a los usuarios y sincronizar los datos con su cuenta de
Google.
La sincronización del framework del Chrome inicialmente manejara bookmarks,
pero está diseñado para manejar otros tipos de datos del browser en el futuro. Usa
un modelo de propagación de mensaje para propagar la notificación de
modificaciones, lo que significa es que la actividad en una instancia del browser se
verá reflejada inmediatamente en otra instancia. Google también planea proveer
una interfaz web con el cual el usuario podrá acceder a sus bookmarks desde
cualquier lugar usando cualquier browser logueandose a su cuenta de Google.
La sincronización del framework usará conexión XMPP persistente para la
notificación de cambios. El servidor de Google Talk proveerá la infraestructura
backend para esa parte del proceso de sincronización. Los datos actuales del
bookmark serán transmitidos en el formato Google Protocol Buffer.
pág. 34
GESTIÓN DE PROCESOS Y PROCESADOR LINUX
Ya que las distintas distribuciones de Linux que se tratan en el documento (Ubuntu,
Red Hat y Fedora) y el sistema operativo Google Chrome OS están construidos
sobre el kernel de Linux, al hablar de la administración de la memoria y gestión de
procesos, se tratarán de la misma manera en general.
Un proceso comienza su ciclo de vida cuando se invoca el método fork(), el cual
crea un nuevo proceso duplicando uno existente. El proceso que llama fork() es el
padre, mientras que el nuevo proceso generado es el hijo.
Un proceso termina invocando exit(), liberando todos los recursos utilizados. Un
proceso padre puede preguntar acerca del estado de un proceso hijo terminado
mediante el método wait4(), el cual habilita la espera de la finalización de un
proceso específico. Cuando un proceso termina, cambia su estado actual a uno
especial llamado Zombie, el cual representa un proceso terminado hasta que el
padre invoque el método wait() o waitpid().
El kernel de Linux almacena la lista de procesos en una lista doblemente enlazada
llamada la lista de tareas o Task List. Cada elemento en la tasks list es un descriptor
de procesos o Process Descriptor, el cual tiene toda la información que describe el
programa en ejecución, por ejemplo archivos en uso, espacio de dirección del
proceso, estado, prioridad, entre otros datos.
Ilustración 1: El descriptor de procesos y la task list.
Cada estructura taks_struct (es decir cada Process Descriptor, ver imagen anterior)
es asignada en memoria mediante el Slab Allocator, esto implica la creación de una
nueva estructura llamada el thread_info.
pág. 35
El sistema identifica los procesos con un identificador único llamado PID o Process
IDentification, el cual es un valor numérico, típicamente un entero. Su valor máximo
es 32,768 (aunque puede ser incrementado al rango máximo de acuerdo al tipo de
dato); este valor indica el número de procesos que pueden ser ejecutados
concurrentemente en el sistema. El kernel almacena este valor en el atributo pid de
cada Process Descriptor.
Las tareas son típicamente referenciadas mediante un apuntador a su Process
Descriptor respectivo. De hecho la mayor parte del código kernel que trabaja con
procesos trabaja directamente con la estructura task_struct (es decir, con el Process
Descriptor). La mayoría de arquitecturas almacenan en un registro un apuntador al
Process Descriptor del proceso en ejecución actual, permitiendo un acceso más
eficiente. Otras arquitecturas, tales como la x86 (la cual tiene pocos registros)
aprovechan el almacenamiento del thread_info en la pila de procesos para conocer
la ubicación en memoria principal del task_struct (El Process Descriptor).
Estados de un Proceso:
El estado consiste en la condición actual del proceso. Este atributo se almacena en
la variable state del Process Descriptor. Cada uno de ellos está en uno de los cinco
estados descritos a continuación:
pág. 36
TASK_RUNNING: El proceso se está ejecutando o está en una cola de procesos
en ejecución.
TASK_INTERRUPTIBLE: El proceso está bloqueado, esperando alguna para
reanudar, en tal caso el kernel cambia el estado a TASK_RUNNING. El proceso
despierta y se vuelve ejecutable si recibe dicha señal1.
TASK_UNINTERRUPTIBLE: Similar al TASK_INTERRUPTIBLE, solo que cuando
recibe la señal para reanudar, el proceso no reanuda y se vuelve ejecutable (es
decir, cambia su estado a TASK_RUNNING)
TASK_ZOMBIE: El proceso ha terminado, como se había dicho anteriormente, este
estado representa un proceso hijo terminado, pero a la espera de ser invocado por
el padre mediante wait(), wait4() o waitpid(). En caso tal de que el padre invoque
alguno de los tres métodos, el Process Descriptor esvaciado de la Task List.
TASK STOPPED: La ejecución del proceso ha parado. Se debe a que el proceso
no está corriendo y no es deseable que corra. Esto ocurre si el proceso recibe las
señales de parada de proceso o si recibe cualquier tipo de señal mientras está
siendo corregido.
1
Algunas de las señales mencionadas son las siguientes:
Señales de continuación del proceso: SIGCONT.
Señales de parada del proceso: SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU.
Señales de Terminación del proceso: SIGKILL, SIGTERM, SIGHUP, SIGINT, SIGQUIT.
pág. 37
GESTIÓN DE MEMORIA LINUX.
En un sistema Linux, la memoria se utiliza para los datos de "caché" que es utilizado
por la CPU. La idea detrás de almacenamiento en caché es que se necesita más
tiempo para la CPU acceder a los datos en el disco duro que lo hace para acceder
a los datos que está presente en la memoria principal. Así que el almacenamiento
en caché utilizando la memoria principal acelera eficazmente el sistema. En un
sistema de ventanas, no hay tal optimización, memoria de manera gratuita se
desperdicia, ya que no se acostumbra.
Ahora, cuando una aplicación realmente necesita toda la memoria que se utiliza
para el almacenamiento en caché, Linux salta los datos en caché y hace la memoria
requerida disponible. Como última opción, si la totalidad de la memoria principal se
agota, entonces la memoria de intercambio swap se utiliza.
El Subsistema de administración de memoria es uno de las más importantes partes
del OS Linux. Desde aquellos días en que computación ha requerido más memoria
de la que existe físicamente en un sistema. Las estrategias fueron desarrolladas
para vencer esta limitación y la más exitosa de ellas se conoce hoy en día como
“memoria virtual”. La Memoria Virtual hace parecer a un sistema más abundante en
memoria de lo que realmente es. A continuación se explica que provee el
subsistema de memoria virtual en Linux:
Direccionamiento Largo de espacios en Memoria
El OS hace que el sistema aparente tener un volumen de memoria alto al que
realmente posee. La memoria virtual puede ser N veces más grande que la memoria
física de un sistema.
Protección
Cada proceso en el sistema posee su propio espacio de direcciones virtuales de
memoria. Estos espacios están completamente separados uno del otro y así los
procesos corren sin afectar a otros.
Mapeo en Memoria
El mapeo en memoria es acostumbrado para mapear imágenes y archivos de datos
dentro de un espacio de direcciones de un proceso.
pág. 38
Alojamiento Equitativo de Memoria Física
El Subsistema de administración de memoria permite a cada proceso que se
encuentra en ejecución dentro del sistema, un equitativa distribución de la memoria
del sistema.
Memoria Virtual Compartida
En ocasiones necesitaremos compartir la memoria entre procesos. Por citar un
ejemplo, pudieran existir varios procesos corriendo en el sistema , procesos del tipo
comando de la shell de bash, más que múltiples copias de bach, cada una con su
propio espacio de direcciones virtuales de memoria, sin duda sería mucho mejor
“tener una sola copia en memoria física y que todos los procesos que corran bash
la compartieran”.
Un modelo Abstracto de Memoria Virtual
Cuando el procesador ejecuta un programa, este leerá una instrucción de memoria
y decodificará la misma. Dentro del proceso de decodificar la instrucción, se podría
requerir obtener o almacenar contenidos de una localidad de memoria. El
procesador entonces ejecuta la instrucción y este se mueve hacia la siguiente
instrucción a leer y decodificar (repitiendo lo anterior). De esta forma el procesador
se mantiene siempre accediendo a memoria leyendo y almacenando datos sobre
ella.
pág. 39
Sobre un sistema de memoria virtual, absolutamente todas las direcciones son
virtuales y no son direcciones físicas. Esas direcciones virtuales serán convertidas
en direcciones físicas por el procesador, tomando como base la información
obtenida sobre un conjunto de tablas mantenidas por el Sistema operativo Linux.
La memoria virtual y física son divididas en pedacitos llamados páginas. Esas
páginas son todas del mismo tamaño, para que el sistema las pueda administrar de
una manera sencilla. Linux sobre arquitecturas Alpha AXP suele usar 8 Kbyte por
página y sobre sistema Intel x86 la página es de 4 Kbyte. Cada una de esas páginas
tiene un identificador único conocido como el “Page Frame Number (PFN)” o
número de cuadro de Página.
En este modelo de paginación, una dirección virtual está compuesta de 2 partes; un
offset (desplazamiento) y un virtual PFN.
Si la página de memoria es de 4 Kbytes, los bits 11:0 de la dirección virtual contiene
el offset y los bits 12 en adelante contendrán el PFN virtual.
Entonces, sobre una Arquitectura intel x86 a 32 bits tendríamos 1,048,576 (posibles
direcciones) páginas de memoria virtual de 4 kb cada una.
Cada vez que el procesador encuentre una dirección virtual, este extraerá su offset
y su PFN virtual para traducir esta página a una página física y accederla. Esto el
procesador lo hace posible mediante la magia de las “Tablas de Paginas (conjunto
de tablas mantenidas por el Sistema operativo Linux)”.
pág. 40
Cada entrada de una Tabla de Páginas contiene teóricamente la siguiente
información:
a) Una bandera que indica si es una entrada válida.
b) El PFN físico que esta entrada está describiendo.
c) Información de Control de Acceso. Esto describe cómo la página podría ser
usada. Si esta podría ser escrita? o si esta contiene código ejecutable?
El concepto de Page HIT y FAULT
Supongamos que un programa genera una dirección virtual. De esta se extraerán
los bits 31-12 para obtener el número de página virtual. Entonces esto se usará
como un índice dentro de la tabla de páginas, este índice es conocido como page
table entry (PTE).
Cada PTE consiste de un bit validador (flag que indica si es una entrada válida) y
20 bits para la página física. Si el bit validador es 1, entonces la página virtual esta
en RAM, y podremos obtener la página física mediante su PTE. A este suceso se le
llama un page hit.
Si el bit validador es 0, entonces la página virtual no está en RAM, y los 20 bits para
la página física ahora nos son inútiles. Entonces la página virtual esta en disco duro
pág. 41
(en la partición swap) y debemos traerla de ahí, para colocarla posteriormente en
RAM. A este suceso se le llama un page fault. A razón de que el disco es lento,
deberemos buscar que el kernel que usamos mantenga al mínimo el número de
page faults.
Traducción de una página virtual a una página física
Suponiendo que tenemos un page hit, el procesador toma el número de marco de
página físico y lo multiplica por el tamaño de página para obtener la dirección base
de la página física en memoria. Finalmente, el procesador le suma el
desplazamiento a la instrucción o dato que necesita, y esta es la dirección física con
la que accede a memoria.
pág. 42
SOPORTE A TIEMPO REAL EN LINUX
Gracias a la reciente llegada del conjunto de parches de PREEMPT_RT, la
comunidad Linux unificó su método para lograr el rendimiento en tiempo real con
Linux. Lo que es particularmente relevante acerca de esta solución es que un solo
sistema operativo en tiempo real basado Linux permite a los desarrolladores obtener
las ventajas del rendimiento en tiempo real con la accesibilidad, usabilidad y soporte
de una comunidad que están disponibles en sistemas operativos de propósito
general.
Un RTOS de Linux creado con el conjunto de parches de PREEMPT_ RT incluye
jitter al mismo nivel que otros RTOS dedicados, como el VxWorks de WindRiver o
el Interval de Zero. Del mismo modo, con respecto a la utilización de la CPU como
una función de la velocidad del bucle, un PREEMPT_RT RTOS basado en Linux
ofrece un rendimiento equivalente o mejorado sobre otros RTOS dedicados. En gran
parte, esta mejora del rendimiento a nivel de aplicación, medido por una ganancia
inferior en el uso de la CPU a velocidades más altas del bucle, es un resultado de
la disponibilidad de la programación de un sistema RTOS basado en Linux. A
diferencia de la mayoría de los RTOS dedicados, un RTOS basado en Linux puede
ofrecer tanto un programador en tiempo real para las tareas críticas, como un
programador mucho más eficiente y completo para todas las tareas que no son en
tiempo real.
El consenso creciente es que PREEMPT_RT permite un RTOS basado en Linux
que ofrece un rendimiento similar al de otros RTOS existentes. Lograr este nivel de
rendimiento es excelente, tanto para los usuarios de Linux que buscan hacer frente
a aplicaciones de prestaciones más elevadas y en tiempo real, como para aquellos
que actualmente dependen de RTOS dedicados que buscan beneficiarse de la
estabilidad, facilidad de uso y soporte de la comunidad que ofrece Linux. La gran
comunidad de IP y herramientas junto con la importante base de usuarios con
experiencia permite a los diseñadores una mayor autonomía para incrementar la
funcionalidad de su solución a un coste menor de desarrollo. Muchas de las mejoras
en todo el sistema operativo pueden ser rápidamente aprovechadas, por ejemplo,
el stack de red maduro y estable proporcionado por Linux soporta verdaderos NICs
(Network Interface Cards) de doble DHCP y ofrece soporte para protocolos de
comunicación como IPv6 y SNMP.
El conjunto de parches PREEMPT_RT ofrece unos vectores clave de diferenciación
fundamentales para los diseñadores de sistemas embebidos. Extiende la flexibilidad
pág. 43
que Linux proporciona para diversas arquitecturas de hardware y el diseño de un
solo sistema operativo hace que la asignación de recursos sea mucho más simple.
Como resultado, los usuarios se benefician de una mayor facilidad de uso, una
capacidad de programación más intuitiva y una mejor capacidad de configuración y
gestión del sistema. Más allá de flexibilidad del hardware, un RTOS de Linux permite
a los equipos de diseño embebido añadir y formar a los desarrolladores de software
más fácilmente dada la ubicuidad de Linux y el relativamente amplio suministro de
usuarios y recursos de Linux. Gracias al acceso a un RTOS basado en Linux más
accesible y familiar, los equipos de diseño embebido pueden hacer frente de manera
más eficiente a los desafíos del diseño embebido con un conjunto consolidado de
cadenas de herramientas de software.
Como PREEMPT_RT continúa creciendo como lo hace el método estándar para
obtener la funcionalidad en tiempo real con Linux, el mercado está empezando a
reconocer un número cada vez mayor de soluciones basadas en COTS (Custom
Off-The-Shelf), que ofrecen RTOS basado en Linux. Un ejemplo es el nuevo
controlador cRIO-9068 de National Instruments, que cuenta con un RTOS basado
en Linux abierto y con buen mantenimiento con un factor de forma compacto y
robusto. El controlador cRIO-9068 soporta el desarrollo de aplicaciones mediante el
software de diseño de sistemas LabVIEW de NI y las herramientas C/C++ que
permiten a los usuarios reutilizar eficazmente el código C/C++ y aprovechar la
comunidad de Linux al mismo tiempo que se benefician de la interfaz de desarrollo
intuitivo proporcionada por LabVIEW.
El diseño embebido es ahora más accesible para los equipos de diseño de software
con experiencia limitada en hardware debido a las soluciones COTS basadas en
RTOS de Linux. Para los equipos de diseño más maduros, estas soluciones ofrecen
un camino mucho más eficiente hacia el mercado; ya que, los recursos del equipo
se pueden ser invertir en las tareas específicas de la aplicación en lugar de hacerlo
en tareas rutinarias, tales como el diseño y la disposición de los conectores de los
periféricos de un procesador o escribir middleware para integrar los componentes
de los periféricos.
Además, para los equipos deseosos de contar con componentes de software de
código abierto, un RTOS de Linux empaquetado en una solución COTS por un
vendedor dispuesto a mantener y actualizar el sistema operativo proporciona la
pág. 44
suficiente confianza y responsabilidad para garantizar la inversión. Los primeros
usuarios ya son testigos de estas ventajas.
En tanto que la oferta de RTOS de Linux llegue a ser más común en las soluciones
basadas en COTS, los usuarios deberían buscar arquitecturas de hardware
subyacentes que ofrezcan la mayor flexibilidad. A modo de ejemplo, el controlador
cRIO-9068 cuenta con la arquitectura RIO (Reconfigurable I/O) de NI LabVIEW, que
permite a los usuarios hacer frente a un conjunto muy diverso de necesidades. La
versatilidad que ofrece la arquitectura LabVIEW RIO se debe a un procesador que
trabaja en conjunto con una FPGA con acceso a E/S.
Los usuarios pueden llevar rápidamente soluciones altamente diferenciadas al
mercado con hardware flexible COTS que ofrece un RTOS basado en Linux. Esta
nueva tecnología comercial permite a los usuarios reutilizar el código y se benefician
del incremento de prestaciones, como muestra.
A medida que la línea principal del kernel de Linux continúa mejorando las
características, tales como el aislamiento de los núcleos y la gestión de memoria,
PREEMPT_RT servirá como una solución cada vez más atractiva para los
diseñadores de sistemas embebidos.
Apelando a los desarrolladores tradicionales de Linux y de RTOS, un RTOS basado
en Linux ofrece una oportunidad significativa - sobre todo cuando se hace disponible
en una plataforma COTS resistente, robusta y flexible. Gracias a este enfoque, los
diseñadores pueden centrarse en atender a cuestiones tales como la integración o
la seguridad de los sistemas, mientras que el mantenimiento y las actualizaciones
del sistema operativo dependen de los proveedores, lo cual permite optimizar aún
más su diseño.
Las soluciones COTS que ofrecen los RTOS de Linux harán posible que los
diseñadores puedan mantenerse por delante de las presiones del mercado,
lanzando diseños innovadores al mercado más rápido que nunca, marcando una
nueva era del diseño embebido.
pág. 45
UBUNTU
Presentación:
Ubuntu es un sistema operativo basado en Linux y que se distribuye como software
libre, el cual incluye su propio entorno de escritorio denominado Unity. Su nombre
proviene de la ética homónima, en la que se habla de la existencia de uno mismo
como cooperación de los demás.
Ubuntu está compuesto por diversos paquetes de software que, en su mayoría, son
distribuidos bajo código abierto y licencia libre. Este sistema operativo no tiene fines
lucrativos (se consigue de manera gratuita) y aprovecha las capacidades de los
desarrolladores de la comunidad para mejorar sus prestaciones.
Su facilidad de uso es una de las razones que han llevado a que Ubuntu cada vez
se haya convertido en una presencia más constante dentro del mercado
tecnológico. No obstante, tampoco hay que olvidar que otro de estos motivos es el
conjunto de aplicaciones que lleva incorporadas para satisfacción de sus usuarios.
Su patrocinador, Canonical, es una compañía británica propiedad del empresario
sudafricano Mark Shuttleworth. Ofrece el sistema de manera gratuita, y se financia
por medio de servicios vinculados al sistema operativo y vendiendo soporte técnico.
Además, al mantenerlo libre y gratuito, la empresa es capaz de aprovechar los
desarrolladores de la comunidad para mejorar los componentes de su sistema
operativo. Extraoficialmente, la comunidad de desarrolladores proporciona soporte
para otras derivaciones de Ubuntu, con otros entornos gráficos, como Kubuntu,
Xubuntu, Edubuntu, Ubuntu Studio, Mythbuntu, Ubuntu Gnome y Lubuntu.
Canonical, además de mantener Ubuntu, también provee de una versión orientada
a servidores, Ubuntu Server, una versión para empresas, Ubuntu Business Desktop
Remix, una para televisores, Ubuntu TV, y una para usar el escritorio desde
teléfonos inteligentes, Ubuntu for Android.
Cada seis meses se publica una nueva versión de Ubuntu. Esta recibe soporte por
parte de Canonical durante nueve meses por medio de actualizaciones de
seguridad, parches para bugs críticos y actualizaciones menores de programas. Las
versiones LTS (Long Term Support), que se liberan cada dos años, reciben soporte
durante cinco años en los sistemas de escritorio y de servidor.
pág. 46
ESTRUCTURA Y COMPONENTES DEL SISTEMA - UBUNTU
Ubuntu internamente divide todo el software en cuatro secciones, llamadas
componentes, para mostrar diferencias en licencias y la prioridad con la que se
atienden los problemas que informen los usuarios. Estos componentes son: main,
restricted, universe y multiverse.
Por defecto se instalan paquetes de los componentes main y restricted. Los
paquetes del componente universe de Ubuntu generalmente se basan en los
paquetes de la rama inestable (Sid) y en el repositorio experimental de Debian.
● main: contiene solamente los paquetes que cumplen los requisitos de la
licencia de Ubuntu, y para los que hay soporte disponible por parte de su
equipo. Éste está pensado para que incluya todo lo necesario para la mayoría
de los sistemas Linux de uso general. Los paquetes de este componente
poseen ayuda técnica garantizada y mejoras de seguridad oportunas.
● restricted: contiene paquetes soportados por los desarrolladores de Ubuntu
debido a su importancia, pero que no está disponible bajo ningún tipo de
licencia libre para incluir en main. En este lugar se incluyen los paquetes tales
como los controladores propietarios de algunas tarjetas gráficas, como por
ejemplo, los de ATI y NVIDIA. El nivel de la ayuda es más limitado que para
main, puesto que los desarrolladores pueden no tener acceso al código
fuente.
● universe: contiene una amplia gama de programas, que pueden o no tener
una licencia restringida, pero que no recibe apoyo por parte del equipo de
Ubuntu sino por parte de la comunidad. Esto permite que los usuarios
instalen toda clase de programas en el sistema guardándolos en un lugar
aparte de los paquetes soportados: main y restricted
● multiverse: contiene los paquetes sin soporte debido a que no cumplen los
requisitos de software libre.
PLATAFORMAS SOBRE LAS QUE TRABAJA UBUNTU
En su última versión, Ubuntu soporta oficialmente dos arquitecturas de hardware en
computadoras personales y servidores: 32-bit (x86) y 64-bit (x86_64) Sin embargo,
extraoficialmente, Ubuntu ha sido portado a más arquitecturas: ARM, PowerPC,
SPARC e IA-64.
El 12 de marzo de 2009, Ubuntu anunció soporte para plataformas externas de
administración de computación en nube, como Amazon EC2.
pág. 47
PROCESO DE INSTALACIÓN DE UBUNTU
Requisitos:
Los requisitos mínimos –recomendados-, teniendo en cuenta los efectos de
escritorio, deberían permitir ejecutar una instalación de Ubuntu Server 12.04 LTS.

Procesador x86 a 700 MHz.

Memoria RAM de 512 Mb.

Disco Duro de 5 GB (swap incluida).

Tarjeta gráfica y monitor capaz de soportar una resolución de 1024x768.

Lector de DVD o puerto USB.

Conexión a Internet puede ser útil.
Para la instalación de Linux, ya sea de la distribución que sea, se necesita como
mínimo dos particiones: la principal, donde se instalará el sistema operativo,
formateada con el sistema de archivos que permita la distribución que vayamos a
instalar (ext2, ext3, ext4) y otra partición llamada swap (intercambio de memoria
virtual), esta partición es utilizada como memoria RAM virtual cuando tenemos
muchas aplicaciones abiertas y la memoria RAM de nuestro ordenador es
insuficiente, de tamaño del swap se suele poner el doble de la memoria RAM.
Los efectos de escritorio, proporcionados por Compiz, se activan por defecto en las
siguientes tarjetas gráficas:

Intel (i915 o superior, excepto GMA 500)

NVidia (con su controlador propietario o el controlar abierto incorporado
Nouveau)

ATI (a partir del modelo Radeon HD 2000 puede ser necesario el controlador
propietario fglrx)
Para una instalación óptima, y sobre todo si se dispone de más de 3 GiB de RAM,
existe también una versión de Ubuntu para sistemas de 64 bits.
Imágenes Oficiales:
Las imágenes ISO de Ubuntu se pueden descargar desde el sitio oficial
(http://www.ubuntu.com/), para elegir la versión Desktop o Server. También
mediante la compra directa en el sitio Ubuntu Shop con discos y pendrives con
pág. 48
Ubuntu instalado, o mediante los equipo de distribución LoCoTeam de cada país
que distribuye solo las versiones LTS.
Además de la descarga de imágenes ISO por descarga directa, también se puede
descargar a través de redes P2P como BitTorrent, reduciendo así la carga en los
servidores. Para ser grabados en DVD o unidades portátiles USB.
Otras instalaciones:
Wubi: Un instalador libre y oficial de Ubuntu para sistemas operativos Windows,
cuyo objetivo es permitir que los usuarios puedan instalar Ubuntu dentro de
Windows sin formatear o perder información. A partir de Ubuntu 13.04, se abandonó
el soporte para Wubi y no sería compatible desde esa versión en adelante, esto
también se suma a que en la versión anterior se había perdido compatibilidad con
Windows 8.
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.
LiveDVD personalizado: Existen herramientas como Reconstructor, UCK o
remastersys que permiten a cualquiera crear fácilmente un LiveDVD 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.
pág. 49
GESTIÓN DE PROCESOS Y DEL PROCESADOR - UBUNTU
En lo que se refiere a la gestión de procesos, Ubuntu tiene kernel preventivo y
soporta multiprocesamiento simétrico (SMP).
Hay dos espacios que identificamos en el círculo del proceso. El espacio del kernel
y el espacio de usuario. La gestión de procesos tiene lugar en el espacio del núcleo
o kernel.
Es importante tener en cuenta los siguientes aspectos:
● Kernel: es el corazón del sistema operativo. “Es responsable de mantener
todas las abstracciones importantes del sistema operativo, incluyendo la
memoria y los procesos virtuales” (Conceptos de Sistemas Operativos, p.
807).
● Librerías del sistema: Incluyen un conjunto de funciones que no necesitan
privilegios de kernel en aplicaciones para interactuar con el kernel.
● Utilidades del Sistema: Estos incluyen programas que llevan a cabo tareas
de administración individuales, por ejemplo, inicializar, configurar aspectos
del sistema. Además, existen los llamados “deamons”, que "pueden
ejecutarse en forma permanente, para el manejo de tareas como responder
a las conexiones de red entrantes, aceptar solicitudes de inicio de sesión de
terminal y la actualización de los archivos de registro" (Conceptos de
Sistemas Operativos, p. 815).
Procesos y Subprocesos
Los procesos e hilos no son tan diferentes en Linux. Tanto fork() y exec() son
usados para crear procesos. Los hilos son creados por el llamado al sistema
clone(). Clone() crea procesos hijos que permite utilizar la información compartida
con el proceso padre que a través de un conjunto de indicadores que se pasan.
Exec() es el llamado al sistema utilizado para crear un nuevo proceso.
Cada proceso que se inicia es referenciado con un número de identificación único
conocido como Process ID PID, que es siempre un entero positivo. Prácticamente
todo lo que se está ejecutando en el sistema en cualquier momento es un proceso,
incluyendo el shell, el ambiente gráfico que puede tener múltiples procesos, etc. La
excepción a lo anterior es el kernel en sí, el cual es un conjunto de rutinas que
residen en memoria y a los cuales los procesos a través de llamadas al sistema
pueden tener acceso.
pág. 50
Procesadores
La arquitectura de Linux en los procesadores amd e intel para la plataforma Ubuntu
y sus variantes son provistos por el kernel, los mismos están diseñados para
utilizarse independientemente que sea un procesador amd o intel. Estas
arquitecturas de los procesadores Intel x86 64 bits y AMD64 utilizan el mismo set
de instrucciones. Su diferencia prevalece en la instalación correcta del software de
Ubuntu haciendo eficiente su capacidad de procesamiento, su edición de texto,
película, juegos de computadora, entre otros.
pág. 51
Programación
UBUNTU Linux tiene dos algoritmos de proceso de programación separados. "Uno
es de tiempo compartido, un programa preferente justo entre varios procesos; el
otro está diseñado para tareas en tiempo real.
Los algoritmos de tiempo compartido son tres.
● SCHED_OTHER

SCHED_ BATCH
● SCHED_IDLE
Para los algoritmos de tiempo compartido, se utiliza el método estándar RoundRobin.
Los algoritmos en tiempo real son la FCFS y el Round-Robin, que fue descrito
anteriormente, con la adición de una prioridad a la de su clase de planificación.
Cuando dos procesos tienen la misma clase, la espera en la cola más larga tiene
una prioridad más alta. Para los proceso de diferente clase el uno con la clase del
hight tiene la mayor prioridad.
Sincronización Kernel
Las tareas pueden tratar de acceder a las mismas estructuras de datos internas.
Desde Ubuntu Linux son preventivas, si otra tarea con mayor prioridad está lista
para usar el tiempo de CPU, la tarea en ejecución se adelanta incluso si se ejecuta
en el kernel.
Con el fin de bloquear el kernel, Ubuntu proporciona spinlocks y semáforos. Para
las máquinas de multiprocesamiento simétrico, spinslocks son el mecanismo
fundamental. Esto no puede suceder en las máquinas de un solo procesador, ya
que sólo hay un tiempo de CPU y de bloqueo por períodos cortos, que es lo que
spinslocks hacen, tendrían gran impacto para el rendimiento del sistema. En lugar
de spinlocks, en las máquinas de un solo procesador, la capacidad preventiva está
activado y desactivado en su lugar.
El aspecto más importante en el mecanismo preventivo es lo que sucede con
interrups. En Ubuntu las interrupciones están priorizados y separados en dos partes.
La mitad superior de una y la mitad inferior de otra. Una forma de interrupción de la
primera clase puede interrumpir de una forma de la segunda clase, pero no puede
interrumpir a otro de la misma clase.
pág. 52
Multiprocessing (Multiprocesamiento)
Ubuntu incluye dentro de su sistema operativo el Linux kernel que se utiliza en varios
procesadores (desde la versión de Ubuntu 5, los cuales proveen a Ubuntu con un
avanzado entorno computacional donde el CPU demanda más poder tanto de RAM
como de tarjeta gráfica. El Linux kernel puede utilizar múltiples procesadores, los
cuales permiten que Ubuntu pueda ser utilizando ventajosamente en entornos
donde la demanda de CPU es mayor. Este kernel puede manejar hasta 16CPU o
un servidor de poco tamaño.
Multiprocessor support (“symmetric multiprocessing” or SMP) está disponible para
esta arquitectura. Ubuntu 12.04 tiene una imagen del núcleo que ha sido compilado
con SMP-alternatives. Esto significa que el núcleo detectará el número de
procesadores (o núcleos de procesador) y desactivará automáticamente SMP en
los sistemas mono-procesador.
GESTIÓN DE MEMORIA - UBUNTU
Gestión de la memoria es la eficiencia con la que se puede acceder a los datos.
Ubuntu mueve activamente los datos en un espacio rápidamente recuperable de
llamada de memoria de acceso aleatorio (RAM), incluso cuando los datos no están
en llamada.
Un equipo que utiliza Ubuntu no necesita un programa de desfragmentación. Linux,
que es la base de Ubuntu, organiza automáticamente los datos mediante el
almacenamiento de archivos en espacios que son lo suficientemente grandes para
contener, en lugar de dividirlos, o fragmentarlos.
pág. 53
GESTIÓN DE MEMORIA AUXILIAR (SECUNDARIA Y TERCIARÍA) Y SISTEMA
DE ARCHIVOS - UBUNTU.
El sistema operativo Linux Ubuntu, utiliza la memoria swap que está en una partición
aparte esta memoria puede ser utilizada por el CPU. Esta puede utilizar tres tipos
de memoria llevando una secuencia lineal a través de la misma en la cual la
memoria se utiliza la memoria RAM y al verse esta utilizada a capacidad pasaría a
utilizar la memoria swap. En el sistema Windows no existe dicha optimación así que
la memoria no se utiliza y se pierde. En el caso en el cual toda la memoria sea
utilizada por la memoria que esté en cache como última opción la memoria que está
destinada en el swap partition será utilizada.
Sistema de Archivos
El sistema de archivos de Ubuntu está basado en el Filesystem Hierarchy Standard.
Este es un estándar que con mayor o menor rigor siguen la mayoría de las
distribuciones GNU/Linux y algunos otros sistemas operativos basados en UNIX.
Algunas de sus principales características son:
● Todo está organizado en una única estructura de directorios. Todo está
dentro del directorio raíz, representado por el signo '/'.
● Todo es un archivo. Dentro de / está representado todo el sistema, los
directorios y archivos presentes en los discos duros y demás dispositivos de
almacenamiento montados, todo el hardware de la computadora, todos los
procesos en ejecución, etc...
pág. 54
● Cada cosa en su sitio y un sitio para cada cosa. Todos los directorios tienen
una finalidad concreta, todos los contenidos tienen una ubicación
predeterminada según su naturaleza y función.
Aunque todo aparente formar parte de un único sistema de archivos en realidad hay
varios. Además de los sistemas de archivo de disco que contienen los archivos
normales, incluye diversos sistemas de archivos virtuales que cumplen diversas
funciones.
Estructura de Directorios
Si listamos el contenido del directorio raíz desde la consola obtendremos algo
parecido a esto:






/bin → Aquí tenemos los programas básicos que pueden lanzar todos los
usuarios del sistema.
/boot → Aquí tenemos los archivos de configuración del arranque del
sistema (como por ejemplo GRUB), el Kernel y un disco RAM para el
arranque (initrd).
cdrom → Antiguamente aquí se montaban los CD-ROM's. Actualmente es
un enlace a /media/cdrom, está ahí por compatibilidad con programas
antiguos.
/dev → Aquí encontramos todos los dispositivos físicos del sistema (todo
nuestro hardware). La mayoría de su contenido es generado durante el
arranque.
o /dev/disk → contiene los archivos que representan los discos y sus
particiones.
o /dev/psaux → Representa al ratón.
o /dev/ram* → Representa la memoria RAM.
/etc → Aquí encontramos los archivos de configuración generales del
sistema y los programas.
/home → Es un directorio donde tenemos los directorios personales de los
usuarios.
o /home/ (usuario) → Es nuestro directorio personal. Aquí es donde
guardaremos nuestros documentos, música, películas, fotos y los
archivos de configuración personalizados de los programas que
usamos. También podemos referirnos a este directorio por su
abreviatura '~'
pág. 55














o ~/Desktop → Aquí tenemos nuestro escritorio.
initrd.img → Es un enlace a /boot/initrd-img-xxx, está ahí por
compatibilidad con programas antiguos.
/lib → Contiene las bibliotecas necesarias para que se ejecuten los
programas que tenemos en /bin y /sbin. Si usas un sistema de 64bits
tendrás un enlace lib64 que apunte a /lib.
/lost+found → Este directorio es usado por el programa fsck, cuando
fsck no puede reparar completamente un sistema de archivos, guarda
aquí todo lo que no sepa dónde ubicar.
/media → Aquí encontramos todas las unidades físicas que tenemos
montadas. Discos duros, unidades de dvd, pendrive,
/mnt → Este ha sido el lugar tradicional para montar unidades, ha
perdido gran parte de su función en favor de /media pero sigue siendo
útil para el montaje puntual de algunas cosas.
/opt → Es el lugar apropiado para la instalación de programas que no
forman parte de la distribución y que pueden no encajar bien en la
estructura de /usr
/proc → Su contenido representa a los procesos en ejecución. Aquí se
encuentran archivos que reciben o envían información al núcleo. Es un
sistema de archivos virtual, en realidad en el disco duro ese directorio
está vacío.
/root → Es el directorio personal del usuario root.
/sbin → Aquí se encuentran los ejecutables de los demonios (servicios)
instalados en el sistema.
/selinux → selinux es un sistema que extiende el sistema de permisos
típico de Unix.
/srv → Pensado para contener los archivos compartidos por los
servidores. No es muy usado.
/sys → Contiene información sobre el sistema y el kernel. Es un sistema
de archivos virtual, en realidad en el disco duro ese directorio está vacío.
/tmp → Este directorio contiene información temporal de los programas.
No se conserva su contenido, suele borrarse al arrancar el sistema.
/usr → Este directorio contiene los archivos de los programas no
esenciales. Es el directorio más grande del sistema.
o /usr/X11R6 → Aquí tenemos los programas de X-Window, el
servidor gráfico.
o /usr/bin → Aquí tenemos programas de uso general para los
usuarios.
o /usr/doc → Aquí tenemos documentación de los programas.
o /usr/etc → Aquí tenemos archivos de configuración de uso global.
pág. 56


o /usr/include → Aquí tenemos las cabeceras de C y C++. Son
archivos con extensión .h. Los programadores comprenderán su
significado.
o /usr/lib → Aquí tenemos las bibliotecas de nuestros programas.
o /usr/man → En este directorio encontramos los manuales (man).
o /usr/sbin → Este directorio contiene los ejecutables de los
demonios correspondientes a los programas de usuario.
o /usr/src → Aquí se almacenan los códigos fuentes de nuestros
programas.
/var → Este directorio contiene información variable, como registros,
datos de los servidores, etc.
vmlinuz → Suele ser un enlace a /boot/vmlinuz-xxx, está ahí por
compatibilidad con programas antiguos.
GESTIÓN DE ENTRADA Y SALIDA.
La biblioteca de E/S estándar proporciona una interfaz de flujo (stream) utilizando
un sistema de buffers (memoria intermedia) simple y eficiente. La entrada y la salida
se mapean en flujos lógicos de datos y las características físicas de E/S
permanecen ocultas para el programador. Las funciones y las macros se muestran
más adelante; para más información se puede recurrir a las páginas del manual
individuales para cada una de ellas.
Un flujo se asocia con un archivo externo (el cual debe estar en un dispositivo físico)
abriendo un archivo, el cual se supone que debe ser creado. Crear un archivo
existente hará que dicho archivo quede vacío. Si un archivo soporta posicionamiento
(como un archivo en disco, y en contraposición a lo que ocurre con un archivo de
terminal) entonces un marcador de posición asociado al flujo se situará al principio
del archivo (byte cero), a no ser que el archivo sea abierto en modo añadir (append).
Si se utiliza esta última modalidad de apertura, el marcador de posición será situado
al final del archivo. El indicador de posición se mantiene en sucesivas lecturas,
escrituras y reposicionamientos. Todas las entradas se hacen como si los
caracteres hubieran sido leídos mediante sucesivas llamadas a la función fgetc(3)
todas las salidas se producen como si todos los caracteres fueran leídos mediante
llamadas sucesivas a la función fputc(3)
Un archivo se desentiende de un flujo cerrando dicho archivo. Los flujos de salida
son descargados (toda el contenido de la memoria intermedia que no fue escrita al
pág. 57
archivo, se transmite en ese momento) antes de que el flujo se desentienda del
fichero. El valor de un puntero que apunta a un objeto FILE es indeterminado tras el
cierre del archivo.
Un archivo será reabierto repetidamente, por la misma u otras ejecuciones de un
programa, y sus contenidos serán leídos o modificados (si se puede reposicionar al
principio). Si la función main() retorna a quien llamo al programa, o se utiliza la
función exit(3) todos los archivos abiertos serán cerrados (consecuentemente todos
los flujos de salida serán descargados sobre sus respectivos ficheros) antes de que
se produzca el cierre efectivo del programa. Otras formas de terminar un programa
como abort(3) no se preocupan de cerrarlos apropiadamente.
Cuando el programa comienza, tres flujos de texto se inician por defecto y no
necesitan ser abiertas explícitamente — entrada estándar (para la lectura de la
entrada convencional), — salida estándar (para la escritura de la salida
convencional) — salida de error estándar (para la salida de diagnósticos). Estos
flujos se abrevian, respectivamente, como stdin, stdout y stderr. Una vez abierta, el
flujo de errores estándar no utiliza memoria intermedia totalmente; los flujos
estándar de entrada y salida lo harán solamente en el caso de que dichos flujos no
hagan referencia a un dispositivo interactivo.
Los flujos de salida que hacen referencia a dispositivos de tipo terminal, siempre
utilizan memorias intermedias lineales por defecto; durante la salida hacia cada flujo
se escribe automáticamente un flujo de entrada que hace referencia al dispositivo
terminal que lee. En los casos donde se requieren una enorme cantidad de cálculos,
después de imprimir parte de una línea en un terminal de salida, es necesario
efectuar una descarga de la memoria intermedia en el flujo de salida estándar
mediante fflush(3) antes de dejarlo y comenzar los cálculos para que la salida
aparezca.
La biblioteca stdio es parte de la biblioteca libc y las rutinas se cargan
automáticamente según son necesitadas por los compiladores cc(1) y pc(1). Las
secciones SINOPSIS de las siguientes páginas del manual indican que archivos de
cabecera (include) deben ser utilizados, en forma de la declaración de la función y
mostrando que variables externas resultan de interés.
pág. 58
Las siguientes están definidas como macros; estos nombres no deben ser
reutilizados sin eliminar primero sus definiciones actuales mediante #undef:
BUFSIZ, EOF, FILENAME_MAX, FOPEN_MAX, L_cuserid, L_ctermid,
L_tmpnam, NULL, SEEK_END, SEEK_SET, SEE_CUR, TMP_MAX, clearerr,
feof, ferror, fileno, fropen, fwopen, getc, getchar, putc, putchar, stderr, stdin,
stdout.Existenn versiones como función de las macros feof, ferror, clearerr, fileno,
getc, getchar, putc, y putchar y serán utilizadas si las definiciones de las macros
han sido eliminadas explícitamente.
DESCRIPCIÓN DE LOS DISPOSITIVOS DE ENTRADA Y SALIDA QUE
SOPORTA (LINUX)
En un sistema Linux la interacción final con dispositivos la realizan los controladores
o el kernel (núcleo). Dicho de otra forma, un dispositivo sólo podrá ser usado si el
kernel lo soporta o si existe un controlador capaz de controlarlo y si se configura
apropiadamente para hacerlo. Por esto, los dispositivos que se produzcan hoy, no
pueden ser operados con controladores ya existentes (a menos que los dispositivos
hayan sido diseñados para ser operados con éstos, caso que para algunos
dispositivos como tarjetas de sonido, tarjetas de vídeo o modems es poco común),
por esto mismo, eventualmente, si actualiza el hardware de su computador o si
desea usar un cierto servicio del kernel, también deberá actualizar algún módulo o
eventualmente el kernel completo. Aunque algunos controladores autodetectan la
configuración del dispositivo, esto no siempre ocurre y en algunos casos tendrá que
probar, hasta hacer funcionar el módulo que maneja el dispositivo (en estas pruebas
la documentación del dispositivo y la del módulo serán de utilidad. Si desea
experimentar rápidamente emplee modconf).
Las fuentes en C de cada versión del kernel cuentan con controladores para
diversos dispositivos. Cuando se compila una versión, algunos de esos
controladores pueden unirse con el kernel mismo (estáticamente), otros pueden
dejarse como módulos para cargarse/descargarse cuando la parte estática del
kernel esté operando, otros pueden ser excluidos del proceso de compilación (y por
lo tanto no podrán ser usados ni cuando el kernel esté operando).
El núcleo Linux ha sido criticado con frecuencia por falta de controladores para cierto
hardware de computadoras de escritorio. Sin embargo, el progresivo incremento en
la adopción de Linux en el escritorio ha mejorado el soporte de hardware por parte
de terceros o de los propios fabricantes, provocando que, en los últimos años, los
problemas de compatibilidad se reduzcan.
pág. 59
Empresas como IBM, Intel Corporation, Hewlett-Packard, Dell o MIPS Technologies
tienen programadores en el equipo de desarrolladores del núcleo Linux que se
encargan de mantener los controladores para el hardware que fabrican. Este grupo
de programadores también se le suman los que provee grandes distribuidores de
soluciones Linux como Novell o Red Hat.
Actualmente 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 prevolcados (detenidos
momentáneamente por actividades más importantes) bajo ciertas condiciones. Esta
habilidad fue agregada para gestionar correctamente interrupciones de hardware, y
para mejorar el soporte de multiprocesamiento simétrico.
GESTIÓN DE COMUNICACIONES Y SEGURIDAD - UBUNTU
En Ubuntu el manejo de comunicaciones se promueve a través del manejo de los
controladores y el kernel, el kernel es el componente más importante del sistema
operativo el cual permite que haya manejo o comunicación de memoria, procesos,
archivos, entradas y salidas, es el encargado de que el software y el hardware
trabajen juntos. En el kernel hay varios controladores o módulos que
individualmente comprenden una función dentro de los sistemas operativos, estos
pág. 60
son asignados según la tarea que conlleve el sistema operativo actual mente. Cada
versión del kernel en Ubuntu controla diversos dispositivos cuando una versión es
compilada algunos de estos controladores pueden unirse al kernel mismo
estáticamente, otros pueden permanecer como módulos para cargarse o
descargarse y otros pueden ser excluidos del proceso de compilación de alguna
función del sistema operativo debido a que no conllevan utilidad alguna en el
proceso que se está llevando acabo y por lo tanto no serán utilizados ni cuando el
kernel esté operando. Las funciones de los módulos en el sistema operativo en
cuanto la comunicación entre el software y hardware a través son:
1. Asegurar que no haya conflictos entre dispositivos y conocer la configuración
que usa cada componente. Algunos controladores tienen la capacidad de
detectar automáticamente la configuración del dispositivo y otros no.
2. Encontrar un módulo que pueda manejar el dispositivo.
3. Brindar opciones al módulo de acuerdo a las necesidades del dispositivo.
En fin Ubuntu promueve unas capacidades extraordinarias en cuanto el manejo y
comunicación de los dispositivos de hardware y software trayendo un ambiente
eficiente al usuario cuando lo utiliza y lleva a cabo las tareas en el mismo.
pág. 61
Seguridad
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
supuestamente 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 SwitchUser 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. Desde
la versión 5.04, se utiliza UTF-8 como codificación de caracteres predeterminado.
No sólo se relaciona con Debian por el uso del mismo formato de paquetes .deb.
También tiene uniones con esa comunidad, aunque raramente contribuyendo con
cualquier cambio directa e inmediatamente, o sólo anunciándolos. Esto sucede en
los tiempos de lanzamiento. La maryoría de los empaquetadores de Debian son los
que realizan también la mayoría de los paquetes importantes de Ubuntu.
Usuarios y claves
Uno de los pilares básicos de la solidez de los sistemas GNU/Linux es su potente
gestión de usuarios y de permisos.
Las cuentas de usuario aseguran la privacidad de la información, el correcto reparto
de privilegios en el sistema y minimizan los efectos en caso de un fallo de la
seguridad. Un buen sistema de usuarios claves es la base de una firme seguridad.
Existen varios tipos de cuentas de usuario que dan diferentes niveles de acceso
para el uso y administración del sistema. Una cuenta con más permisos de los
necesarios también implica más riesgos de los necesarios.
1. Usuario con permisos administrativos
Este es el usuario que se crea durante la instalación del sistema, tiene permiso para
usar todas las aplicaciones instaladas, guardar o modificar contenidos en su carpeta
personal y puede asumir temporalmente las funciones de administrador mediante la
orden sudo.
Este es el usuario indicado para el trabajo diario y la administración de sistemas de
escritorio habituales.
pág. 62
2.
Usuario sin permisos administrativos
Este es el tipo de usuarios que se crean desde el menú Sistema - Administración Usuarios y grupos, tiene permiso para usar todas las aplicaciones y guardar o
modificar informaciones en su carpeta personal. No podrá ejercer tareas
administrativas ni usar el comando sudo.
3.
Usuario invitado
Esta cuenta, presente en Ubuntu y en algunas otras distribuciones permite el acceso
al sistema con un usuario sin privilegios, carece de contraseña y permite el uso de
la mayoría de aplicaciones, pero no guardar o modificar datos ni por supuesto
asumir tareas administrativas. (Podrá guardar datos pero éstos se perderán al cerrar
la sesión).
Este tipo de cuenta es muy útil en ordenadores de acceso público, demostraciones,
o cualquier situación en la que quieras que alguien pueda usar el sistema sin alterar
nada.
4.
Usuario root
Este es el usuario administrativo tradicionalmente usado en todas las distribuciones
GNU/Linux, sin embargo en Ubuntu se ha desactivado esta cuenta y en su lugar se
usa el comando sudo.
Las ventajas del uso de sudo frente a root son: minimizar la posibilidad de desastres
por descuido al estar la cuenta administrativa activa durante menos tiempo, hacer
más consciente al usuario de qué acciones entrañan peligro y cuales no o
acostumbrarse a usar permisos administrativos sólo cuando son estrictamente
necesarios, entre muchas otras razones.
Algunos usuarios no acostumbrados al modo de trabajar de Ubuntu insisten en la
activación de esta cuenta (poniendo en peligro la seguridad del sistema).
Permisos y grupos
Todos de los sistemas de ficheros comunes en GNU/Linux soportan un completo
sistema de permisos, que asigna a cada archivo/directorio: un propietario, un grupo
y permisos de lectura (r) / escritura (w) / ejecución (x) independientes para el
propietario, el grupo y el resto de usuarios.
pág. 63
Repositorios seguros
Los repositorios son las fuentes de las que distribuciones como Ubuntu obtienen el
software, usar repositorios inseguros o no autentificados podría resultar en la
entrada de software malicioso en nuestro sistema.
El Cortafuegos
Entre las muchas funciones de un cortafuegos está la de aumentar la seguridad de
nuestras conexiones de red aplicando filtros que analizan la procedencia, destino,
puerto y otros datos relacionados con dichas conexiones.
SeLinux / AppArmor
Es una capa extra de seguridad, capaz de confinar procesos, aplicaciones y/o
usuarios, siguiendo unas políticas de seguridad preestablecidas, impidiendo de esta
manera que se excedan en sus funciones o que se use software malintencionado
para explotar sus potenciales vulnerabilidades.
pág. 64
SOPORTE A TIEMPO REAL - UBUNTU
Ubuntu proporciona versiones pre-compiladas del kernel para 32 y los procesadores
de 64 bit. Para cada arquitectura, ellos pueden compilar un kernel genérico, que
funciona bien para la mayoría de los usos, un server kernel que está optimizado
para el uso del servidor, un núcleo pre-empt, osea núcleo en tiempo real, diseñado
para su uso en low latency servers y un kernel rt para los tiempos cuando la
respuesta instantánea es más importante que el uso equilibrado (como en el
profesional de audio / visual de grabación y edición). También hay un kernel
especial, llamado virtual, disponible para su uso en máquinas virtuales. Estas están
disponibles en el repositorio de Ubuntu.



Generic kernel - este es el núcleo de serie que se proporciona en Ubuntu.
Low Latency kernel (preempt kernel) - basado en el genérico-árbol de
fuentes del núcleo, pero utiliza una configuración más agresiva para reducir
aún más la latencia. También conocida como un suave núcleo en tiempo real.
Real Time kernel (rt kernel ) - se basa en el árbol de fuentes del kernel de
Ubuntu con Ingo Molnar mantenido PREEMPT_RT parche aplicado.
También conocido como un duro núcleo en tiempo real. Este es utilizado en
Ubuntu Studio el cual es utilizado para uso científico, producción de autio y
uso industrial.
Por el momento sólo los tres primeros núcleos están disponibles a través de
archivos oficiales de Ubuntu.
ESTADÍSTICAS DE UTILIZACIÓN MUNDIAL - UBUNTU.
Como se puede ver en el gráfico a continuación, un examen minucioso de los datos
de DistroWatch, un sitio que publica a diario el ranking de distribuciones de Linux
en base a los accesos a cada página web, revela que la más popular de todas,
Ubuntu, no pasa por buenos momentos.
pág. 65
Ha habido mucha controversia alrededor de Unity (aunque también la ha habido con
Gnome Shell), la interfaz desarrollada por Canonical y que Ubuntu ha incluido como
parte integral de su sistema operativo.
La medición "cuota de mercado" puede resultar inservible ya que es un concepto
basado en ventas comerciales (unidades materiales vendidas). Por otro lado Linux
es utilizado frecuentemente en servidores con acceso público desde Internet por lo
que la cuota de mercado es extremadamente inferior a la cuota de uso. Baste notar,
p.ej, que Facebook, Gmail, LinkedIn o Yahoo funcionan sobre servidores
GNU/Linux, de forma que aun cuando estemos accediendo desde un navegador
ejecutándose en Windows/Mac, la aplicación real se está ejecutando en servidores
Linux y los datos están almacenándose igualmente en dichos servidores.
SOPORTE PARA LA NUBE E INTEGRACIÓN A ELLA (CLOUD COMPUTING) UBUNTU
Ubuntu One es un servicio de alojamiento de archivos, integrado con el entorno de
escritorio del sistema operativo Ubuntu, enfocado a la copia de seguridad y a la
sincronización de archivos e información entre computadores conectados a Internet.
Canonical ha anunciado que a partir del 1 de Junio del 2014 el servicio será dado
pág. 66
de baja, ya que los costos de competir en la nube son muy altos comparados con la
oferta gratuita de la competencia.
ANÁLISIS COMPARATIVO ENTRE PLATAFORMA TRADICIONAL Y EL
SMARTPHONE (UBUNTU).
Si comparamos la compatibilidad de hardware, en este caso Windows 8 si supera a
Ubuntu 13.10. La mayoría de los fabricantes ya tienen controladores compatibles
con Windows 8 y además, la mayoría de controladores creados para Windows 7
también funcionan en Windows 8. En cambio en Ubuntu seguimos teniendo algunos
problemas de controladores. Aun así, cada vez se dan menos problemas. Una de
los puntos a favor que tenemos en Ubuntu en el tema de los controladores, es que
no necesitamos instalar ningún controlador. La mayoría de los controladores los
tenemos dentro del propio kernel de Linux por lo que es plug and play. En cambio
en Windows 8 sí que necesitaremos estar descargando los controladores de la web
del fabricante.
Si para vosotros es importante la velocidad de encendido y apagado, Ubuntu 13.10
arranca a una velocidad bastante mayor a la de Windows 8. Si comparamos el
apagado, aquí no hay color. En Windows 8 tarda una barbaridad, y si encima se
están instalando actualizaciones, podemos esperar hasta 5 minutos para que se
apague el ordenador. En Ubuntu 13.10 esto no pasa. Las actualizaciones se instalan
y descargan mientras tenemos el ordenador encendido y nunca mientras estamos
encendiendo o apagando.
En general, Ubuntu 13.10 Saucy Salamander es bastante superior a Windows 8 en
la mayoría de los aspectos. Rápido, sencillo y dinámico. Windows 8 es un sistema
operativo muy bonito, con grandes efectos pero que resulta muy tosco de manejar.
pág. 67
RED HAT
Presentación
Red Hat Software Inc. fue fundada en 1994 por Bob Young y MarcEwing. Su
principal objetivo era compilar y comercializar una distribución GNU/Linux, que vino
a llamarse Red Hat Linux. Básicamente, se trataba de una versión empaquetada de
lo que existía en aquellos tiempos, incluyendo documentación y soporte. Durante el
verano de 1995, la versión 1.0 de esta distribución vio fue lanzada. Unos meses
más tarde, se publicó la versión 2.0, que incluía la tecnología RPM (RPM Package
Manager, gestor de paquetes RPM). El sistema de paquetes RPM se ha convertido
en un estándar para los paquetes de sistemas GNU/Linux. 1998 fue el año en el
que Red Hat llegó al gran público con la versión 5.2.
Red Hat Inc. no sólo es conocida por su distribución de software basada en Linux.
En agosto de 1999, Red Hat salió a bolsa y sus acciones obtuvieron la octava
ganancia de primer día más grande en toda la historia de Wall Street. Aun así, sus
comienzos exitosos en el mercado de valores sirvieron para que Red Hat fuera
portada en periódicos y revistas no directamente relacionadas con temas
informáticos. En cualquier caso, parece ser que Red Hat ha sabido superar los
problemas de otras compañías del mundo de los negocios en torno al software libre
y anunció números negros por primera vez en su historia en el último cuarto del año
2002.
Otro de los hechos históricos más importantes de Red Hat fue la adquisición en
noviembre de 1999 de Cygnus Solutions, una empresa fundada una década antes
y que ya había demostrado cómo con una estrategia integral basada en software
libre se puede ganar dinero.
En septiembre de 2003, Red Hat decidió concentrar sus esfuerzos de desarrollo en
la versión corporativa de su distribución y delegó la versión común a Fedora Core,
un proyecto abierto independiente de Red Hat. En junio de 2006 Red Hat adquirió
la compañía JBoss Inc, siendo así responsable del desarrollo del servidor más
importante de aplicaciones J2EE de código abierto.
pág. 68
ESTRUCTURA Y COMPONENTES DEL SISTEMA – RET HAT
Red Hat Enterprise Linux utiliza la estructura del sistema de archivos Estándar de
Jerarquía de Sistemas de archivos (FHS del inglés Filesystem Hierarchy Standard),
un documento que define los nombres, la ubicación y los permisos de muchos tipos
de archivos y directorios.
Estructura de Directorios FHS en Red HAT Enterprise 6
El directorio / boot /
Contiene archivos estáticos requeridos para arrancar el sistema, tales como el
kernel de Linux. Estos archivos son esenciales para que el sistema arranque
correctamente.
El directorio / dev /
Contiene los nodos de dispositivos que, o bien representan a los dispositivos que
están conectados al sistema o los dispositivos virtuales que son proporcionados por
el núcleo. Estos nodos de dispositivo son esenciales para que el sistema funcione
correctamente.
El directorio / etc /
Aqui residen los archivos de configuración del sistema, son usados por el
administrador y/o otros programas para almacenar y leer datos que alteran de una
u otra forma su funcionamiento.
El directorio /lib/
Contiene las bibliotecas (libraries) necesarias para ejecutar los binarios en /bin/ y en
/sbin/. Estas imágenes de bibliotecas compartidas son particularmente importantes
para arrancar el sistema y ejecutar comandos en el sistema de archivos raíz.
El directorio /media/
Contiene los subdirectorios utilizados como puntos de montaje para los medios
removibles tales como usbs, DVDs, CD-ROMs y discos Zip.
El directorio /mnt/
Está reservado para sistemas de archivos montados temporalmente tales como
montajes de sistemas de archivos NFS. Para toda los medios removibles utilice el
directorio /media/. Los medios removibles detectados automáticamente serán
montados en el directorio /media.
El directorio /opt/
pág. 69
Proporciona un área para almacenar paquetes de software de una aplicación. Un
paquete que coloca archivos en el directorio /opt/ crea un directorio con el mismo
nombre del paquete. Este directorio a su vez, guarda archivos que de otra forma
estarían esparcidos por el sistema de archivos, dándole así al administrador del
sistema una forma fácil de determinar el papel de cada archivo dentro de un paquete
particular.
El directorio /proc/
Contiene archivos especiales que o bien extraen información del kernel o bien la
envían a éste. Algunos ejemplos son la memoria del sistema, información sobre la
cpu, configuración del hardware, etc.
El directorio / sbin /
Almacena los ejecutables usados por el usuario root. Los ejecutables en / sbin / se
utilizan en el arranque de la administración del sistema y para realizar las
operaciones del sistema de recuperación.
El directorio /srv/
Contiene datos específicos al sitio proporcionados por su sistema ejecutando Red
Hat Enterprise Linux. Este directorio le dá a los usuarios la ubicación de los archivos
de datos para un servicio en particular tal como FTP, WWW o CVS. Los datos que
sólo pertenecen a un usuario específico deben ir en el directorio /home/.
El directorio /sys /
Utiliza el nuevo sistema de archivos virtual sysfs específico al kernel 2.6. Ahora con
el soporte más extendido para los dispositivos de conexión en caliente (hot plug) en
el kernel 2.6, el directorio /sys/ contiene información similar a la que se encuentra
en /proc/, pero muestra una vista jerárquica de la información de dispositivos
específica con relación a los dispositivos de conexión en caliente.
El directorio /usr/
Es para archivos que puedan ser compartidos a través de muchas máquinas. El
directorio /usr/ habitualmente tiene su propia partición y se monta en sólo lectura.
Bajo el directorio /usr/, el subdirectorio bin/ contiene ejecutables, el directorio etc/
contiene archivos de configuración del sistema, games es para juegos, include/
contiene los archivos de cabecera C, kerberos/ contiene binarios y otros archivos
relacionados con Kerberos y lib/ contiene archivos objeto y bibliotecas que no están
diseñadas para ser utilizadas directamente por usuarios o scripts de shell. El
directorio libexec/ contiene pequeños programas de ayuda llamados por otros
programas, sbin/ es para los binarios de administración del sistema (aquéllos que
no pertenecen al directorio /sbin/), share/ contiene archivos que no son de una
arquitectura específica, src/ es para código fuente.
pág. 70
El directorio /var /
Ya que el FHS requiere que Linux sea para montar / usr / en modo sólo lectura,
cualquier programa que escriba archivos log o que necesite spool / o lock /
directorios deben escribirlos en el directorio / var / directorio. Los estados FHS / var
/ es para: Archivos de datos variables. Esto incluye archivos y directorios spool,
datos de administración, de registro y archivos temporales y transitorios.
SISTEMA DE ARCHIVOS – RET HAT
Red Hat Enterprise Linux incluye soporte para muchos sistemas de archivos
populares, haciendo posible acceder fácilmente a los sistemas de archivos de otros
sistemas operativos. Esto es particularmente útil en un escenario de arranque dual
y cuando se migren archivos desde un sistema operativo a otro.
Los sistemas de archivos soportados incluyen:






EXT2
EXT3
NFS
ISO 9660
MSDOS
VFAT
En las diferentes versiones Red Hat Enterprise 5 el sistema de archivos por defecto
era el EXT 3, sin embargo las versiones 6 de este sistema vienen por defecto en
EXT4, y las versiones orientadas a sistemas escalables utilizan NFS ya que permite
mayor almacenamiento de datos.
PLATAFORMAS SOBRE LAS QUE TRABAJA – RET HAT
Arquitecturas Soportadas

X86

X86_64

System z

PPC64
pág. 71
PROCESO DE INSTALACIÓN
El proceso se debe llevar a cabo instalando desde los componentes base hasta el
manejo de los datos.
INSTALACIÓN BASE
El primer paso es la instalación del sistema operativo base, ya sea desde un disco,
una imagen ISO o mediante kickstart, durante el proceso se debe asegurar de:
Asignar suficiente espacio a la partición de almacenamiento de datos. La ubicación
por defecto para los paquetes de canal es /var/satellite. Se debe recordar que para
el servidor satélite de RHN con la Embedded Database la base de datos RPM va
en la partición /opt, mientras que la base de datos misma está construida en /rhnsat.
Activar NTP (Protocolo de tiempo para red) en el Satélite y en la base de datos
independiente en caso de que ésta exista. Seleccione además la zona horaria
apropiada. Todos los sistemas cliente deben estar ejecutando el demonio ntpd y
estar configurados en la zona horaria correcta.
Debido a complicaciones potenciales, es altamente recomendable que la partición
/home/ sea montada localmente.
INSTALACIÓN DEL SERVIDOR
a) Iniciar como root#
b) Insertar el CD del Servidor que contiene los archivos de instalación.
c) Si está realizando una instalación desde el CD, Red Hat Enterprise Linux puede
automontar el CD. Si éste es el caso, el CD será montado en el directorio
/media/cdrom/.
d) Si Red Hat Enterprise Linux no monta el CD automáticamente, se puede montar
el CD al directorio /media/cdrom/ con el comando siguiente:
i.
mount /dev/cdrom /media/cdrom
ii.
Si se utilizan imágenes ISO para la instalación, se deben montar desde el
directorio que las contenga usando el comando:
iii.
mount -o loop nombre_archivo_iso /media/cdrom
El resto de instrucciones asumen que /mnt/cdrom/ es el directorio de montaje.
pág. 72
Controles Extra
Si es requerimiento del usuario a partir de instalar los 2 elementos anteriores se
puede agregar elementos como aplicaciones de Monitorin o sondeos MySQL
tomándolos como ejemplo.
GESTIÓN DE PROCESOS Y DEL PROCESADOR – RET HAT
En versiones anteriores de Red Hat Enterprise Linux, el kernel utiliza un mecanismo
basado en el temporizador que produce continuamente una interrupción del
sistema. Durante cada interrupción, el sistema sondea; es decir, se comprueba para
ver si había trabajo por hacer.
Dependiendo de la configuración, esta interrupción del sistema o el temporizador
podrían ocurrir varios cientos o varios miles de veces por segundo. Esto sucedió
cada segundo, independientemente de la carga de trabajo del sistema. En un
sistema con poca carga, este impacto el consumo de energía al evitar que el
procesador de la utilización eficaz de los estados de suspensión. El sistema utiliza
la menor cantidad de energía cuando está en un estado de sueño.
La manera más eficiente de la energía para hacer un sistema funcionar es hacer el
trabajo lo más rápido posible, entrar en el estado de sueño profundo y dormir todo
el tiempo posible. Para implementar esto, Red Hat Enterprise Linux 6 utiliza un
kernel sin intervalo. Con esto, el contador de tiempo de interrupción se ha quitado
de un bucle vacío, transformando Red Hat Enterprise Linux 6 en un entorno
completamente impulsado por interrupciones.
El kernel sin intervalo permite que el sistema entre en estados de sueño profundo
durante los tiempos de inactividad, y responder rápidamente cuando hay trabajo por
hacer.
El programador es responsable de mantener las CPUs en el sistema ocupado. El
planificador de Linux implementa una serie de políticas de planificación, que
determinan cuándo y por cuánto tiempo un hilo se ejecuta en un núcleo de la CPU
en particular.
pág. 73
Políticas de planificación se dividen en dos categorías principales:
Políticas en tiempo real

SCHED_FIFO

SCHED_RR
Políticas normales

SCHED_OTHER

SCHED_OTHER

SCHED_IDLE
GESTIÓN DE MEMORIA – RET HAT
Las direcciones de memoria física se traducen a direcciones de memoria virtual
como parte de la gestión de memoria. La relación de mapeado físico de direcciones
virtuales se almacena en una estructura de datos conocida como la tabla de
páginas. Dado que la lectura de la tabla de páginas para cada asignación de
dirección sería largo y costoso de los recursos, hay una caché para las direcciones
utilizadas recientemente. Esta caché se denomina traducción de direcciones Buffer
(TLB).
Sin embargo, el TLB sólo puede almacenar en caché un determinado número de
asignaciones en las direcciones. Si una asignación de dirección solicitada no se
encuentra en el TLB, la tabla de la página todavía se debe leer para determinar la
asignación de la dirección física a virtual. Esto se conoce como un "Miss TLB”. Las
aplicaciones con grandes requisitos de memoria son más propensos a ser afectados
por el área de la TLB de las aplicaciones con requisitos mínimos de memoria debido
a la relación entre sus requisitos de memoria y el tamaño de las páginas utilizadas
para correlaciones de dirección de la memoria caché en la TLB . Dado que cada
uno se pierda implica la lectura de la tabla de páginas, es importante para evitar
estos fallos siempre que sea posible.
La enorme traducción de direcciones de búfer (HugeTLB) permite que la memoria
se gestiona en segmentos muy grandes para que más asignaciones de direcciones
se pueden almacenar a la vez. Esto reduce la probabilidad de errores de TLB, que
a su vez mejora el rendimiento en aplicaciones con grandes requisitos de memoria.
La memoria se gestiona en bloques conocidos como páginas. Una página es de
4096 bytes. 1 MB de memoria es igual a 256 páginas; 1 GB de memoria es igual a
pág. 74
256.000 páginas, etc CPU tienen una unidad de la gerencia de la memoria que
contiene una lista de estas páginas, con cada página de referencia a través de una
entrada de la tabla de páginas.
Hay dos modos de activar el sistema para gestionar grandes cantidades de
memoria:

Aumentar el número de entradas de la tabla de páginas en la unidad de
gestión de memoria de hardware

Aumentar el tamaño de la página

El primer método es caro, ya que la unidad de gestión de memoria de hardware en
un procesador moderno sólo es compatible con cientos o miles de páginas entradas
de la tabla. Además, los algoritmos y hardware de administración de memoria que
funciona bien con miles de páginas (megabytes de memoria) pueden tener
dificultades para realizar bien con millones (o incluso miles de millones) de las
páginas. Esto da lugar a problemas de rendimiento: cuando una aplicación necesita
utilizar más páginas de memoria que los soportes de la unidad de gestión de
memoria, el sistema vuelve a caer más lento, la gestión de memoria basada en
software, lo que hace que todo el sistema funcione más lentamente.
Red Hat Enterprise Linux 6 implementa el segundo método mediante el uso de
páginas grandes.
En pocas palabras, las enormes páginas son bloques de memoria que vienen en 2
MB y 1 GB de tamaño. Las tablas de páginas utilizadas por las páginas de 2MB son
adecuados para la gestión de múltiples gigabytes de memoria, mientras que las
tablas de página de las páginas de 1GB son los mejores para escalar a terabytes
de memoria.
Las páginas grandes se deben asignar en el arranque. También son difíciles de
manejar de forma manual, ya que a menudo requieren cambios importantes en el
código con el fin de ser utilizados con eficacia. Como tal, Red Hat Enterprise Linux
6 también implementó el uso de páginas grandes transparentes (THP). THP es una
capa de abstracción que automatiza la mayoría de los aspectos de la creación, la
gestión y el uso de páginas grandes.
pág. 75
THP esconde gran parte de la complejidad en el uso de páginas grandes de los
administradores de sistemas y desarrolladores. Como el objetivo de la THP está
mejorando el rendimiento, sus desarrolladores (tanto de la comunidad y Red Hat )
han probado y optimizado THP través de una amplia gama de sistemas ,
configuraciones , aplicaciones y cargas de trabajo. Esto permite que la configuración
predeterminada de THP para mejorar el rendimiento de la mayoría de las
configuraciones del sistema.
GESTIÓN DE ENTRADA Y SALIDA – RET HAT
Red Hat Enterprise Linux 6 introduce una serie de mejoras en el rendimiento de la
pila de E/S:
Los discos de estado sólido (SSD) son ahora reconocidos automáticamente y el
rendimiento del planificador de E S está sintonizado para aprovechar el alto de E/S
por segundo (IOPS) de que estos dispositivos pueden realizar.
Deseche se ha añadido soporte para el Kernel reportar rangos de bloques no
utilizados al almacenamiento subyacente. Esto ayuda a los SSD con sus algoritmos
de nivelación de desgaste. También ayuda almacenamiento que soporta el
aprovisionamiento de bloque lógico (una especie de espacio de direcciones
virtuales para el almacenamiento), manteniendo un control más cercano sobre la
cantidad real de almacenamiento en uso.
La implementación del sistema de archivos barrera fue reacondicionado en Red Hat
Enterprise Linux 6.1 para que sea más rendimiento.
pdflush ha sido sustituido por hilos máquina de enjuague por - respaldo del
dispositivo , lo que mejora en gran medida la escalabilidad del sistema en
configuraciones con grandes LUN cuenta.
pág. 76
SOPORTE A TIEMPO REAL
Las ejecuciones en tiempo real están programadas en primer lugar, y los hilos
normales se programan después de todas las ejecuciones en tiempo real se han
programado.
Las políticas en tiempo real se utilizan para tareas de tiempo crítico que debe
completar sin interrupciones.
SCHED_FIFO
Esta política también se conoce como programación de prioridad estática, porque
define una prioridad fija (entre 1 y 99) para cada hilo. El planificador escanea una
lista de temas SCHED_FIFO en orden de prioridad y programa la más alta prioridad
del hilo que está listo para funcionar. Este hilo se ejecuta hasta que se bloquea,
salidas, o sea invalidada por un hilo de mayor prioridad que está listo para funcionar.
Incluso el hilo en tiempo real de menor prioridad se programará por delante de
cualquier tema con una política no en tiempo real; si existe sólo un hilo en tiempo
real, el valor de prioridad SCHED_FIFO no importa.
SCHED_RR
Es una variante de round-robin de la política SCHED_FIFO. También se dan las
discusiones SCHED_RR una prioridad fija entre 1 y 99. Sin embargo, las
discusiones con la misma prioridad se programan estilo round- robin en un
determinado quantum, o porción de tiempo. El sched_rr_get_interval (2) llamada al
sistema devuelve el valor de la porción de tiempo, pero la duración de la porción de
tiempo no se puede ajustar por un usuario. Esta política es útil si necesita hilo
múltiple para funcionar con la misma prioridad.
pág. 77
SOPORTE PARA LA NUBE E INTEGRACIÓN A ELLA (CLOUD COMPUTING) –
RET HAT
Red Hat Enterprise Linux OpenStack Platform, es actualmente una solución basada
en la nube para las organizaciones, donde se proporciona una base flexible y segura
para crear una cloud pública o privada completamente escalable. Dado que
OpenStack depende de Linux, se encuentra en una posición única para mantener
la integridad y la interoperabilidad tanto de la base de Red Hat Enterprise Linux
como de la tecnología OpenStack de Red Hat.
Ventajas:

Implementar cargas de trabajo basadas en cloud, respetando sus plazos y
condiciones, y según sus cargas de trabajo y aplicaciones lo requieran.

Mejorar los acuerdos de nivel de servicio (SLA) con una prestación de
servicios más rápida. Red Hat Enterprise Linux OpenStack Platform
proporciona el rendimiento, la seguridad y la escalabilidad de Red Hat
Enterprise Linux, permitiéndole centrarse en ofrecer a sus clientes los
servicios que demandan, en lugar de en la plataforma operativa subyacente.

Evite la dependencia de un único proveedor cambiando a tecnologías
abiertas al tiempo que mantiene las inversiones existentes en infraestructura.

Benefíciese de una amplia compatibilidad con aplicaciones. Red Hat
Enterprise Linux ejecutado como máquinas virtuales de huéspedes
proporciona una plataforma de desarrollo de aplicaciones estable con las
certificaciones de partner de distribuidores de software independientes (ISV),
lo que le permite garantizar la compatibilidad e introducir sus aplicaciones en
el mercado con mayor rapidez.

Lleve la seguridad al entorno en cloud. Confíe en las tecnologías de
contenedores y la seguridad de calidad militar de SELinux de Red Hat
Enterprise Linux para evitar intrusiones y proteger sus datos en clouds
públicas y privadas.
pág. 78
FEDORA
PRESENTACIÓN
Fedora es un sistema operativo basado en Linux, una colección de software que
hace funcionar las computadoras. Se puede utilizar Fedora junto a, o como
reemplazo de, otros sistemas operativos, como Microsoft Windows™ o Mac OS X™.
El sistema operativo Fedora es libre y gratuito para disfrutar y compartir.
Proyecto Fedora es el nombre de una comunidad de personas en todo el planeta
que aman, utilizan y construyen software libre. Trabajando como comunidad,
nuestra intención es liderar la creación y la distribución tanto de código como de
contenidos libres. Fedora es patrocinado por Red Hat, el proveedor de tecnología
de código abierto más confiable en todo el mundo. Red Hat invierte en Fedora para
estimular la colaboración y la innovación en tecnologías de software libre.
¿QUÉ HACE A FEDORA DIFERENTE?
Proyecto fedora cree en el valor del software libre, y lucha para proteger y promover
soluciones que cualquiera pueda utilizar y redistribuir. No solo el sistema operativo
Fedora ha sido realizado gracias al software libre, sino que se utilizó exclusivamente
software libre para hacerlo llegar a usted.
Además, proyecto fedora cree en el poder de la colaboración. Nuestros
desarrolladores trabajan con equipos de proyectos de software libre alrededor del
mundo a quienes se denominan la "rama desarrollo". Estos equipos crean la gran
mayoría del software que constituye Fedora. Colaboramos de manera estrecha con
ellos de modo que todos podamos beneficiarnos con su trabajo, y podamos acceder
lo más rápido posible a cualquiera de sus avances. Al trabajar con tales equipos en
una misma dirección, podemos asegurar que el software libre funciona mejor en
conjunto, y al mismo tiempo podemos ofrecer la mejor experiencia a los usuarios.
Además, de esta manera podemos velozmente ofrecer las mejorías pertinentes,
algo que beneficia no sólo a los usuarios, sino también a las comunidades de
desarrollo de software.
También proyecto fedora cree que lo mejor es motivar y permitir que otros persigan
su visión de un sistema operativo libre. Cualquiera puede reformular a Fedora y
convertirlo en un nuevo producto con su propio nombre. Incluso ofrecemos las
herramientas (en inglés) para poder hacerlo. De hecho, Fedora ya es la base de
pág. 79
distribuciones derivadas como Linux para empresas de Red Hat, el proyecto One
Laptop Per Child XO (Una laptop por niño), y los DVDs de Contenido Vivo de
Creative Commons (en inglés).
ESTRUCTURA Y COMPONENTES DEL SISTEMA - FEDORA
Los sistemas operativos Linux se basan en una estructura de capas, donde las
capas internas prestan servicios básicos a las externas. El Núcleo (Kernel) es el
centro del sistema operativo, realiza las funciones básicas de control y presta los
servicios esenciales para gestionar el sistema operativo.
El núcleo de Fedora consta principalmente de los componentes descritos a
continuación:
Gestión de Memoria: Se encarga de asignar áreas de memoria y espacios de
paginación a los procesos, a los módulos del núcleo y al área de caché.
Gestión de Procesos: Esta parte es esencial que crea, activa y termina los
procesos; implementa las reglas de la multitarea.
Controladores de Dispositivos: Maneja la comunicación del sistema con cada uno
de los dispositivos que están conectados. El núcleo se configura en el proceso de
arranque para cargar los módulos necesarios para controlar los dispositivos
específicos de cada máquina.
Gestor de Sistema de Archivos Virtuales: Capa intermedia que permite acceder
a los sistemas de archivos, manteniendo un árbol de directorios homogéneo.
PROCESO DE INSTALACIÓN - FEDORA
En la primera pantalla de selección de Fedora 20, vamos a escoger la primera
opción llamada Install Fedora 20. La segunda opción te permite hacer una revisar
la integridad del medio de instalación (detecta cualquier problema relacionado con
sus ficheros y errores de superficie que el DVD pudiese tener) y previene así
sorpresas, que nos podrían echar a perder el trabajo durante el proceso. La tercera
opcion, proporciona herramientas adicionales que bien nos podrían ayudar en caso
de algún fallo. Contiene un probador de memoria, opciones de rescate para una
instalación defectuosa y modo gráfico seguro.
pág. 80
La segunda pantalla, nos permite seleccionar el idioma a emplear durante el
proceso de instalación de Fedora 20. La pantalla se divide en 2 columnas; la primera
te permite seleccionar el lenguaje y la segunda, su localización.
A continuación, el instalador de Fedora 20 te muestra el resumen de todas las
opciones configurables. Estas nos permiten personalizar nuestro sistema operativo
antes de proceder a su instalación. Las opciones que nos muestran son la fecha y
hora, idioma, software, sistema, teclado y red.
Todos los elementos deben ser revisados y configurados. En este punto, la pantalla
de Resumen de la instalación no debería de mostrarte ninguna advertencia. Ahora
se hace clic en el botón de Comenzar instalación que se encuentra en la esquina
inferior derecha. Solo queda configurar tanto la cuenta de administrador como la de
usuario. Ahora solamente queda esperar a que la instalación culmine. Esto va a
tardar algunos minutos y en esta etapa ya no se requiere de tu interacción.
GESTIÓN DE MEMORIA - FEDORA
pág. 81
Fedora comparte muchas de las características de los esquemas de gestión de
memoria de otras implementaciones UNIX, pero tiene sus características propias y
únicas, aunque hay que destacar que el esquema de gestión de memoria de Fedora
es bastante complejo.
En lo que respecta a memoria virtual, el direccionamiento de memoria virtual de
Fedora, hace uso de una estructura de tabla de páginas con tres niveles, formada
por los siguientes tipos de tablas (cada tabla individual es del tamaño de una
página):
1. Directorio de páginas Þ un proceso activo tiene un solo directorio de páginas
que es del tamaño de una página. Cada entrada en el directorio de páginas
apunta a una página del directorio intermedio de páginas. Para un proceso
activo, el directorio de páginas tiene que estar en la memoria principal.
2. Directorio intermedio de páginas Þ este directorio puede ocupar varias
páginas y cada entrada de este directorio apunta a una página de la tabla de
páginas.
3. Tabla de páginas Þ esta tabla de páginas también puede ocupar varias páginas,
y cada entrada de la tabla de página hace referencia a una tabla virtual del
proceso.
Direccionamiento de Memoria
La memoria es uno de los recursos fundamentales para un proceso. El sistema
operativo debe ofrecer la memoria a todos los procesos por igual de una forma
sencilla y uniforme. Al mismo tiempo, el sistema operativo debe tratar con el
hardware real para realizar dicha función, aprovechándolo al máximo. El
direccionamiento es una parte importante de la gestión de memoria, puesto que
influye mucho tanto en la visión de la misma por parte de un proceso, como en el
aprovechamiento del hardware y el rendimiento del sistema.
Desde el punto de vista del proceso, son deseables ciertas características
relacionadas con el direccionamiento:
Protección: La memoria de un proceso debe estar separada de la memoria de los
demás procesos. Salvo para threads del mismo proceso. En Fedora un proceso
realmente tiene un espacio de direcciones de usuario, que es propio, y un espacio
de direcciones del Kernel, que comparte con todos los procesos.
pág. 82
Memoria virtual: El proceso debe tener la ilusión de estar solo en el sistema.
Espacio de direcciones contiguo y que comienza en 0. Esto facilita el trabajo de los
compiladores.
Otras características de la gestión de memoria también son deseables, si bien están
menos relacionadas con el direccionamiento:

Ofrecer al proceso más memoria de la que hay físicamente disponible. Se
emplean técnicas de swapping y paginación por demanda.
(Swapping: Es un mecanismo o modo de interrelacionar la memoria principal (la
que contiene el Programa en ejecución, los datos de proceso inmediato y los
resultados intermedios) con la secundaria, de tal modo que se produce un
intercambio de programas entre ambas cuyo resultado es la simulación de un
sistema multitarea o la potenciación de memoria central a base de recursos de
la memoria secundaria.)

Aprovechar la memoria mediante técnicas Copy-onwrite.
(Copy-On-Write: Cuando un proceso crea una copia de sí mismo, las páginas
cargadas en memoria que puedan ser modificadas por dicho proceso o su copia
se marcan como copy-on-write. Cuando un proceso modifica la memoria, el
núcleodel sistema operativo interviene en la operación y crea una copia de forma
que los cambios en la memoria ocupada por un proceso no son visibles por el
otro.)

Mapeado de ficheros sobre memoria.

En general, mejorar el rendimiento del sistema mediante diversas técnicas a la
hora de asignar o liberar memoria (Buddy system, Slab allocator, caches, entre
otros)
pág. 83
GESTIÓN DE PROCESOS - FEDORA
Paginación:
Un sistema operativo multiusuario y multitarea como Fedora necesita una gran
cantidad de memoria física para poder ejecutar todos los procesos.
Los espacios de paginación son particiones de disco que permiten ampliar
virtualmente la memoria del sistema, guardando el estado de los procesos que en
un determinado momento están a la espera de ser ejecutados, si la memoria física
está agotada.
Los factores principales que deben determinar el tamaño del espacio toral de
paginación son:

La cantidad de memoria y de disco del sistema.

El número de usuarios que tendrán acceso a la máquina.

El número previsto de procesos/usuario.

El número de servicios activos en el sistema.
Sistemas de archivos virtuales /proc y /sys
Los sistemas de archivos virtuales montados en /proc y en /sys están almacenados
en memoria y contienen una jerarquía de ficheros y directorios especiales que
mantienen el estado actual del núcleo del sistema Fedora, recopilando información
sobre los dispositivos y los procesos en ejecución.
pág. 84
GESTIÓN Y SISTEMA DE ARCHIVOS - FEDORA
La distribución Fedora usa el Sistema de Archivos Extendido 3 (Ext3), el cual incluye
las siguientes mejoras:

El diario de registros es la característica más importante, que mejora los
procesos de revisión de integridad, ya que sólo se requiere la comprobación
de dicho diario.

Soporta mayores niveles de integridad de datos para evitar la corrupción del
sistema de archivos, permitiendo elegir el tipo y el nivel de protección.

Mayor flujo y mayor velocidad de accesos repetidos a datos.

Fácil transición entre ext2 y ext3, sin necesidad de volver a formatear las
particiones.
La principal diferencia con ext2 es el registro por diario. Un sistema de archivos ext3
puede ser montado y usado como un sistema de archivos ext2. Otra diferencia
importante es que ext3 utiliza un árbol binario balanceado (árbol AVL) e incorpora
el asignador de bloques de disco Orlov.
También incorpora el Sistema de Archivos FHS o también llamado “Estándar de
Jerarquía de Sistema de Archivos”, el cual describe un conjunto de reglas que
permiten, tanto a los usuarios como a los programas, predecir la localización de los
ficheros y directorios instalados en el sistema.
pág. 85
GESTIÓN DE COMUNICACIONES Y SEGURIDAD - FEDORA
SELinux ("Security-Enhanced Linux") se destaca entre las características de
seguridad de Fedora, pues implementa una gran variedad de políticas de seguridad,
incluyendo control de acceso obligatorio (MAC "Mandatory Access Control"), a
través de los Módulos de Seguridad de Linux que están en el núcleo Linux del
sistema.
La distribución está liderando las distribuciones que incorporan SELinux, habiéndolo
introducido en Fedora Core 2. Sin embargo lo desactivó como elemento
predeterminado, pues alteraba radicalmente la forma en que el sistema operativo
funcionaba. Posteriormente fue activado por defecto en Fedora Core 3
introduciendo una política menos estricta. Fedora también tiene métodos propios
para prevenir la sobrecarga del buffer y la utilización de rootkits. La verificación del
buffer en tiempo de compilación, «Exec Shield» y restricciones en como la memoria
del núcleo en /dev/mem puede ser accedida ayudan a prevenir esto.
pág. 86
SOPORTE PARA LA NUBE E INTEGRACIÓN A ELLA (CLOUD COMPUTING) FEDORA
Fedora 20 continúa con la tradición de Fedora de adoptar e integrar las tecnologías
más vanguardistas del cloud computing. Algunas características que facilitan el
trabajo con virtualización y cloud computing son:

Imágenes de la nube de alta calidad: desarrollado por Fedora Cloud SIG,
estas imágenes se adaptan bien para funcionar como invitado en nubes
públicas y privadas como Amazon Web Services (AWS) y OpenStack.

Interfaz de usuario VM Snapshot con virt-manager: esta característica
facilita la toma de capturas VM con la inclusión de una interfaz de usuario
simple y reconocible para virt-manager, e incluye una funcionalidad en
libvirt para soportar el borrado y rebasado de snapshots externos

ARM en x86 con libvirt/virt-manager: Este cambio en Fedora 20 repara
máquinas virtuales de ARM alojadas en servidores x86 que utilizan
herramientas libvirt estándar, libvirt virsh, virt-manager y virt-install.
ESTADÍSTICAS - FEDORA
Versión Nombre en
código
Fecha de liberación
Versión del núcleo
Linux
1
Yarrow
6 de
noviembre de 2003
2.4.19
2
Tettnang
18 de mayo de 2004
2.6.5
3
Heidelberg
8 de
noviembre de 2004
2.6.9
4
Stentz
13 de junio de 2005
2.6.11
5
Bordeaux
20 de marzo de 2006
2.6.15
6
Zod
24 de octubre de 2006
2.6.18
7
Moonshine
31 de mayo de 2007
2.6.21
8
Werewolf
8 de
noviembre de 2007
2.6.23.1
9
Sulphur
13 de mayo de 2008
2.6.25
10
Cambridge
25 de
noviembre de 2008
2.6.27
pág. 87
11
Leonidas
9 de junio de 2009
2.6.29-4
12
Constantine
17 de
noviembre de 2009
2.6.31
13
Goddard
25 de mayo de 2010
2.6.33
14
Laughlin
2 de noviembre de 2010
2.6.35
15
Lovelock
24 de mayo de 2011
2.6.38
16
Verne
8 de noviembre de 2011
3.1.0
17
Beefy Miracle
29 de mayo de 2012
3.4.1
18
Spherical Cow
15 de enero de 2013
3.6
19
Schrödinger's Cat
2 de julio de 2013
3.9
20
Heisenbug
12 de diciembre de 2013 3.11
pág. 88
RESUMEN
Sistemas Operativos Linux y las diferentes distribuciones (Detallar Red Hat,
Fedora, Ubuntu, etc) y Chrome OS.
¿Linux?
Linux, es un sistema operativo. Es una implementación de libre distribución UNIX
para computadoras personales (PC), servidores y estaciones de trabajo. Es uno de
los paradigmas más prominentes del software libre y del desarrollo del código
abierto, cuyo código fuente está disponible públicamente, para que cualquier
persona puede libremente usarlo, estudiarlo, redistribuirlo y, con los conocimientos
informáticos adecuados, modificarlo.
En 1983 Richard Stallman fundó el proyecto GNU, con el fin de crear sistemas
operativos parecidos a UNIX y compatibles con POSIX. Más tarde creó la
"Fundación del Software Libre" y escribió la GNU General Public License para
posibilitar el software libre en el sistema de copyright. A pesar de que el proyecto
GNU era desarrollado constantemente, no disponía sin embargo de ningún buen
Kernel basado en UNIX.
En 1988 Linus Torvalds entró a la Universidad. Ese mismo año fue cuando el
sistema operativo didáctico, basado en UNIX y creado por Andy Tannenbaum,
empezó a cobrar importancia. Dicho sistema era el Minix y del cual entró a formar
parte Linus Torvalds. Fue entonces cuando Linus Torvalds creo el núcleo Linux y el
cuál aporto al sistema operativo GNU.
pág. 89
Google Chrome OS
Chrome OS es basado en el núcleo Linux, diseñado para trabajar exclusivamente
con aplicaciones web. Google explica que Chrome OS es un sistema operativo
diferente a lo que se conoce comúnmente como sistema operativo de escritorio,
siendo el navegador Google Chrome su principal herramienta de uso. Las primeras
características que destaca Google es, que su sistema operativo es un proyecto de
código abierto y sin costo alguno.
ESTRUCTURA Y COMPONENTES DEL SISTEMA (Chrome OS)
El Chrome OS se divide en 3 partes importantes:



El firmware tiene un papel clave para que el arranque del sistema sea más
rápido y más seguro. Las funcionalidades: La recuperación del sistema,
Verificado de arranque, Inicio rápido.
El sistema en sí y los servicios: Aquí es en donde se utiliza el kernel de Linux,
los drivers y los demonios. El sistema depende de: D-Bus, Administrador de
conexiones, Autoupdate, Xscreensaver, Servicios estándares de Linux.
El navegador basado en el Chrome y el manejador de ventanas. El
administrador de ventanas es el responsable de manejar la interacción del
usuario con las múltiples ventanas.
Google Cloud Printing
A la hora de imprimir documentos, Chrome OS utilizará una tecnología llamada
Google Cloud Print, que prescindiría de la necesidad de instalar controladores y que
tiene la capacidad de dirigir los trabajos de impresión desde la Web, las aplicaciones
de escritorio y móviles.
pág. 90
Chromoting
Se trata de una tecnología que permitirá ejecutar aplicaciones tradicionales del PC
directamente dentro del navegador y que aportará un método muy interesante para
no tener que renunciar del todo a aplicaciones de escritorio en este sistema
operativo totalmente orientado a los servicios web y a la nube de computación. Esto
podría solventar una de las mayores carencias de este desarrollo, por lo que parece
en Chrome OS se permitirá el acceso a aplicaciones de Windows, Mac OS X o
Linux, pero se manejarán de forma remota: No se podrá ejecutar aplicaciones
directamente, simplemente se usará algo parecido a una conexión remota de
escritorio que conectará a la máquina con Windows / Mac OS X o Linux y que
permitirá utilizarla remotamente. Los datos permanecerán en el ordenador remoto,
no en el ordenador con Chrome OS.
Gestión de Procesos en Linux
Un proceso comienza su ciclo de vida cuando se invoca el método fork(), el cual
crea un nuevo proceso duplicando uno existente. El proceso que llama fork() es el
padre, mientras que el nuevo proceso generado es el hijo.
Un proceso termina invocando exit(), liberando todos los recursos utilizados. Un
proceso padre puede preguntar acerca del estado de un proceso hijo terminado
mediante el método wait4(), el cual habilita la espera de la finalización de un
proceso específico. Cuando un proceso termina, cambia su estado actual a uno
especial llamado Zombie, el cual representa un proceso terminado hasta que el
padre invoque el método wait() o waitpid().
Gestión de Memoria Linux
En un sistema Linux, la memoria se utiliza para los datos de "caché" que es utilizado
por la CPU. La idea detrás de almacenamiento en caché es que se necesita más
tiempo para la CPU acceder a los datos en el disco duro que lo hace para acceder
a los datos que está presente en la memoria principal. Así que el almacenamiento
en caché utilizando la memoria principal acelera eficazmente el sistema. En un
sistema de ventanas, no hay tal optimización, memoria de manera gratuita se
desperdicia, ya que no se acostumbra.
Ahora, cuando una aplicación realmente necesita toda la memoria que se utiliza
para el almacenamiento en caché, Linux salta los datos en caché y hace la memoria
requerida disponible. Como última opción, si la totalidad de la memoria principal se
agota, entonces la memoria de intercambio swap se utiliza.
pág. 91
Cuando el procesador ejecuta un programa, este leerá una instrucción de memoria
y decodificará la misma. Dentro del proceso de decodificar la instrucción, se podría
requerir obtener o almacenar contenidos de una localidad de memoria. El
procesador entonces ejecuta la instrucción y este se mueve hacia la siguiente
instrucción a leer y decodificar (repitiendo lo anterior). De esta forma el procesador
se mantiene siempre accediendo a memoria leyendo y almacenando datos sobre
ella.
Sobre un sistema de memoria virtual, absolutamente todas las direcciones son
virtuales y no son direcciones físicas. Esas direcciones virtuales serán convertidas
en direcciones físicas por el procesador, tomando como base la información
obtenida sobre un conjunto de tablas mantenidas por el Sistema operativo Linux.
UBUNTU
Ubuntu es un sistema operativo basado en Linux y que se distribuye como software
libre, el cual incluye su propio entorno de escritorio denominado Unity Ubuntu está
compuesto por diversos paquetes de software que, en su mayoría, son distribuidos
bajo código abierto y licencia libre.
ESTRUCTURA Y COMPONENTES DEL SISTEMA
Para mostrar diferencias en licencias y la prioridad con la que se atienden los
problemas que informen los usuarios, Ubuntu divide todo el software en los
componentes: main, restricted, universe y multiverse.

main: Contiene paquetes que cumplen los requisitos de licencia Ubuntu. Está
pensado para que incluya todo lo necesario para la mayoría de los sistemas
Linux de uso general.
pág. 92

restricted: Contiene paquetes soportados por desarrolladores de Ubuntu que
no están bajo licencia libre.

universe: Contiene programas que no reciben soporte por parte del equipo de
Ubuntu si no de la comunidad. Pueden tener o no licencia restringida.

multiverse: Contiene paquetes sin soporte debido a que no cumplen los
requisitos de software libre.
Programación
UBUNTU Linux tiene dos algoritmos de proceso de programación separados. "Uno
es de tiempo compartido, un programa preferente justo entre varios procesos; el
otro está diseñado para tareas en tiempo real.
Los algoritmos de tiempo compartido son tres.

SCHED_OTHER

SCHED_ BATCH

SCHED_IDLE
Para los algoritmos de tiempo compartido, se utiliza el método estándar RoundRobin.
Los algoritmos en tiempo real son la FCFS y el Round-Robin, que fue descrito
anteriormente, con la adición de una prioridad a la de su clase de planificación.
Cuando dos procesos tienen la misma clase, la espera en la cola más larga tiene
una prioridad más alta. Para los proceso de diferente clase el uno con la clase del
hight tiene la mayor prioridad.
Memoria SWAP
El sistema operativo Linux Ubuntu, utiliza la memoria swap que está en una partición
aparte, esta memoria puede ser utilizada por el CPU. Esta puede utilizar tres tipos
de memoria llevando una secuencia lineal a través de la misma en la cual la
memoria que utiliza la memoria RAM al verse esta utilizada a máxima capacidad
pasaría a utilizar la memoria swap. En el sistema Windows no existe dicha
optimación así que la memoria no se utiliza y se pierde. En el caso en el cual toda
la memoria sea utilizada por la memoria que esté en cache, como última opción la
memoria que está destinada en el swap partition será utilizada.
pág. 93
DESCRIPCIÓN DE LOS DISPOSITIVOS DE ENTRADA Y SALIDA QUE
SOPORTA (LINUX)
En un sistema Linux la interacción final con dispositivos la realizan los controladores
o el kernel (núcleo). Dicho de otra forma, un dispositivo sólo podrá ser usado si el
kernel lo soporta o si existe un controlador capaz de controlarlo y si se configura
apropiadamente para hacerlo.
SEGURIDAD
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
supuestamente 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 SwitchUser 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. Desde
la versión 5.04, se utiliza UTF-8 como codificación de caracteres predeterminado.
Usuarios y claves
Uno de los pilares básicos de la solidez de los sistemas GNU/Linux es su potente
gestión de usuarios y de permisos.
Las cuentas de usuario aseguran la privacidad de la información, el correcto reparto
de privilegios en el sistema y minimizan los efectos en caso de un fallo de la
seguridad.
RED HAT
Red Hat es una distribución Linux creada por Red Hat Inc, que fue una de las más
populares en los entornos de usuarios domésticos. Desde el 2003, Red Hat ha
desplazado su enfoque hacia el mercado de los negocios con la distribución Red
Hat Enterprise Linux y la versión no comercial Fedora Core.
pág. 94
El kernel de Red Hat utiliza un mecanismo basado en temporizador que produce
continuamente una interrupción del sistema. Durante cada interrupción, el sistema
sondea; es decir, se comprueba para ver si había trabajo por hacer.
Dependiendo de la configuración, esta interrupción del sistema o el temporizador
podrían ocurrir varios cientos o varios miles de veces por segundo. Esto sucedió
cada segundo, independientemente de la carga de trabajo del sistema. En un
sistema con poca carga, este impacto el consumo de energía al evitar que el
procesador de la utilización eficaz de los estados de suspensión. El sistema utiliza
la menor cantidad de energía cuando está en un estado de sueño.
La gestión de memoria de Red Hat está dado por direcciones de memoria física que
se traducen a direcciones de memoria virtual como parte de la gestión de memoria.
La relación de mapeado físico de direcciones virtuales se almacena en una
estructura de datos conocida como la tabla de páginas. Dado que la lectura de la
tabla de páginas para cada asignación de dirección sería largo y costoso de los
recursos, hay una caché para las direcciones utilizadas recientemente. Esta caché
se denomina traducción de direcciones Buffer (TLB).
FEDORA
Fedora es un sistema operativo basado en Linux, una colección de software que
hace funcionar las computadoras. Se puede utilizar Fedora junto a, o como
reemplazo de, otros sistemas operativos, como Microsoft Windows™ o Mac OS X™.
El sistema operativo Fedora es libre y gratuito para disfrutar y compartir.
Fedora comparte muchas de las características de los esquemas de gestión de
memoria de otras implementaciones UNIX, pero tiene sus características propias y
únicas, aunque hay que destacar que el esquema de gestión de memoria de Fedora
es bastante complejo.
En lo que respecta a memoria virtual, el direccionamiento de memoria virtual de
Fedora, hace uso de una estructura de tabla de páginas con tres niveles, formada
por los siguientes tipos de tablas (cada tabla individual es del tamaño de una
página):
pág. 95
1. Directorio de páginas Þ un proceso activo tiene un solo directorio de páginas
que es del tamaño de una página. Cada entrada en el directorio de páginas
apunta a una página del directorio intermedio de páginas. Para un proceso
activo, el directorio de páginas tiene que estar en la memoria principal.
2. Directorio intermedio de páginas Þ este directorio puede ocupar varias
páginas y cada entrada de este directorio apunta a una página de la tabla de
páginas.
3. Tabla de páginas Þ esta tabla de páginas también puede ocupar varias páginas,
y cada entrada de la tabla de página hace referencia a una tabla virtual del
proceso.
Direccionamiento de Memoria
La memoria es uno de los recursos fundamentales para un proceso. El sistema
operativo debe ofrecer la memoria a todos los procesos por igual de una forma
sencilla y uniforme. Al mismo tiempo, el sistema operativo debe tratar con el
hardware real para realizar dicha función, aprovechándolo al máximo. El
direccionamiento es una parte importante de la gestión de memoria, puesto que
influye mucho tanto en la visión de la misma por parte de un proceso, como en el
aprovechamiento del hardware y el rendimiento del sistema.
SISTEMA DE ARCHIVOS
Chrome OS
Distribuciones Linux
●Una partición llamada El sistema de archivos de Ubuntu está basado en
“stateful partition” que es en el Filesystem Hierarchy Standard. Este es un
donde se almacenan los estándar que con mayor o menor rigor siguen la
archivos de los usuarios, log, mayoría de las distribuciones GNU/Linux y algunos
etc.
otros sistemas operativos basados en UNIX. Este
●Una partición opcional de estándar define los nombres, ubicación y los
intercambio.
permisos de muchos tipos de archivos y
●Dos
particiones
que directorios.
contienen el sistema de
ficheros en sí.
Los sistemas de archivos más comunes
Sistema de archivos raíz
soportados incluyen:
 EXT2
 EXT3 ampliamente utilizada en
distribuciones Linux
 EXT4
pág. 96
SOPORTE A CLOUD COMPUTING
Chrome OS
Distribuciones Linux
Google
Cloud
Print, Ubuntu One es un servicio de alojamiento de
impresión de archivos en archivos, integrado con el entorno de escritorio del
impresoras conectadas a la sistema operativo Ubuntu.
web.
Evitando
incompatibilidad
de Red Hat Enterprise Linux OpenStack Platform, es
controladores.
actualmente una solución basada para las
organizaciones, donde se proporciona una base
Chromoting,
Uso
de flexible y segura para crear una cloud pública o
aplicaciones
de
PC privada completamente escalable.
remotamente.
Fedora posee características que facilitan el trabajo
con virtualización y cloud computing: Imágenes de
la nube de alta calidad; GUI VM Snapshot con virtmanager; ARM en x86 con libvirt/-manager.
pág. 97
CONCLUSIONES Y OBSERVACIONES

El sistema operativo Google Chrome OS es un proyecto muy ambicioso que
pretende dejar a un lado los sistemas operativos tradicionales que trabajan a
nivel local, el cual quiere que se trabaje desde cualquier pc en cualquier lugar,
pero existen problemas serios para que tenga éxito ya que se necesita estar
conectado a internet para trabajar en este sistema operativo y es bien sabido
que en algunos lugares del mundo aún falta conectividad a internet.

Como se vio en el análisis en el punto de seguridad, Chrome OS tiene un trabajo
muy fuerte en este punto ya que garantiza que en la máquina donde se trabaja
con este sistema operativo no habrá presencia de virus o amenazas que afecten
la integridad de la máquina y es un punto a favor para este sistema ya que los
sistemas operativos tradicionales tienen grandes falencias en este punto y el
cual afecta gravemente a los usuarios.

Es una buena apuesta la de Google al permitir que el código fuente de Chrome
OS sea liberado para que cualquier desarrollador en el mundo pueda contribuir
a la construcción y sobre todo al mejoramiento continuo del sistema para que el
sistema sea más robusto y el usuario quede satisfecho con el sistema.

Ubuntu ha proporcionado al mundo una manera de compartir software de
manera gratuita, y que gracias a miles de contribuidores, esta distribución de
Linux se ha esforzado en tener más cabida en los hogares siendo cada vez más
fácil de usar.

La memoria virtual (partición Swap) que proporciona Linux, es un mecanismo
que permite a los procesos que no alcanzan espacio en la memoria RAM o están
poco activos, sean movidos a esta área de intercambio (swap en el disco duro)
para así liberar memoria principal y poder cargar otros procesos. Aunque este
procedimiento es más lento respecto al acceso a RAM, permite aparentar al
sistema que tiene más memoria disponible.

El Cloud Computing ha permitido a las diferentes distribuciones Linux, Chrome
OS y otros sistemas operativos ofrecer soluciones de apoyo tal como acceso
remoto, disponibilidad de datos en cualquier lugar, entre otros que de algún
modo u otro agregan valor.

Red Hat nació como una compilación de las distribuciones que se ofrecían en
ese entonces de GNU/Linux. Se trataba de una versión empaquetada de lo que
existía en aquellos tiempos, incluyendo documentación y soporte.

Red Hat se centra en ofrecer servicios corporativos, y en 2003 delego la tarea
de desarrollar el SO personal al proyecto Fedora Core.
pág. 98

Red Hat Enterprise Linux utiliza la estructura del sistema de archivos Estándar
de Jerarquía de Sistemas de archivos (FHS del inglés Filesystem Hierarchy
Standard), un documento que define los nombres, la ubicación y los permisos
de muchos tipos de archivos y directorios.

Fedora es un sistema operativo que usa el kernel de Linux y se puede usar como
reemplazo o conjuntamente con sistemas operativos como Microsfot Windows o
Mac OS x.

Fedora está respaldado por proyecto Fedora es el nombre de una comunidad de
personas en todo el planeta que aman, utilizan y construyen software libre.

Proyecto Fedora cree en el valor del software libre, y lucha para proteger y
promover soluciones que cualquiera pueda utilizar y redistribuir

El núcleo de Fedora consta de: gestión de memoria, gestión de procesos,
controladores de dispositivos y gestor de sistema de archivos virtuales.
pág. 99
BIBLIOGRAFÍA

Definición de Ubuntu. [En línea]. Fecha de consulta: Mayo 24. 2014 desde
http://definicion.de/ubuntu/

Wikipedia, La enciclopedia libre. (Mayo 2014). Ubuntu. [En línea]. Fecha de
consulta: mayo 21, 2014 desde http://es.wikipedia.org/wiki/Ubuntu

Just more thoughts. (Junio 2011). Ubuntu 11.04 - Process management. [En
línea]. Fecha de consulta: mayo 21, 2014 desde http://just-morethoughts.blogspot.com/2011/06/ubuntu-1104-process-management-26.html

Linux Ubuntu 12.04 LTS. Proceso y Procesadores. [En línea]. Fecha de consulta:
mayo
22,
2014
desde
https://sites.google.com/site/ubuntuinterclassroom/proceso-y-procesadores

Linux Ubuntu 12.04 LTS. Multiprocessing (Multiprocesamiento). [En línea].
Fecha
de
consulta:
mayo
22,
2014
desde
https://sites.google.com/site/ubuntuinterclassroom/multiprocessing

Scheer, M. Ubuntu Memory Manager & Defragmentation. [En línea]. Fecha de
consulta: mayo 22, 2014 desde http://www.ehow.com/facts_7934778_ubuntumemory-manager-defragmentation.html

Plauchu, E. (julio 2013). Administracion de Memoria en Linux. [En línea]. Fecha
de
consulta:
mayo
24,
2014
desde
http://eplauchu.wordpress.com/2013/07/17/administracion-de-memoria-enlinux/

Linux Ubuntu 12.04 LTS. Manejo de RAM. [En línea]. Fecha de consulta: mayo
23, 2014 desde https://sites.google.com/site/ubuntuinterclassroom/manejo-deram

Linux Ubuntu 12.04 LTS. Real Time (Tiempo Real). [En línea]. Fecha de
consulta:
mayo
27,
2014
desde
https://sites.google.com/site/ubuntuinterclassroom/realtime

Sistema de archivos. [En línea]. Fecha de consulta: mayo 26, 2014 desde
http://doc.ubuntu-es.org/Sistema_de_archivos

Ubuntu manuals. stdio - funciones de biblioteca de entrada/salida estándar. [En
línea].
Fecha
de
consulta:
mayo
25,
2014
desde
http://manpages.ubuntu.com/manpages/trusty/es/man3/stdio.3.html

Kernel. [En línea]. Fecha de consulta: mayo 28, 2014 desde http://doc.ubuntues.org/Kernel
pág. 100

Wikipedia, La enciclopedia libre. Núcleo Linux, Críticas. [En línea]. Fecha de
consulta:
mayo
28,
2014
desde
http://es.wikipedia.org/wiki/Linux_(n%C3%BAcleo)#Soporte_de_hardware

Ubuntu a fondo. (julio 2010). Seguridad en Ubuntu (II) - Usuarios y claves. [En
línea].
Fecha
de
consulta:
mayo
29,
2014
desde
http://dmolinap.blogspot.com/2010/07/seguridad-en-ubuntu-ii-usuarios-y.html

Ubuntu a fondo. (julio 2010). Seguridad en Ubuntu (I) - Introducción. [En línea].
Fecha
de
consulta:
mayo
29,
2014
desde
http://dmolinap.blogspot.com/2010/07/seguridad-en-ubuntu-i-introduccion.html

Ubuntu perdiendo popularidad rapidísimo ¿culpa de Unity? [En línea]. Fecha de
consulta: mayo 30, 2014 desde http://identidadgeek.com/ubuntu-perdiendopopularidad-rapidisimo-%C2%BFculpa-de-unity/2011/11/

Wikipedia, La enciclopedia libre. (mayo 2014). GNU/Linux, Cuota de mercado.
[En
línea].
Fecha
de
consulta:
mayo
30,
2014
desde
http://es.wikipedia.org/wiki/Linux#Cuota_de_mercado

Linux Ubuntu 12.04 LTS. Manejo de RAM. [En línea]. Fecha de consulta: mayo
23, 2014 desde https://sites.google.com/site/ubuntuinterclassroom/manejo-decomunicaciones

Wikipedia, La enciclopedia libre. (abril 2014). Ubuntu One. [En línea] Fecha de
consulta: mayo 29, 2014 desde http://es.wikipedia.org/wiki/Ubuntu_One

Hernández, D. Windows 8 Vs Ubuntu 13.10 Saucy Salamander. En línea] Fecha
de consulta: mayo 29, 2014 desde http://www.tubuntux.com/2013/10/windows8-vs-ubuntu-1310-saucy.html

Administración de Sistemas operativos de Red, [En línea]. Fecha de consulta:
mayo
25,
2014
desde
http://asorufps.wikispaces.com/Red+Hat++Sistema+Operativo.

redhat, [En línea]. Fecha de consulta: Mayo 28,
http://co.redhat.com/products/cloud-computing/openstack/.

redhat, [En línea]. Fecha de consulta: Mayo 28, 2014 desde
https://access.redhat.com/site/documentation/enUS/Red_Hat_Enterprise_Linux/6/html/Performance_Tuning_Guide/index.html.

Fedora, [En línea]. Fecha de consulta: Mayo 31,
http://grupo4fedora.wikispaces.com/N%C3%BAcleo+Fedora.

M. roboto. (Diciembre 2013). Forosla [En línea]. Fecha de consulta: Mayo 31,
2014 desde http://www.forosla.com/fedora-20-como-instalarlo-paso-paso/.
2014
2014
desde
desde
pág. 101

DiarioTi, (Diciembre 2013). [En línea]. Fecha de consulta: Mayo 31, 2014 desde
http://diarioti.com/fedora-de-red-hat-celebra-10-anos-con-nueva-version/72403.

252-M, E. 2. (26 de Mayo de 2014). Evolution: Sistemas Operativos. Obtenido
de bmxkazy: http://wwwbmxkazy.blogspot.com/2011/09/cuadro-comparativode-los-so-actuales.html

Cardozo, F. (28 de Mayo de 2014). Docs. Obtenido de jeuazarru:
http://www.jeuazarru.com/docs/ChromeOS.pdf

Desarrollo, C. A. (20 de 05 de 2014). Historia de Linux. Obtenido de CAD:
http://www.cad.com.mx/historia_de_linux.htm

Google. (28 de Mayo de 2014). Dispositivos. Obtenido de Google:
http://www.google.com/intl/es-419/chrome/business/devices/chromebooks.html

Low. (23 de Mayo de 2014). Artículos. Obtenido de LowPowPC:
http://lowpowpc.com/2013/12/13/como-instalar-chromeos-en-nuestros-pc-pasoa-paso/

Martinez, L. (21 de Mayo de 2014). Presentaciones. Obtenido de authorstream:
http://www.authorstream.com/Presentation/luisazulcremamar-2114258sistema-operativo-chromium/

Plauchu, E. (27 de Mayo de 2014). Notas. Obtenido de eplauchu:
http://eplauchu.wordpress.com/2013/07/17/administracion-de-memoria-enlinux/

Puerto, K. (26 de Mayo de 2014). Portátiles. Obtenido de xataka:
http://img.xataka.com/2014/01/Chrome%20OS%20versus%20Windows%20RT.
jpg

Wikipedia. (23 de Mayo de 2014). Chrome OS. Obtenido de Wikipedia:
http://es.wikipedia.org/wiki/Chrome_OS

Wikipedia. (Mayo de 28 de 2014). Google. Obtenido de Wikipedia:
http://es.wikipedia.org/wiki/Google
pág. 102