Los Sistemas Operativos:
son el conjunto de programas que sirven de enlace entre los usuarios finales y los Ordenadores. Los Sistemas Operativos se encargan de intermediar entre todos esos componentes electrónicos, tan curiosos, que forman los circuitos y los Usuarios finales de las computadoras, o más familiarmente conocidos como Ordenadores o PC’s. Son la base de la interficie gráfica que hace posible la comunicación entre el hombre (y no nos olvidemos de la mujer) y la máquina. Unos y ceros que viajando nos muestran lo que ahora mismo leemos, mediante las Aplicaciones Informáticas, dispositivos hardware, y complejos procesos.
El primer Sistema Operativo fue desarrollado en el Centro de Investigación y Desarrollo de la General Motors Company a principio de la década de los cincuenta. Sólo contemplaba la ejecución de una tarea en un método llamado de bloques o batch.
En la siguiente década comenzaron a aparecer los sistemas operativos multi tareas, que eran capaces de procesar varios trabajos en un tiempo dado a base de repartir los tiempos de proceso.
En 1965, los Laboratorios de Telefonía Bell (una división de AT&T) trabajaban en conjunto con General Electric y el Proyecto MAC del MIT en el desarrollo de Multics. Por diversas razones, Bell se separó del grupo pero al seguir con la necesidad de un sistema operativo con características similares, Ken Thompson y Dennis Ritchie decidieron diseñar un sistema operativo que llenara los requisitos predispuestos. En 1970, Thompson
lo implementó como un ambiente de desarrollo en una PDP-7. A modo de mofa hacia
Multics, Brian Kernighan lo llamó UNIX.
linuxxxxxxxxxxxxxxx
Historia y origen de Linux
Este sistema operativo completamente gratuito es la creación de Linus B. Torvalds. A comienzos de la década de 1990, Torvalds quiso crear su propio sistema operativo para su proyecto de graduación. Linus Torvalds intentó desarrollar una versión de unix que pudiera utilizarse en una arquitectura de tipo 80386. El primer clon de unix que funcionó en un PC fue Minix, escrito por Andrew Tanenbaum. Éste era un sistema operativo mínimo que se podía usar en un PC. Después, Linus Torvalds decidió ampliar las posibilidades de Minix al desarrollar lo que se convertiría en Linux. Entusiasmados con esta iniciativa, diversas personas contribuyeron para ayudar a Linus Torvalds a hacer de su sistema una realidad. En 1991, la primera versión del sistema salió al mercado. En marzo de 1992 se distribuyó la primera versión, la cual no tenía prácticamente ningún error.
Al aumentar la cantidad de desarrolladores que trabajaban en el sistema, éste integró rápidamente nuevos desarrollos gratuitos de herramientas disponibles en sistemas unix comerciales. Después, comenzaron a aparecer nuevas herramientas para Linux con una velocidad increíble.
La originalidad de este sistema radica en el hecho de que Linux no se desarrolló con fines comerciales. De hecho, no se copió ni una sola línea de código de los sistemas UNIX originales (en realidad, Linux se inspira en diferentes versiones comerciales de UNIX: bds unix, System V). Por lo tanto, una vez creado, todos pueden usar Linux gratuitamente e incluso pueden mejorarlo. Si bien en un principio Linux se diseñó para ejecutarse en una plataforma de PC, se ha expandido (es decir, adaptado) para otras plataformas como Macintosh, estaciones SPARC, DEC Alpha e incluso plataformas como las que utilizan los asistentes personales (PDA), ¡hasta consolas de videojuegos!
Concepto de núcleo y distribución
Linux está estructurado alrededor de un núcleo (en inglés kernel) que es responsable de administrar el hardware. El término distribución se refiere al ensamblaje de un conjunto de software alrededor de un núcleo de Linux para brindar un sistema listo para utilizar. El núcleo de una distribución se puede actualizar para permitir la inclusión de hardware reciente. Sin embargo, este paso, que implica la recopilación del núcleo, es delicado ya que requiere de cierto nivel de conocimiento del sistema y hardware. La recopilación del núcleo se debe dejar a cargo de especialistas o usuarios que estén dispuestos a inutilizar su sistema con motivos de aprendizaje.
La mayoría de las distribuciones propone también su propia instalación gráfica así como un sistema de administración de paquetes que permite la instalación automática de software por medio de la administración de dependencias (en algunos casos, el software en Linux se vincula a bibliotecas externas o se basa en otro software).
Cada distribución tiene sus ventajas y sus desventajas: De hecho, algunas son más adecuadas para principiantes y brindan interfaces gráficas sofisticadas, mientras que otras ponen énfasis en la seguridad y la capacidad de desarrollo. Las distribuciones más conocidas son:
- La distribución Red Hat;
- La distribución Debian;
- La distribución SuSe;
- La distribución Knoppix;
- La distribución Slackware;
- La distribución Mandriva.
La licencia GPL de GNU
Se puede acceder al código fuente del núcleo de Linux de forma gratuita. En consecuencia, este sistema se puede recopilar en otras plataformas que no sean PC. Para permitir la distribución de programas sin el pago de regalías, la fundación FSF (Fundación para el Software Libre) desarrolló un proyecto con el nombre GNU (un poco de historia: GNU es una sigla recurrente que significa "GNU is Not Unix" [GNU no es Unix]). Los usuarios de GNU están sujetos a los términos de la licencia de uso GPL (Licencia de Público General), que describe los términos legales de uso, la distribución o modificación del código fuente.
A continuación encontrará una breve lista de algunos aspectos de esta licencia:
- La licencia GPL permite modificar el programa original y distribuirlo (bajo licencia de GPL);
- La licencia GPL autoriza la venta del software gratuito original o modificado, siempre que el vendedor autorice la distribución (aun en forma gratuita) de dicho software modificado;
- La licencia GPL autoriza el uso del software con fines de lucro (para obtener ganancias);
- el software bajo licencia de GPL permanece bajo la propiedad de sus autores y nadie puede asumir total o parcialmente los derechos de autor;
- La licencia no implica ningún tipo de compensación de los autores.
Esta licencia se denomina a veces copyleft, por analogía con la palabra copyright (right significa derecho y está relacionado con los derechos de uso mientras que left significa izquierdo. Lo que implica el término es que otorga amplios derechos, en particular los de modificación, al futuro usuario).
Características del sistema
Linux es un sistema operativo similar a los sitemas unix que puede ejecutarse en diferentes plataformas de hardware: x86 (es decir, plataformas basadas en Intel, AMD, etc.), Sparc, PowerPC, Alpha, ARM, etc. El sistema Linux también funciona en equipos personales y en consolas de juegos o en asistentes personales
Por lo tanto, Linux es un sistema con plataformas múltiples. También admite múltiples usuarios (diversos usuarios pueden trabajar en el mismo equipo al mismo tiempo), tareas múltiples (se pueden ejecutar diferentes aplicaciones al mismo tiempo sin interferencias entre ellas) y procesadores múltiples.
A Linux se lo considera un sistema fiable, sólido y potente. Incluso puede ejecutarse con muy pocos recursos en equipos de muy bajo rendimiento.
En particular, el sistema Linux posee las siguientes ventajas:
- Es compatible con los estándares de Internet, es decir, los protocolos TCP/IP, que son los protocolos utilizados en Internet. Linux es una herramienta gratuita para crear redes locales, conectarse a Internet y configurar servidores.
- Mayor seguridad debido a la transparencia de su código fuente y la respuesta de la comunidad ni bien se anuncian las vulnerabilidades.
- Separación de los espacios de la memoria y del disco en combinación con una administración específica de los derechos que permiten la administración de una gran cantidad de usuarios con un nivel mínimo de riesgo.
- Un núcleo que se puede configurar por completo según el hardware del equipo en el que se instaló el sistema para maximizar el rendimiento.
Sistema X
X es una interfaz gráfica que se desarrolló en el MIT y que permite crear aplicaciones gráficas que se ejecuten en plataformas diferentes.
X-Window es la interfaz gráfica de las estaciones UNIX. De alguna manera, X-Window es para los sistemas UNIX lo que Windows es para DOS (asegúrese de no decir X-Windows o correrá el riesgo de ser golpeado por un fanático de UNIX). La ventaja más importante de este sistema es que utiliza una interfaz gráfica además de ciertos comandos.
En Linux, existe una implementación gratuita del sistema X-Window denominada XFree86X. XFree86 admite un gran número de tarjetas de video, aunque no todas. Sin embargo, con la comunidad gratuita, la inclusión de nuevas tarjetas gráficas es cada vez más rápida.
La documentación en Linux
Debido a que Linux es un sistema que se puede distribuir en forma gratuita, su documentación es muy amplia. De hecho, cuando se desarrolló Linux, un gran número de personas crearon pequeñas guías de usuario. Sin embargo, eran generalmente demasiado complicadas como para ser accesibles para toda la comunidad de Linux y en su mayoría estaban escritas en inglés. Por esta razón algunas personas decidieron crear documentaciones en francés. En particular, se pueden mencionar:
- Google Linux para búsquedas específicas relacionadas con Linux
- Le guide du ROOTard por Eric Dumas
- Le système d'exploitation Linux por Rémy Card, René Cougnenc y Julien Simon
Algunas personas crearon una serie de "mini documentos": los denominados Pequeños consejos practicos. Estos documentos explican aspectos específicos de Linux de manera simple.
La única desventaja de estos documentos es que el sistema Linux evoluciona constantemente y algunos de estos documentos pueden no estar actualizados.
Hacia una distribucin GNU-Linux
Muchos usuarios de computadoras usan una versión modificada del sistema GNU (18.000 caracteres)
a diario, sin darse cuenta. Debido a un particular giro de acontecimientos, la versión de GNU más ampliamente usada hoy es, con frecuencia, más conocida como «Linux», y muchos usuarios no son conscientes del alcance de su conexión con el Proyecto GNU.
Efectivamente hay un Linux, y esta gente lo usa, pero no es el sistema operativo. Linux es el núcleo: el programa del sistema que asigna los recursos de la máquina a los otros programas que usted ejecute. El núcleo es una parte esencial de todo sistema operativo, pero inútil por sí solo; sólo puede funcionar en el contexto de un sistema operativo completo. Linux se usa normalmente en combinación con el sistema operativo GNU: el sistema completo es básicamente GNU, con Linux actuando de núcleo.
Muchos usuarios no son plenamente conscientes de la diferencia entre el núcleo, que es Linux, y el sistema completo, al que también llaman «Linux». El uso ambiguo del nombre no facilita la comprensión. A menudo, estos usuarios piensan que Linus Torvalds desarrolló todo el sistema operativo en 1991, con un poco de ayuda.
Los programadores generalmente saben que Linux es un núcleo. Pero como generalmente han oído llamar también «Linux» a todo el sistema, frecuentemente se imaginan una historia que justifique que todo el sistema se llame como el núcleo. Por ejemplo, muchos creen que una vez que Linus Torvalds terminó de escribir Linux, el núcleo, sus usuarios buscaron más software libre que lo acompañara, y encontraron que (sin ninguna razón en particular) casi todo lo necesario para hacer un sistema de tipo Unix estaba ya disponible.
Lo que encontraron no fue una casualidad: era el sistema GNU. El software libre disponible conformaba un sistema completo porque el Proyecto GNU había estado trabajando desde 1984 en hacer uno. El manifiesto GNU (31000 caracteres) había definido la meta de desarrollar un sistema libre de tipo Unix, llamado GNU. El anuncio inicial del Proyecto GNU también bosqueja algunos de los planes originales para el sistema GNU. Para cuando se escribió Linux, el sistema estaba casi terminado.
La mayoría de los proyectos de software libre tienen el objetivo de desarrollar un programa particular para una tarea particular. Por ejemplo, Linus Torvalds se propuso escribir un núcleo de tipo Unix (Linux); Donald Knuth se propuso escribir un formateador de textos (TeX); Bob Scheifler se propuso desarrollar un sistema de ventanas (el Sistema de Ventanas X). Es natural medir la contribución de este tipo de proyectos en base a los programas específicos que hayan producido.
Si intentásemos medir la contribución del Proyecto GNU de esta manera, ¿qué conclusión obtendríamos? Un vendedor de CD-ROM encontró que en su «Distribución Linux», el softwae GNU, constituía el contingente único, alrededor del 28% del total de código fuente, y esto incluía varios de los principales componentes esenciales sin los cuales no habría sistema. El propio Linux era alrededor del 3%. Así que si usted fuera a elegir el nombre del sistema basándose en quién escribió los programas que lo forman, la opción única más adecuada sería «GNU».
Pero no pensamos que ésa sea la manera correcta de enfocar la cuestión. El Proyecto GNU no era, y no es, un proyecto para desarrollar paquetes de software específicos. No era un proyecto para desarrollar un compilador de C, aunque lo hicimos. No era un proyecto para desarrollar un editor de textos, aunque desarrollamos uno. El propósito del Proyecto GNU era desarrollar un sistema libre de tipo Unix completo: GNU.
Mucha gente ha hecho importantes contribuciones al software libre del sistema, y todas ellas merecen reconocimiento. Pero la razón por la que es un sistema integrado --y no sólo una colección de programas útiles-- es que el Proyecto GNU se había propuesto hacerlo así. Hicimos una lista de los programas necesarios para hacer un sistema libre completo, y sistemáticamente encontramos, escribimos, o buscamos gente para escribir todo lo que había en la lista. Escribir componentes esenciales pero poco divertidos porque no se puede tener un sistema sin ellos. Algunos de nuestros componentes del sistema, las herramientas de programación, se hicieron populares por sí mismas entre los programadores, pero escribimos muchos componentes que no son herramientas Incluso desarrollamos un juego de ajedrez, GNU Chess, porque un sistema completo necesita también buenos juegos.
A principios de los años 90 habíamos preparado todo el sistema salvo el núcleo (y también estábamos trabajando en un núcleo, el GNU hurd, que funciona sobre Mach). El desarrollo de este núcleo fue mucho más duro de lo que esperábamos; el GNU hurd empezo a funcionar de manera fiable en 2001. Ahora estamos empezando a preparar el lanzamiento real del sistema GNU, con el GNU Hurd.
Afortunadamente, no hubo que esperar al Hurd, porque Linux ya estaba disponible. Cuando Linus Torvalds escribió Linux, rellenó la última laguna importante. La gente pudo entonces poner Linux junto al sistema GNU para obtener un sistema libre completo: una versión basada en Linux del sistema GNU; el sistema GNU/Linux, para abreviar.
Juntarlos suena sencillo, pero no fue un trabajo trivial. Algunos componentes de GNU necesitaron cambios sustanciales para funcionar con Linux. Integrar un sistema completo en forma de una distribución que funcionara sin más que «desembalarla» fue también un gran trabajo. Esto precisó resolver la cuestión de cómo instalar y arrancar el sistema (un problema que no habíamos atacado, porque todavía no habíamos alcanzado ese punto). La gente que desarrolló las diversas distribuciones del sistema hicieron una contribución sustancial.
El Proyecto GNU apoya tanto a los sistemas GNU/Linux como al sistema GNU (incluso económicamente). Financiamos la reescritura de las extensiones relacionadas con Linux de la biblioteca de C de GNU, de modo que ahora se integran bien, y los sistemas GNU/Linux modernos usan la versión actual de la biblioteca sin necesidad de hacerle modificaciones. También financiamos las primeras etapas del desarrollo de Debian GNU/Linux.
A día de hoy usamos sistemas GNU basados en Linux para la mayor parte de nuestro trabajo, y esperamos que usted también lo haga. Pero por favor, no confunda a la gente usando el nombre «Linux» de manera ambigua. Linux es el núcleo, uno de los principales componentes del sistema. El sistema en su conjunto es más o menos el sistema GNU, con Linux añadido. Cuando hable de esta combinación, por favor, llámela «GNU/Linux».
Introducción a la Seguridad de los Sistemas Operativos
La evolución de la computación y de las comunicaciones en las últimas décadas
- Ha hecho más accesibles a los sistemas informáticos.
- Ha incrementado los riesgos vinculados a la seguridad.
La vulnerabilidad de las comunicaciones de datos es un aspecto clave de la seguridad de los sistemas informáticos; la importancia de este aspecto es cada vez mayor en función de la proliferación de las redes de computadoras.
El nivel de criticidad y de confidencialidad de los datos administrados por los sistemas informáticos es cada vez mayor:
- Ej.: correo personal, transferencia de fondos, control de manufactura, control de sistemas de armas, control de tráfico aéreo, control de implantes médicos (marcapasos, etc.).
- Los sistemas deben funcionar ininterrumpidamente y sin problemas.
El sistema operativo, como administrador de los recursos del sistema:
- Cumple una función muy importante en la instrumentación de la seguridad.
- No engloba a todos los aspectos de la seguridad.
- Debe ser complementado con medidas externas al S. O.
La simple seguridad física resulta insuficiente ante la posibilidad de acceso mediante equipos remotos conectados.
La tendencia es que los sistemas sean más asequibles y fáciles de usar, pero la favorabilidad hacia el usuario puede implicar un aumento de la vulnerabilidad.
Se deben identificar las amenazas potenciales, que pueden proceder de fuentes maliciosas o no.
El nivel de seguridad a proporcionar depende del valor de los recursos que hay que asegurar.
Los requisitos de seguridad de un sistema dado definen lo que significa la seguridad, para ese sistema
Los requisitos sirven de base para determinar si el sistema implementado es seguro:
- Sin una serie de requisitos precisos tiene poco sentido cuestionar la seguridad de un sistema.
- Si los requisitos están débilmente establecidos no dicen mucho sobre la verdadera seguridad del sistema.
Algunos ejemplos de formulación de los requisitos de seguridad son los siguientes:
- Directiva DOD 5200.28 (EE. UU.):
- Especifica cómo debe manipularse la información clasificada en sistemas de procesamiento de datos.
- Manual de Referencia de Tecnología de Seguridad de la Computadora (EE. UU.):
- Especifica cómo evaluar la seguridad de los sistemas de computación de la Fuerza Aérea.
- Ley de Intimidad de 1974 (EE. UU.):
- Requiere que las Agencias Federales aseguren la integridad y seguridad de la información acerca de los individuos, especialmente en el contexto del amplio uso de las computadoras.
seguridad y protección se utilizan en forma indistinta. Sin embargo, es útil hacer una distinción entre los problemas generales relativos a la garantía de que los archivos no sea leídos o modificados por personal no autorizado, lo que incluye aspectos técnicos, de administración, legales y políticos, por un lado y los sistemas específicos del sistema operativo utilizados para proporcionar la seguridad, por el otro. Para evitar la confusión, utilizaremos el término seguridad para referirnos al problema general y el término mecanismo de protección para referirnos a los mecanismos específicos del sistema operativo utilizado para resguardar la información de la computadora. Sin embargo, la frontera entre ellos no está bien definida. Primero nos fijaremos en la seguridad; más adelante analizaremos la protección.
La seguridad tiene muchas facetas. Dos de las más importantes son la pérdida de datos y los intrusos. Algunas de las causas más comunes de la perdida de datos son:
1. Actos divinos: Incendios, inundaciones, terremotos, guerras, revoluciones o ratas que roen las cintas o discos flexibles.
2. errores de Hardware o Software: Mal funcionamiento de la CPU, discos o cintas ilegibles, errores de telecomunicación o errores en el programa.
3. Errores Humanos: Entrada incorrecta de datos, mal montaje de las cintas o el disco, ejecución incorrecta del programa, perdida de cintas o discos.
La mayoría de estas causas se pueden enfrentar con el mantenimiento de los respaldos adecuados; de preferencia, en un lugar alejado de los datos originales.
Un problema más interesante es que hacer con los intrusos. Estos tienen dos variedades. Los intrusos pasivos solo desean leer archivos que no están autorizados a leer. Los intrusos activos son más crueles: Desean hacer cambios no autorizados a los datos. Si se desea diseñar un sistema seguro contra los intrusos, es importante tener en cuenta el tipo de intruso con el que se desea tener protección. Algunas de las categorías comunes son:
1. Curiosidad casual de usuarios no técnicos. Muchas personas tienen en sus escritorios terminales para sistemas con tiempo compartido y, por la naturaleza humana, algunos de ellos leerán el correo electrónico de los demás u otros archivos, si no existen barreras en frente de ellos. Por ejemplo la mayoría de los sistema UNÍS tienen pre definido que todos los archivos se pueden leer de manera pública.
2. Conocidos husmeando. Algunos estudiantes, programadores de sistemas, operadores y demás personal técnico consideran como un reto personal romper la seguridad del sistema de cómputo local. A menudo son muy calificados y están dispuestos a invertir una cantidad sustancial de su tiempo en este esfuerzo.
3. Un intento deliberado de hacer dinero. Algunos programadores en banco han intentado penetrar un sistema bancario con el fin de robarle al banco. Los esquemas han variado desde cambiar el software para truncar y no redondear el interés, para quedarse con una pequeña fracción de dinero, hasta sacar dinero de las cuentas que no se han utilizado en años o el “correo negro” .
4. Espionaje comercias o militar. El espionaje indica un intento serio y fundamentado por parte de un competidor u otro país para robar programas, secretos comerciales, patentes, tecnología, diseño de circuitos, planes de comercialización, etc. A menudo, este intento implica la cobertura de cables o el levantamiento de antenas hacia la computadora con el fin de recoger su radiación electromagnética.
Debe quedar claro que el intento por mantener la KGB lejos de los secretos militares es un poco distinto del intento por evitar que los estudiantes inserten un mensaje gracioso en el sistema. La cantidad de esfuerzo que alguien pone en la seguridad y la protección depende claramente de quién se piensa sea el enemigo.
Otro aspecto del problema de la seguridad es la privacía: la protección de las personas respecto del mal uso de la información en contra de uno mismo. Esto implica en forma casi inmediata muchos aspectos morales y legales.