Download Número 1 - Software Libre
Document related concepts
Transcript
Año 1 Revista Digital No. 1 Aptana Studio, el mejor entorno de desarrollo web....pág. 6 Entrevista con Guadalupe Ibargüengoitia....pág. 15 Turtorial de instalación de Ubuntu....pág. 33 http://tux2k.cuautitlan2.unam.mx/informatica Equipo Despertarum Ana G. Villa Trujillo Carlos Pineda Muñóz Daniel García Domínguez [email protected] [email protected] [email protected] David Torres Santana Eduardo De LaCruz Flores Emmanuel Ortíz Cruz [email protected] [email protected] [email protected] Gabriela Aguilar Mendoza Iván Lagunas Salazar Julio C. Rivera López [email protected] [email protected] [email protected] PARA CUALQUIER DUDA, COMENTARIO O SUGERENCIA, ESCRIBENOS A: [email protected] 2 Oscar Ramírez Hernández Sonia A. Morales Salazar [email protected] [email protected] C uando inicias algo lo haces porque estás convencido de una idea que se te metió en la cabeza y no te puedes sacar, no tienes idea de si a alguien le interesará, no sabes si esa razón por la que estás iniciando en algún momento dejará de tener sentido; sólo tienes una idea en la mente, continuar, y de que eso por lo que tomaste la decisión de empezar perdure. Muchos alumnos de la carrera de Informática nos hemos dado cuenta de cómo poco a poco ésta se ha ido perdiendo dentro de la FES, las publicaciones que surgen son escasas o nulas, simplemente no hay eventos. Pero como en todos los lugares siempre hay personas que intentan cosas diferentes y tienen ideas comunes, de entre los alumnos de Informática surgió un grupo que está interesado en lograr que la carrera despierte y se deje escuchar dentro de la Facultad, de intentar que los alumnos empiecen a participar y a convivir entre ellos. En este momento se está iniciando un proyecto que tal vez para muchas personas parecerá insignificante o irrelevante, y estamos conscientes de que tal vez nos vayamos y ésto se quedará en el olvido, pero también tenemos la esperanza de que puede ocurrir lo contrario, que ésto que estamos haciendo tenga repercusión entre los alumnos y pueda ayudarlos de alguna manera en su desempeño académico. En ningún momento este proyecto tiene el propósito de sacar provecho de algún tipo, lo hacemos con la idea común de que esta carrera puede y debe dar más, sabemos que puede levantarse si entre todos colaboramos y de esta forma podremos decir que ha despertado, sabemos que como todo en el universo esto algún día terminará, no sabemos cómo, no sabemos cuándo, no sabemos si termine bien o si termine mal, sólo sabemos que esto tendrá un final, y mientras ese final llega, nosotros estamos comprometidos a mes con mes tratar de alcanzar junto a ustedes la utopía del conocimiento. Equipo Despertarum 3 Contenido Página Editorial 3 A C T U A L I ZA C I O NE S Aptana Studio, el mejor entorno para desarrollo de aplicaciones web 6 Por: Emmanuel Ortíz Cruz El proceso de programación es la etapa más difícil y engorrosa del desarrollo de aplicaciones, ya sean de escritorio o web...si lo que se desea es tener un potente entorno de desarrollo web, Aptana Studio es la aplicación indicada. 45 NM o el siguiente golpe de Intel 9 Por: Iván Lagunas Salazar Intel Corporation parece adelantarse a su competidora AMD y dar el siguiente golpe, consiste en un nuevo proceso que supone el cambio de los transistores de 65nm a los de 45nm, un gran avance en la tecnología de microprocesamiento. Dispositivos móviles, pequeños y poderosos 11 Por: Julio César Rivera López Se dio vida a un proyecto, el cual tenía como objetivo principal crear un dispositivo de pequeñas dimensiones con capacidades iguales o similares a la de una computadora portátil con la finalidad permitirnos ser más productivos sin importar donde nos encontremos. BananaScreen, protección biométrica al alcance de todos 13 Por: Gabriela Aguilar Mendoza Si tienes webcam, tienes curiosidad por saber cómo funciona un sistema de este tipo y quieres tener más protegida tu información, actualmente se puede descargar este software y de forma gratuita. P L A T I C A N DO C O N . . . Entrevista con la Maestra en Ciencias Guadalupe Ibargüengoitia En este nuestro primer número, nos complace presentar la entrevista realizada a la Maestra Guadalupe el 9 de enero del presente año, en la Facultad de Ciencias, C.U. 4 15 Página S I S T E M A S O PE R A T I V O S 19 T U T O R I AL E S Tutorial de instalación de Ubuntu 33 En este primer número iremos paso a paso en la instalación de Ubuntu. Así es que si estás listo para explorar nuevas cosas, adelante. Virtualización con VirtualBox 40 VirtualBox es un programa de virtualización capaz de instalar en nuestra computadora sistemas operativos basados en Windows y en Linux de 32bits, aunque también hay una versión beta para MacOS X. O P I N I Ó N DE . . . Javier López Flores 44 Egresado de la Lic. en Informática :: La historia del botón rojo 5 Actualizaciones APTANA STUDIO, EL MEJOR ENTORNO PARA DESARROLLO DE APLICACIONES WEB Emmanuel Ortíz Cruz E l proceso de programación es la instalar directamente desde su sitio web. etapa más difícil y engorrosa del desarrollo de aplicaciones, ya sean de escritorio o web; en el caso del desarrollo de aplicaciones web se vuelve aún más complicado ya que la mayoría de los desarrolladores utilizan un editor de texto que cuenta con resaltado de Logo de Aptana Studio sintaxis y sus aplicaciones las visualizan en varios navegadores para asegurarse sea Este IDE apareció en el año 2006 como correctamente visible para la mayoría de una herramienta para los programadores las personas. para realizar aplicaciones con AJAX, CSS de que lo que están haciendo y demás, ahora después de más de un Cuando el sitio web que se desarrolla año de su aparición, es una alternativa cuenta con gran cantidad de páginas o bastante el desarrollo de scripts del lado servidor programadores contiene se cuenta con la importante característica complica demasiado, por esa razón han de poder instalar plug-ins que hacen a surgido gran cantidad de entornos de Aptana Studio aún más poderoso de lo desarrollo que nos permiten disminuir el que es. Aptana Studio está disponible en tiempo de desarrollo en gran medida. dos versiones: Aptana errores Studio la es codificación un Entorno de versión de para aplicaciones comunidad los web, (Community Desarrollo Integrado (IDE por sus siglas edition) es la versión disponible para en inglés) basado en el popular Eclipse todas las personas interesadas, y se (orientado para desarrollar aplicaciones puede descargar directamente desde su en Java), cuyo objetivo es el desarrollo sitio web http://www.aptana.com, ésta de aplicaciones Web, incluyendo no solo cuenta con todas las funcionalidades herramientas para el desarrollo del lado básicas del IDE: cliente sino también para el lado servidor mediante un plug-in (agregado que permite realizar operaciones especiales) que se puede descargar e 6 La poderosa • Edición de texto. • Debugging (Depuración de errores) • Sincronización y administración de así como poder modificarla y a su vez proyectos obtener licencia para su uso y distribución. Aptana Studio está disponible para Linux, Windows y MacOS, la descarga del software ocupa unos 85 MB y se puede hacer desde la propia página de Aptana. Al instalar Visualización de errores de sintaxis Aptana Studio obtenemos el entorno con soporte para La versión profesional (Professional HTML, CSS y Javascript; pero después edition) es la versión de paga del Aptana podremos instalar plug-ins para disponer Studio, la cual cuenta con todas las también del editor PHP, Ruby on Rails y características de la Community Edition, otros, como soporte para Adobe AIR y el mas desarrollo para iPhone. algunas características extras aunque no son necesarias para trabajar con el IDE, algunas de las más importantes de estas características son Estas son algunas de las características principales de Aptana Studio: el soporte técnico, algunos plug-ins que sólo están disponibles para esta versión • Ayudas visuales Explorer, ya que la versión comunidad lenguajes disponibles, como resaltado sólo de color y autocompletado de código. el debug para los de escribir disponible en momento (como por ejemplo el debug en Internet tiene scripts al diferentes Firefox, aunque éste debe ser suficiente para desarrollar aplicaciones completas y de calidad) y plug-ins para el soporte • Visualización de errores de sintaxis a medida que se escribe. de los protocolos FTPS y SFTP (que permiten la transferencia segura de archivos a los servidores). • Soporte para hacer FTP a servidores remotos con herramientas para sincronización. Aptana Studio se distribuye bajo licencia dual, amparado por la General Public • Debug en Firefox (Debug Internet License (GPL) y la Aptana Public License Explorer también (APL), lo que permite que se pueda Profesional). con la versión obtener el código fuente de la aplicación, 7 • Librerías de funciones en Javascript populares en Ajax/Javascript para utilizar en los proyectos. Quizá algunas de las desventajas de Aptana Studio son que al ejecutarse sobre la consume • Ejemplos ya creados para empezar a maquina muchos computadora recursos el Java de entorno la está totalmente en inglés, pero si lo que se rápidamente. desea es tener un potente entorno de • Previsualización de estilos CSS con el web • Extensible a partir de plug-ins que puede crear Aptana u otras empresas y herramientas para estar al tanto de cualquier nuevo añadido. • Extensible por Javascript. Los usuarios pueden escribir scripts para realizar acciones y macros. Los Snippets permiten Aptana aplicación indicada. editor CSS. insertar fragmentos de texto que se utilizan muy a menudo. • Y un largo etc... Autocompletado de texto y soporte para navegadores 8 que de conocer las posibilidades de desarrollo desarrollo • y virtual Studio es la 45NM Ó EL SIGUIENTE GOLPE DE INTEL Iván Lagunas Salazar C omo todos sabemos, la disputa entre las dos compañías líderes en elaboración de microprocesadores en 1969. Desde acaparó el un principio mercado Intel de los microprocesadores, siendo su principal (INTEL Y AMD), ha resultado una de las arma batallas más grandes dentro del mundo publicidad, mientras que AMD siempre de la informática. Este mundo donde se sólo los que tienen una mayor visión y investigando y capacidad importantes avances de adaptarse logran el marketing mantuvo comercial rezagado, al y la acecho, desarrollando sobre los esperando su sobrevivir, el mundo de la información microprocesadores, computarizada que ha visto caer a los oportunidad, la cuál se dio en los años que parecen más sólidos y fuertes, así recientes. como ha visto convertirse a pequeñas la AMD lanzó al mercado comercial los computación, nos presenta una de las microprocesadores de 64 bits antes que más memorables guerras sin cuartel, cualquier otra compañía, incluyendo la sólo equiparable con la guerra de los del Sr. Gordon, ésto le significó un grandes “titanes” avance importante al abrirse campo en compañías de la en los gigantes de dueños del universo información automatizada: el mercado, y acrecentando aceptación. su Microsoft vs. Apple, HP vs. Acer, o la popularidad Incluso su reciente Microsoft vs. Google. antagonista no tardó en reconocer que se le había adelantado y ganado una partida, y de inmediato lanzó su versión de microprocesadores de 64 bits. Ahora Intel Corporation parece adelantarse a su competidora y dar el siguiente golpe, un golpe que consiste en un nuevo proceso que supone el AMD vs. Intel cambio de los transistores de 65nm (nanómetros) a los de 45nm, un gran avance en la tecnología Estos de Y es que desde sus inicios, la compañía microprocesamiento. del señor Gordon E. Moore le ha llevado transistores la delantera a su competidora Advanced procesadores que la compañía lanzará Micro Devices (AMD), inclusive en su en definitiva para este 2008, lo cuál sólo fecha de creación; Intel se creó en 1968, marca el paso siguiente en la rápida mientras que su competidora se fundó cadencia de Intel de ofrecer una nueva constituirán los nuevos nuevos 9 tecnología de proceso y una nueva micro- Se presume arquitectura cada tercer año. procesadores que estos alcanzarán los nuevos 3.33GHz con 3MB de caché por núcleo, lo que hace un total de 12MB de caché de segundo nivel en las versiones de cuatro núcleos. También el tener los 45nm supondrá otras ventajas como: el que se puedan incrementar las velocidades de reloj del núcleo, tener más núcleos por procesador, además se tendrá más memoria caché por procesador y un Chip de 45 nm rendimiento por watts que según Intel llegaría al 300%. Así, esta gran empresa es la primera en Así bien, ante una batalla tan incansable implementar como ésta... estaremos expectantes de una combinación innovadora de nuevos materiales que la inmediata reduce drásticamente las fugas en los competencia. respuesta de transistores e incrementa el desempeño de su tecnología de proceso de 45nm. La compañía utilizará un nuevo material con una propiedad llamada high-k para el componente dieléctrico de la compuerta del transistor, y una nueva combinación de materiales metálicos para el electrodo de la compuerta del transistor. Para entender mejor ésto, podemos decir que los transistores son switches diminutos que procesan los unos y ceros de las computadoras. La compuerta enciende y apaga el transistor, y el componente dieléctrico de la compuerta es un aislante situado por debajo de éste, que lo separa del canal donde circula la corriente. La combinación de las compuertas componente metálicas dieléctrico de y el compuerta high-k da como resultado transistores con fuga de corriente muy baja y un mucho mejor desempeño. 10 10 Presentación de los procesadores la DISPOSITIVOS MÓVILES; Y PODEROSOS PEQUEÑOS Julio César Rivera López S la misma placa un procesador de ultima desarrollo y generación, una tarjeta gráfica y una procesadores para tarjeta de red inalámbrica, permitiendo computadoras tanto de escritorio como que empresas como Sony, HTC, Fujitsu, portátiles, una entre otras, logren liberar la primera de generación de esta clase de dispositivos nuevas tecnologías; así con el apoyo y móviles, mismos que poseen sistemas alianza de empresas lideres en el mundo operativos de la tecnología como Microsoft y Sony Vista) por mencionar algunos, se dio vida a un funcionales proyecto, el cual tenía como objetivo disfrutar archivos multimedia (música, principal fotos ó videos), navegar por Internet; i bien Intel es conocida investigación, manufactura división de también dedicada crear cuenta a un la por con creación dispositivo de crear, iguales electrónico, similares a la de una Fedora eficazmente pequeñas dimensiones con capacidades o (Linux para revisar o adaptados permitir y Windows al responder conectarse a y usuario correo diversos computadora portátil, con la finalidad de servicios permitirnos sin revisar, crear y modificar archivos de importar dónde nos encontremos. Por texto, hojas de cálculo y presentaciones; tanto, ya se ha gestado la Ultra Mobile instalar Personal Computer (UMPC) y el MID posicionamiento (Mobile videojuegos preferidos, e incluso instalar ser Internet más productivos Device), el primero (mensajería mapas instantánea), para sistemas de global, disfrutar los dirigido a profesionales y el segundo soluciones integrales orientado a usuarios para satisfacer sus como todo necesidades básicas. propuesta de maximizar la vida útil de la SAP, lo empresariales anterior con la batería para lograr un mejor rendimiento del equipo. Sony Vaio UX Es así, como Intel ha integrado en una Samsung QIU -V 7'' 111 1 Estos dispositivos excelente demanda, actualmente alianzas han se que tenido por lo una que está trabajando permitan ofrecer en una amplia gama de aplicaciones para llamar la atención de una gran variedad de profesionales y usuarios. Por lo mismo se augura que estos dispositivos evolucionen, prueba de ello es que ya se emprende una nueva generación de UMPC´s y MID´s que tendrán integrados procesadores de 45 nanómetros, que son mas pequeños y poderosos, con tecnologías inalámbricas 3G, Bluetooth, WiFi y Wi-Max, mejoras en las pantallas táctiles, así como el uso de memorias flash de mayor capacidad, con la certeza y el objetivo de ofrecer al usuario una verdadera experiencia de movilidad con todos los beneficios de alto rendimiento y de vanguardia que ésto conlleva. Sin lugar a duda, el éxito y proyección de estos dispositivos, sobre todo en países con economías en vías de desarrollo, depende en gran medida de la evolución de redes inalámbricas de largo alcance (Wi-Max), del coste de los servicios de datos móviles requerimientos y o de satisfacer necesidades reales, demostrando que la inversión finalmente refleja beneficios para el usuario, logrando que estos ultra móviles se puedan popularizar y estén al alcance del usuario en general. 12 Intel MID, Sistema Operativo Linux BANANASCREEN PROTECCIÓN BIOMÉTRICA AL ALCANCE DE TODOS Gabriela Aguilar Mendoza ¿ Protección patrones no pueden perderse o ser Biométrica?, sustraídos. ¿BannanaScreen? tienen Las tasas tecnologías de error actuales que varían ¡¡¡¡¡¿De qué estamos hablando?!!!!. Es ampliamente desde valores bajos como lo nos el 60%, hasta altos como el 99,9%, pero preguntamos cuando escuchamos hablar tienen un potencial para identificar a sobre los sistemas biométricos, por lo individuos con un grado de certeza muy cual primero debemos de conocer qué alto. primero que la mayoría es la biometría, y básicamente se refiere a la aplicación de tecnologías de la Los informática, partes obtienen es decir, información los de sistemas los rasgos dispositivos biométricos tienen tres principales: automático que lee un mecanismo y captura una físicos o de conducta de un individuo, imagen digital o analógica; una entidad que es transformada en un algoritmo para matemático de comprensión, con el fin verificar manejar como almacenamiento comparación, identidades o personas. aspectos y también la y ofrece una interfaz para las aplicaciones que los Los sistemas biométricos más usuales utilizan. en rasgos físicos se enfocan en las huellas dactilares, el iris, los patrones Es importante mencionar que hasta hace faciales, patrones de venas de la mano o poco tiempo, utilizar esta tecnología era la geometría de la palma de la mano, un privilegio de seguridad debido a los mientras que desde el comportamiento altos costos, pero actualmente cuentan se incluye la firma, el paso y la fuerza al con más facilidad para el acceso a estos escribir sistemas en el teclado. La voz se considera una mezcla de características y con sencillos accesorios como lo es tan solo una cámara Web. físicas y del comportamiento, pero todos los rasgos biométricos comparten aspectos físicos y del comportamiento. Si tienes webcam, tienes curiosidad por saber cómo funciona un sistema de este tipo y quieres tener más protegida tu La biometría es utilizada para proteger o información, restringir el acceso a cierto objeto o descargar información, este sistema de seguridad gratuita. un actualmente software se y de puede forma frente a otras formas de autentificación personal como el uso de tarjetas o BananaScreen es un software que se PINes, tienen la ventaja de que los puede descargar de forma gratuita, éste es distribuido por BananaSecurity, y es 13 enfocado a patrones faciales, es muy usuario, lo traduce en una contraseña sencillo al momento de instalarse y es que está codificada numéricamente para muy fácil configurar el acceso a la simular o sustituir la acción de teclear el computadora, de tal forma que solo tú Nip, ésto hace que se analice la cara de puedas acceder simplemente colocando cualquier tu cara frente a la webcam. acceso a la computadora. persona que intente tener El software BananaScreen aunque es en BETA, sigue alternativa siendo para una quienes buena olvidan continuamente sus contraseñas. Como medida de seguridad, BananaScreen siempre da la posibilidad de teclear la contraseña, con lo cual este sistema ofrece una alternativa a la clave y no una sustitución. Intel MID, Sistema Operativo Linux Si estás interesado en este software de Para configurar tu cara por primera vez, prueba, es necesario que conozcas que el BannanaScreen te tomará una foto y sólo está disponible para Windows y te pedirá una contraseña. pronto para Mac OS, y que al ser de prueba, éste puede tener fallas o ser Cuando pases un tiempo sin usar la PC, burlado fácilmente. Está enfocado a un automáticamente BannanaScreen sistema monousuario, que sucedería si bloquea la máquina y para activarla es se tiene que compartir la computadora necesario tu rostro, así evitarás el acceso con otro usuario. Además de que es fácil FÍSICO de otros usuarios a tu máquina. de usar y configurar, es gratuito, puede ser funcional y tiene la ventaja de que ya Es importante señalar que la contraseña no que te solicita al principio es útil si contraseñas. cambias tu imagen, pues con tendrás que recordar más ésta puedes tomar la foto que se configurará para seguridad introduces del la equipo; es fácil, contraseña y BananaScreen te toma nuevamente la foto con tu nuevo aspecto. utilizar necesario este ningún software tipo de no es cámara, cualquiera puede funcionar, ya que solo reconoce la fisonomía de la cara de un 14 http://es.wikipedia.org/wiki/Biometr%C3%ADa http://www.libroslibres.org/ManualesLuCAS/doc-unixsec/unixsechtml/node113.html Descargar BananaScreen Para REFERENCIAS: http://www.dragonjar.us/proteccionbiometrica-al-alcance-detodos.xhtml+biometrica&hl=es&ct=clnk&cd= 15&gl=mx&client=firefox-a P l a t i c a n d o c o n ... M. en C. Guadalupe Ibargüengoitia González. • Coordinadora de la Licenciatura en Ciencias de la Computación (UNAM) en el año 2000. • 32 años de experiencia profesional y académica • Actualmente, profesora titular A de tiempo completo en la Facultad de Ciencias (Licenciatura en Ciencias de la Computación y en el Posgrado de Computación) en la UNAM. En este nuestro primer número, nos complace presentar la entrevista realizada a la Maestra Guadalupe (M.G.) el 9 de enero del presente año, en la Facultad de Ciencias, C.U. Equipo Despertarum (E.D.) E. D. ¿Qué asignaturas imparte?, y ¿A qué nivel lo hace? M.G.: …mi obligación son dos cursos cada semestre, imparto uno en la licenciatura y uno en el posgrado; en la licenciatura imparto en los semestres nones la materia de “Ingeniería de Software”, que es una materia de séptimo semestre de la carrera de Ciencias de la Computación, y en los semestres pares en la misma licenciatura imparto una materia que se llama “Temas Avanzados de Ingeniería de Software”, en donde lo que trato es de ver qué es lo más interesante o lo más novedoso que hay, ... en la materia de Ingeniería de Software utilizamos un método pesado de UML, que es el proceso unificado para desarrollo de software; entonces quiero dar distintos temas, vamos a trabajar métodos ágiles, métricas de software, y empezar a probar con un lenguaje de programación que no es muy nuevo, pero que sí está empezando a hablarse y a popularizarse mucho, se llama RUBY, entonces el ambiente de programación de este lenguaje se llama RUBY on Rails, así como Eclipse podría ser un ambiente de programación para desarrollos en Java, para RUBY es éste; este lenguaje RUBY es muy interesante porque es un lenguaje 100% orientado a objetos para desarrollo de software en Internet, entonces, y según mis alumnos del último semestre, es una maravilla el lenguaje, ¡vamos a ver si es cierto!, entonces para empezar, compré dos libros y a ver, tengo todo enero para aprender antes de empezarles a enseñar a los alumnos; esos son los cursos en la licenciatura. En la maestría imparto en los semestres pares, para los alumnos del segundo semestre una materia que se llama “Tecnología Orientada a Objetos”, y el objetivo de esta materia es aprender un proceso para el desarrollo de software orientado a objetos y conceptos importantes como: patrones, ambientes Rapid Application Development (RAD), que son dirigidos por la arquitectura para que los alumnos a la hora de que hacen sus modelos vayan construyendo el software, etc. Éso es en los semestres pares y cuando pasan a tercer semestre entonces conjuntamente con la Dra. Hana Oktaba, impartimos una materia que se llama “Ingeniería de Software Orientada a Objetos ”, y ahí el objetivo es que sean una empresa de desarrollo de software, y que los alumnos a la par construyan un software más o menos grande en equipos de 5 personas para un cliente real si se puede, y con todo lo que eso significa; el semestre pasado tuvimos dos sistemas bastante exitosos, esperemos pronto ponerlos a disposición en la página del posgrado para que los use todo el mundo que le pueda interesar, entonces estas son las materias que imparto tradicionalmente. 15 E.D. ¿Podría hablarnos un poco más sobre sus áreas de interés? material que pueda ser más útil a las empresa que quieren aplicar MOPROSOFT, eso ya tenemos varios años haciéndolo con los alumnos de maestría pero es un cuento M.G.: Bueno, por un lado lo que platicaba de nunca acabar,…¡nunca dejan el software hace un ratito, (pero frente a la cámara no), suficientemente bien!, entonces hemos es de que estamos lanzando hecho muchas herramientas para una especialización en MOPROSOFT es la apoyar MOPROSOFT, pero se “Diseño y aplicación de quedan ahí, en los discos norma mexicana Multimedia Interactiva”, yo guardados nada más; entonces soy la coordinadora de esta para el desarrollo queremos ahora iniciar un especialización, en esta de software... proyecto más serio y más fuerte especialización estoy sobre eso; y a la vez de este trabajando en conjunto con trabajo, otra cosa que ya llevamos un año grupos de trabajo muy exitosos dentro de la trabajando en lo que participa el maestro UNAM en desarrollo de aplicaciones Carlos Pineda también, es la red universitaria multimedia; ahora en abril cumplimos tres de Ingeniería de Software y bases de datos, años de estar trabajando en conjunto y lo entonces a través de la conjunción de toda la que hemos hecho es que a partir de la experiencia que hay en la UNAM de práctica de éstos grupos exitosos como desarrollo de software, poder tener UNIVERSUM, DGSCA , SECADET, quienes mecanismos de comunicación y cooperación ya tienen muchos años de experiencia en el entre todos los que desarrollamos software desarrollo de software multimedia, definimos en la UNAM, eso está muy ambicioso pero el proceso; ellos lo hacían pero no sabían llevamos un año trabajando a través de un qué hacían, entonces definimos a ver cuáles seminario, primero fue un seminario de son las fases, cuáles son los roles, cuáles conocernos, luego fue otro seminario de son las actividades; lo planteamos, lo hablar de temas más avanzados, y para este modelamos a través de UML, todo eso con año un poco la idea sería empezar a buscar distintos diagramas y una vez que lo tuvimos cursos que cada una de las dependencias, más o menos listo, iniciamos la en lo que es más fuerte pudiere impartir de especialización para enseñar a los alumnos, forma abierta o de alguna manera hacia el cómo se construye software multimedia e resto, entonces eso se parece mucho a lo interactivo a partir de esas buenas prácticas; que acabo de platicar de la parte académica eso dimos el semestre pasado con esa de educación de alumnos pero ahora de materia y hubo mucha retroalimentación de capacitación a los desarrolladores de los alumnos, vamos a volver a regresar a software de la UNAM porque hay refinar todo esto; esa es una parte muchísimos grupos de desarrollo de software interesante de mis actividades, que pues lo en la UNAM; bueno, por ejemplo podríamos que falta es acabar de pulir los documentos; hablar de la DGAE que hace todos los ya entregamos una cierta versión de los sistemas de educación, de control escolar; documentos para oficializar esta entonces toda su experiencia que pueda especialización, es la burocracia que se tiene circular entre todos los demás y además que llevar, quién sabe que cuerpos introducir los conceptos por ejemplo de académicos, áreas, comités de áreas y cosas MOPROSOFT. Serían como mis proyectos por el estilo; esperemos que para agosto ya más importantes de este año, como sueño la podamos sacar oficialmente, entonces ésa guajiro que todavía quien sabe si lo es una de mis área de interés. Otro son los arranquemos, pero sería un poco la tirada de cursos y la enseñanza de la ingeniería de si pudiéramos crear una especialización software a nivel licenciatura, a nivel maestría, semejante a la que estamos haciendo de también del famoso modelo MOPROSOFT, multimedia pero de ingeniería de software en que es la norma mexicana para el desarrollo donde podamos de software, el proyecto que tenemos es que hay muchísimos dar un título de queremos desarrollar software de posgrado, igual grupos de desarrollo capacitación a las empresas como si fuera recuperando la un aula de educación abierta y a distancia de de software en la experiencia de MOPROSOFT, entonces tenemos ahora todo UNAM... todos, armando el reto de conseguir pedagogos, conseguir como un plan de diseñadores, etc., para construir todo ese 16 estudios, entonces a la todas las actividades mejor primero de todos los que tienen tenemos que conocimientos en empezar con cursitos sueltos desarrollo de software... pero después conjuntarlos armando una especialización, no necesariamente para este año pero tal vez para el año que entra, porque la especialización multimedia pues nos llevó dos años definirla, entonces ésta que nos lleve uno porque ya llevamos un poquito de experiencia y conjuntar todo el trabajo de la red pues podría ser muy interesante; ese es otro proyecto para este año, para ir recuperando lo que ya tenemos. hay que conjuntar E.D. ¿Qué percepción tiene, en un panorama general, sobre la informática en México? M.G.: Bueno, pues yo creo que es toda un área de oportunidades muy importante porque el desarrollo de software, bueno... en el sexenio pasado si nada funcionó en este país, lo único que si funcionó fue el impulso al desarrollo de software, la Secretaría de Economía tenía programas muy importantes para el desarrollo de software, me consta por la participación en lo que se llamaba la Asociación Mexicana de Calidad en Ingeniería de Software, quien impulsó al desarrollo de software en México, fue muy importante; este sexenio todavía no ha dado mucho de que hablar, ha echado cosas para atrás, pero creo que impulsó la Secretaría de Economía el desarrollo de software y es un área de oportunidad muy importante para nosotros, y lo más importante para que esa industria funcione, es que debemos de tener gente preparada a todos los niveles, desde egresados de Licenciatura en Informática, egresados en Ingeniería en Computación, egresados en Ciencias de la Computación, egresados de maestría, etc. O sea hay que conjuntar todas las actividades de todos los que tienen conocimientos en desarrollo de software, yo creo que es un área muy importante de oportunidad en nuestro país. E.D. Relacionado con esta parte, ¿Cómo percibe la formación que están teniendo los alumnos de informática, dentro de la UNAM? M.G.: ...con mi experiencia en estos proyectos que acabo de mencionar; bueno yo trabajo aquí en la Facultad de Ciencias y entonces aquí uno a veces tiene la visión muy miope de que todos son científicos de computación, pero no es cierto, porque en la red una gran cantidad de la gente que desarrolla software en la UNAM es egresado de carreras de Informática, tanto de Cuautitlán como de aquí enfrente de la Facultad de Contaduría, entonces eso quiere decir que algo están haciendo bien. Dentro de nuestros egresados del posgrado, últimamente se han puesto medios pesados y entonces no es muy fácil que entren egresados de carreras de Informática porque luego se pone: “demuestre teoremas” en el examen de admisión; pero bueno, algún día me gustaría poder sacar algo menos riguroso, yo tengo tres egresados estrellas que hicieron unas tesis maravillosas y que son licenciados en Informática de aquí enfrente, yo creo que todas las carreras tienen su campo muy valioso, y bueno, si ahorita en el posgrado están muy puristas, de que tienen que saber demostrar teoremas, pues ellos se la pierden, porque en ese sentido que ésta especialización que quisiéramos tener en ingeniería de software sería un campo más propicio para recibir a todos los de todas las carreras de Computación y de Informática que quieran especializarse en Ingeniería de Software, que ahorita porque los ponen a demostrar teoremas que a los de Ingeniería de Software no les sirven para nada, no los podemos aprovechar. E.D. ¿Qué tánta demanda cree que tienen los profesionistas de esta carrera? M.G.: Mucha, mucha, yo creo que…, alguien por ahí muy pesimista dice: “no ya no se necesitan”, ¡¿Cómo que no se necesitan?!, se necesitan para todo, yo creo que para todo, para todo, para todo, pues es que en este momento nuestra vida está regida por softwares, y ¿Quién los hace?, pues egresados de las carreras de Informática, Ingeniería en Computación y ...en este momento nuestra vida de Ciencias de la está regida por softwares, y ¿Quién Computación; demanda hay me gustaría los hace?, pues egresados de las muchísima, ahorita mencionar, ahora sí carreras de Informática, Ingeniería que un comercial, hay una en Computación y de Ciencias de revista, no se si la conozcan, la Computación. 17 cada quien tiene que buscar su plus... tengo que verdaderamente echarle los kilos, porque luego termino la carrera ¿y..?, ¿Qué se llama “Software Gurú”, que es una revista se hacer?, ¿En qué me van a contratar?, mexicana de desarrollo de software, que es la ¿no?, pues tienes que ponerte las pilas computación en la práctica, y entonces en desde ahorita, desde quinto semestre que ya esta revista se puede ver mucho la relación tienes una idea de qué se trata tu carrera, a que existe en la industria de software en ver yo qué quiero, en qué quiero ser muy México, este número en particular habla bueno y echarle los kilos para deveras sobre las personas y los números; viene un destacar en eso, y a la hora de que me vaya artículo muy interesante, son muchas a ofertar para conseguir trabajo: es que yo gráficas y muchas estadísticas; cuánto gana soy buenísimo en…, yo le he echado muchos toda la gente que se dedica al desarrollo de kilos a…, y entonces de esa manera, si en software en México, lo sacaron a través de una empresa tienen varias solicitudes van a encuestas que estuvieron realizando a la decir ¡ah!, pero éste enfoca mejor que nadie gente de la industria de software que conoce los conocimientos; todo lo que yo haga y todo la revista, esta revista además hace cada año lo que aprenda en el camino, hacer una un evento muy grande en octubre, y hay revista, hacer entrevistas, todas esas cosas, cosas interesantísimas porque vienen sacarle jugo, preparar muy bien las preguntas estudios por genero, por tipo de aplicaciones, como lo hicieron ustedes, todo eso es un plus etc., etc. Y a mí lo que me queda claro es que que a la hora de intervenir en un trabajo me hay mucha demanda de desarrollo de va a dar satisfacción a mí y además le va a software, bastante bien pagado y depende de dar gusto a la gente al contratarme, ¿no?; lo que uno quiera hacer, pero el campo de pero además otra cosa, otro consejo tipo de cosas que uno puede hacer para el interesante, si yo hago verdaderamente lo desarrollo de software es muy amplio, es muy que me gusta, si le echo los kilos, yo siempre interesante echarle un ojo a esa revista digo, si yo juego muy bien, -porque estoy porque pudieran sacar cosas interesantes, haciendo lo que me gusta, estoy jugando, está electrónica también, la suscripción… ¿no?, como los niños-, y si yo hago las cosas bueno antes era gratis ahora no se, pero la con mucho gusto, el dinero llega solito, o sea, verdad que vale la pena para un lo importante es que me apasione por lo profesionista, por lo n o b u s c a r tr a b a j o o que hago y no…, es que yo quiero ganar menos revisar lo que mucho dinero; ¡ah!, ¿te gusta lo que está publicándose b u s c a rl o p o r e l d i n e ro . . . haces?, ¿te apasiona lo que haces?. aquí; y sí es cierto p a r a l o s i n fo r m á t i c o s , Primero apasiónate por lo que haces y el que hay mucha h a y q u e a p a s i o n a rn o s dinero solito cae, no buscar trabajo o demanda. p o r to d o l o q u e h a c e m o s . buscarlo por el dinero, sino porque yo me sienta muy bien como persona y E.D. Por último, porque me apasiona lo que hago, yo creo que ¿Puede darnos una recomendación a los ese es un consejo interesante para los estudiantes de la carrera de Informática, o informáticos y para todos en general, pero si algunas recomendaciones para todas estas en particular para los informáticos, hay que carreras? apasionarnos por todo lo que hacemos. M.G.: Pues, parte de lo que platicábamos E.D. Bueno, agradecemos a la Maestra su antes de esta entrevista, profesionistas de colaboración y esperemos que sigamos Informática y profesionistas en el desarrollo estableciendo más vínculos, hay alumnos de software hay muchos, pero cada quien muy capacitados en la UNAM, muy buenos y tiene que buscar cuál es su plus, o sea yo que necesitamos que nos ayuden y ayudarlos además de saber de hacer lo que todo para que ellos también se desarrollen. mundo sabe hacer yo qué cosa se hacer más, soy un super experto en los paquetes, M.G.: Entusiasmarlos para que se apasionen. soy un super experto porque entiendo muy bien las funcionalidades del diseño de bases E.D.: Que se apasionen, y que ya se den de datos, entiendo muy bien todos los cuenta de qué es realmente lo que quieren conceptos fundamentales, soy un super hacer. Y bueno nuevamente agradecerle su experto en otro idioma, tengo que buscar y colaboración. experimentar y encontrar mi propio valor, o sea si yo quiero ser una persona exitosa, 18 Sistemas Operativos L.C. Carlos Pineda Muñóz • Jefe del Centro de Cómputo en la FESC durante el periodo 1996-1998. • Coordinador de la Licenciatura en Informática en la FESC durante el periodo 2000-2005. • 23 años como profesor en la UNAM. • Gerente corporativo de sistemas. • Asesor externo de pequeñas empresas. • Participa en proyectos de computación distribuida y programación en paralelo. • Áreas de interés: Redes, lenguajes de programación, Sistemas Operativos, Ingeniería de Software, entre otros. • Distinguido por su responsabilidad, honestidad, interés para involucrarse en cómputo en general y facilidad de autoaprendizaje. C uando se trata de escribir sobre Sistemas Operativos surgen cientos de ideas para desarrollarse, sin embargo al escribirlas se presenta el problema de que cada punto podría abarcar varias decenas de páginas y aún quedaría material para profundizar más, por otro lado no siempre es entendida la importancia del estudio de este tema por parte de los estudiantes de las carreras de Informática y Computación, ya que los sistemas actuales presentan interfaces gráficas amables que no dejan ver lo complejo del trabajo del Sistema Operativo, debido a estas circunstancias los propósitos de este escrito son: definir qué es un Sistema Operativo, describir en forma general su funcionamiento y motivar al lector a investigar en profundidad los aspectos que considere relevantes para su mayor comprensión y mejor desempeño profesional. Basta con hacernos una pregunta para comprender la importancia de los Sistemas Operativos, ¿Qué puede hacer un equipo de cómputo sin Sistema Operativo?. U n p o c o d e h i s to r i a Recordemos que las primeras computadoras no tenían sistemas operativos, las computadoras sólo utilizaban procesamiento por lotes para funcionar. Durante los 60's, fueron concebidos la mayoría de los conceptos teóricos, conduciendo al desarrollo de los Sistemas Operativos. El desarrollo de la computadora IBM System/360 produjo una familia de mainframes disponibles en una amplia variedad de capacidades y precios, para los cuales se desarrolló un solo Sistema Operativo llamado OS/360. El desarrollo de un sólo sistema operativo para una línea completa de computadoras fue crucial para el éxito del System/360, y el inicio del auge de los Sistemas 19 Operativos, por ejemplo Multics que se desarrolló inicialmente para el mainframe GE-645, un sistema de 36 bits; después fue soportado por la serie de máquinas Honeywell 6180, los laboratorios Bell dejaron el proyecto en 1969; algunas de las personas que habían trabajado en su desarrollo se dedicaron a crear el sistema Unix. En 1969 se desarrolló un proyecto llamado UNIX. Entre los investigadores destacaban Ken Thompson y Dennis Ritchie. En principio, este sistema operativo recibió el nombre de UNICS, aunque un año después pasa a llamarse UNIX, como se conoce hoy en día. El código de UNIX estaba inicialmente escrito en lenguaje ensamblador, pero en 1973, Dennis Ritchie llevó a cabo un proyecto para reescribir el código de UNIX en lenguaje C. UNIX se convirtió así en el primer sistema operativo escrito en lenguaje de alto nivel. Con este nuevo enfoque fue posible portar al sistema operativo a otras máquinas sin muchos cambios, solamente efectuando una nueva compilación en la máquina de destino. Gracias a esto la popularidad de UNIX creció y permitió asentar la "filosofía UNIX". Por otro lado en 1975 Gary Kildall inventó el primer DOS (Disk Operating System), al que llamó CP/M (Control Program for Microprocessors), que podría controlar periféricos como un monitor o una disquetera. Sus amigos aseguran que lo escribió él sólo, a finales de los setenta, CP/M estaba presente en más de medio millón de máquinas, era el sistema operativo que hacía funcionar la mayor parte de computadoras de la época, con la excepción de los Apple, que no utilizaban chips de Intel y tenían su propio sistema operativo. Todos los demás, incluyendo Seros, Kaypro, Kentucky Fried Computer, Commodore, Morrow funcionaban con CP/M. También no debemos olvidar a los Steve Jobs y Wozniak fundadores de Apple Computer, que introdujeron el Mac OS como su sistema operativo el cuál es considerado el primer sistema gráfico para computadora. El profesor Andrew S. Tanenbaum en 1987 creó el sistema operativo Minix. La última 20 versión oficial de Minix es la 3.1.2, publicada el 8 de Mayo de 2006. Fue creado para enseñar a sus alumnos el diseño de sistemas operativos, las razones de su desarrollo fueron: porque Unix estaba bajo restricciones de licencia de AT&T, era demasiado complicado y corría sobre máquinas complejas. Tiene un tamaño muy reducido y se basa en el paradigma del micronúcleo. Debido al enfoque puramente educacional de Minix, Tanenbaum no permitía que este fuera modificado demasiado, ya que esto complicaba el sistema y no permitía que sus estudiantes lo entendieran en un semestre. En 1985 la empresa Microsoft publicó la primera versión de Windows, una interfaz gráfica de usuario (GUI) para su propio sistema operativo (MS-DOS) que había sido incluido en el IBM PC y compatibles desde 1981. Es muy similar a la de Apple, usando la interfaz gráfica, fue creada imitando el MacOS de Apple, aunque la versión realmente popular de Windows fue la versión 3.0, publicada en 1990. Ésta se benefició de las mejoradas capacidades gráficas para PC de esa época, y también del microprocesador 80386, que permitía mejoras en las capacidades multitarea de las aplicaciones Windows. Esto permitiría ejecutar en modo multitarea viejas aplicaciones basadas en MS-DOS. Windows 3 convirtió al IBM PC en un serio competidor para el Apple Macintosh. Sin tratar de omitir a alguien en específico, en la historia reciente está Linus Torvalds como el creador en 1991 del kernel del sistema operativo más moderno llamado LINUX, que está ligado al movimiento GNU de software libre iniciado en 1983 por Richard Stallman, por lo que el sistema debe ser conocido como GNU/Linux. Quizá se pregunten por qué no mencionar a Bill Gates, ésto se debe a la oscuridad que ha rodeado su aparición como el creador de MS-DOS que se deriva de Qdos considerado una copia de CP/M, y a su largo historial de dudosos negocios y aportaciones al mundo de la computación y la Informática, sin olvidar la sanción que le aplicó la Unión Europea por abuso de posición dominante, (prácticas monopólicas) a la empresa Microsoft . De f i n i c i ó n Existen varias definiciones de sistema operativo, en este caso no se dará alguna tomada de los textos, sino que iremos abordando algunas bases conceptuales de un sistema de cómputo y luego propondremos una definición basándonos en éstos. En primer lugar ubiquemos al Sistema Operativo (S.O.) en un sistema de cómputo, en la figura 1 mostramos en forma de capas la estructura de un sistema de cómputo ubicando al S.O. en la capa inmediata superior al Hardware, por debajo de la capa de aplicaciones y accesible al programador. También podríamos observar que es el resultado del trabajo de un diseñador de sistemas, al no ser hardware entonces la ubicamos como una capa de software. Figuara 1. Esquema de capas de un S.O. Un esquema de capas es muy útil, ya que de manera intuitiva podemos imaginar que el orden de éstas es jerárquico, es decir están en el orden ascendente de nivel como funcionan en forma real y que la capa inferior para interactuar con una superior debe pasar al siguiente nivel, igualmente en sentido inverso. Ahora bien, abordándolo desde el punto de vista académico, en la figura 2 observamos que el S.O. tiene funciones de administración, y nuevamente cumple la tarea de intermediario entre los componentes de hardware y la interfaz de usuario del sistema de cómputo. Figura 2. Funciones de un S.O. En este caso la comunicación es en todos sentidos para que en conjunto den apoyo a la interfaz de usuario, por lo que el S.O. se divide en administradores especializados que organizan el funcionamiento de los diferentes elementos del sistema de cómputo, desde luego que su especialización está estrechamente relacionada con el tipo de servicios que prestará el sistema de cómputo, por ejemplo si el sistema será utilizado como servidor de almacenamiento (repositorio), debemos pensar en que el administrador de archivos principalmente será el que determine el desempeño del sistema, por lo que buscaremos al más eficiente para obtener el mejor resultado. En esta construcción, para lograr el mejor desempeño (performance) del sistema, todos los administradores deben proporcionar un rendimiento indispensable mínimo para no afectar el desempeño global de sistema de cómputo, y refiriéndonos a la figura 1, no olvidar que las demás capas (hardware, utilerías, etc.) también influyen en el desempeño global; para detallarlo se requiere abordar otros temas que no se incluyen en el presente documento. Cada uno de estos administradores cumple funciones muy específicas, a continuación describiremos las principales de cada uno: Ad m i n i s tr a d o r d e m e m o r i a : El administrador de memoria aplica distintos métodos (algoritmos) y operaciones que se 21 encargan de obtener la máxima utilidad de la memoria, organizando los procesos y programas que se ejecutan de manera tal que se aproveche al máximo el espacio disponible. Para lograrlo, la tarea principal que realiza es la de trasladar la información que deberá ser ejecutada o utilizada por el procesador, a la memoria principal, debido a que los datos o programas que utilizará el procesador central no pueden ser utilizados si están en memoria secundaria. Los métodos que existen para la carga de programas en la memoria son: • Partición fija, que es la división de la memoria libre en varias partes (de igual o distinto tamaño). • Partición dinámica, que son las particiones de la memoria en tamaños que pueden ser variables, según la cantidad de memoria que necesita cada proceso. Las principales operaciones que desarrolla la administración de memoria son: • La reubicación, que consiste en trasladar procesos activos dentro y fuera de la memoria principal para maximizar la utilización del procesador, • La protección, mecanismos que protegen los procesos que se ejecutan de interferencias de otros procesos; 22 fragmentos de cada proceso que se estén utilizando. Para evitar conflictos y equivocaciones el administrador de memoria del S.O. decide qué partes cargar, cuándo cargarlas y dónde ubicarlas, la técnica más utilizada es la paginación por demanda que es una paginación con intercambio (swap), en lugar de intercambiar un proceso entero solo se intercambian algunas páginas, es decir cuando se va a cargan un proceso, el administrador de memoria intenta adivinar las páginas que se van a utilizar y solamente trae esas páginas reduciendo el tiempo de intercambio y la cantidad de memoria física requerida. A d m i n i s t r a d o r d e l Pr o c e s a d o r ( C PU ) El núcleo del Sistema Operativo (también se le conoce como kernel) controla todas las operaciones que implican procesos, y representa solo una pequeña porción del código de todo el Sistema Operativo, pero es de amplio uso. En este punto primero debemos especificar que lo más importante para este administrador son los procesos, aunque hay varias definiciones de proceso emplearemos la más utilizada que nos define a un proceso como un programa que se está ejecutando, ya que es el más comprensible, y para comprenderlos mejor debemos conocer los modelos de proceso que hay, cómo se manejan las jerarquías y los estados que pueden presentar. • Uso compartido de códigos y datos, con lo que el mecanismo de protección permite que ciertos procesos de un mismo programa que comparten una tarea tengan memoria en común. Modelo de procesos: En algún momento la memoria principal (RAM) no es suficiente, el administrador debe utilizar algunos trucos para superar esta limitación, en ese punto aparece el concepto de memoria virtual; la memoria virtual es una técnica que permite la ejecución de procesos parcialmente cargados en memoria principal; los programas pueden ser más grandes que la memoria física, se utiliza el disco como almacén secundario de procesos, libera al programador de la preocupación de que sus programas quepan en memoria; la idea es mantener en memoria principal sólo los • Un proceso incluye al programa en ejecución y a los valores activos del contador, registros y variables del mismo, se identifica con un número único y un nombre. • Todo el software ejecutable, inclusive el Sistema Operativo, se organiza en varios procesos. • Conceptualmente cada proceso tiene su propia CPU virtual. • Si la CPU se alterna entre los procesos, la velocidad a la que se ejecuta un proceso no será uniforme, por lo que es necesario aclarar que los procesos no deben programarse con hipótesis implícitas acerca del tiempo, y que normalmente la mayoría de los procesos no son afectados por la multiprogramación subyacente de la CPU o las velocidades relativas de procesos distintos. • Un proceso es una actividad de un cierto tipo que tiene un programa, entrada, salida y estado. • Un sólo procesador puede ser compartido entre varios procesos con cierto “algoritmo de planificación”, el cual determina cuándo detener el trabajo en un proceso y dar servicio a otro distinto. Jerarquía de los procesos: Los Sistemas Operativos deben tener una forma de crear y destruir procesos cuando se requiera durante la operación, teniendo además presente que los procesos pueden generar procesos hijos mediante llamadas al Sistema Operativo, pudiendo darse ejecución en paralelo y de acuerdo al modelo empleado se fijan prioridades para su ejecución o asignación de tiempo de proceso. Estado de los procesos: Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos, el administrador de procesos cuenta con un ayudante que llamaremos despachador que es el que realiza el cambio o transición de estado de los procesos, así mismo el despachador puede bloquear su ejecución si desde el punto de vista lógico no puede continuar porque espera datos que aún no están disponibles, o el S.O. asignó la CPU a otro proceso. Los estados que puede tener un proceso son: • En ejecución: utiliza la CPU en el instante dado. • Listo: ejecutable, se detiene en forma temporal para que se ejecute otro proceso. • Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento externo. Las transiciones se realizan entre estos estados, sin embargo algunos S.O. consideran dos posibilidades de estados, zombie y huérfanos; los primeros se dan cuando el proceso agotó sus instrucciones y no realiza ninguna instrucción, entonces mientras el despachador no lo borra de la lista de procesos, su estado es de zombie; en el segundo caso se presenta que un proceso ya terminó, y su padre por estar ocupado no envía al despachador la señal de fin, por lo que momentáneamente aparece como huérfano hasta que el padre envía la señal de borrado. No siempre este administrador está tranquilo y surge una interrupción, que es un evento que altera la secuencia en que el procesador ejecuta las instrucciones; es un hecho generado por el hardware. Cuando ocurre una interrupción, el Sistema Operativo: • Obtiene el control. •Guarda el estado del proceso interrumpido, generalmente en su bloque de control de procesos. • Analiza la interrupción. • Transfiere el control a la rutina apropiada para el manejo de la interrupción. Una interrupción puede ser iniciada por un proceso en estado de ejecución o por un evento que puede o no estar relacionado con un proceso en ejecución, las interrupciones se pueden clasificar por tipos en: • SVC (llamada al supervisor) • I/O (Entrada / Salida) • Externas • De reinicio • De verificación de programa (un intento de dividir entre cero, un intento de un proceso de usuario de ejecutar una instrucción privilegiada, un intento de ejecutar un código de operación inválido). • De verificación de máquina (mal funcionamiento del hardware). Como se ha descrito, las tareas del administrador del procesador son varias y de gran complejidad, aunado a lo anterior, debemos decir que este administrador además del despachador se apoya en el planificador, que se encarga de proporcionarle al S.O. los criterios respecto 23 de un buen algoritmo de planificación, que son: son la equidad, la eficacia, el tiempo de respuesta, el tiempo de regreso y el rendimiento. mediante interfaces sencillas y fáciles de utilizar. • Como pueden ver, son muchas las tareas que realiza éste administrador y en cada una se podría ahondar, sin embargo se queda para análisis e investigación posterior. Administrador de dispositivos: Al utilizar un sistema de cómputo nos encontramos con la necesidad de controlar distintos dispositivos de entrada/salida (E/S), el gran problema de todos estos dispositivos es que son muy lentos, por ejemplo la CPU procesa instrucciones a velocidad de varios GHz, la memoria RAM tienen tiempo de acceso en nanosegundos y los dispositivos de E/S más rápidos tienen velocidad de accesos de milisegundos. Ésto no sería problema en los sistemas antiguos, sin embargo los sistemas actuales son cada vez más interactivos, lo que requiere mayor uso de dispositivos de E/S y ésto ocasiona cuellos de botella en los sistemas de cómputo. Para administrar estos dispositivos, los separamos en tres grandes grupos: • Dispositivos de interfaz de usuario; por ejemplo teclados, ratones, impresoras, monitores, escáner, lectores de huella digital e instrumentos MIDI. • Dispositivos de almacenamiento; aquí se incluyen todos los dispositivos que proporcionen almacenamiento no volátil y según su capacidad e inmediatez para acceder a estos datos se clasifican en almacenamiento secundario (Memoria Flash, Discos fijos, CD-ROM, DVD, disquetes) o terciario (cinta magnética, unidades ópticas). • Dispositivos de comunicaciones; permiten conectar a un sistema de cómputo con otro de manera directa o por medio de redes, por ejemplo los módem y las tarjetas de red. El administrador de dispositivos, debe controlar el funcionamiento de éstos para alcanzar los siguientes objetivos: 24 • Facilitar el manejo de los dispositivos Optimizar las tareas de E/S incrementando las prestaciones donde sea necesario, por ejemplo utilizando el acceso directo a memoria (DMA), ya que muchos dispositivos modernos tienen su propia memoria o bien empleando cachés de disco o utilizando solapamiento de búsquedas y transferencias, lo que tiene que ver con procesamiento paralelo. • Proporcionar dispositivos virtuales que se puedan conectar a cualquier dispositivo físico sin remodelar el sistema completo. • Permitir la conexión de nuevos dispositivos resolviendo de forma automática su instalación por medio del concepto de arquitectura abierta y distribuida, conectar y usar (plug & play). Un punto a considerar para este administrador es el sistema tolerante a fallos y la fiabilidad, ya que esto contribuye a incrementar la confianza en el sistema de cómputo frente a fallos y errores inesperados. Ad m i n i s tr a d o r d e a r c h i v o s Tal vez lo deberíamos llamar administrador de archivos y directorios, ya que la forma más utilizada para organizar los archivos es en directorios (también son conocidas como carpetas), es el encargado de crear, eliminar, modificar y controlar el acceso a los archivos, para entender el funcionamiento de este administrador en algún S.O. debemos conocer: ¿Cuál es la organización lógica de los archivos? ¿Cómo están almacenados físicamente? ¿Cómo se tiene acceso a éstos? ¿Quién tiene permisos para los accesos? A manera de recordatorio diremos que existen principalmente dos tipos de archivos, los ASCII y los binarios, donde los ASCII son lineas de texto que pueden ser editados e interpretados por el usuario, y los binarios que almacenan generalmente programas ejecutables, objetos y datos no textuales, es decir no los puede interpretar el usuario. Desde el punto de vista del S.O., un archivo se caracteriza por una serie de atributos y aunque estos varían dependiendo del S.O. generalmente coinciden en los siguientes: • Nombre • Identificador único • Tipo de archivo • Mapa del archivo (apuntadores a los dispositivos y a los bloques donde se almacenan) • Protección (control de acceso) • Tamaño en bytes • Información temporal (feches de acceso, modificación, etc.) • Información de control (archivo de sistema, oculto, normal, directorio, etc.) Un directorio es un objeto que relaciona de forma unívoca el nombre de usuario de un archivo y el descriptor interno del mismo usado por el S.O. y se representa por una estructura de datos. Las tareas principales del administrador de archivos son: • Llevar el control de donde se guarda cada archivo o directorio. • Utilizar políticas para el almacenamiento de los archivos asegurando el uso eficiente del espacio, así como un acceso seguro y rápido. • Asignar cada archivo al usuario que tiene el permiso de acceso cuando éste lo haga, y llevar el registro de su utilización. • Quitar la asignación de los archivos a los usuarios cuando éstos lo dejen de utilizar, devolverlo al almacenamiento y ponerlo en disponibilidad para que otros usuarios permitidos que lo estén esperando lo utilicen. Desde el punto de vista del S.O. podemos ver al administrador de archivos como un servidor de archivos, que además de proporcionar al usuario los servicios de manejo de archivos debe definir los algoritmos y estructuras de datos a utilizar para que la visión del usuario sea correspondiente con la estructura de almacenamiento físico sin perder velocidad y aleatoriedad, elementos muy importantes en el desempeño general del sistema. El servidor de archivos está compuesto por una serie de capas de software, en donde cada capa usa las características de los niveles inferiores para crear el siguiente nivel más abstracto hasta llegar a los servicios que se proporcionan a los usuarios. Ejemplos de sistemas de archivos de disco: • ASFS (Amiga Smart File System) • ext2 • ext3 • ext4 • FAT (File Allocation Table, usado en DOS y Windows hasta Windows ME) • FFS (Berkeley Fast File System) • HFS (para Mac OS) • ISO 9660 (de solo lectura, para CD-ROM) • JFS (Journaling File System) • NTFS (New Technology File System, usado en Windows NT y derivados, como XP o Vista) • ReiserFS • WinFS (Windows File System, se planeaba su uso en Windows Vista) • ZFS (sistema de archivos de Sun Microsystems) Ad m i n i s tr a d o r d e r e d Hasta aquí hemos descrito las funciones de los administradores de S.O. sin considerar la posibilidad de interconexión, compartición de recursos o transferencia de información entre los sistemas de cómputo, sin embargo en estos momentos es difícil no pensar en estas posibilidades, por lo que agregamos al S.O. un administrador más que se encargará de permitir y controlar estas tareas, y consideramos llamarlo ahora Sistema Operativo de RED, como lo mencionamos en un inicio los temas se relacionan estrechamente y es muy difícil abarcarlos con mayor profundidad dado lo extenso de los mismos. Nuevamente la invitación a profundizar en todos los puntos para lograr un mejor entendimiento de la función de un S.O. Actualmente las redes más utilizadas en el mundo están basadas en el modelo de arquitectura OSI (Open Systems Interconnection), que define una forma de funcionar de las comunicaciones en un modelo de 7 capas, al ser un estándar este modelo, los desarrolladores logran una arquitectura común aunque sus redes sean distintas, el caso más importante y conocido 25 es Internet; no es el tema del presente documento detallar el desarrollo de las redes de computadoras sino como los Sistemas Operativos adoptan estas tecnologías para explotar de mejor manera los servicios de RED, por lo que temas como Servidor de nombres, TCP/IP, Sistemas Distribuidos, Clusters, Grid y paralelismo se dejan para otros documentos dedicados a ello. Los sistemas operativos de red, además de incorporar herramientas propias de un sistema operativo como son por ejemplo las herramientas para manejo de archivos y directorios, incluyen otras para el uso, gestión y mantenimiento de la red, así como herramientas destinadas a correo electrónico, envío de mensajes, copia de archivos entre nodos, ejecución de aplicaciones contenidas en otras máquinas, compartición de recursos de hardware, etc. Existen muchos sistemas operativos capaces de gestionar una red dependiente de las arquitecturas de las máquinas que se utilicen. Los más comunes son : Novell, Lantastic, Windows 3.11 para trabajo en grupo, Unix, Linux, Windows 95, Windows NT, OS/2.. Cada sistema operativo ofrece una forma diferente de manejar la red y utiliza diferentes protocolos para la comunicación, sin importar el que sea, debe ofrecer los siguientes servicios: • Los propios de un SO. • Soporte de Sistemas de Archivos Remotos. • Ejecución de aplicaciones compartidas. • Impresión remota. • Seguridad en la red. 26 “Es el gerente ejecutivo, la parte del sistema de cómputo que administra el hardware y software”.2 “Es un programa que tiene encomendadas una serie de funciones diferentes cuyo objetivo es simplificar el manejo y la utilización de la computadora , haciéndolo seguro y eficiente”.3 Sin embargo si tratamos de reunir todo lo descrito anteriormente podría quedar algo así: “Un Sistema Operativo es un programa informático cuyo propósito es administrar los recursos de un sistema de cómputo, actuando como una interfaz que facilita la interacción entre el usuario y los elementos de hardware y software. Principalmente administra los recursos como la memoria, los dispositivos de entrada/salida (E/S) y gestiona varias operaciones, como la ejecución de programas; se caracteriza por tener un componente denominado núcleo (en inglés kernel), que tiene como tarea la interacción del software con el hardware mediante señales denominadas llamadas al sistema, y debe permitir interconexiones con otras computadoras y otras redes brindando seguridad y confiabilidad". En ocasiones es muy amplia la definición de un concepto y la vuelve tediosa y poco constructiva, por lo que se deja a los lectores que envíen sus propuestas de definición de S.O. para conocer sus puntos de vista. C l a s i fi c a c i ó n d e l o s S i s t e m a s Op e r a ti v o s Después de lo descrito en los párrafos anteriores, dar una definición de S.O. resulta muy complicada, por lo que se presentan a continuación algunas de las más utilizadas: Debido a la evolución de los sistemas operativos, fue necesario realizar una clasificación; considerando las diferencias existentes entre sus componentes los podemos clasificar en: “Es un director responsable de coordinar todos los componentes individuales del computador de forma que operen juntos siguiendo un solo plan”.1 • Sistemas operativos por lotes. • Sistemas operativos multiprogramación. • Sistemas operativos multiusuario. • Sistemas operativos de tiempo compartido • Sistemas operativos de tiempo real. 1. Sistemas Operativos Gary Nutt Pearson 2. Sistemas Operativos Flynn-Mchoes Thomson 3. Sistemas Operativos Jesús Carretero Et. al. McGraw Hill Los sistemas operativos por lotes; requieren que la información esté reunida en bloque o "lote" (el programa, los datos, y las instrucciones). Los trabajos son procesados en el orden de llegada, según el modelo (FIFO) de "primero en llegar, primero en ser atendido". En estos sistemas la memoria se divide en dos zonas. Una de ellas es ocupada por el sistema operativo, y la otra se usa para cargar programas temporales para su ejecución. Cuando termina la ejecución de un programa se carga un nuevo programa en la misma zona de memoria. Los sistemas de multiprogramación; ejecutan dos o más procesos concurrentes, permiten que residan al mismo tiempo en la memoria primaria, las instrucciones y los datos procedentes de dos o más procesos. Estos sistemas implican la operación de multiproceso, para el manejo de la información. Se caracterizan principalmente por un gran número de programas activos simultáneamente que compiten por los recursos del sistema, como el procesador, la memoria , y los "dispositivos de E/S". Los sistemas operativos multiusuario; permiten acceder simultáneamente a un sistema de cómputo a través de dos o más clientes. Este tipo de sistema operativo es fundamental en el manejo de redes de computadoras actualmente. Los sistemas operativos de tiempo compartido; tratan de hacer un reparto equitativo de los recursos comunes, para dar la impresión a los usuarios de que poseen una computadora independiente. En estos sistemas el administrador de memoria proporciona aislamiento y protección de los programas, ya que generalmente no tienen necesidad de comunicarse entre ellos. El control de E/S se encarga de proporcionar o retirar la asignación a los dispositivos de forma que se preserve la integridad del sistema y se proporcione servicio a todos los usuarios. El administrador de archivos proporciona protección y control en el acceso de la información, dada la posibilidad de concurrencia y conflictos al tratar de acceder a los archivos. sistemas el administrador de memoria es relativamente menos solicitado debido a que muchos procesos residen permanentemente en memoria. El administrador de archivos se encuentra normalmente en grandes sistemas de tiempo real y su objetivo principal es manejar la velocidad de acceso, más que la utilización eficaz del almacenamiento secundario. Como se mencionó anteriormente, los Sistemas Operativos tienen una parte fundamental llamada Kernel o Núcleo, y éste es el que define gran parte del comportamiento general de S.O., existen 2 tipos de núcleos: • Micronúcleos. El núcleo sólo implementa el conjunto de funciones mínimas. Modular. • Núcleos monolíticos. Todas las funciones del SO implementadas en el núcleo. No modular. Ventajas de los micronúcleos: - Muy modular - Fácil de implementar y diseñar -Añadir nuevos servicios no necesariamente implica reconstruir el núcleo - Fáciles de depurar - Consumen pocos recursos - E.T.S.I. Telecomunicaciones Inconvenientes de los micronúcleos: - Pérdida de eficiencia en la comunicación entre los procesos de usuario y el núcleo. Sistemas operativos de tiempo real; tienen como objetivo proporcionar tiempos más rápidos de respuesta, procesando la información sin tiempos muertos. En estos 27 Ventajas de los núcleos monolíticos: - Mayor eficiencia Inconvenientes de los núcleos monolíticos: - Consumen más recursos - Difíciles de depurar - Difíciles de ampliar Las siguientes figuras esquematizan las estructuras de los principales Sistemas Operativos actualmente más utilizados, Windows, Unix y Linux. En la familia del S.O. Windows la versión más reciente se denomina Windows Vista y llegará en 7 versiones distintas. Windows Vista Starter Edition, vendido exclusivamente en mercados emergentes, al igual que el actual Windows XP Starter Edition, está limitado a las características mínimas. Y tiene funcionamiento simultáneo de, únicamente, 3 aplicaciones. Windows Vista Home Basic Edition, Equivale al Windows XP Home Edition, incluye el Windows Firewall, control parental, el Security Center, el Movie Maker, el Photo Library, entre otros. Windows Vista Home Premium Edition, incluye todo lo que tiene el Windows Vista 28 Home Basic, agrega autoría de DVD Video, soporte para HDTV y soporte para la extracción de DVD, similar al actual Windows XP Media Center pero con funciones añadidas. Windows Vista Professional Edition, dirigido al empresario, puede unirse a un dominio y trae el IIS Web Server, similar al Windows XP Pro. Windows Vista Small Business Edition, diseñado para las pequeñas empresas sin personal de TI, Soporte para copias de seguridad, ShadowCopy, conexión remota a servidores y PC fax, acceso prepagado a la suscripción de servicios de Windows Live, Small Business o Microsoft Office Live. Windows Vista Enterprise Edition, optimizado para la empresa, Trae el VirtualPC y soporte para interfaz multilenguaje (MUI), dirigido a fabricantes y trabajadoras en tecnología de la información. Windows Vista Ultimate Edition, incluye Windows Vista Home Premium y Windows Vista Pro, Software para podcasting, gestor para mejoras el rendimiento en juegos, posibles descargas gratuitas de música y películas. Entre los principales requerimientos están; un procesador de doble núcleo a partir de 2GHz, 2Gb de memoria RAM, un disco duro de 15000 RPM y una tarjeta gráfica de 256MB que sea compatible con DirectX 9.1 o superior, el costo varía dependiendo de la versión que se adquiera. Para el caso de GNU/Linux, un punto especial que llama la atención, es que dada su característica de libertad, un sin número de organizaciones y particulares, se han dado a la tarea de construir al rededor del kernel, lo que se llaman distribuciones. criterio, y lo incorporan dentro de una serie de discos compactos con conjuntos de herramientas y aplicaciones de instalación. Así que a veces una distribución no significa que sea mejor que otra por tener diez discos o por que solo esté contenida en un solo disco. Las distribuciones se adaptan a las necesidades de los usuarios, ¿para qué tener una distribución con paquetes y programas para administración de redes, si el trabajo será para el hogar? Una distribución es mejor a otra cuando el reconocimiento de los usuarios a nivel mundial le otorgue tal distinción. También se ha hecho una costumbre que se cuente con distribuciones LiveCD (funcionan en memoria RAM), versión para Memoria Flash USB y para equipos antiguos con pocos recursos de hardware; aquí se tienen algunas opciones: adquirir una distribución empaquetada, descargarla de algún sitio en Internet, solicitarla a alguna organización que la distribuye gratuitamente o pedírsela a algún amigo, todo esto está permitido por la licencia GNU/Linux. Algunas de las Distribuciones conocidas a lo largo del mundo son: más • Red Hat • Fedora • Debian • OpenSuse • SuSe • Slackware • Gentoo • Ubuntu • Kubuntu • Mandriva • Centos Una distribución de Linux es simplemente un conjunto de programas recopilados a lo largo y ancho de sitios en Internet, organizados de tal manera que ofrezcan una solución particular o general hacia él o los usuarios. No cambia en nada Linux de una distribución a otra, ya que en realidad están basadas en el kernel de Linux. Las personas o empresas que integran las distribuciones seleccionan software a su 29 Los sistemas de cómputo han evolucionado de manera importante y ahora podemos tener un sistema muy pequeño y móvil (en teléfonos, PALM, iPod, etc.) lo que nos permite ampliar las posibilidades de procesamiento informático sin tener que estar en un lugar en específico, formando parte de grandes redes de sistemas distribuidos. ¿Qué hay entonces de los Sistemas Operativos para esos equipos?, como ocurre con las computadoras de escritorio y de mayor tamaño, los equipos móviles tienen Sistemas Operativos que van mejorando con el paso del tiempo y el avance tecnológico. Con los móviles de nueva generación se pueden capturar fotos, vídeos, reproducir archivos MP3, chatear y muchas más cosas que se potencian aún más con los llamados “Smartphones”; que no son más que las tradicionales PDA’s con llamadas y envíos de mensajes por la red telefónica. Para que el móvil opere de manera adecuada todas estas funciones, es necesario un sistema operativo; en los teléfonos móviles hay una buena variedad de S.O., demos un vistazo a algunos de ellos: Android, es un nuevo producto de Google, la intención de Google con Android, no es crear un sistema propietario para móviles, como ocurre con los demás sistemas operativos, sino establecer una plataforma abierta de desarrollo para aplicaciones de teléfonos móviles. La plataforma integra muchas tecnologías abiertas como Kernel Linux 2.6, SQLite, WebKit y Java. Symbian, se trata todavía del sistema operativo para móviles más utilizado en el mercado. Symbian lo utiliza preferentemente Nokia y Sony Ericcson, ya que son copropietarias junto con otras compañías de este sistema operativo. Windows Mobile, la apuesta de Microsoft por la conectividad, pero no fue hasta Mobile 5.0 cuando poco a poco el sistema de Microsoft se hizo un hueco en el mercado. Lo incorporan muchos fabricantes de computadoras que también tienen Smartphones en sus catálogos como HP o Samsung o firmas como Qtek o la propia Palm. 30 Linux, sí linux está ya disponible en algunos modelos de teléfonos móviles, aunque no son muy populares en nuestro mercado. Algunos fabricantes radicados en China, Taiwán o Singapur utilizan Linux para eliminar el costo de las licencias, pero también grandes firmas como Nec, Panasonic o Samsung han fabricado móviles con Linux en su interior. Las ventajas de los móviles que utilizan Linux consisten en su robustez ante cuelgues y su menor precio debido a la inexistencia de licencias. En su contra, la falta de aplicaciones desarrolladas para este tipo de móviles. Palm OS nació en 1996 de la mano de la primera máquina Palm Pilot. La versión del sistema operativo de Palm que más se está empleando hoy día es Palm OS 5, pero queda poco para que presenten una nueva revisión: Palm OS 6.1, también denominada Cobalt, un sistema operativo de 32 bits completamente nativo ARM (Acorn RISC Machine, Advanced RISC Machine) . Parece ser que el primer dispositivo que aparecerá con este software será un teléfono inteligente de GSPDA, integrará mayores prestaciones multimedia, será más multitarea, incluirá un nuevo sistema de protección que impedirá que un único programa pueda cargarse toda la información, permitirá pasar sin problemas de Wi-Fi a GPRS, ver archivos en su formato nativo (por ejemplo de Microsoft Office), no obstante, su principal novedad es que el sistema funciona sobre Linux, el sistema operativo de software libre. Para terminar de abordar los puntos generales sobre Sistemas Operativos se debe hablar acerca de la virtualización, este concepto se adopta desde hace ya muchos años en Sistemas de Cómputo con grandes capacidades, para que los recursos físicos de estos equipos, tales como procesadores y memoria, puedan ser compartidos por diversos Sistemas Operativos ejecutados al mismo tiempo, siendo así mejor aprovechados. En un sistema no virtualizado, como las PC's de escritorio disponibles hasta hoy, un único S.O. controla toda la PC. Mientras que en un sistema virtualizado, entra en acción un nuevo componente de software que, trabajando en conjunto con nuevos recursos presentes en el procesador, va a administrar todas las partes del equipo, brindándole al usuario la posibilidad de ejecutar más de un S.O. al mismo tiempo, pero de manera totalmente independiente. Este nuevo componente de software va a presentarle a cada sistema operativo un conjunto de recursos que podrá utilizar, llamado máquina virtual. Básicamente podemos considerar 3 tipos de virtualización: Emulación, Virtualización completa (Full Virtualization), Paravirtualización (Paravirtualization). E mu l a c i ó n Se basa en crear máquinas virtuales que emulan el hardware de una o varias plataformas distintas, es el más costoso y menos eficiente, ya que obliga a simular completamente el comportamiento de la plataforma hardware a emular, e implica también que cada instrucción que se ejecute en estas plataformas sea traducida al hardware real. Uno de los ejemplos más destacados de la actualidad es QEMU, que entre otras cosas, permite emular diferentes plataformas Hardware como x86, x86-64, PowerPC, SPARC o MIPS. Así pues, podríamos tener dentro de un servidor Linux varios equipos x86 o PowerPC, corriendo diferentes versiones de Linux. Vi r tu a l i z a c i ó n c o m p l e ta Con este término se denominan aquellas soluciones que permiten ejecutar sistemas operativos huésped (Guest), sin tener que modificarlos, sobre un sistema anfitrión (Host), utilizando en medio un Hypervisor o Virtual Machine Monitor que permite compartir el hardware real. Esta capa intermedia es la encargada de monitorizar los sistemas huésped con el fin de capturar determinadas instrucciones protegidas de acceso al hardware, que no pueden realizar de forma nativa al no tener acceso directo a él. Su principal ventaja es que los sistemas operativos pueden ejecutarse sin ninguna modificación sobre la plataforma, aunque como inconveniente frente a la emulación, el sistema operativo debe estar soportado en la arquitectura virtualizada. En lo que respecta al rendimiento, éste es significativamente mayor que en la emulación, pero menor que en una plataforma nativa, debido a la monitorización y la mediación del hypervisor. Sin embargo, recientes incorporaciones técnicas en las plataformas x86 hechas por Intel y AMD, como son Intel VT y AMD-V, han permitido que soluciones basadas en la virtualización completa se acerquen prácticamente al rendimiento nativo. Algunos ejemplos significativos VirtualBox, VMware y KVM. son Hay que tener en cuenta también que la virtualización completa no se refiere a todo el conjunto de hardware disponible en un equipo, sino a sus componentes principales, básicamente el procesador y memoria. De esta forma, otros periféricos como tarjetas gráficas, de red o de sonido, no se virtualizan. Las máquinas huésped no disponen de los mismos dispositivos que el anfitrión, sino de otros virtuales genéricos. Por ejemplo, si se dispone de una tarjeta nVidia GeForce en el anfitrión, los equipos huésped no verán esta tarjeta sino una genérica Cirrus. Pa r a v i r t u a l i z a c i ó n Surgió como una forma de mejorar la eficiencia de las máquinas virtuales y acercarlo al rendimiento nativo, se basa en que los sistemas virtualizados (huésped) deben estar basados en sistemas operativos especialmente modificados para ejecutarse sobre un Hypervisor. De esta forma no es necesario que éste monitorice todas las instrucciones, sino que los sistemas operativos huésped y anfitrión colaboran en la tarea. Uno de los componentes más destacados de esta familia es XEN, permite paravirtualización utilizando sistemas operativos modificados, y virtualización completa sobre procesadores con tecnología Intel-VT o AMD-V. Para la gestión de las máquinas virtuales existen aplicaciones propietarias e incluso alguna open-source como ConVirt, que permite gestionar también desde un único sitio las 31 máquinas virtuales de diferentes servidores, realizar tareas sobre ellas, o modificar sus configuraciones. Finalmente como se mencionó al principio del documento el tema es muy amplio y se pueden seguir abordando los temas con mayor profundidad, por lo que se invita a los lectores a investigar más a fondo los temas aquí tratados y que además seguirán avanzando, teniendo nuevos aportes interesantes para conocer, y tal vez los compartan en este foro. R e fe r e n c i a s Bibliografía 1.Sistemas Operativos (Una Visión Aplicada) Jesús Carretero Pérez Et. Al Ed. Mc Graw Hill 2.Sistemas Operativos 3rª Edición Ida. M. Flynn Ed. Thompson 3.Sistemas Operativos 3rª Edición Gary Nutt Ed. Pearson-Eddison Wesley 4.Sistemas Operativos 5tª Edición William Stallings Ed. Pearson-Eddison Wesley Internet http://www.microsoft.com/mexico/windows/d efault.mspx http://www.linux.org/ http://www.gnu.org/home.es.html http://www.stallman.org/ http://www.palm.com/mx/index.html http://www.fedora-es.com/ http://www.ubuntu-es.org/ http://www.virtualbox.org/ http://www.vmware.com/ 32 Tutoriales T U T O R I A L DE I N S T A L A C I Ó N DE U BU N T U Hola compañero informático!:) En este primer número iremos paso a paso en la instalación de Ubuntu. Así es que si estás listo para explorar nuevas cosas, adelante. Lo primero que te preguntarás será: ¿Dónde lo consigo?, ¿Qué necesito?. En el siguiente link http://ubuntu.com.es/descarga.html podrás descargarlo, o bien puedes adquirir gratuitamente CD's de Ubuntu solicitándolos, y en un par de semanas recibirás una notificación de correo. Los requerimientos mínimos para instalar Ubuntu son: • Procesador Intel™ o compatible a 200 MHz. • 256 MB de RAM • Tarjeta SVGA • 3 GB de espacio libre en el disco duro Los requerimientos recomendados son: • Procesador Intel™ o compatible a 1 GHz. • 512 MB de RAM • Aceleradora gráfica 3D compatible con OpenGL • 5 GB de espacio libre en el disco duro Bien, ahora partiendo de que tenemos nuestro CD procederemos a la instalación de Ubuntu. Lo primero será prender y nuestra meter el CD computadora para iniciar desde él, al iniciar el equipo nos presenta varias opciones (para cambiar el idioma de esta pantalla solo presionamos F2 y elegimos Español, después nos aparecerá pero en la misma pantalla español, donde 33 escogemos iniciar o instalar Ubuntu), el Sistema Operativo arranca y como es un disco vivo, va a poder cargar únicamente en memoria y no va a hacer cambios en nuestro disco duro, la ventaja de un LiveCD o disco vivo es que podremos “probar” Ubuntu antes de instalarlo, para así ver si nos convence. Yo les aseguro que será como amor a primera vista ;) Al tener a la vista el escritorio seleccionamos la opción Install. La instalación consiste en 7 etapas. El primero es seleccionar el idioma, seleccionamos el español y damos clic en adelante. En el segundo me preguntará: ¿Dónde se encuentra?, selecciono México o el país donde me ubique y me dará automáticamente la hora (Aquí yo me puedo ubicar por medio de un globo mostrará para la zona horaria). 34 que Tercer paso: Selecciono distribución del teclado, aquí aunque lo lógico sería utilizar alguna de las opciones Latin American, es recomendable que se pruebe si correctamente puedes acentos y colocar algunos signos de puntuación antes de dar clic en siguiente. Paso 4 de 7: Al dar siguiente nos aparece una ventana en donde se preparará el espacio del disco, y nos pregunta: ¿Cómo desea particionar el disco?; ¡Cuidado!, se trata de decirle al instalador dónde Asegúrate de correcta, o debe escoger podría instalarse. la opción formatear una partición no deseada. Como vemos, existen varias opciones al instalar. Nosotros aprenderemos a editar manualmente la tabla de particiones, lo haremos porque es un caso muy común que la mayoría tenemos instalado Windows, y aunque queremos probar otro SO, nos resistimos a dejarlo, así es que tendremos Ubuntu y Windows. Como Windows ocupa todo el disco, necesitaremos partición, es redimensionar decir, cambiar la su tamaño para dejar espacio libre sin particionar suficiente para Ubuntu. Para ello selecciona la opción "Editar manualmente la tabla de particiones" y pulsa Adelante. Nos aparecerá la pantalla "Preparar particiones". 35 En la parte inferior de la pantalla verás una lista de las particiones existentes en tu disco. Encontrarás al menos una partición NTFS o FAT (dependiendo de la versión de Windows instalada). Se indica aquí el tamaño total de la partición, el espacio usado y el espacio libre. Lo primero que haremos es comprobar si tenemos espacio suficiente para la instalación. Si al observar la columna "libre" encuentras que hay al menos 3 Gb entonces podemos instalar Ubuntu (Se recomienda dejar más porque 3 Gb sería el tamaño justo para los datos y no podrías escribir nuevos datos). El procedimiento para redimensionar la partición es el siguiente: a) Haz clic con el botón izquierdo del ratón sobre la partición NTFS o FAT a fin de seleccionarla. Verás entonces como en la parte superior de la pantalla aparece un esquema gráfico indicando el tamaño total de la partición, el espacio usado y libre. b) A continuación haz clic con el botón derecho del ratón sobre la partición seleccionada. En el menú emergente elije "Redimensionar". O bien haz clic en el botón "Redimensionar" situado en la parte superior de la pantalla. c) En la ventana emergente establece el nuevo tamaño para la partición. Para ello sitúa el puntero del ratón en el borde derecho del esquema gráfico de la parte superior, verás que adopta la forma de una flecha de dos puntas. Da clic a el botón izquierdo del ratón y sin soltarlo arrastra el puntero hacia la izquierda. Verás entonces como los indicadores numéricos de la parte inferior de la ventana "Tamaño nuevo" y "Espacio libre a continuación" van cambiando. Suelta el clic del ratón en el momento en que "Espacio libre a continuación" indique al menos 3072 MB o el tamaño deseado. Si este procedimiento te resulta complicado puedes utilizar otro método. Ve al campo "Tamaño nuevo", verás como después del indicador numérico existe un pequeño cuadro con dos flechas: la flecha que apunta hacia arriba sirve para aumentar el tamaño de la partición; la que apunta hacia abajo para disminuirlo. Haz clic en la fecha que apunta hacia abajo y mantenla pulsada hasta que el indicador "Espacio libre a continuación" marque al menos 3072. Una vez que nos hemos asegurado de que el tamaño de la partición es el correcto pulsamos el botón "Redimensionar". 36 d) Hasta ahora no hemos hecho ningún cambio en nuestro disco duro. La operación redimensionado pendiente, así ha nos de quedado lo indica el asistente de instalación en la lista situada hacia el centro de la ventana. • Podemos cambios y todavía volver anular a los empezar pulsando el botón "Deshacer". Si lo que queremos es aplicar los cambios pulsamos el botón "Adelante". e) Aparecerá entonces una ventana de diálogo preguntándonos seguros de operaciones querer pendientes. si estamos ejecutar Es las nuestra última oportunidad de volver atrás. Si queremos seguir adelante con el proceso pulsamos el botón "Aplicar". Comienza así la tarea de redimensionado de la partición. f) Una vez concluido el proceso, el asistente nos muestra la ventana "Preparar puntos montaje". 37 de En este momento lo más sencillo es regresar a la pantalla "Preparar espacio del disco", seleccionar la opción "Utilizar el espacio libre contiguo más grande" y dejar que el asistente se ocupe automáticamente de crear las particiones necesarias. Para ello haz clic en el botón "Atrás" tantas veces como sea necesario. Una vez allí, pulsa "Adelante" para continuar con la instalación. Paso 5 de 7: Al dar adelante nos aparece la posibilidad “Migrar documentos” Paso 6 de 7: Nos preguntará, ¿Quién es usted?. Ingresa Datos de usuario: nombre de usuario, contraseña y genera un nombre de maquina. ¡Ojo! Recuerda siempre esta contraseña, ya que para iniciar sesión, futuras actualizaciones y requerimientos, la necesitarás. Paso 7 de 7: Está listo para instalar, nos hace un recuento de qué hemos puesto. Al dar clic en instalar aparece la siguiente ventana y esperaremos alrededor de 20 a 30 minutos. Posteriormente nos aparecerá una ventana como ésta, la cual nos indica que se ha terminado correctamente la instalación. 38 Al dar clic en Reiniciar el sistema se preparará para su primer arranque, pidiendo sacar el CD de Ubuntu de la unidad lectora, al reiniciar veremos nuestra pantalla de inicio así: En esta pantalla iniciaremos por defecto si no se oprime otra opción Dentro de con las Ubuntu. opciones iniciar desde consola, modo gráfico o Windows. Y con estos pasos llegamos finalmente a nuestro escritorio Ubuntu. Esperamos les sea útil nuestro primer tutorial sobre la instalación de Ubuntu. 39 V I R T U A L I ZA C I Ó N C O N V I R T U A L BO X VirtualBox es un programa de virtualización capaz de instalar en nuestra computadora sistemas operativos basados en Windows y en Linux de 32bits, aunque también hay una versión beta para MacOS X. El programa ha sido creado por la empresa alemana InnoTek. ¿ Dó n d e d e s c a r g a r ? Dado que es un programa gratuito, se puede descargar directamente de la siguiente http://www.virtualbox.org/, página: que es la página oficial del programa. Una vez dentro de la página accedemos a la zona seleccionamos de descargas la y descarga apropiada según nuestro sistema operativo. I n s ta l a c i ó n En este ejemplo instalaremos VirtualBox en el SO Windows XP Professional. Ejecutaremos el lanzador del programa y se nos abrirá la primera pantalla, nos da la bienvenida y nos informa que si continuamos se instalará VirtualBox en nuestro sistema, pulsamos en next, y en la siguiente deberemos contrato Aceptamos pantalla aceptar de y el licencia. pulsamos de nuevo en next. 40 En la siguiente pantalla nos dirá la ubicación donde se va a instalar, así como el espacio que necesitará para su instalación, si dejamos esa por defecto solo tendremos que pulsar en next para pasar a la siguiente pantalla. En esta pantalla se nos advertirá que se van a copiar los archivos y se instalará el programa, pulsamos en install y esperaremos el final de la instalación. Finalmente aparecerá una pantalla informando que el programa se ha instalado correctamente. C r e a n d o u n a m a q u i n a v i r tu a l La primera vez que ejecutamos el programa nos pide un registro, aquí sólo ponemos un nombre y una direccione de e-mail. Para crear nuestra máquina virtual (MV) pulsamos el botón “Nueva” que nos llevará a un asistente para poder crearla, una vez pulsado el botón de siguiente nos pedirá un nombre para la máquina y el tipo de sistema a instalar. 41 Una vez hecho esto y estando en la siguiente pantalla, nos pide seleccionar la memoria RAM a usar, lo más conveniente es dejar la que el programa propone. Aunque si disponemos de suficiente memoria RAM en nuestro equipo podemos ampliarla reducir más, la no memoria es recomendable proporcionada por default ya que esto podría llevar como consecuencia un mal rendimiento del SO instalado. El siguiente paso es seleccionar el disco duro a utilizar, en este caso damos en nuevo y se nos abrirá un nuevo asistente, lo más recomendable es crear una imagen de expansión dinámica. A continuación nos pedirá un nombre para el disco y cuál será el tamaño máximo que éste alcanzará; aquí depende de uno, del uso que se le va a dar al nuevo sistema y del tamaño del disco duro físico. Una vez finalizada la creación del disco nos regresará al asistente de la MV. Finalmente damos en siguiente y nos aparecerá un resumen de la MV que hemos creado, damos en finalizar y regresamos a la pantalla principal con nuestra máquina creada. En la pantalla aparecen las características de la MV creada, si queremos modificar 42 alguna opción pulsamos sobre alguna de las letras azules y se nos abrirá una nueva pantalla en la que podemos modificar los valores que queramos. Desde modificar la RAM hasta compartir directorios con nuestra máquina host. Es conveniente revisar cada una de las opciones para habilitar todos los componentes como el audio, la red e inclusive los puertos USB. En la parte de CD/DVD-ROM seleccionamos la casilla de “Montar la unidad de CD/DVD”, y si tenemos una imagen ISO con el SO a instalar la seleccionamos, una vez hecho esto damos clic en OK, enseguida en el botón de iniciar. Ahora aparecerá una ventana que nos explica que cada vez que pulsemos la tecla Host (la tecla Ctrl Dcha, de la derecha del teclado), se capturará el teclado en la Máquina Virtual. Al pulsarlo otra vez, tendremos el efecto contrario. Ahora lo instalar que el sigue SO es que escogimos; y a disfrutar de otro SO en la misma máquina sin necesidad de hacer particiones a nuestro disco duro. 43 Op i n i o n d e . . . J a v i e r Ló p e z F l o re s • Egresado de la Licenciatura en Informática de la FES Cuautitlán (UNAM). Generación 1998-2003. • Cuenta con amplia experiencia en control y administración de proyectos, principalmente hacia el sector público. • Actualmente es gerente general de iidesoft México. LA HISTORIA DEL BOTÓN ROJO E mpezaré esta redacción con una función anécdota: información en alguna ocasión fui sería BORRAR llegado el caso toda de la una la auditoría por parte de las H. autoridades implementación de un software de punto hacendarias, sin dejar rastro alguno de de venta, todo marchó sin contratiempos las transacciones realizadas (ni de la y existencia del contratado de para acuerdo establecido, realizar al plan llegado el de trabajo momento de mismo botón rojo, por supuesto). finalizar y entregar la implementación, el dueño del establecimiento me preguntó Éste y muchos por el “botón rojo”, mismo que yo no representativos había mencionado durante el proceso de cotidianeidad capacitación, y que él supuso que por la profesión, es indudable y legítimo que importancia de la función que este botón un empresario busque las estrategias realizaría lo dejaría al final y reservado a necesarias para hacer más eficiente su los tomadores de decisión del negocio. negocio y obtener mayores utilidades, se del otros dan ejercicio casos en de la la sin embargo, cuando esta búsqueda no Ante mi desconcierto del tema el dueño se da en una línea paralela de ética fue el profesional y del ejercicio de buenas vendedor del software le prometió “un prácticas profesionales y máxime si es botón rojo” que estaría instalado en el nuestro escritorio acción, se presta a la reflexión. más explícito, de su me dijo que computadora, cuya desempeño el vehículo de 44 Volviendo al tema del famoso botón rojo: que no, de colaborar en la construcción La implementación y funcionamiento de de la aplicación dio el resultado (operativo) condiciones en general. un mejor país con mejores esperado, pero en ese momento yo desconocía el tipo de sanciones que se Uno de los objetivos que dio pie a la haría creación acreedor un contribuyente que de este espacio es la omita datos sobre su actividad ante el convivencia entre los miembros de la fisco, pero sí conocía métodos existentes comunidad de informática de la FES- para recuperar información y algunas Cuautitlán: técnicas profesores e interesados en el tema. de informática forense que alumnos, egresados, ocupan las autoridades. Le conté de algunos casos conocidos de recuperación Invocando a la reflexión que convoqué de consecuencias, líneas arriba, los invito a visualizar la además le hice ver el riesgo y pérdida de relevancia que tendrá el ejercicio diario control de información que y sus representaría para la su profesión. El manejo de la operación de su negocio vaciar las bases información que estará en sus manos les de datos. A la fecha formamos parte del hará conocer de manera íntima a las grupo de colaboradores de esta empresa organizaciones donde se desempeñen y jamás se volvió a mencionar el botón independientemente rojo. públicas o de privadas, que sean conocerán sus fortalezas, debilidades y vulnerabilidades En la actualidad dirijo una empresa dedicada al desarrollo de software y y sus acciones podrán o no colaborar en el crecimiento y desarrollo de estas. servicios de consultoría especializada de la que soy socio. Puedo afirmar que a la Estoy fecha hemos cometido todos los errores botones rojos a lo largo de estancia posibles y que otros más están a la como alumnos y muchos más en su vida vuelta de la esquina, pero hemos tenido profesional, de ustedes depende el uso la que le den. fortuna de saber aprender de ellos. capitalizarlos y Tenemos objetivos claros y bien definidos, uno de ellos es no promover el uso de botones rojos ni versiones similares. Mi compromiso desarrollar como productos empresario es innovadores, deleitar a nuestros clientes y garantizar su confianza, todo en un marco de respeto y uso de buenas prácticas profesionales, que a la larga se traduce en el sostén de nuestro negocio, y por 45 seguro que se enfrentarán a Despertarum fue realizada con Scribus 1.3.4 y Gimp 2.2 46