Download Manual - Didáctica Digítal Sistemas Operativos
Document related concepts
Transcript
DIRECCIÓN DE CARRERA DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN, ÁREA SISTEMAS INFORMÁTICOS MANUAL DE SISTEMAS OPERATIVOS Elaboración: MSC. P. Norma Maya Pérez M. en. C. Fernando Gómez Ramírez Mayo - Agosto ‘2015 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Índice Contenido INTRODUCCIÓN ................................................................................................................................. 2 OBJETIVO GENERAL......................................................................................................................... 2 I. Fundamentos del Sistema Operativo .......................................................................................... 3 1.1. Evolución de los sistemas operativos ...................................................................................... 3 1.2. Características de los sistemas operativos .............................................................................. 6 1.3. Clasificación de los sistemas operativos .................................................................................. 9 II. Instalación de los sistemas operativos (Windows y basado en UNIX) ..................................... 22 2.1. Requerimientos del sistema, Preparación del hardware para la Instalación e Instalación del sistema operativo ............................................................................................................................... 22 2.2. Instalación de Windows ......................................................................................................... 23 2.3 Instalación de Linux .................................................................................................................... 37 III. Comandos Básicos de los sistemas operativos (Windows y basado en UNIX). .................. 47 3.1. Sistema de Archivos y su manejo ......................................................................................... 47 3.2. Comandos básicos ................................................................................................................. 61 3.3. Personalización el entorno ..................................................................................................... 95 3.4. Administración de cuentas y grupos de usuarios ................................................................. 109 IV. Instalación y configuración de servicios de los sistemas operativos (Windows y basado en UNIX). 116 4.1. Servicio de correo electrónico .............................................................................................. 116 4.2. Servicio web ......................................................................................................................... 118 4.3. Servicios de impresión ......................................................................................................... 137 4.4. Servicio de acceso remoto ................................................................................................... 145 4.5. Compartir recursos entre diferentes sistemas operativos .................................................... 150 Bibliografía ....................................................................................................................................... 152 MSC. NMP / M en C. FGR 1 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos INTRODUCCIÓN El curso de Sistemas Operativos es Fundamental en el campo de acción de de Tecnologías de la Información y Comunicación del tercer cuatrimestre y en su conjunto, forman la capacitación técnica requerida para implementar y realizar soporte técnico a equipo de cómputo, sistemas operativos y redes locales de acuerdo a las necesidades técnicas de la organización, para garantizar el óptimo funcionamiento de sus recursos informáticos A su vez, esta capacitación técnica es parte importante para la mejora continua del plan de estudios desarrollado para competencias profesionales a Técnicos Superiores Universitarios en Tecnologías de la Información y Comunicación que imparte la Universidad tecnológica del Valle de Toluca. Ya que es uno de los requisitos, para que sus egresados puedan estar capacitados en materias técnicas que les ayuden a realizar su trabajo con mayor calidad, precisión y eficiencia. Palabras Claves: Sistema Operativo (S.O.) OBJETIVO GENERAL. El alumno realizará la instalación y configuración de los servicios de un sistema operativo para la administración de los recursos informáticos. MSC. NMP / M en C. FGR 2 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS I. Sistemas Operativos Fundamentos del Sistema Operativo Objetivo: El alumno seleccionará un sistema operativo de acuerdo a sus características y funciones para su instalación. 1.1. Evolución de los sistemas operativos Un Sistema Operativo puede ser contemplado como una colección organizada de extensiones de software del hardware, consistente en rutinas de control que hacen funcionar una computadora y proporcionan un entorno para la ejecución de los programas. También podemos decir que un S.O. es un conjunto de procedimientos manuales y automáticos, que permiten a un grupo de usuarios compartir una instalación de computadora eficazmente. Hardware + Software = Equipo de cómputo. Hardware – Software = Materia Inservible. Resuelven problemas o realizan trabajos para los usuarios. Programas de (Por ejemplo: hojas de cálculo, editores de texto, graficadores, etc.). aplicación Clasificación General del Software Programas de sistema. Controlan la operación de la computadora. (Sistema Operativo) ¿Cuál es el programa fundamental de una computadora? El Sistema Operativo. Clientes (Simultáneos) Despachador de tienda 1 (Encargado) Atención a clientes tomando en 2 3 Artículos de papelería. Servicio de copiado. Venta de regalos. cuenta: 4 Reglas. Políticas. Estrategias. Criterios. o MSC. NMP / M en C. FGR De manera trivializada. 3 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Tienda Usuarios (Peticiones) Sistema Operativo (S.O.) 1 (Gestor) Rutinas de control (software) considerando: 2 3 Reglas. Políticas. Estrategias. Hardware Software 4 Sistema de cómputo Procesador Memoria Archivos Datos S.O . Usuarios Software Dispositivos de Dispositivos de Medios de E/S comunicación almacenamiento secundario El S.O. permite una interconexión eficiente entre los recursos de un sistema de cómputo y los usuarios. El S.O. es el programa individual (casi siempre llamado núcleo o kernel) que se está ejecutando todo el tiempo con la computadora y todos los demás son programas de aplicaciones. Evolución Las generaciones de los sistemas operativos podemos citar las siguientes: Un S.O. puede procesar su carga de trabajo en serie o en forma concurrente. Es decir, los recursos del sistema informático pueden estar dedicados a un solo programa hasta que éste termine, o pueden ser reasignados dinámicamente entre una colección de programas activos en diferentes etapas de ejecución. Debido a su capacidad para ejecutar múltiples programas de forma intercalada, a tales S.O. se les denomina con frecuencia sistemas de MSC. NMP / M en C. FGR 4 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos multiprogramación. Existen diferentes variaciones de ambos tipos de S.O., en serie y multiprogramado. Con el fin de motivar la necesidad de ciertos tipos de servicio que cada una de estas variantes presenta, esquematizaremos brevemente el camino evolutivo del desarrollo de los S.O. Procesamiento en serie Los primeros computadores electrónicos digitales no tenían S. O. las mecánicas de esta época eran tan primitivas que con frecuencia loa programas se introducían bit a bit mediante grupos de interruptores mecánicos. Posteriormente los programas se introducían en el computador en lenguaje de máquina mediante tarjetas perforadas y se desarrollaron los lenguajes ensambladores para acelerar el proceso de programación. Tarea 1 Tarea 2 COMPUTADORA Salida 1 Salida 2 Tarea 3 Salida 3 Tarea 4 Salida 4 Atiende una tarea, le da salida y luego atiende otra tarea, hasta finalizar todas las tareas. (E/S por medio de tarjetas perforadas). Procesamiento por lotes. Aparecieron los sistemas que generalmente ejecutaban una tarea a la vez y simplificaban la transición entre tareas para obtener para obtener la máxima utilización del sistema de cómputo. Estos sistemas se denominaron sistemas de procesamiento por lotes, ya que los programas y los datos eran proporcionados al computador en grupos o lotes. Posteriormente aparecieron sistemas de procesamiento por lotes, que podían aprovechar mejor los recursos del computador mediante la ejecución de varias tareas al mismo tiempo. Esos sistemas incluían muchos dispositivos periféricos, como lectoras de tarjetas, perforadoras de tarjetas, impresoras, unidades de cintas y unidades de disco, pero era raro que una tarea utilizara con eficiencia todos los recursos del computador. Figura X1. Un sistema por lotes (a) Los programadores traen las tarjetas al 1401 b) el 1401 lee un lote de trabajos y lo graba en cita c) Un operador lleva la cinta de entrada al 7094 d) El 7094 realiza los cálculos e) Un operador lleva la cinta de salida a un 1401 f) El 1401 imprime la salida. Multiprogramación. Los diseñadores de sistemas operativos observaron que mientras una tarea esperaba a que se completara una operación de entrada o de salida para poder seguir usando el procesador, otra tarea podría aprovechar el procesador ocioso. De macera similar, cuando una tarea estaba utilizando el procesador, otras podrían utilizar los diversos dispositivos de entrada y salida. La mejor forma de aprovechar al máximo el uso del computador parecía ser MSC. NMP / M en C. FGR 5 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS ejecutar una combinación de diversas tareas, así que los diseñadores de S.O. Sistemas Operativos desarrollaron el concepto de multiprogramación, en el cual varias tareas se encuentran al mismo tiempo en la memoria principal; un procesador se conmuta de una tarea a otra según sea necesario para lograr que avance varias veces, mientras se mantienen en uso los dispositivos periféricos. En cada evolución de la computadora, o para cada tipo de computadora, existe un S.O. diferente. Para cada modo de procesamiento, existe un S.O. diferente. S.O. con mayor S.O. más Equipo de Mayor costo del poder de robusto (más cómputo más sistema administración. rutinas de “poderoso” (más informático. control). recursos de cómputo). 1.2. Características de los sistemas operativos Estructura de un Sistema Operativo. La estructura de un S.O. está constituida por las siguientes partes: MSC. NMP / M en C. FGR 6 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Kernel o Núcleo. Es el programa medular que ejecuta programas y gestiona dispositivos de hardware tales como los discos y las impresoras. Shell. Proporciona una interfaz para el usuario. Recibe órdenes del usuario y las envía al núcleo para ser ejecutadas. Sistema de archivos. Organiza la forma en que se almacenan los archivos en dispositivos de almacenamiento tales como los discos. Utilidades. Son programas especializados, tales como editores, compiladores y programas de comunicaciones, que realizan operaciones de computación estándar. Este componente es incluido en S.O. como Linux, que permiten crear utilidades con las herramientas que proporcionadas. MSC. NMP / M en C. FGR 7 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Objetivo de los Sistemas Operativos. Optimizar el rendimiento e incrementar la productividad de proceso o de los usuarios, mediante la gestión interna de los recursos de un sistema informático (hardware), tales como: procesador, memoria, medios de almacenamiento secundario, archivos, datos, dispositivos de E/S y dispositivos de comunicación. Principales funciones de los Sistemas Operativos. Proporciona la interfaz entre los usuarios y el hardware de un sistema informático. Permite que los usuarios compartan entre sí el hardware y los datos. Evitar que los usuarios se interfieran recíprocamente. Planifica la distribución de los recursos entre usuarios. Facilita la entrada/salida. Recuperarse de los errores. Contabilizar el uso de los recursos. Facilitar las operaciones en paralelo. Organizar los datos para lograr un acceso rápido y seguro. Manejar las comunicaciones en red. Los programas se apoyan en las facilidades proporcionadas por el S.O. para obtener acceso a los recursos del sistema informático. Los programas invocan generalmente los servicios del S.O. por medio de llamadas al S.O. Además los usuarios pueden interactuar con el S.O. directamente por medio de órdenes (comandos) del S.O. El rango y la extensión de los servicios proporcionados por un S.O. dependen de varios factores. Entre otras cosas, las funciones visibles al usuario de un S.O. están en gran medida determinadas por las necesidades y características del entorno objetivo que el S.O. está destinado a soportar. Los Principales recursos administrados por Sistemas Operativos son: Los Procesadores Almacenamiento Dispositivos de e/s Datos e Información. S.O. son un interfaz con: los operadores, programadores de aplicaciones, programadores de sistemas, administradores del S.O., Software, Hardware y usuarios. Ubicación de los sistemas operativos MSC. NMP / M en C. FGR 8 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS 1.3. Sistemas Operativos Clasificación de los sistemas operativos La clasificación más común usada y conocida desde el punto de vista del usuario final Por su estructura Por los servicios que ofrecen Por la forma de ofrecer sus servicios Estructura monolítica. Estructura jerárquica. Máquina virtual. Cliente–servidor a) Número de usuarios. Monousuarios. Multiusuarios. b) Número de tareas. SO de red. SO distribuidos. Monotareas. Multitareas. c) Número de procesadores. Uniproceso. Multiproceso. Simétricos. Asimétricos. Por su estructura Según [alcal92], se deben observar dos tipos de requisitos cuando se construye un S .O., los cuales son: o Requisitos de usuario: sistema fácil de usar y de aprender, seguro, rápido y adecuado al uso al que se le quiere destinar. o Requisitos del software: donde se engloban aspectos como el mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad. o Estructura Monolítica Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra (ver figura). Buena definición de parámetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento. Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc. Generalmente están hechos a medida, por lo que son eficientes y rápidos en su ejecución y gestión, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones. o Estructura jerárquica A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organización del software, del sistema operativo, donde una parte del sistema contenía subpartes y esto organizado en forma de niveles. De tal forma que cada una de ellas estuviera perfectamente definida y con un claro interface con el resto de elementos. MSC. NMP / M en C. FGR 9 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos En la estructura anterior se basan prácticamente la mayoría de los sistemas operativos actuales. Otra forma de ver este tipo de sistema es la denominada de anillos concéntricos o "rings". En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas más internas del sistema operativo o núcleo del sistema estarán más protegidas de accesos indeseados desde las capas más externas. Las capas más internas serán, por tanto, más privilegiadas que las externas. o Máquina virtual En el resto de sistemas: la multiprogramación y la máquina extendida. El objetivo de los sistemas operativos de máquina virtual es el de integrar distintos sistemas operativos dando la sensación de ser varias máquinas diferentes. El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como misión llevar a cabo la multiprogramación, presentando a los niveles superiores tantas máquinas virtuales como se soliciten. Estas máquinas virtuales no son máquinas extendidas, sino una réplica de la máquina real, de manera que en cada una de ellas se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos pueda ejecutar un sistema operativo diferente, que será el que ofrezca la máquina extendida al usuario. o Cliente–servidor El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas. Este sistema sirve para toda clase de aplicaciones por tanto, es de propósito general y cumple con las mismas actividades que los sistemas operativos convencionales. El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un programa de aplicación normal es un cliente que llama al servidor correspondiente para acceder a un archivo o realizar una operación de entrada/salida sobre un dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para otro." [Alcal92]. Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el núcleo provee solamente funciones muy básicas de memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayoría que el usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y protección que, a su vez, serán filtrados por el núcleo que controla el hardware. Actualmente se está trabajando en una versión de UNIX que contempla en su diseño este paradigma. MSC. NMP / M en C. FGR 10 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Por los servicios que ofrecen a) Por el número de usuarios: Monousuarios Los S.O. monousuarios son aquellos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se han clasificado en este renglón. Multiusuarios Los S.O. multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente. b) Por el número de tareas: Monotareas Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez. Multitareas Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad. c) Por el número de procesadores: Uniproceso Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS. Multiproceso Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualesquira de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema. MSC. NMP / M en C. FGR 11 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Se dice que un thread es la parte activa en memoria y corriendo de un proceso, lo cual puede consistir de un área de memoria, un conjunto de registros con valores específicos, la pila y otros valores de contexto. Us aspecto importante a considerar en estos sistemas es la forma de crear aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron hechas para correr en sistemas monoproceso que no toman ninguna ventaja a menos que el sistema operativo o el compilador detecte secciones de código paralelizable, los cuales son ejecutados al mismo tiempo en procesadores diferentes. Por otro lado, el programador puede modificar sus algoritmos y aprovechar por sí mismo esta facilidad, pero esta última opción las más de las veces es costosa en horas hombre y muy tediosa, obligando al programador a ocupar tanto o más tiempo a la paralelización que a elaborar el algoritmo inicial. Por la forma de ofrecer sus servicios: Esta clasificación también se refiere a una visión externa, que en este caso se refiere a la del usuario, el cómo accesa a los servicios. Bajo esta clasificación se pueden detectar dos tipos principales: sistemas operativos de red y sistemas operativos distribuidos. Sistemas Operativos de Red Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de intercambiar información, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un conjunto de comandos o llamadas al sistema para ejecutar estas operaciones, además de la ubicación de los recursos que desee accesar. Por ejemplo, si un usuario en la computadora hidalgo necesita el archivo matriz.pas que se localiza en el directorio /software/codigo en la computadora morelos bajo el sistema operativo UNIX, dicho usuario podría copiarlo a través de la red con los comandos siguientes: hidalgo% hidalgo% rcp morelos:/software/codigo/matriz.pas . hidalgo% En este caso, el comando rcp que significa "remote copy" trae el archivo indicado de la computadora morelos y lo coloca en el directorio donde se ejecutó el mencionado comando. Lo importante es hacer ver que el usuario puede accesar y compartir muchos recursos. Sistemas Operativos Distribuidos Un S.O. distribuido es una colección de sistemas informáticos autónomos capaces de comunicación y cooperación mediante interconexiones de hardware y software. Históricamente, los sistemas de computo distribuidos evolucionaron a partir de las redes de computadoras en las que un número de equipos en gran medida independientes están conectados mediante enlaces y protocolos de comunicación. Un S.O. distribuido gobierna la operación de un sistema informático distribuido y proporciona una abstracción de máquina virtual a sus usuarios. El objetivo clave de una SO distribuido es la transparencia. Idealmente, la distribución de componentes y recursos debería quedar oculta a los usuarios y a los programas de aplicación a menos que éstos demanden explícitamente lo contrario. Los S.O. distribuidos proporcionan generalmente medios para la compartición global de los recursos del sistema, tales como la capacidad computacional, los archivos y los dispositivos de E/S. Además de los servicios típicos de un S.O. proporcionados en cada nodo para beneficio de los clientes locales, un S.O. distribuido puede facilitar el acceso a recursos remotos, la comunicación con procesos remotos y la distribución de cálculos. Los MSC. NMP / M en C. FGR 12 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos servicios añadidos necesarios para acceder a los recursos del sistema compartido incluyen la denominación global, sistemas de archivos distribuidos y facilidades para distribución de cálculos, tales como la comunicación de procesos internodos y llamadas a procedimientos remotos. Interacción Usuario – Sistema Operativo Línea de comandos o lenguaje de ordenes (El usuario escribe comandos (ordenes) de un lenguaje especial.) VENTAJAS Facilita la programación de un S.O. S.O. abierto (se pueden escribir muchas rutinas.) Portable (de una máquina a otra; ahorra trabajos de adaptación y ejecución entre máquinas.) Modo apoyado por muchos fabricantes. DESVENTAJAS Aprendizaje de comandos y sus modificadores (opciones). S.O. diversificados (conocer todas y/o cada una de las partes del S.O.). Caro. Interfaz gráfica de usuario (A través de representaciones visuales (iconos, ventanas) se eligen comandos). VENTAJAS Las estaciones de trabajo suelen ser más baratas que UNIX, excepto clones como LINUX. Fácil de administrar y de usar. DESVENTAJAS S.O. cerrado (actualizaciones o mejoras sujetas a los planes de diseño de fabricante). No ofrece un entorno de programación para el S.O. Llamadas al S.O. a través de aplicaciones (comerciales o desarrolladas por el usuario) Diferencias entre los S.O. UNIX y MS-DOS. UNIX MS-DOS SO multitarea, multiusuario y de tiempo compartido. SO monotareas y monousuario. Nace de la necesidad de compartir tiempo para evitar Nace de la necesidad de crear software de control para tareas en orden no satisfactorio e improductivo para las nuevas computadoras personales. grandes computadoras. Se diseño con mucho cuidado, con una meta clara en Se diseño “a vapor”, con la única meta de brindar la mente, y, a pesar de su edad, sigue siendo moderno acceso a las computadoras personales. y elegante. Ilustra mucho de los principios de diseño más Fue basado en la forma de trabajo que adopto UNIX. importantes para la construcción de SO. Trabaja con software de aplicación que requiere Trabaja básicamente, con una vasta colección de protección y seguridad. software de aplicación de costo relativamente barato (no seguro). Se puede ejecutar en más tipos de computadoras que Sólo se puede ejecutar sobre una variedad de cualquier otro SO. computadoras personales de modelos IBM. Permite el trabajo con una gama amplia de hardware Solo se emplean dispositivos compatibles o fabricados (SO se adapta al hardware). para la computadora personal (hardware adaptado al SO). MSC. NMP / M en C. FGR 13 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos La creación de un sistema informático depende de las Sus capacidades y herramientas (banco de trabajo) especificaciones que otorgue el fabricante del SO. permiten la adaptación y creación de diversos sistemas de computo. La fácil portabilidad entre diferentes sistemas de Su utilización y popularidad se debió a la siguiente computo, contribuyo a la creación de varias versiones evolución: (hijos, clones) de UNIX. Permitiendo la compatibilidad con programas anteriores. Pasar del modo texto a interfaz gráfica (WINDOWS). Mejorando la protección y seguridad. Linux como Sistema Operativo Actualmente, el término “Linux” resulta bastante vago. Linux se utiliza de dos maneras: específicamente se refiere al núcleo, que es la base de todas las versiones de Linux, y de forma más general, se refiere a una colección de aplicaciones que se ejecutan sobre el núcleo. Esta colección de aplicaciones se suele llamar distribución. La función del núcleo es garantizar un entorno básico en el que ejecutar las aplicaciones, incluyendo la interfaz básica con el hardware y los gestores de tareas. En un sentido estricto, sólo se puede hablar de una versión de Linux en un momento determinado: la última versión actualizada del núcleo. El núcleo es el dominio particular de Torvalds en el desarrollo de Linux, dejando todas las aplicaciones y servicios que actúan sobre el núcleo para los miles de desarrolladores que hay en el mundo. En el sentido genérico de Linux, que se refiere a las colecciones de aplicaciones que se ejecutan sobre el núcleo, hay muchas versiones de Linux. Cada distribución tiene características específicas, que incluyen métodos de instalación, ampliaciones y características especiales. Pero como todas esas distribuciones siguen siendo fundamentalmente Linux, casi todas las aplicaciones que funcionan bajo una versión actualizada de una distribución, funcionarán bajo una versión actualizada de otra. Lo interesante de la forma dual de usar el término Linux es que ocurre lo mismo con el término S.O. En un sentido comercial, un S.O. es una gran colección de aplicaciones que complementan el núcleo. Esto es lo que son Windows 95 y Windows 98, Windows NT, Windows 2000, o Mac OS. Desde un punto de vista técnico, un S.O. es el núcleo principal que proporciona funciones básicas para desarrollar y ejecutar aplicaciones. Tomando cualquiera de las dos definiciones, Linux es un S.O. con características del núcleo de Linux que lo diferencian del resto de los SO diseñados para PC es que Linux es multiusuario y multitarea. Sistemas Operativos multitarea Probablemente está habituado al término multitarea, aunque puede que no tenga muy claro lo que significa. Cuando la informática personal empezó a pasar del Windows 3.1 al Windows 95 fueron unos de sus principales reclamos. Decir que un sistema es multitarea es decir que parece que se ejecuta más de una aplicación o proceso al mismo tiempo. Por ejemplo, el sistema puede imprimir un documento, copiar un archivo y conectarse a Internet mientras el usuario está tecleando tranquilamente en un procesador de textos. Aunque haya varias tareas activas en segundo plano, es procesador de textos que está trabajando en primer plano, no debería bloquearse. MSC. NMP / M en C. FGR 14 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Este es el atractivo de la multitarea: permite que un ordenador con un solo procesador dé la impresión de estar realizando varias tareas simultáneamente. Por supuesto, un solo procesador sólo puede ejecutar una instrucción a la vez, o sea, sólo se puede realizar una acción en cada momento. La multitarea genera la ilusión de actividad simultánea turnando el uso del procesador entre las tareas según las necesidades de los procesos. Cuando los sistemas multitarea funcionan bien, el usuario puede ejecutar un procesador de texto mientras se ejecutan otros procesos de forma concurrente y sin advertir el trabajo extra que está realizando el ordenador. Todos los procesos deben ejecutarse de forma suave y el ordenador debe seguir dando la impresión de que funciona sin problemas. Históricamente, los entornos Unix han sido mucho más eficientes que los entornos Windows al manejar la multitarea. Unix es capaz de manejar un gran número de tareas simultáneamente de forma ideal para las necesidades de los servidores corporativos o de las estaciones de trabajo de gama alta. Hoy en día, sólo Windows 2000 y su predecesor Windows NT pueden aspirar a ofrecer un entorno multitarea de características similares. Windows 95, a pesar de toda la parafernalia que lo ha rodeado, tiene problemas muy serios en la gestión de varios procesos simultáneos. Además, Linux, como Windows 2000 y NT, ofrece soporte para ordenadores con varios procesadores, como los sistemas con procesadores actuales. Estos sistemas pueden efectuar dos tareas al mismo tiempo. La combinación de multitarea con sistemas multiprocesador incrementa de forma espectacular el número de tareas que se pueden ejecutar simultáneamente sin perder rendimiento. Un Sistema Operativo multiusuario Más importante que sus capacidades multitarea son sus características como SO multiusuario, características que comparte con todas las versiones de Unís y otros sistemas clónicos de Unix. Todas las versiones de Windows y de Mac OS son sistemas de un único usuario. Algunas características de Windows NT ofrecen algo parecido al soporte multiusuario, pero Windows NT sólo puede mantener un usuario activo y ejecutando aplicaciones al mismo tiempo. Recientemente se han realizado avances para convertir Windows NT en una plataforma multiusuario gracias a Windows NT Terminal Server Edition. En comparación, Linux permite varios usuarios simultáneos, permitiendo aprovechar al máximo las capacidades multitarea del SO. La gran ventaja de esto es que permite utilizar Linux como servidor de aplicaciones. Desde sus terminales, los usuarios pueden conectarse a través de una red con el servidor y ejecutar las aplicaciones directamente en él, en lugar de hacerlo en su propio ordenador. Aplicaciones para Linux Linux, como SO, se puede usar para desarrollar cualquier tipo de aplicación. Dentro de las aplicaciones disponibles para Linux, podemos encontrar: Aplicaciones de proceso de textos. Además de los procesadores de textos comerciales como WordPerfect, StarOffice o Applixware, Linux ofrece herramientas potentes para editar y procesar textos en forma automatizada. Lenguajes de programación. Hay una gran variedad de lenguajes de programación y de tipo script, con sus herramientas correspondientes, que funcionan en entornos Linux y Unís. Esta facilidad de encontrar herramientas permite desarrollar nuevas aplicaciones de forma fácil y que no sólo son válidas para entornos Linux, también funcionan bajo Unix y sistemas de tipo Unix. MSC. NMP / M en C. FGR 15 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos X Windows. X Windows es la opción Unix en el campo de la interfaz gráfica (GUI). Es un entorno GUI muy flexible y fácil de configurar que funciona en Linux y en la mayoría de los sistemas compatibles Unix. Hay muchas aplicaciones para X Windows que hacen de Linux un entorno fácil de usar. Herramientas de Internet. Además de disponer de software tan extendido como Netscape Communicator o Mosaic, se puede encontrar una gran variedad de software para Internet compatible con Linux. Aplicaciones de correo gráficas o con interfaz de comandos, el software completo para preparar un servidor de Internet (sevidores de red, de correos y de noticias), además de soporte completo para redes que permite la conexión con Internet por medio de una red local o un módem. Bases de datos. Como todas las plataformas Unix, Linux es una plataforma excelente para ejecutar aplicaciones de bases de datos gratuitas para Linux como mSQL o Postgre y según ha ido aumentando su implantación, especialmente en entornos corporativos, han ido apareciendo nuevas aplicaciones comerciales para servidores de bases de datos relacionales. Hoy en día, tanto Oracle como Sybase o Informix ofrecen bases de datos relacionales para Linux. Software de compatibilidad DOS y Windows. Linux tiene la capacidad para trabajar con software para otros entornos operativos. Esta lista sólo permite vislumbrar la punta del iceberg. Hay muchas más aplicaciones para Linux. Podrá encontrar una buena referencia sobre este tema en el Linux Software Map (Mapa de Software para Linux), que se puede encontrar en la red, en http://www.linux.org/apps/lsm.html. Linux como software gratuito Viendo las inmensas posibilidades que ofrece Linux, parece razonable pensar que va a ser bastante caro. Por el contrario, resulta que la realidad es muy diferente. El núcleo de Linux y la mayoría de las aplicaciones escritas para él resultan ser de libre acceso en Internet, y normalmente no imponen restricciones en las copias o en la redistribución del software. Para empezar, el núcleo se distribuye bajo la licencia GNU. Esta licencia especial, diseñada por Free Software Foundation, promueve la distribución abierta y, más importante todavía, el desarrollo abierto de los programas. La licencia GNU, al contrario que la mayoría de las licencias de software comercial, permite redistribuir el software permitiendo incluso cobrar por estas distribuciones siempre y cuando se mantenga la licencia GNU en la redistribución. En otras palabras, cualquiera puede coger un programa, alterarlo como le parezca y redistribuirlo. Pero no puede evitar que quien le compre al programa haga lo mismo y lo distribuya otra vez. La mayoría de los componentes de Linux se distribuyen bajo licencia GNU. Esto permite que diferentes empresas produzcan distribuciones gratuitas y comerciales. Esta aproximación al software gratuito no es lo mismo que el software de dominio público. En productos GNU el diseñador del programa mantiene los derechos y tiene la facultad de detener la distribución gratuita. Lo que hace especial la licencia GNU es que promueve el desarrollo de aplicaciones por parte de muchas personas diferentes, cada una realizando cambios que considera adecuados o necesarios y redistribuyendo el software. Este proceso es posible porque el software con licencia GNU tiene que distribuirse junto con el código fuente. A diferencia del software comercial, que no viene con el código fuente y por lo tanto es de hecho inalterable, la distribución GNU no sólo permite alterar y personalizar los programas, además anima a los interesados a hacerlo. MSC. NMP / M en C. FGR 16 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos De hecho, este modelo ha tenido tanto éxito en el desarrollo de Linux que ha sido adoptado por Netscape para su línea de productos Communicator. Mediante los principios GNU, Netscape hace que Communicator sea de distribución libre y permite que cualquiera utilice el código fuente o redistribuya Communicator. Aplicaciones comerciales para Linux Hay aplicaciones comerciales para Linux y distribuciones comerciales. En estos casos, los productos utilizan modelos de licencia más restrictivos que la licencia Gnu estándar en el mundo Linux. Pero aunque una distribución incluya componentes comerciales que no pueden redistribuirse, el núcleo y las aplicaciones fundamentales que se encuentran en todas las distribuciones siguen bajo la licencia de GNU. Si la licencia original de una aplicación es GNU, la licencia del software redistribuido a partir de ellas es GNU. Características del Sistema Operativo LINUX SO basado en UNIX SO de distribución Popular y altamente más joven de todos. gratuita o barata. difundido. Altamente Colaboración de Constante compatible con muchos usuarios. crecimiento. UNIX. Versión de UNIX No depende de Rápida para INTEL PC. ninguna empresa evolución. comercial. Aprovecha toda la Ahorro en tiempo, Flexible a capacidad de la PC. de actualizaciones y modificaciones o de dinero. ampliaciones.. Aporta velocidad, eficiencia y flexibilidad. Distribuciones de LINUX MSC. NMP / M en C. FGR 17 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Producto de software Producto de software (SO) muy específico. (SO) diversificado. Todo. Núcleo Conjunto de diversas (LINUX). aplicaciones. Distribuciones Desarrollado y Diseño de distribuido por distribuciones con base empresas comerciales. al núcleo. No hay lugar para Facilidad de cambios de software. compatibilidad. Ejemplos: Windows 98, ME, XP, NT, Mac OS, SOLARIS, HPUX Ejemplos: UNIX, LINUX, MINIX Una Distribución, Actualizaciones o modificaciones de determinado software que permiten cubrir diversas necesidades de cómputo. Existen multitud de versiones diferentes de LINUX. Distintas organizaciones realizan sus propias distribuciones de LINUX atendiendo a diversos tipos de necesidades. Todas tienen, sin embargo, algo en común: el núcleo. Es el componente fundamental en todo SO UNIX. Su función básica consiste en facilitar la ejecución de aplicaciones en el sistema. Proporciona una serie de mecanismos que los programas deben emplear para acceder a los recursos de la computadora. Una distribución de LINUX incluye un núcleo de LINUX junto con un conjunto de herramientas que permitirán al usuario realizar las tareas cotidianas en el sistema. Las distribuciones se diferencian entre sí por factores como las aplicaciones que incorporan, el proceso de instalación y configuración del sistema o la estructura de directorios. Algunas de las distribuciones más difundidas de LINUX son las siguientes: Slackware: durante mucho tiempo fue la más utilizada, ya que incorporaba un sistema de instalación considerablemente más sencillo que el de sus competidoras. MSC. NMP / M en C. FGR 18 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Debian/GNU: es la más profesional. Se caracteriza por la amplia variedad de herramientas que incluye en la distribución estándar. El proceso de instalación resulta algo complejo, y desde luego nada recomendable para usuarios novatos. Red Hat: en la actualidad es una de las más populares, debido fundamentalmente a su facilidad de manejo. La instalación es sencilla y dispone además de una serie de aplicaciones gráficas de administración mediante las cuales un usuario con conocimientos mínimos puede gestionar fácilmente el sistema. SuSE: es una variante de la distribución Red Hat. Al igual que ésta resulta fácil de instalar y administrar. Caldera: es una distribución comercial. Además del software de difusión gratuita que incorpora todas las distribuciones incluye una serie de herramientas de valor añadido con una interfaz de usuario mejorada. Fedora Ubuntu La elección de la distribución depende del uso que se vaya a ser de ella. ¿Cómo obtener una distribución? 1. Conectarse a su sitio oficial en Internet y transferir todos sus archivos. Por supuesto necesitará un enlace rápido y barato a la red, ya que una distribución ocupa varios cientos de MegaBytes, Gigabytes. Algunas distribuciones pueden realizar la instalación directamente a través del Internet, con lo que sólo necesitará transferir unos pocos discos de inicio. El programa de instalación se encargará de conectarse con el sitio remoto y terminar la transferencia. 2. Recurrir a un proveedor comerciar. Existen multitud de ellos que editan packs de CDs con varias distribuciones y utilidades para LINUX de todo tipo. El precio de venta es muy barato, pues sólo se cubren los gastos de edición y transporte, ya que se trata de software de difusión gratuita. Sitios de Internet: LINUX (Inglés). www.justlinux.com www.linuxnow.com Guía completa. www.linux.org Distribuciones LINUX. www.redhat.com Inglés. www.suse.com Inglés. www.suse.de/es/index.html Español. www.debian.org/ Inglés/Español Sitios de Internet: LINUX (Español). www.sololinux.com www.tiendalinux.com www.maslinux.com Sitios de Internet: LINUX (México). www.linux.org.mx www.linuxpuebla.org Sitio Global www.distrowash.net MSC. NMP / M en C. FGR 19 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Otras Distribuciones: Nombre URL Fedora http://www.fedoraproject.org Gentoo Linux http://www.gentoo.org Mandrila Linux http://www.mandriva.com OpenSuse http://www. opensuse.org Slackware http://www. slackware .org Ubuntu Sabayon Puppy linux SLAX http://www. ubuntu.com http://www. sabayonlinux.org http://www. puppy linux.org http://www.slax.org Linux Mint http://www. linuxmint.org PC LinuxOS Mandriva CentOS Red Hat Enterprise Suse Linux Enterprise http://www. pclinuxos.org http://www. mandriva.org http://www.centos.org http://www.redhat.com/ https://www.suse.com/ Funciones de UNIX/LINUX. Multitarea. Multiusuario. Shells programables (forma en cómo trabajan las órdenes en LINUX) Independencia de dispositivos bajo LINUX. Comunicaciones y redes. Portabilidad de sistemas abiertos. Ventajas y desventajas del uso de LINUX. Ventajas Aplicaciones. Ventajas para los profesionales en informática (herramientas). Enseñanza (múltiples accesos y aplicaciones). Hackers (aprender todo lo que hay que saber acerca de un sistema). MSC. NMP / M en C. FGR Desventajas Falta de asistencia técnica. Problemas con el hardware. Imposibilidad de utilizar el programa actual (no compatibles). Falta de experiencia. 20 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Ejemplos de sistemas operativos para PC • Microsoft Windows • Mac OS X • GNU/Linux • Unix • Solaris • FreeBSD • OpenBSD • Google Chrome OS • Debian • Ubuntu • Mandriva • Sabayon • Fedora • Linpus linux • Haiku (BeOS) Ejemplos de sistemas operativos para dispositivos móviles • Android • iOS • Bada • BlackBerry OS • Windows Phone • Symbian OS • HP webOS • Firefox OS • Ubuntu Phone OS MSC. NMP / M en C. FGR 21 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS II. Sistemas Operativos Instalación de los sistemas operativos (Windows y basado en UNIX) Objetivo: El alumno instalará diversas plataformas de sistemas operativos para probar sus configuraciones en equipos de cómputo. 2.1. Requerimientos del sistema, Preparación del hardware para la Instalación e Instalación del sistema operativo Antes de instalar un sistema operativo es necesario revisar cuales son los requerimientos tanto de de Hardware y Software con el que debe prepararse en equipo de cómputo donde se instalará. Podremos decir que existen muchas formas de instalar un sistema operativo las más usuales son: • Una máquina virtual. • Partición lógica • Dispositivo de almacenamiento extraíble • Disco Duro • USB Instalación en Máquina Virtual (VM) Permite utilizar los recursos de hardware existentes de una computadora portátil, desktop o servidor para hacer que por medio de software emule otra computadora con las propiedades físicas de hardware controlado que nosotros le asignemos y funcione como un ordenador real. Una VM posee los recursos de un sistema operativo host y un sistema operativo guest que pueden funcionar de manera simultánea. Host. Es el sistema operativo primario sobre el cual funciona el ordenador, es decir, el que está físicamente instalado. Guest. Es el sistema operativo invitado que opera de forma virtualizada sobre el host. Existen muchas soluciones en el mercado para crear plataformas de virtualización en diferentes ambientes y para varios sistemas operativos funcionando como host: En este tipo de instalación lo primero que debemos hacer es instalar el programa de virtualización para nuestro equipo. Requerimientos de instalación de Virtualbox • Procesador Intel o AMD x86/64 bits • Mínimo 512 MB of RAM - XP y 1 GB RAM – Vista, 7,8. • hard disk 30 MB Soporte para: • S.O. host. Windows (XP and later), many Linux distributions, Mac OS X, Solaris and OpenSolaris. • S.O. guest. De acuerdo a la distribución y versión del S.O. a instalar. MSC. NMP / M en C. FGR 22 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos La instalación de una virtualización con este programa citado debe: • Descargar el programa del sitio: https://www.virtualbox.org/ • Configurar e instalar las características de HW y SW a emular del equipo físico con que se cuente. • Instalar el S.O en Máquina Virtual. • Reservar espacio del Disco Duro en el equipo de cómputo en donde se instalará • Revisar Requerimientos de Hardware y Software de Instalación • Localizar la versión del S.O. a instalar: ISO, CD/DVD’s completos en algún medio magnético (USB, DVD, por internet) de instalación • Definir los parámetros requeridos por la Distribución del Sistema Operativo Linux o Windows • Definir tamaño y tipo de partición, Sistema de Archivos, punto de montaje a instalar dependiendo de la Distribución del Sistema Operativo Linux o Windows • Seguir proceso de instalación y configuración de Hardware y Software adicional • Instalar y configurar servicios adicionales. Instalación en partición lógica • Reservar espacio del Disco Duro en el equipo de cómputo en donde se instalará • Revisar Requerimientos de Hardware y Software de Instalación • Tener la versión del S.O. a instalar: CD/DVD’s completos en algún medio magnético (USB, DVD) de instalación (Booteable) • Definir los parámetros requeridos por la Distribución del Sistema Operativo Linux o Windows • Definir tamaño y tipo de partición, Sistema de Archivos, punto de montaje a instalar dependiendo de la Distribución del Sistema Operativo Linux o Windows • Seguir proceso de instalación y configuración de Hardware y Software adicional • Instalar y configurar servicios adicionales. 2.2. Instalación de Windows MSC. NMP / M en C. FGR 23 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Microsoft Windows Microsoft Windows Desarrollador Microsoft Página principal de Windows [1] Información general Modelo de desarrollo Software propietario; Shared Source Lanzamiento inicial Noviembre de 1985 (info Última versión estable Última versión en pruebas [2] ) Windows RT, Windows Server 2012 [3] (Núcleo NT 6.2 Build 9200) (info ) 26 de octubre de 2012 Windows 8.1, Windows Server 2012 R2 NT 6.3 (Build 9600) 28 de junio de 2013 Tipo de núcleo Monolítico (versiones basadas en MS-DOS), Híbrido (versiones basadas en Windows NT) Método de actualización Windows Update; en empresas se aplican tecnologías como WSUS y SCCM) Licencia Microsoft CLUF (EULA) Idiomas Multilingüe En español Soporte técnico Todos los sistemas operativos Windows reciben un grado variable de soporte, bajo la directiva de Ciclo de vida de soporte técnico de Microsoft [4] (info ) ↓Véase: Historial de lanzamientos Artículos relacionados • • Historia de Microsoft Windows Versiones de Microsoft Windows Microsoft Windows es el nombre de una familia de sistemas operativos desarrollados y vendidos por Microsoft. Microsoft introdujo un entorno operativo denominado Windows el 20 de noviembre de 1985 como un complemento [] para MS-DOS en respuesta al creciente interés en las interfaces gráficas de usuario (GUI). Microsoft Windows llegó a dominar el mercado mundial de computadoras personales, con más del 90% de la cuota de mercado, superando a Mac OS, que había sido introducido en 1984. Las versiones más recientes de Windows son Windows 8 para equipos de escritorio, Windows Server 2012 para servidores y Windows Phone 8 para dispositivos móviles. La primera versión en español fue Windows 3.0 Windows es un sistema operativo basado en ventanas. La primera versión se lanzó en 1990 y comenzó a utilizarse de forma generalizada gracias a su interfaz gráfica de usuario (GUI, Graphical User Interface). Hasta ese momento, el sistema operativo más extendido era MS-DOS (Microsoft Disk Operating System), y la interfaz consistía en una línea de comandos. MSC. NMP / M en C. FGR 24 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Historia La primera versión de Microsoft Windows, versión 1.0, lanzada en noviembre de 1985, compitió con el sistema operativo de Apple. Carecía de un cierto grado de funcionalidad y logró muy poca popularidad. Windows 1.0 no era un sistema operativo completo; más bien era una extensión gráfica de MS-DOS. Windows versión 2.0 fue lanzado en noviembre de 1987 y fue un poco más popular que su predecesor. Windows 2.03 Árbol genealógico de Windows. (lanzado en enero de 1988) incluyó por primera vez ventanas que podían solaparse unas a otras. El resultado de este cambio llevó a Apple a presentar una demanda contra Microsoft, debido a que infringían derechos de autor. Windows versión 3.0, lanzado en 1990, fue la primera versión de Microsoft Windows que consiguió un amplio éxito comercial, vendiendo 2 millones de copias en los primeros seis meses. Presentaba mejoras en la interfaz de usuario y en la multitarea. Recibió un lavado de cara en Windows 3.1, que se hizo disponible para el público en general el 1 de marzo de 1992. El soporte de Windows 3.1 terminó el 31 de diciembre de 2001. En julio de 1993, Microsoft lanzó Windows NT basado en un nuevo kernel. NT era considerado como el sistema operativo profesional y fue la primera versión de Windows en utilizar la Multitarea apropiativa. Windows NT más tarde sería reestructurado para funcionar también como un sistema operativo para el hogar, con Windows XP. El 24 de agosto de 1995, Microsoft lanzó Windows 95, una versión nueva para los consumidores, y grandes fueron los cambios que se realizaron a la interfaz de usuario, y también se utiliza multitarea apropiativa. Windows 95 fue diseñado para sustituir no solo a Windows 3.1, sino también de Windows para Workgroups y MS-DOS. También fue el primer sistema operativo Windows para utilizar las capacidades Plug and Play. Los cambios que trajo Windows 95 eran revolucionarios, a diferencia de los siguientes, como Windows 98 y Windows Me. El soporte estándar para Windows 95 finalizó el 31 de diciembre de 2000 y el soporte ampliado para Windows 95 finalizó el 31 de diciembre de 2001. El siguiente en la línea de consumidor fue lanzado el 25 de junio de 1998, Microsoft Windows 98. Sustancialmente fue criticado por su lentitud y por su falta de fiabilidad en comparación con Windows 95, pero muchos de sus problemas básicos fueron posteriormente rectificados con el lanzamiento de Windows 98 Second Edition en 1999. El soporte estándar para Windows 98 terminó el 30 de junio de 2002, y el soporte ampliado para Windows 98 terminó el 11 de julio de 2006. Como parte de su línea «profesional», Microsoft lanzó Windows 2000 en febrero de 2000. La versión de consumidor tras Windows 98 fue Windows Me (Windows Millennium Edition). Lanzado en septiembre de 2000, Windows Me implementaba una serie de nuevas tecnologías para Microsoft: en particular fue el «Universal Plug and Play». Durante el 2004 parte del código fuente de Windows 2000 se filtró en internet, esto era malo para Microsoft porque el mismo núcleo utilizado en Windows 2000 se utilizó en Windows XP. En octubre de 2001, Microsoft lanzó Windows XP, una versión que se construyó en el kernel de Windows NT que también conserva la usabilidad orientada al consumidor de Windows 95 y sus sucesores. En dos ediciones distintas, «Home» y «Professional», el primero carece por mucho de la seguridad y características de red de la edición Professional. Además, la primera edición «Media Center» fue lanzada en 2002, con énfasis en el apoyo a la funcionalidad de DVD y TV, incluyendo grabación de TV y un control remoto. El soporte estándar para Windows XP terminó el 14 de abril de 2009. El soporte extendido continuará hasta el 8 de abril de 2014. MSC. NMP / M en C. FGR 25 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos En abril de 2003, Windows Server 2003 se introdujo, reemplazando a la línea de productos de servidor de Windows 2000 con un número de nuevas características y un fuerte enfoque en la seguridad; lo cual fue seguido en diciembre de 2005 por Windows Server 2003 R2. El 30 de enero de 2007, Microsoft lanzó Windows Vista. Contiene una serie de características nuevas, desde un shell rediseñado y la interfaz de usuario da importantes cambios técnicos, con especial atención a las características de seguridad. Está disponible en varias ediciones diferentes y ha sido objeto de muy severas críticas debido a su patente inestabilidad, sobredemanda de recursos de hardware, alto costo, y muy alta incompatibilidad con sus predecesores, hecho que no ocurría con éstos. El 22 de octubre de 2009, Microsoft lanzó Windows 7. A diferencia de su predecesor, Windows Vista, que introdujo a un gran número de nuevas características, Windows 7 pretendía ser una actualización incremental, enfocada a la línea de Windows, con el objetivo de ser compatible con aplicaciones y hardware que Windows Vista no era compatible. Windows 7 tiene soporte multi-touch, un Windows shell rediseñado con una nueva barra de tareas, conocido como Superbar, un sistema red llamado HomeGroup, y mejoras en el rendimiento sobre todo en velocidad y en menor consumo de recursos. El 26 de octubre de 2012, Microsoft lanzó Windows 8. Por primera vez desde Windows 95, el botón Inicio ya no está disponible en la barra de tareas, aunque la pantalla de inicio está aún activa haciendo clic en la esquina inferior izquierda de la pantalla y presionando la tecla Inicio en el teclado. Presenta un Explorador de Windows rediseñado, con la famosa interfaz ribbon de Microsoft Office. Según Microsoft han vendido 60 millones de licencias, aunque ha recibido muchas críticas por parte de los usuarios. Se conservan la gran mayoría de las características de su predecesor, Windows 7, con excepción de la nueva interfaz gráfica y algunos cambios menores. Historial de lanzamientos Versiones Fecha de publicación Nombre del producto Última versión / Compilación Estado de soporte técnico Última versión de IE noviembre de 1985 Windows 1.01 1.01 Sin soporte desde 31 de diciembre de 2001 - noviembre de 1987 Windows 2.03 2.03 Sin soporte desde 31 de diciembre de 2001 - mayo de 1988 Windows 2.10 2.10 Sin soporte desde 31 de diciembre de 2001 - marzo de 1989 Windows 2.11 2.11 Sin soporte desde 31 de diciembre de 2001 - mayo de 1990 Windows 3.0 3.0 Sin soporte desde 31 de diciembre de 2001 - marzo de 1992 Windows 3.1 3.1 Sin soporte desde 31 de diciembre de 2001 5 octubre de 1992 Windows For Workgroups 3.1 3.1 Sin soporte desde 31 de diciembre de 2001 5 julio de 1993 Windows NT 3.1 NT 3.1 Sin soporte desde 31 de diciembre de 2001 5 diciembre de 1993 Windows For Workgroups 3.11 3.11 Sin soporte desde 31 de diciembre de 2001 5 enero de 1994 Windows 3.2 (publicado en chino simplificado) 3.2 Sin soporte desde 31 de diciembre de 2001 5 septiembre de 1994 Windows NT 3.5 NT 3.5 Sin soporte desde 31 de diciembre de 2001 5 mayo de 1995 Windows NT 3.51 NT 3.51.1057 Sin soporte desde 31 de diciembre de 2001 5 MSC. NMP / M en C. FGR 26 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos agosto de 1995 Windows 95 4.03.1214 (OSR Sin soporte desde 31 de diciembre de 2001 2.5 ó 4.00.950C) 5.5 julio de 1996 Windows NT 4.0 NT 4.0.1381 Sin soporte desde 31 de diciembre de 2004 6 junio de 1998 Windows 98 4.10.1998 Sin soporte desde 11 de julio de 2006 6 mayo de 1999 Windows 98 SE 4.10.2222 Sin soporte desde 11 de julio de 2006 6 febrero de 2000 Windows 2000 NT 5.0.2195 Sin soporte desde 13 de julio de 2010 6 septiembre de 2000 Windows Me 4.90.3000 Sin soporte desde 11 de julio de 2006 6 octubre de 2001 Windows XP NT 5.1.2600 Únicamente soporte extendido hasta el 8 de abril de 2014 para Service Pack 3 (versión RTM, SP1 y SP2 sin soporte). 8 abril de 2003 Windows Server 2003 NT 5.2.3790 abril de 2005 Windows XP Professional x64 Edition NT 5.2.3790 Únicamente soporte extendido hasta el 8 de abril de 2014 para Service Pack 2 (versión RTM y SP1 sin soporte). 8 julio de 2006 Windows Fundamentals for Legacy PC NT 5.1.2600 Soporte estándar vigente. 8 noviembre de Windows Vista 2006 (licencias por volumen) Enero de 2007 (retail) NT 6.0.6002 Únicamente soporte extendido hasta el 11 de abril de 2017 para Service Pack 2 (versión RTM y SP1 sin soporte). Versión cambiada a NT 6.0.6001 con el Service Pack 1 (4 de febrero de 2008) y a NT 9 julio de 2007 Windows Home Server NT 5.2.4500 Soporte estándar vigente. 9 febrero de 2008 Windows Server 2008 NT 6.0.6002 Soporte estándar vigente. Versión cambiada a NT 6.0.6002 con el Service Pack 2 (28 de abril de 2009). 9 [5] Windows 7 y octubre de 2009 Windows Server 2008 R2 NT 6.1.7601 Soporte estándar vigente. Versión cambiada a NT 6.1.7601 con el Service Pack 1 (9 de febrero de 2011). 10 Septiembre de 2012 Windows Server 2012 NT 6.2 Soporte estándar vigente. 10 Octubre de 2012 Windows 8 NT 6.2.9200 Soporte estándar vigente a partir del 25 o 26 de octubre del 2012. 10 Únicamente soporte extendido hasta el 14 de julio de 2015 para [] Service Pack 2 y versión R2. (versión RTM y SP1 sin soporte). 8 6.0.6002 con el Service Pack 2 (28 de abril de 2009). Línea de tiempo de versiones MSC. NMP / M en C. FGR 27 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Versiones más utilizadas [6] [7] [8] Net Market Share W3Counter Global Stats Fuente Dato Septiembre 2013 Julio 2013 Septiembre 2013 [9] W3 Schools Julio 2013 Versiones 91.18% 72.19% 84.25% 82.80% Windows 7 (2009) 44.63% 42.76% 51.84% 56.20% Windows XP (2001) 33.66% 20.08% 19.19% 15.80% Windows 8 (2012) 7.65% 4.86% 7.86% 8.60% Windows Vista (2007) 4.11% 4.49% 5.36% 1.80% Windows Server 0.13% - - 0.08% Seguridad Una de las principales críticas que con frecuencia reciben los sistemas operativos Windows es la debilidad del sistema en lo que a seguridad se refiere y el alto índice de vulnerabilidades críticas. El propio Bill Gates, fundador de [] Microsoft, ha asegurado en repetidas ocasiones que la seguridad es objetivo primordial para su empresa. Partiendo de la base de que no existe un sistema completamente libre de errores, las críticas se centran en la lentitud [10][11][12][13] con la que la empresa reacciona ante un problema de seguridad que pueden llegar a meses o incluso años [14][15] de diferencia desde que se avisa de la vulnerabilidad hasta que se publica un parche. En algunos casos la falta de respuesta por parte de Microsoft arreglan problemas de seguridad hechos por terceros. [16][17] ha provocado que se desarrollen parches que [18] Uno de los pilares en que se basa la seguridad de los productos Windows es la seguridad por ocultación, en general, un aspecto característico del software propietario que sin embargo parece ser uno de los responsables de la debilidad de este sistema operativo ya que, la propia seguridad por ocultación, constituye una infracción del principio de Kerckhoff, el cual afirma que la seguridad de un sistema reside en su diseño y no en una supuesta ignorancia del diseño por parte del atacante. [19] Windows Defender El 6 de enero de 2005, Microsoft lanzó una versión Beta de Microsoft AntiSpyware, basado en Giant AntiSpyware publicado anteriormente. El 14 de febrero de 2006, Microsoft AntiSpyware se convirtió en Windows Defender con el lanzamiento de la Beta 2. Windows Defender es un programa diseñado para proteger contra spyware y otro software no deseado. Los usuarios de Windows XP y Windows Server 2003 que tienen copias originales de Microsoft Windows pueden descargar libremente el programa desde el sitio web de Microsoft y Windows Defender se suministra como parte de Windows Vista y 7. En Windows 8, Windows Defender y Microsoft Security Essentials se han combinado en un solo programa, denominado Windows Defender. Sus características y la interfaz de usuario se basan en Microsoft Security Essentials. A pesar de que está activada de forma predeterminada, se puede desactivar para utilizar otra solución antivirus. Permisos de archivos En todas las versiones de Windows con NT 3 se han basado en un sistema de permisos de sistema de archivos denominado AGDLP (cuentas, Global, Local, permisos) AGLP que en esencia donde se aplican los permisos de archivo a la carpeta en forma de un grupo local que luego tiene otros 'grupos globales' como miembros. Estos grupos globales mantienen otros grupos o a usuarios según las diferentes versiones de Windows que utiliza. Este sistema varía de otros productos de proveedores tales como Linux y NetWare debido a la 'estática' asignación de permiso se MSC. NMP / M en C. FGR 28 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos aplica directorio para el archivo o carpeta. Sin embargo con este proceso de AGLP/AGDLP/AGUDLP permite a un pequeño número de permisos estáticos para aplicarse y permite cambios fáciles a los grupos de cuentas sin volver a aplicar los permisos de archivo de los archivos y carpetas. Aplicaciones Son aplicaciones que trae preinstaladas el sistema operativo Windows. Windows 8 En Windows 8 se han introducido nuevas aplicaciones. • Fotos • Contactos • • Vídeo • • Música (Xbox Music) • Mapas • • Calendario • Cámara • Mensajes • SkyDrive App • Noticias Windows Store • Deportes Viajes Bing App • Internet Explorer es un navegador web de Internet producido por Microsoft para su plataforma Windows. Fue creado en 1995 tras la adquisición por parte de Microsoft del código fuente de Mosaic, un navegador desarrollado por Spyglass, siendo rebautizado entonces como Internet Explorer. Las primeras versiones, basadas en Mosaic, no supusieron ninguna amenaza para el entonces dominante Netscape Navigator, ya que eran bastante simples y no eran compatibles con algunas de las extensiones más populares de Netscape que dominaban la web de la época (como los marcos o JavaScript). Es el navegador de Internet con mayor cuota de mercado, ya que se incluye [] integrado por defecto con Windows, hecho que le ha costado a Microsoft demandas por monopolio en Europa. • Windows Anytime Upgrade es el método de actualizar Windows incluida en Windows vista y actualmente en Windows 7 y Windows 8, el usuario introduce un código en la aplicación el cual en 10 minutos actualizara a una versión más avanzada de Windows, el pack de actualización se compra a través de Microsoft Store o con el fabricante OEM. • Windows Media Center es una aplicación con una interfaz de usuario, diseñado para servir como equipo personal de cine en casa. Está incluido en Windows XP Media Center Edition como parte de dicha versión especial del sistema operativo, ya que la aplicación no puede ser añadida a una instalación existente de XP. También se incluye en las ediciones superiores de Windows Vista (Vista Home Premium y Vista Ultimate), Windows 7 (todas las ediciones exceptuando Starter y Home Basic) y en Windows 8 Pro. • WordPad es un procesador de textos básico que se incluye con casi todas las versiones de Microsoft Windows desde Windows 95 hacia arriba. Es más avanzado que el Bloc de notas pero más sencillo que el procesador de textos de Microsoft Works y Microsoft Word. • Paint es un programa simple de dibujo gráfico desarrollado por Microsoft. Paint ha acompañado al sistema operativo Microsoft Windows desde la versión 1.0. MSC. NMP / M en C. FGR 29 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Críticas y polémicas Microsoft fue demandado por el Gobierno de Estados Unidos en 1998 por competencia desleal, y especialmente por [20] la inclusión del navegador Internet Explorer en su versión Windows 95. En 2004 Microsoft lanzó una campaña, llamada «Get the facts», en la que mostraba cientos de empresas conocidas que migraron de GNU/Linux a Windows Server y aumentaron su productividad y otro tipo de comparativas, [22] aunque la cerró poco después, en 2007. [21] Los defensores de GNU/Linux desarrollaron su propio estudio argumentando que, en contra de uno de los reclamos de Microsoft, GNU/Linux tiene menores costos administrativos [23] que servidores basados en Windows. Otro estudio realizado por el Yankee Group afirma que la actualización desde una versión de Windows Server a otra plataforma tiene un coste inferior al de cambiar de GNU/Linux a Windows Server. [24] En 2007 Windows Vista tuvo que enfrentarse a pruebas de que su sistema ofertado funcional a partir de 512MB requería más de 4GB para serlo, ello avalado por un consultor de IBM experto en el sistema. [25] estando «sobrecargado» de objetos, los cuales hacen que los computadores que actualmente están funcionando con Windows XP no soporten adecuadamente el sistema y no ofrezcan al usuario una experiencia fluida de uso, aunque «si bien es cierto que gracias a características como el ReadyBoot, el Superfetch, ReadyBoost, ReadyDrive y similares el rendimiento de Vista incluso puede llegar a ser superior al de XP en computadores potentes». [26] Debido al fracaso de Windows Vista, en 2007 Microsoft autorizó a hacer downgrade hacia Windows XP en las versiones Business, Entreprise y Ultimate. [27] Referencias [1] http://windows.microsoft.com/ [2] http://www.microsoft.com/windows/WinHistoryDesktop.mspx [3] http://windowsteamblog.com/international/b/latam/archive/2011/02/10/ microsoft-anuncia-liberaci-243-n-a-fabricante-de-windows-server-2008-r2-y-windows-7-sp1.aspx [4] http://support.microsoft.com/gp/lifecycle [9] http://www.w3schools.com/browsers/browsers_os.asp Enlaces externos • Sitio oficial de Microsoft Windows (http://www.microsoft.com/windows) • Microsoft Windows History Timeline (http://www.microsoft.com/Windows/WinHistoryIntro.mspx) • Wikiquote alberga frases célebres de o sobre Microsoft Windows. Wikiquote • Wikimedia Commons alberga contenido multimedia sobre Microsoft Windows. Commons MSC. NMP / M en C. FGR 30 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Windows Server 2008 Windows Server 2008 R2 Parte de la familia Microsoft Windows Server Desarrollador Microsoft Pagina de Windows 2008 [1] Información general Modelo de desarrollo Lanzamiento inicial Última versión estable Software propietario; Shared Source 4 de febrero de 2008 ([[2] info]) 6.0 Service Pack 2 (SP2; Compilación 6002) ([[3] info]) 30 de abril de 2009 Núcleo NT 6.1 Tipo de núcleo Híbrido Plataformas soportadas IA-32, x86-64, IA-64 Método de actualización Windows Update Licencia Microsoft CLUF (EULA) Idiomas Multilingüe En español Soporte técnico [] Período de soporte estándar hasta el 13 de enero de 2015. Después, período de soporte extendido hasta el 14 de enero de 2020. Windows Server 2008 es el nombre de un sistema operativo de Microsoft diseñado para servidores. Es el sucesor de Windows Server 2003, distribuido al público casi cinco años después. Al igual que Windows 7 , Windows Server 2008 se basa en el núcleo Windows NT 6.1. . Entre las mejoras de esta edición, se destacan nuevas funcionalidades para el Active Directory, nuevas prestaciones de virtualización y administración de sistemas, la inclusión de IIS 7.5 y el soporte para más de 256 procesadores. Hay siete ediciones diferentes: Foundation, Standard, Enterprise, Datacenter, Web Server, HPC Server y para Procesadores Itanium. Características Hay algunas diferencias (unas sutiles y otras no tanto) con respecto a la arquitectura del nuevo Windows Server 2008, que pueden cambiar drásticamente la manera en que se usa este sistema operativo. Estos cambios afectan a la manera en que se gestiona el sistema hasta el punto de que se puede llegar a controlar el hardware de forma más efectiva, se puede controlar mucho mejor de forma remota y cambiar de forma radical la política de seguridad. Entre las mejoras que se incluyen, están: • Nuevo proceso de reparación de sistemas NTFS: proceso en segundo plano que repara los archivos dañados. • Creación de sesiones de usuario en paralelo: reduce tiempos de espera en los Terminal Services y en la creación de sesiones de usuario a gran escala. • Cierre limpio de Servicios. • Sistema de archivos SMB2: de 30 a 40 veces más rápido el acceso a los servidores multimedia. • Address Space Load Randomization (ASLR): protección contra malware en la carga de controladores en memoria. MSC. NMP / M en C. FGR 31 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos • Windows Hardware Error Architecture (WHEA): protocolo mejorado y estandarizado de reporte de errores. • Virtualización de Windows Server: mejoras en el rendimiento de la virtualización. • PowerShell: inclusión de una consola mejorada con soporte GUI para administración. • Server Core: el núcleo del sistema se ha renovado con muchas y nuevas mejoras. Ediciones La mayoría de las ediciones de Windows Server 2008 están disponibles en x86-64 (64 bits) y x86 (32 bits). Windows Server 2008 para sistemas basados en Itanium soporta procesadores IA-64. La versión IA-64 se ha optimizado para escenarios con altas cargas de trabajo como servidores de bases de datos y aplicaciones de línea de negocios (LOB). Por ende no está optimizado para su uso como servidor de archivos o servidor de medios. Microsoft ha anunciado que Windows Server 2008 será el último sistema operativo para servidores disponible en 32 bits. [4] Windows Server 2008 está disponible en las ediciones que figuran a continuación, similar a Windows Server 2003. • Windows Server 2008 Standard Edition (x86 y x86-64) • Windows Server 2008 Todas las Ediciones (Solo 64Bit) • Windows Server 2008 Enterprise Edition (x86 y x86-64) • Windows Server 2008 Datacenter Edition (x86 y x86-64) • Windows Server 2008 R2 Standard Edition (Solo 64Bit) • Windows Server 2008 R2 Todas las Ediciones (Solo 64Bit) • Windows Server 2008 R2 Enterprise Edition (Solo 64Bit) • Windows Server 2008 R2 Datacenter Edition (Solo 64Bit) • Windows HPC Server 2008 (reemplaza Windows Compute Cluster Server 2003) • Windows Web Server 2008 R2 (Solo 64Bit) • Windows Storage Server 2008 (x86 y x86-64) • Windows Small Business Server 2008 (Nombre clave "Cougar") (x86-64) para pequeñas empresas [5] • Windows Essential Business Server 2008 (Nombre clave "Centro") (x86-64) para empresas de tamaño medio • Windows Server 2008 para sistemas basados en Itanium • Windows Server 2008 R2 Foundation Server Server Core está disponible en las ediciones Web, Standard, Enterprise y Datacenter, aunque no es posible usarla en la edición Itanium. Server Core es simplemente una opción de instalación alterna soportada y en sí no es una edición propiamente dicha. Cada arquitectura dispone de un DVD de instalación independiente. Windows Server 2008 Standard Edition, y Windows Server 2008 R2 Standard Edition estaban disponibles gratuitamente para estudiantes a través del programa Microsoft DreamSpark. Actualmente Windows Server 2008 Standard Edition (32 y 64bits), Windows Server 2008 Enterprise Edition (32 y 64bits), Windows Server 2008 Datacenter Edition (32 y 64bits), Windows Server 2008 R2 Standard Edition (con y sin SP1), Windows Server 2008 R2 Web Edition (con y sin SP1), Windows Server 2008 R2 Enterprise Edition (con y sin SP1), y Windows Server 2008 R2 Datacenter Edition (con y sin SP1), están disponible gratuitamente para estudiantes a través del programa Microsoft DreamSpark, al renovarse la licencia. MSC. NMP / M en C. FGR 32 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos [] Windows Server 2008 R2 Edition comparison chart Features Foundation Standard Maximum physical memory (RAM) (64-bit) Web HPC Enterprise Datacenter Itanium Parcial Parcial Parcial 2 TB 2 TB 2 TB Parcial Parcial Parcial Parcial 64 64 Sí Sí Sí 16 16 Parcial Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí Sí 8 GB Maximum physical CPUs supported 1 Cross-File Replication (DFS-R) No No No No Failover Cluster Nodes (Nodes) No No No No Fault Tolerant Memory Sync No No No No Hot Add Memory No No No No Hot Add Processors No No No No No Hot Replace Memory No No No No No Hot Replace Processors No Network Access Connections (IAS) No Parcial No Parcial No Unlimited Parcial Unlimited No MSC. NMP / M en C. FGR No No 33 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Network Access Connections (RRAS) Parcial Parcial Sistemas Operativos Parcial Unlimited Unlimited No No Remote Desktop Admin Connections 2 Remote Desktop Services Gateway Parcial Parcial Unlimited Unlimited No Virtual Image Use Rights Parcial No Parcial No Parcial Parcial Unlimited Unlimited No USD Pricing [] Features N/A $1,029 (5 CAL) $1,229 (10 CAL) $469 (No CAL) N/A $3,999 (25 CAL) $2,999 $2,999 Foundation Standard Web HPC Enterprise Datacenter Itanium Service packs Microsoft lanza ocasionalmente service packs para su familia de sistemas operativos Windows en aras a proteger al usuario frente a nuevas vulnerabilidades detectadas y también añadir nuevas características para que el equipo este en optimas condiciones. Service Pack 2 Debido a que Windows Server 2008 se basa en el núcleo Windows NT 6.0 Service Pack 1, la versión final (RTM) es considerada como Service Pack 1; de acuerdo con esto, el primer service pack lanzado será llamado "Service Pack [] 2". Anunciado el 24 de octubre de 2008, este service pack contiene los mismos cambios y mejoras que el equivalente Windows Vista Service Pack 2, así como la versión final de Hyper-V (1.0) y mejoras que le permiten una reducción del 10% en el uso de energía. Windows Server 2008 R2 Microsoft introdujo Windows Server 2008 R2 en la Professional Developers Conference (PDC) del 2008 como una variante de servidor del nuevo sistema operativo Windows 7. [] Una guía preliminar publicada por la compañía describe muchas áreas de mejora, notablemente la inclusión de un número de nuevas características de virtualización incluyendo Live Migration y Cluster Shared Volumes, un reducido consumo de energía, un nuevo conjunto de herramientas de administración, nuevas características Active Directory como una "papelera de reciclaje" para objetos AD borrados, una nueva versión de IIS (7.5) que incluye un [] renovado servidor FTP, soporte para DNSSEC y el aumento del número de núcleos de procesamiento de 64 a 256. Los procesadores de 32-bits ya no están soportados. [] Algunas mejoras en la opción de instalación Server Core incluyen la remoción total del entorno gráfico del sistema operativo, y el soporte a .NET Framework, incluyendo aplicaciones ASP.NET y soporte para Windows PowerShell. Las mejoras en el rendimiento fueron un área de desarrollo importante en esta versión; Microsoft anunció que se habían realizado trabajos para disminuir el tiempo de arranque, mejorar la eficiencia de operaciones E/S a la vez que MSC. NMP / M en C. FGR 34 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos reducir potencia de procesamiento y mejoras generales de velocidad en dispositivos de almacenamiento, especialmente en iSCSI. El 7 de enero de 2009, se lanzó una versión preliminar (beta) de Windows Server 2008 R2 para suscriptores de los programas de Microsoft, TechNet y MSDN, así como también a participantes del programa Microsoft Connect sobre Windows 7. Dos días después, se lanzó al público general mediante el Centro de descargas de Microsoft [6] [] . La versión RTM (Release To Manufacturing) fue anunciada el 22 Julio de 2009. Entre los cambios que incluye respecto a la edición anterior [7] se incluyen mejoras en las funcionalidades de virtualización, Active Directory y capacidades de seguridad. [] Service Pack 1 El Service Pack 1 para Windows Server 2008 R2 y Windows 7 fue anunciado el 9 de febrero de 2011 [8]. Entre los cambios que introdujo se destacan dos nuevas funcionalidades de virtualización, RemoteFX y Dynamic Memory. Dynamic Memory es una funcionalidad de Hyper-V que ayuda a utilizar la capacidad de la memoria física de forma más eficiente, tratándola como un recurso compartido que puede ser relocalizado entre las máquinas virtuales que se encuentran corriendo; ajusta la cantidad de memoria disponible para una máquina virtual, basándose en los cambios en la demanda y en los valores que se hayan especificado. De esta manera, permite aumentar la densidad de una máquina virtual sin perdida del desempeño ni escalabilidad. [] Remote FX es una tecnología que introduce mejoras en la experiencia final del usuario, integrándose al Protocolo de Escritorio Remoto (RDP). Permite virtualizar el GPU (Unidad de Procesamiento Gráfico) en el servidor, agregar multimedia y experiencias 3D para VDI (Infraestructura de Escritorio Virtual), entre otra características. [] Requisitos de hardware [9] Los requerimientos mínimos para Windows Server 2008 son los siguientes: Mínimos Recomendados Procesador 1 GHz (x86) o 1.4 GHz (x64) 2 GHz o superior Memoria 512 MiB RAM (podría limitarse el rendimiento y algunas características) 2 GiB RAM o más • Máximo (sistemas de 32-bits): 6 GiB RAM (edición Standard) ó 64 GiB RAM (ediciones Enterprise, Datacenter) • Máximo (sistemas de 64-bits): 32 GiB RAM (edición Standard) ó 2 TiB RAM (ediciones Enterprise, Datacenter y para sistemas basados en Itanium) Tarjeta gráfica Super VGA (800 x 600) Super VGA (800 x 600) o resolución mayor Espacio libre HDD 10 GB 50 GB o más Los equipos que dispongan de más de 16 GiB de memoria RAM requerirán más espacio en disco para archivos de paginación y volcado. Unidades DVD-ROM DVD-ROM o mejor Otros dispositivos MSC. NMP / M en C. FGR Monitor Super VGA (800 x 600) o con resolución mayor, teclado y ratón 35 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Referencias [1] http://www.microsoft.com/windowsserver2008/es/xl/r2.aspx/ [2] http://technet.microsoft.com/windowsserver/cc298325.aspx [3] http://technet.microsoft.com/windowsserver/bb310558 [4] Clientes de 32 bits (http://windowsvistablog.com/blogs/windowsvista/archive/2007/05/18/on-64-bit-and-windows-client.aspx) [5] Announcing Windows Essential Business Server (http://blogs.msdn.com/mssmallbiz/archive/2007/11/07/5955270.aspx) [6] http://www.microsoft.com/downloads/details.aspx?FamilyID=85cfe4c9-34de-477c-b5ca-75edae3d57c5 [7] http://technet.microsoft.com/en-us/library/dd391932(WS.10).aspx [8] http://technet.microsoft.com/en-us/library/ff817647(WS.10).aspx Enlaces externos Microsoft • Windows Server y Windows Server 2008 R2 TechCenter (http://technet.microsoft.com/windowsserver/ default.aspx) • Centro de Evaluación de TechNet - Descarga gratuita del trial de Windows Server 2008 R2 Service Pack 1 (http:/ /technet.microsoft.com/evalcenter) Aprendizaje • Carrera gratuita de Windows Server 2008 R2 en Microsoft Virtual Academy (https://www. microsoftvirtualacademy.com/tracks/windows-server-2008-r2?o=533) • Implementación de Windows Server 2008 R2 (http://technet.microsoft.com/es-es/edge/video/ implementando-windows-server-2008-r2-revisin-de-las-nuevas-tecnologas) Instalación de S.O. Windows Server 2008 R2 standard Revisar Requerimientos de Instalación Ejecutar programa VirtualBox instalado Preparar Hardware de equipo de cómputo para la instalación Y ejecutar pasos que se indican durante el proceso de instalación. MSC. NMP / M en C. FGR 36 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos 2.3 Instalación de Linux Debian GNU/Linux Debian GNU/Linux Parte de la familia Linux Captura de pantalla de Debian 6.0 'Squeeze' Desarrollador [1] ProyectoDebian [2] debian.org Información general Modelo de desarrollo Software libre Lanzamiento inicial 16 de agosto de 1993 Última versión estable 7.0 (Wheezy) (info [3] ) 4 de mayo de 2013 Núcleo Linux, FreeBSD, Hurd Tipo de núcleo Monolítico, Micro Interfaz gráfica por defecto GNOME, KDE, Xfce o LXDE Plataformas soportadas i386, AMD64, PowerPC, SPARC, ARM, MIPS, S390, IA-64 Sistema de gestión de paquetes dpkg Método de actualización APT (varias interfaces disponibles) Licencia GPL con programas y componentes LGPL,BSD,MIT entre otros Estado actual En desarrollo Idiomas 65 [] En español Debian GNU/Linux es un sistema operativo libre, desarrollado por más de mil voluntarios alrededor del mundo, que colaboran a través de Internet. La dedicación de Debian al software libre, su base de voluntarios, su naturaleza no comercial y su modelo de desarrollo abierto la distingue de otras distribuciones del sistema operativo GNU. MSC. NMP / M en C. FGR 37 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Todos estos aspectos y más se recogen en el llamado Contrato Social de Debian. Nació en el año 1993, de la mano del proyecto Debian, con la idea de crear un sistema GNU usando Linux como núcleo ya que el proyecto Debian, organización responsable de su mantenimiento en la actualidad, también desarrolla sistemas GNU basados en otros núcleos (Debian GNU/Hurd, Debian GNU/NetBSD y Debian GNU/kFreeBSD). Uno de sus principales objetivos es separar en sus versiones el software libre del software no libre. El modelo de desarrollo es independiente a empresas, creado por los propios usuarios, sin depender de ninguna manera de necesidades comerciales. Debian no vende directamente su software, lo pone a disposición de cualquiera en Internet, aunque sí permite a personas o empresas distribuir comercialmente este software mientras se respete su licencia. Debian Linux puede instalarse utilizando distintos mecanismos de instalación, como DVD, CD, Blu-Ray, memorias USB y diskettes, e incluso directamente desde la red. El proyecto Debian El proyecto Debian fue fundado en el año 1993 por Ian Murdock, después de haber estudiado en la Universidad de Purdue. Él escribió el manifiesto de Debian que utilizó como base para la creación de la distribución Linux Debian. Dentro de este texto los puntos destacables son: mantener la distribución de manera abierta, coherente al espíritu del núcleo Linux y de GNU. El nombre de éste se basa en la combinación del nombre de su entonces novia (posteriormente esposa) Deborah con su propio nombre Ian, formando el acrónimo Debian, pronunciado como las sílabas correspondientes de estos nombres en inglés americano: /dɛbˈiːjən/. El proyecto creció lentamente al principio y lanzó sus primeras versiones 0.9x en 1994 y 1995. Las primeras portabilidades a otras arquitecturas fueron a comienzos de 1995, siendo la primera versión 1.x de Debian lanzada en 1996. En 1996, Bruce Perens substituyó desarrollador Ean a Ian Murdock como el líder de proyecto. En la sugerencia del Schuessler, él dirigió el proceso de actualización del contrato social de Debian y de las pautas del software de Debian libremente, definiendo los puntos fundamentales para el desarrollo de la distribución. Él también inició la creación de la licencia de software legal de la organización. Bruce Perens se retiró en 1998, antes del lanzamiento de la primera versión Debian basada en glibc, bautizada como Debian 2.0. El proyecto procedió a elegir a nuevos líderes y a hacer dos revisiones de la versión 2.x, cada una incluyendo más portabilidades a otras arquitecturas y más paquetes. Coveniente fue lanzado durante este periodo y la primera portabilidad a un núcleo no basado en el núcleo Linux, Debian GNU/Hurd. Las primeras distribuciones de Linux basadas en Debian, Corel Linux y la Stormix's Linux de Stormix, fueron comenzadas en 1999. Aunque estuvieron desarrolladas no por mucho tiempo, estas Captura de Debian lenny con awesome 3.4.1 Mercury como gestor de ventanas y con varias consolas en marcha. distribución eran las primeras de muchas distribuciones basadas en Debian. MSC. NMP / M en C. FGR 38 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos A finales de 2000, el proyecto realizó el mayor cambio a la estructura de los archivos y la organización de la versiones, reorganizando procesos de liberación de paquetes del software con el nuevo "package tools" y creando un rama de prueba, relativamente estable para el lanzamiento siguiente. En 2001, los desarrolladores comenzaron a llevar a cabo una conferencia anual llamada Debconf con negociaciones y los talleres para los desarrolladores y los usuarios técnicos. Características Debian se caracteriza por: • La disponibilidad en varias arquitecturas. La versión estable incluye soporte para 12 plataformas: [4] • i386 – x86-32 • amd64 – x86-64 • alpha – DEC Alpha • sparc – Sun SPARC • arm – Arquitectura ARM • armel – Emulador de ARM Emulator • powerpc – Arquitectura PowerPC • ia64 – Arquitectura Intel Itanium (IA-64) • mips, mipsel – Arquitectura MIPS (big-endian y little-endian) • s390 – Arquitectura IBM ESA/390 y z/Architecture • m68k – Arquitectura Motorola 68k en Amiga, Atari, Mac, y varios sistemas embebidos VME • Una amplia colección de software disponible. La versión 5.0 viene con más de ≈ 23.000 paquetes y la versión 6.0 [] con casi ≈ 30.000. • Un grupo de herramientas para facilitar el proceso de instalación y actualización del software (APT, Aptitude, Dpkg, Synaptic, Dselect, etc.) Todas ellas obtienen información de donde descargar software desde /etc/apt/sources.list, que contiene los repositorios. • Su compromiso con los principios y valores involucrados en el movimiento del Software Libre. • No tiene marcado ningún entorno gráfico en especial, pudiéndose no instalar ninguno, o instalar GNOME, KDE, Xfce, LXDE, Enlightenment u otro. MSC. NMP / M en C. FGR 39 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Lanzamientos Los nombres de las versiones de Debian Linux son tomados de la película Toy Story. Hasta la fecha ha habido 11 versiones estables (con sus respectivas revisiones), siendo la actual [] la 7.0 "wheezy". Con su publicación, "squeeze" pasó a ser la versión estable antigua ("oldstable"), y la actual versión en pruebas ("testing") se denomina "jessie". El desarrollo día a día tiene lugar en la versión inestable ("unstable"), rama que aparece codificada de forma permanente con el nombre "sid". Debian 5.0 "lenny" incluye el entorno de escritorio KDE 3.5.10, una versión actualizada del entorno de escritorio GNOME 2.22.2, el entorno de Árbol de la familia Debian GNU/Linux escritorio Xfce 4.4.2, LXDE 0.3.2.1, el escritorio GNUstep 7.3, X.Org 7.3, OpenOffice.org 2.4.1, GIMP 2.4.7, Iceweasel 3.0.6 (una versión de Mozilla Firefox que no utiliza la marca registrada), Icedove 2.0.0.19 (una versión de Mozilla Thunderbird que no utiliza la marca registrada), PostgreSQL 8.3.6, MySQL 5.0.51a, la colección de compiladores del GNU (GCC) 4.3.2, el núcleo Linux versión 2.6.26, Apache 2.2.9, Samba 3.2.5, Python 2.5.2 y 2.4.6, Perl 5.10.0, PHP 5.2.6, Asterisk 1.4.21.2, Emacs 22, Inkscape 0.46, Nagios 3.06, Xen Hypervisor 3.2.1 (con soporte tanto para dom0 como para domU), OpenJDK 6b11 y más de otros ≈ 23.000 paquetes de programas listos para usarse (construidos a partir de 12.000 paquetes fuente). Incluye configuración automática del sistema gráfico en la mayor parte de hardware existente, soporte completo al sistema de ficheros NTFS, autoconfiguración de la mayor parte de las teclas multimedia, soporte para el formato de archivos Flash de Adobe a través de los complementos swfdec o Gnash, herramientas propias para ordenadores portátiles (como el soporte integrado del escalado de frecuencia de la CPU), entre otras características. Color Rojo Significado Versión antigua; no soportada Amarillo Versión antigua; aun soportada MSC. NMP / M en C. FGR Verde Versión actual Azul Versión futura 40 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Versión Nombre en clave Fecha Arquitecturas Paquetes Soporte Sistemas Operativos Nota 1.1 buzz 17 de junio de 1996 1 474 1996 dpkg, transición a ELF, Linux 2.0. 1.2 rex 12 de diciembre de 1996 1 848 1996 1.3 bo 2 de junio de 1997 1 974 1997 2.0 hamm 24 de julio de 1998 2 ≈ 1.500 1998 2.1 slink 9 de marzo de 1999 4 ≈ 2.250 2000-12 APT, nuevas arquitecturas: alpha, sparc. 2.2 potato 15 de agosto 6 de 2000 ≈ 3.900 2003-04 Nuevas arquitecturas: arm, powerpc 3.0 woody 19 de julio de 2002 11 ≈ 8.500 2006-08 Nuevas arquitecturas: hppa, ia64, mips, mipsel, s390 3.1 sarge 6 de junio de 2005 11 ≈ 15.400 2008-04 Instalación modular, soporte semi-oficial para AMD64 4.0 etch 8 de abril de 11 2007 ≈ 18.000 2009-09 Instalador gráfico, transición a udev. 5.0 lenny 14 de febrero de 12 [] TBA ≈ 23.000 6 de febrero de 2011 9+2 ≈ 29.000 Transición a glibc, nueva arquitectura m68k. Nueva arquitectura: armel. 2009 6.0 squeeze TBA 7.0 wheezy 4 de mayo de 2013 11+2 ≈ 37.000 TBA 8.0 jessie TBA TBA TBA TBA Nuevas arquitecturas/núcleos: kfreebsd-i386, kfreebsd-amd64, arquitecturas abandonadas: alpha, hppa, [5] [] [6] OABI arm eglibc en vez de glibc Inicio del sistema en . . [7] [8] paralelo. Eliminación de bibliotecas antiguas como GTK 1. [] Firmware no libre eliminado de su kernel. [9] Eliminación de bibliotecas antiguas como Qt 3. TBA Versiones de desarrollo Los paquetes de software en desarrollo son subidos a unas ramas llamadas inestable (unstable) y experimentales. Normalmente, los paquetes de software son subidos a inestable por las versiones lanzadas estables por el desarrollador original de la aplicación, pero con el empaquetado y otras modificaciones específicas de Debian introducidas por los desarrolladores. El software que es inestable o no se encuentra listo para la rama inestable se pone típicamente en experimental. MSC. NMP / M en C. FGR 41 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Referencias [2] http://www.debian.org [3] http://www.debian.org/News/2013/20130504 [5] http://wiki.debian.org/ArmEabiPort#Terminology [7] LSBInitScripts/DependencyBasedBoot - Debian Wiki (http://wiki.debian.org/LSBInitScripts/DependencyBasedBoot) [8] ReleaseGoals/RemoveOldLibs - Debian Wiki (http://wiki.debian.org/ReleaseGoals/RemoveOldLibs) [9] http://ekaia.org/blog/2011/02/07/post-and-pre-release-fun/ Enlaces externos • • Wikimedia Commons alberga contenido multimedia sobre Debian GNU/LinuxCommons. Wikinoticias tiene noticias relacionadas con Debian GNU/Linux.Wikinoticias • Sitio web oficial (http://www.debian.org/) • Sitio web oficial Live (http://live.debian.net/) • Anuncio original en comp.os.linux.development de 1993 (http://groups.google.com/group/comp.os.linux. development/msg/a32d4e2ef3bcdcc6?output=gplain) • Lista de paquetes de Debian (http://packages.debian.org/stable/allpackages) • #debian (irc://irc.debian.org/debian) en OFTC Repositorios de terceros • debian-multimedia.org (http://www.debian-multimedia.org) • debian-unofficial.org (http://www.debian-unofficial.org) • dotdeb.org (http://www.dotdeb.org) ¿Qué conocer antes de instalar un S.O.? 1. Disco Duro HD • Direccionamiento CHS/LBA • Tamaño de HD • Tipos de Discos 2. Partición de HD 3. Sector de Inicio Disco duro hd o hdd (hard disk driver) • Es un componente de Hardware cuya función consiste en almacenar gran cantidad de información de forma no volatil. MSC. NMP / M en C. FGR 42 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS • Sistemas Operativos Un HD está formado por uno o varios discos superpuestos y cubiertos de material magnetizable por ambas caras que giran a gran velocidad sobre un eje. Para guardar y recuperar datos, junto a cada cara existe una cabeza de lectura y escritura. Las cabezas se encuentran en el extremo del soporte móvil denominado brazo que recorre los discos de forma transversal, desde el centro hasta el exterior. Direccionamiento CHS/LBA de HD CHS: geometría CHS Geometría física (cilindros, cabezas, y sectores reales del Disco) Geometría lógica: dividir todo le espacio del Disco en base a tres números cilindros, cabezas, y sectores lógicos. Y muestra el SO como C/H/S y no tiene por qué coincidir con la geometría física. En esta distribución el controlador del HD traduce entre la geometría fisica y la lógica. Y cada sector lógico tiene asignado un tamaño fijo de 512 bytes, que no necesariamente tienen que coincidir con el tamaño del sector físico. LBA : Logical Block Addresing – Direccionamiento de bloques lógicos. Consiste en asignar un número secuencial a cada sector lógico del Disco. Se puede manejar hasta 2 28 sectores (HD de 137.4 GB), los HD actuales de mayor capacidad requieren LBA48 una variante de hasta 2 48 Tamaño de HD Un disco con C cilindros, H cabezas, S sectores tiene un total de C*H*S sectores y puede almacenar C*H*S*512 bytes. Tipos de Discos Existen varios tipos de HD en función del tipo de bus al que se conectan como los siguientes: IDE: -el bus de este tipo tiene un conector de 40 pines y permite la conexión de un máximo de 2 dispositivos:maestro y esclavo. SATA: - Serial ATA SCSI: velocidad mayor a IDE -configuración de tipo RAID. MSC. NMP / M en C. FGR 43 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos IDE: hasta hace relativamente poco tiempo, las placas bases comunes incluían dos buses IDE, dando cabida a un total de 4 dispositivos (HD,o CD/DVD). En Linux los dispositivos con conector tipo IDE llamados Parallel ATA y se referencian: - hda: dispositivo maestro de la interfaz IDE primaria - hdb: dispositivo esclavo de la interfaz IDE primaria - hdc: dispositivo maestro de la interfaz IDE secundaria - hdd: dispositivo esclavo de la interfaz IDE secundaria SATA: - Son discos más modernos utilizan un interfaz Serial ATA o SATA con un conector especial para datos y otro para alimentación. Es habitual encontrar en las placas bases actuales varios conectores SATA y algún IDE. Los discos SATA, memorias USB y discos USB externos usan letras consecutivas: sda, sdb, sdc, sdd, etc. Para identificarse. Ofrecen velocidades de transmisión y acceso comparables y facilitan configuraciones redundantes de tipo RAID. SCSI: sistema de almacenamiento utilizado en equipos a un nivel más profesional y ofrece velocidad mayor que IDE, sin embargo su uso se está limitando con respecto a SATA. Las unidades se nombran en GNU/Linux: : sda, sdb, sdc, sdd, etc. PARTICIÓN DE HD Particionamiento: Es el proceso consistente en organizar el espacio de un disco de forma que sea utilizable. Una partición es una parte del espacio del disco que se gestiona de forma independiente. Se puede borrar, organizar sin afectar el resto de las particiones, puede instalarse un sistema de Archivos distinto y un SO diferente. • El número, tipo y tamaño de las particiones se guarda en el HD en un sector situado al principio MBR (Master Boot Record –registro de arranque maestro. • Se pueden definir los siguiente tipos de Particiones: MSC. NMP / M en C. FGR 44 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS • Sistemas Operativos Primaria: hasta 4 particiones en un mismo HD se guarda en la tabla de particiones de MBR. Hdb1, hdb2 HDD y sda1, sda2 Memoria USB • Extendida: Partición especial que sirve de contenedor para particiones lógicas, solo puede crearse sustituyendo a una de las primarias, se guardan en la tabla de particiones de MBR, se referencia con el número 1, 2,3 ó 4 según la partición primaria a la que sustituye. • Lógica: Son las que se crean dentro de la partición extendida. Almacena las características de la primera partición lógica, y la primera partición lógica almacena la de la segunda y así sucesivamente. Se referencian con los números 5 y sucesivos. Todas las particiones lógicas deben ser contiguas. Gracias a esto un HD puede tener más de 4 particiones. SECTOR DE INICIO – boot sector – primer sector del Disco Pueden existir los siguientes sectores de Inicio • Sector de inicio del Disco MBR: existe un único sector por disco y se trata de un elemento muy importante, ya que contiene unos de los primeros programas que se ejecutan cuando se enciende el equipo, después de los programas de diagnostico grabados en la BIOS. • Sector de inicio de cada partición: único para cada partición. Nota: la configuración se indica en el momento de la instalación del SO Linux, cuando se Genera el GRUB, menú de arranque de Sistemas operativos instalados en un equipo. Instalación de S.O. GNU/linux. MSC. NMP / M en C. FGR 45 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Aún cuando el proceso de instalación puede variar dependiendo de la Distribución se pueden generalizar los siguientes pasos: I. Selección de la Distribución: Requerimientos de HW (memoria, tipo y velocidad de procesador, HDD, sistema gráfico), ¿hacia dónde se aplica?. II. Medios de Instalación: adaptadas a distintas plataformas, en distintos estados de desarrollo, con distintos gestores de ventanas, orientadas a diferentes soportes. Descargas: ISO, DVD´s completo con métodos: Directa(HTTP,FTP), Bittorrent(P2P punto a punto) III. Arranque desde el medio de instalación: BIOS definir la primera opción de arranque:CD/DVD, USB, HDD extraible, tarjeta de red. IV. Particionamiento y puntos de montaje. V. Opciones comunes: configuración de idioma, teclado, red, zona horaria, nombre de equipo, contraseña de root. VI. Gestor de arranque: Lilo(LiveCD), Grub, SysLinux (FAT, CD-ROM, LiveCD): Particionamiento y puntos de montaje: Se requieren al menos 3 particiones: partición raiz (/ ): instala los archivos del Sistema partición de intercambio(swap): para realizar esta tarea en momentos puntuales de gran uso de memoria. Home (cuando sea utilizado por muchos usuarios). Posibilidades de particionamiento: Todo el Disco: el asistente dispondrá de todo el espacio del Disco para hacer las particiones. Guiado: ofrece propuesta para redimensionar las particiones existentes a fin de poder instalar el nuevo sistema. Manual: deja todas las decisiones del usuario. Pasos para realizar el particionado: Decidir particiones necesarias (Tamaño, uso y tipo de sistemas de archivos. Crear particiones en el espacio libre, redimensionando otras existentes para tener espacio si fuera necesario. Asignar un punto de montaje, especificar que carpeta a ser almacenada en cada una, donde se montaran los sistemas de archivos existentes al iniciar el sistema operativo. Los sistemas de archivos más comunes para linux es: ext2, ext3, ext4, proveniente de sistemas de archivos extendidos. Para ampliar más el tema ver manual de referencia de la página oficial del S.O. Debían http://www.debian.org. Prácticas de laboratorio: Instalar el Sistema operativo Windows y una distribución linux MSC. NMP / M en C. FGR 46 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS III. Sistemas Operativos Comandos Básicos de los sistemas operativos (Windows y basado en UNIX). Objetivo: El alumno administrará los recursos de los equipos de cómputo a través de los comandos y procedimientos de un sistema operativo para su manejo y organización. 3.1. Sistema de Archivos y su manejo Todas las aplicaciones de computadora necesitan almacenar y recuperar la información. Al ejecutarse un proceso, éste puede almacenar una cantidad limitada de información dentro de su propio espacio de direcciones. Sin embargo, la capacidad de almacenamiento queda restringida, a lo más, al tamaño del espacio de direcciones virtuales. Para algunas aplicaciones, este tamaño es adecuado; pero para otras, como en sistemas de grandes empresas, es demasiado pequeño. El segundo problema relativo al almacenamiento de la información dentro del espacio de direcciones es que, cuando el proceso termina, la información se pierde. En el caso de diversas aplicaciones (por ejemplo, bases de datos), la información debe conservarse por semanas, meses, o aun para siempre. Desaparecer esta información al momento de terminación del proceso es inaceptable. Además, tampoco debe desaparecer cuando la computadora falla o el proceso muere. Un tercer problema, en el caso de varios procesos, se requiere con frecuencia el acceso a (partes de) la información al mismo tiempo. La forma de resolver este problema es hacer que la propia información sea independiente de todos los procesos. Así, tenemos tres condiciones esenciales para el almacenamiento de la información a largo plazo: 1. Debe ser posible almacenar una cantidad muy grande de información. 2. La información debe sobrevivir a la conclusión del proceso que la utiliza. 3. Debe ser posible que varios procesos tengan acceso concurrente a la información. La solución a estos problemas es el almacenamiento de la información en discos y otros medios externos, en unidades llamadas archivos. Los procesos podrán entonces leerlos y escribir otros nuevos, en caso necesario. La información almacenada en los archivos debe ser persistente; es decir, no debe verse afectada por la creación y término de un proceso. Un archivo debe desaparecer sólo en caso de su eliminación explícita por parte del propietario. Los archivos son administrados por el SO. Su estructura, nombre, forma de acceso, uso, protección e implementación son temas fundamentales en el diseño de un SO. Aquella parte del SO que trabaja con los archivos se conoce, como un todo, como el sistema de archivos. Definición de archivo Conjunto de datos al cuál se asigna un nombre y reside normalmente en un dispositivo de almacenamiento secundario como un disco o cinta. Nombre de los archivos MSC. NMP / M en C. FGR 47 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Los archivos son un mecanismo de abstracción. Son una forma de almacenar información en un disco y volver a leerla más adelante. La característica más importante de cualquier mecanismo de abstracción es probablemente la forma de nombrar a los objetos por administrar. Cuando un proceso crea un archivo, le da a éste un nombre. Cuando el proceso concluye, el archivo sigue existiendo y otros procesos pueden tener acceso a él mediante su nombre. Las reglas exactas para los nombres de archivo varían un poco de sistema a sistema, aunque los actuales SO permiten cadenas de hasta 256 caracteres (algunos otros SO, permiten cadenas de hasta 8 letras) como nombres de archivo. También es frecuente que se permitan dígitos y caracteres especiales. Algunos sistemas de archivos distinguen entre las mayúsculas y las minúsculas, mientras que otros no. UNIX está dentro de la primera categoría; MS-DOS dentro de la segunda. Así, un sistema UNIX puede tener los siguientes archivos distintos: bárbara, Bárbara, BARBARA, BARbara y BarBaRa. En MS-DOS, todos los nombre se refieren al mismo archivo. Muchos SO utilizan nombres de archivo con dos partes, separadas por un punto, como en prog.c. La parte posterior al punto es la extensión de archivo e indica por lo general algo relativo al archivo. Por ejemplo, en MS-DOS, los nombres de archivo tienen una longitud de hasta ocho caracteres más una extensión opcional de hasta tres caracteres. En UNIX, el tamaño de la extensión, si ésta existe, se deja al usuario; además, un archivo puede tener incluso dos o más extensiones, como en prog.c.Z. A continuación se muestran algunas de las extensiones de archivo más comunes basadas en el criterio del SO MS-DOS. Extensión Significado file.bak Archivo de respaldo. file.bin Programa ejecutable en binario. file.c Programa fuente en C. file.dat Archivo de datos. file.doc Archivo de documento (WORD). file.xls Archivo de hoja de cálculo (EXCEL). file.hlp Texto para el comando HELP. file.obj Archivo objeto (salida del compilador, que no ha sido ligada). file.lib Biblioteca de archivos .obj utilizados por el ligador. file.man Página de un manual en línea. file.txt Archivo general de texto. file.bat Archivo con instrucciones por lote. file.tmp Archivo temporal. En ciertos casos, las extensiones de los archivos son meras convenciones y no están forzadas de alguna manera. Un archivo llamado file.txt es probablemente cierto tipo de archivo de texto, pero el nombre tiene más la intención de servir de recordatorio al propietario que de proporcionar cierta información específica a la computadora. Por otro lado, un compilador de C podría insistir en que los archivos por compilar tuvieran la extensión .c y negarse a compilarlos en caso de que no la tuvieran. MSC. NMP / M en C. FGR 48 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Convenciones como éstas son de particular utilidad si el mismo programa puede manjar varios tipos distintos de archivos. Por ejemplo, se le puede dar al compilador de C una lista de varios archivos por compilar y ligar, algunos de los cuales serían archivos en C y otros en lenguaje ensamblador. La extensión se convierte en un factor esencial para indicarle al compilador el tipo de cada archivo. Estructura de un archivo Los archivos se pueden estructurar de varias maneras; tres de las posibilidades más comunes son: Secuencia de bytes. Secuencia de registros. Árbol. Secuencia de bytes. 1 byte Es una serie no estructura de bytes. De hecho al SO no le interesa ni se preocupa por el contenido de cualquier archivo. Lo único que ve son bytes; cualquier significado debe ser impuesto por los programas a nivel usuario. Tanto UNIX como MS-DOS utilizan este enfoque. El hecho de que SO considere a los archivos como una simple serie de bytes proporciona una máxima flexibilidad. Los programas del usuario pueden colocar lo que sea dentro de los archivos y nombrarlos de la manera que crean más conveniente. El SO no ayuda, pero tampoco estorba. Para los usuarios que deseen hacer cosas extrañas, esto último es muy importante. Secuencia de registros 1 registro Un archivo es una secuencia de registros de longitud fija, cada uno con su propia estructura interna. Un aspecto central de la idea de utilizar archivos en forma de secuencia de registros es el hecho de que la operación de lectura regrese un registro y las operaciones de escritura escriban sobre o añadan un registro. Con el surgimiento de terminales con líneas de longitud variable, la idea de un archivo como secuencia de registros de longitud fija está perdiendo popularidad. MSC. NMP / M en C. FGR 49 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Árbol. hormig zorro a gato vaca perro gallina o chivo ibis cochin león búho pony rata gusano borreg o Un archivo consta de un árbol de registros, los cuales no necesariamente tienen la misma longitud; cada uno de ellos contiene un campo key (llave) en una posición fija del registro. El campo se ordena mediante este campo, con el fin de poder realizar con rapidez la búsqueda de una llave particular. La operación básica en este caso no es la de obtener el “siguiente” registro, sino obtener el registro con una llave específica. Además los nuevos registros se pueden añadir al archivo en una posición adecuada del SO y no del usuario. Este tipo de archivo es claramente distinto de los flujos de bytes no estructurados que utilizan UNIX y MS-DOS. Se utiliza ampliamente en las grandes computadoras mainframe, las cuales se utilizan a su vez en el procesamiento de datos comerciales. Tipos de archivos Muchos SO soportan varios tipos de archivos. UNIX y MS-DOS, por ejemplo, tienen: Archivos regulares. Son aquellos que contienen información del usuario. Archivos en ASCII. Constan de líneas de texto. En ciertos sistemas, cada línea termina con un carácter de retorno de carro. En otros se utiliza el carácter alimentador de línea. En ciertas ocasiones se necesitan ambos. Las líneas no tienen que tener la misma longitud. La gran ventaja de los archivos ASCII es que se pueden exhibir e imprimir tal cual son y pueden editarse mediante un editor de texto común. Además, si un gran número de programas utilizan archivos en ASCII para la entrada y salida, es fácil conectar la salida de un programa con la entrada de otro, como en las tuberías del shell. (La exploración entre los procesos no es del todo fácil, pero la interpretación de la información sí lo es cuando se utiliza una convención estándar, como ASCII, para expresarla.) Archivos binarios. No son archivos en ASCII. El listado de su contenido produce una lista incomprensible de algo que parece aleatorio y sin sentido. Por lo general, tienen cierta estructura interna. Directorios. Son archivos de sistema para el mantenimiento de una estructura del sistema de archivos. Archivos especiales de caracteres. Tienen relación con la Entrada/Salida y se utilizan para modelar dispositivos seriales de E/S, tales como las terminales, impresoras y redes. Archivos especiales de bloques. Se utilizan para modelar discos. Acceso a un archivo Acceso secuencial. Se leen, en orden de secuencia, todos los bytes de un registro del archivo, comenzando desde el principio, sin poder saltarse o leerlos en otro orden. Sin embargo, pueden ser “rebobinados”, para leerlos cuantas veces fuera necesario. Son convenientes cuando el medio de almacenamiento son las cintas magnéticas. Acceso aleatorio. Los bytes o registros de un archivo se pueden leer en cualquier orden. Son convenientes cuando el medio de almacenamiento son los discos. MSC. NMP / M en C. FGR 50 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos En algunos de los antiguos SO de mainframe, los archivos se clasificaban en secuenciales o de acceso aleatorio al momento de crearse. Esto permite que el SO utilice distintas técnicas de almacenamiento para las dos clases. Los modernos SO no hacen esta distinción. Todos sus archivos son de acceso aleatorio. Atributos de un archivo Atributos. Elementos o características que se asocian a un archivo. La información esencial de un archivo consta de: nombre, extensión, tamaño, y fecha/hora de creación. Los atributos pueden ser manipulados por: el usuario, el SO y/o una aplicación. Algunos son exclusivos de alguno de los manipuladores. A continuación se muestran algunos de los posibles atributos de archivo. Campo Significado Protección Quién debe tener acceso y de qué forma. Contraseña Contraseña necesaria para tener acceso al archivo. Creador Identificador de la persona que creó el archivo. Propietario Propietario actual. Bandera exclusivo-para-lectura 0 Lectura/Escritura, 1 para lectura exclusivamente. Bandera de ocultamiento O normal, 1 para no exhibirse en listas. Bandera de sistema 0 archivo normal, 1 archivo de sistema. Bandera de biblioteca 0 ya se ha respaldado, 1 necesita respaldo. Bandera ASCII/Binario 0 archivo en ASCII, 1 archivo en binario. Bandera de acceso aleatorio 0 sólo acceso secuencial, 1 acceso aleatorio. Bandera temporal 0 normal, 1 eliminar al salir del proceso. Banderas de cerradura 0 no bloqueado, distinto de cero bloqueado. Longitud del registro Número de bytes en un registro. Posición de la llave Ajuste de la llave dentro de cada registro. Longitud de la llave Número de bytes en el campo llave Tiempo de creación Fecha y hora de creación del archivo. Tiempo del último acceso Fecha y hora del último acceso al archivo. Tiempo de la última modificación Fecha y hora de la última modificación al archivo. Tamaño actual Número de bytes en el archivo. Tamaño máximo Tamaño máximo al que puede crecer el archivo. La lista de atributos varía en forma considerable de sistema a sistema. Ninguno de los sistemas existentes posee todas éstas, pero cada una está presente en algún sistema. Los primeros cuatro atributos están relacionados con la protección del archivo e indican quién debe tener acceso a ellos y quién no. Es posible todo tipo de esquemas. En ciertos sistemas, el usuario debe presentar una contraseña para tener acceso a un archivo, en cuyo caso, la contraseña debe ser uno de los atributos. Las banderas son bits o campos pequeños que controlan o permiten cierta propiedad determinada. Por ejemplo, los archivos ocultos no aparecen en el listado de todos los archivos. La bandera de biblioteca es un bit que lleva el registro de sí el archivo se ha respaldado. MSC. NMP / M en C. FGR 51 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos El programa para respaldo lo desactiva y el SO lo activa al modificar un archivo. De esta forma, el programa para respaldo puede determinar los archivos que deben respaldarse. La bandera temporal permite que un archivo señalado para su inmediata eliminación al concluir el proceso que lo llamó. Los campos de la longitud del registro, posición de la llave, y longitud de la llave están presentes en los archivos en cuyos registros se pueden hacer una búsqueda mediante una llave. Estos campos proporcionan la información necesaria para encontrar las llaves. Los distintos tiempos llevan un registro de la fecha de creación del último acceso y la última modificación al archivo. Estos campos son útiles por varias razones. Por ejemplo, un archivo fuente que ha sido modificado después de crear el correspondiente archivo objeto debe volverse a compilar. Estos campos proporcionan la información necesaria. El tamaño actual indica cuán grande es el archivo en el momento. Algunos SO de mianframe necesitan que se especifique el tamaño máximo al crear un archivo, para que el SO reserve de antemano la cantidad máxima de espacio de almacenamiento. Los sistemas de las minicomputadoras y PC son lo bastante “astutos” para no utilizar este elemento. Operaciones con archivos Los archivos existen para poder almacenar la información y recuperarla más adelante. Los distintos sistemas proporcionan diversas operaciones para permitir el almacenamiento y la recuperación. Algunas de las llamadas más comunes al sistema relacionadas con los archivos son: CREAR. Construir un archivo nuevo. DESTRUIR. Eliminar un archivo. ABRIR. Preparar un archivo para hacer referencia a él. CERRAR. Evitar cualquier otra referencia al archivo en tanto no se le abra otra vez. COPIAR. Crear otra versión del archivo con un nombre nuevo. RENOMBRAR o REBAUTIZAR. Cambiar el nombre de un archivo. LISTAR. Imprimir o exhibir el contenido de un archivo. BUSCAR. Especificar (mediante métodos) dónde tomar los datos de un archivo. OBTENER ATRIBUTOS. Leer los atributos de un archivo para que él(los) proceso(s) pueda(n) realizar su trabajo con él. ESTABLECER ATRIBUTOS. Fijar o especificar las características (atributos) de un archivo ya existente. Los elementos de información individuales dentro del archivo se pueden manipular con operaciones tales como: LEER. Introducir un elemento de información de un archivo a un proceso. ESCRIBIR. Transferir un elemento de información de un proceso a un archivo. MODIFICAR. Alterar un elemento de información ya existente en un archivo. INSERTAR o AÑADIR. Añadir un nuevo elemento de información a un archivo. ELIMINAR. Borrar un elemento de información de un archivo. MSC. NMP / M en C. FGR 52 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Definición de directorio Es un archivo de sistema que sirve para el mantenimiento de una estructura del sistema de archivos. Llevan un registro de los archivos almacenados en la computadora. Sistema jerárquico de directorios Un directorio contiene por lo general varios datos, uno por archivo. Una posibilidad se muestra a continuación: juegos atributos correo atributos noticias atributos trabajo atributos Atributos en la entrada del directorio en donde un dato contiene el nombre de un archivo, sus atributos y las direcciones en disco donde se almacenan los datos. Otra posibilidad se muestra a continuación: juegos correo noticias trabajo Estructura de datos que contiene los atributos Atributos en otro lugar En ésta, una entrada del directorio contiene el nombre del archivo y un apuntador a otra estructura de datos, donde se encuentran los atributos y las direcciones en disco. Ambos sistemas son de uso común. Al abrir un archivo, el SO busca en su directorio hasta encontrar el nombre del archivo por abrir. Extrae entonces los atributos y direcciones en disco, ya sea en forma directa de los datos del directorio o de la estructura de datos del directorio o de la estructura de datos a la que apunta y los coloca en una tabla dentro de la memoria principal. Todas las referencias subsecuentes al archivo utilizan la información de la memoria principal. El número de directorios varía de sistema en sistema. El diseño más sencillo es aquel donde el sistema tiene un único directorio con todos los archivos de todos los usuarios, como se muestra en la siguiente figura: Directorio raíz Directorio Archivo Un solo directorio compartido por todos los usuarios. MSC. NMP / M en C. FGR 53 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos *Si existen muchos usuarios y estos eligen los mismos nombres de archivo (por ejemplo, correo y juegos), los conflictos y confusiones pronto hará que el sistema no puede funcionar. Este modelo de sistema sólo se utiliza en los SO de las microcomputadoras más primitivas. Una mejora de la idea de un solo directorio para todos los archivos es la de un directorio por usuario, como se aprecia en la siguiente figura: Directorio raíz Directorio Directorio del usuario Archivo Archivos Un directorio por usuario. Este diseño elimina los conflictos de los nombres entre los usuarios, pero no es muy satisfactorio para los usuarios que poseen muchos archivos. Es muy común que los usuarios deseen agrupar sus archivos en formas lógicas. Por ejemplo, un profesor podría tener una colección de archivos para conformar un libro que escribe como texto de cierto curso, una segunda colección de archivos con los programas de los estudiantes de otro curso, una tercera para el código de un sistema de escritura de un compilador avanzado que él construye, un cuarto grupo con las propuestas de apoyos económicos, así como otros archivos para correo electrónico, las minutas de reuniones, artículos, juegos, etc. Es necesario agrupar de alguna forma razonable todos estos archivos. Lo que se necesita es una jerarquía general (es decir, un árbol de directorios). Con este punto de vista, cada usuario puede tener tantos directorios como sean necesarios, de forma que los archivos se agrupen en forma natural. Este punto de vista se muestra en la siguiente figura: Directorio raíz Directorio del usuario Directorio Archivo Subdirectorios del usuario Un árbol arbitrario por usuario. Aquí, cada uno de los directorios contenidos en el directorio raíz pertenece a un usuario distinto, dos de los cuales han creado subdirectorios de proyectos en los que están trabajando. Nombres de las rutas de acceso MSC. NMP / M en C. FGR 54 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Cuando el sistema de archivos está organizado como un árbol de directorios, se necesita una forma de determinar los nombres de los archivos. Se utilizan usualmente dos métodos. En el primero, cada archivo tiene una ruta de acceso absoluta, la cual consta de la ruta de acceso desde el directorio hasta el archivo. Por ejemplo, la ruta de acceso /usr/ast/mailbox indica que el directorio raíz contiene un subdirectorio usr, el cual a su vez contiene un subdirectorio ast el cual contiene el archivo mailbox. Los nombres absolutos siempre indican desde el directorio raíz y son únicos. En UNIX, las componentes de la ruta de acceso están separadas por /. En MS-DOS, el separador \. No importa el carácter que se utilice, si el primer carácter de la ruta de acceso es el separador, entonces la ruta de acceso es absoluta. El otro tipo de nombre es la ruta de acceso relativa. Esta se utiliza junto con el concepto de directorio de trabajo (también llamado el directorio activo). Un usuario puede designar a un directorio como el directorio de trabajo, en cuyo caso todos los nombres que no comiencen en el directorio raíz se toman en relación con el directorio de trabajo. Por ejemplo, si el directorio de trabajo es /usr/ast, entonces el archivo cuya ruta de acceso absoluta es /usr/ast/mailbox puede llamarse sólo con mailbox. En otras palabras, el comando de UNIX cp /usr/ast/mailbox /usr/ast/mailbox.bak y el comando cp mailbox mailbox.bak hacen lo mismo si el directorio de trabajo es /usr/ast. Es frecuente que la forma relativa sea más conveniente, pero hace lo mismo que la forma absoluta. Algunos programas necesitan tener acceso a un archivo determinado sin importar cuál sea el directorio de trabajo. En ese caso, ellos utilizan siempre los nombres absolutos de las rutas de acceso. Por ejemplo, un verificador ortográfico podría necesitar leer /usr/lib/dictionary para realizar su trabajo. En este caso, debe utilizar el nombre completo o absoluto de la ruta de acceso ya que no sabe cuál será el directorio de trabajo cuando realice la llamada. El nombre absoluto de la ruta de acceso siempre funciona, sin importar cuál sea el directorio de trabajo. Por supuesto, si el verificador ortográfico necesita un gran número de archivo de /usr/lib, otra alternativa es hacer una llamada al sistema para cambiar de directorio de trabajo a /usr/lib y después utilizar sólo dictionary como el primer parámetro de open. Al cambiar en forma explícita el directorio de trabajo, sabe el lugar preciso del árbol de directorios donde se encuentra y entonces puede utilizar las rutas de acceso relativas. En muchos sistemas, cada proceso tiene su propio directorio de trabajo, de modo que cuando un proceso cambie de directorio de trabajo y después sale de éste, ningún proceso se ve afectado y no hay rastros del cambio en el sistema de archivos. De esta forma, es totalmente seguro el hecho de que un proceso cambie de directorio de trabajo cuando sea conveniente. Por otro lado, si un procedimiento de biblioteca cambia el directorio de trabajo y nop regresa a donde se encontraba al terminar, el resto del programa podría no funcionar ya que la hipótesis de su localización no sería válida. Por esta razón, los procedimientos de biblioteca rara vez cambian el directorio de trabajo y cuando deben hacerlo, siempre regresan al punto donde se les llamó. MSC. NMP / M en C. FGR 55 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos La mayoría de los SO que soportan un sistema jerárquico de directorios tienen dos entradas especiales en cada directorio: “.” y “..”, (“punto” y “punto-punto”). Punto indica el directorio de trabajo; punto-punto indica su padre. Operaciones con directorios Las llamadas al sistema permitidas para el manejo de los directorios tienen más variación de sistema a sistema que las relacionadas con los archivos. CREAR. Se crea un directorio el cual está vacío excepto por punto y punto-punto, los que se colocan en él en forma automática por el sistema. ELIMINAR. Se elimina un directorio. Sólo se puede eliminar un directorio vacío. Un directorio que sólo contenga punto y punto-punto se considera vacío ya que éstos por lo general no se pueden eliminar. ABRIR. Se pueden leer los directorios. Por ejemplo, para exhibir una lista de todos los archivos de un directorio, un programa de listado abre el directorio para leer los nombres de todos los archivos que contiene. Antes de poder leer un directorio, éste debe ser abierto. CERRAR. Cuando se ha leído un directorio, éste debe cerrarse para liberar el espacio de la tabla interna. LEER. Esta llamada regresa la siguiente entrada en un directorio abierto. CAMBIAR DE NOMBRE. En muchos aspectos, los directorios son como los archivos y se les puede cambiar el nombre al igual que éstos. LIGAR. El ligado es una técnica que permite que un archivo aparezca es más de un directorio. Esta llamada al sistema especifica un archivo existente y el nombre de una ruta de acceso, además de crear un enlace del archivo ya existente con el nombre especificado en la ruta de acceso. De esta forma, el mismo archivo puede aparecer en varios directorios. DESLIGAR. Se elimina una entrada del directorio. Si el archivo que se desea desligar aparece sólo en un directorio (el caso normal), se elimina del sistema de archivos. Si está presente en varios directorios, sólo se elimina la ruta de acceso especificada, mientras que las demás permanecen. La lista anterior muestra las llamadas más importantes, pero existen otras; por ejemplo, para la administración de la información relativa a la protección asociada a un directorio. Características de archivos/directorios Volatilidad. Se refiere a la frecuencia con que se añade información a un archivo y se borra de él. Actividad. Se refiere al porcentaje de los registros de un archivo al cual se tuvo acceso durante un período dado. Tamaño. Se refiere a la cantidad de información almacenada en el archivo. MSC. NMP / M en C. FGR 56 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos El sistema de archivos Un componente importante de cualquier SO es el sistema de archivos. El sistema de archivos se ocupa primordialmente de administrar el espacio de almacenamiento secundario, sobre todo el espacio en disco. Contenido del sistema de archivos En general, los sistemas de archivos contienen: Métodos de acceso. Se ocupan de la forma en que se obtiene acceso a los datos almacenados en archivos. Administración de archivos. Se ocupa de ofrecer mecanismos para almacenar, compartir y asegurar archivos, y hacer referencia a ellos. Administración de almacenamiento secundario. Se ocupa de asignar espacio a los archivos en dispositivos de almacenamiento secundario. Mecanismos de integridad de archivos. Se ocupan de garantizar que no se corrompa la información en un archivo. Cuando se asegura la integridad de los archivos, cualquier información que deba estar en un archivo estará ahí; la información que no deba estar en un archivo se mantiene fuera de él. Funciones del sistema de archivos Éstas son algunas de las funciones normalmente atribuidas a los sistemas de archivos: Los usuarios deben poder crear, modificar y eliminar archivos. Los usuarios deben ser capaces de compartir sus archivos entre sí en forma cuidadosamente controlada para aprovechar y continuar el trabajo de los demás. El mecanismo para compartir archivos debe ofrecer varios tipos de acceso controlado, tales como acceso para lectura, acceso para escritura, acceso para ejecución o diversas combinaciones de éstos. Los usuarios deben poder dar a sus archivos la estructura más apropiada para cada aplicación. Los usuarios deben ser capaces de ordenar la transferencia de información entre archivos. Deben ofrecerse recursos de respaldo y recuperación para evitar ya sea la pérdida accidental o la destrucción mal intencionada de información. Los usuarios deben poder hacer referencia a sus archivos mediante nombres simbólicos en vez de tener que usar nombres de dispositivos físicos (o sea, independencia con respecto a los dispositivos). En ambientes delicados en los cuales la información debe mantenerse segura y privada, el sistema de archivo puede ofrecer también funciones de ciframiento y desciframiento, lo cual hace que la información sólo resulte útil a quienes está destinada (es decir, a aquellos que poseen claves para desciframiento). Lo más importante de todo: el sistema de archivos debe ofrecer una interfaz amable con el usuario. Debe proporcionar a los usuarios una vista lógica de sus datos y de las funciones que se puedan realizar con ellos, más que una vista física. El usuario no deberá tener que preocuparse de los dispositivos específicos en los cuales está almacenada la información, la forma que adoptan los datos en esos dispositivos o los mecanismos físicos para transferir datos de esos dispositivos o hacia ellos. MSC. NMP / M en C. FGR 57 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos El sistema de archivos de LINUX En LINUX, todos los archivos están organizados en directorios que, a su vez, están jerárquicamente conectados entre sí en un único sistema global de archivos. Se hace referencia a un archivo, entonces, no sólo por su nombre, sino indicando también el lugar que ocupa dentro de esta estructura de archivos. Puede crear tantos directorios como quiera, añadiendo así más directorios a la estructura de archivos. Las órdenes para el manejo de archivos de LINUX pueden efectuar operaciones sofisticadas, como desplazar o copiar directorios completos junto con todos sus subdirectorios. como se muestra en las siguiente figura: Linux maneja el Sistema de archivos : File System hierarchy standard – Estructura jerárquica del Sistema de archivos Este es un estándar que con mayor o menor rigor siguen la mayoría de las distribuciones GNU/Linux y algunos otros sistemas operativos basados en UNIX. Algunas de sus principales características son: Todo está organizado en una única estructura de directorios. Todo está dentro del directorio raíz, representado por el signo '/'. Dentro de / está representado todo el sistema, los directorios y archivos presentes en los discos duros y demás dispositivos de almacenamiento montados, todo el hardware de la computadora, todos los procesos en ejecución, etc... Cada cosa en su sitio y un sitio para cada cosa. Todos los directorios tienen una finalidad concreta, todos los contenidos tienen una ubicación predeterminada según su naturaleza y función. MSC. NMP / M en C. FGR 58 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Directorios del Sistema LINUX MSC. NMP / M en C. FGR 59 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Este estándar consiste en un conjunto de requerimientos y orientaciones para la ubicación de directorios y archivos bajo los S.O. De la familia UNIX. Estas orientaciones tienen como objetivo soportar la interoperabilidad de las aplicaciones, herramientas de administración de sistema, herramientas de desarrollo y guiones, y también la mayor uniformidad de la documentación para estos sistemas. Prácticas de laboratorio: Analizar el Sistema de Archivos de sistemas operativos Windows y Linux MSC. NMP / M en C. FGR 60 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS 3.2. Sistemas Operativos Comandos básicos Comando (inglés command) Es una instrucción o mandato que el usuario proporciona al sistema, desde la línea de comandos o una llamada a programa, el cual generalmente está contenido en un archivo ejecutable. Los comandos pueden admitir parámetros de entrada, los cuales normalmente se indican tras un guión simple "" o doble "--" (sistemas operativos Linux/Unix). Los comandos del sistema se dividen en internos y externos Es muy importante respetar los espacios y símbolos que se usan. Comandos Internos Son instrucciones que puede ejecutar el propio intérprete, es decir, son instrucciones que el propio interprete ejecuta, directamente o haciendo una llamada al sistema operativo. Ejemplos: cd, help, pwd, history, exit y logout, date, time ls, cp, mv, rm, ln, mkdir, rmdir, cat, man, etc Comandos externos Son comandos que no reconoce el intérprete y que para su ejecución hay que localizar el ejecutable correspondiente en el disco, o los discos, del sistema. Para ello, el intérprete recorre todos los directorios del la variable PATH. Es decir, son ejecutables que se encuentran en el disco de la computadora. Ejemplo: ../ejecutame.exe Comandos Básicos Comando: banner Formato: banner [-wn] mensaje Descripción: muestra o imprime mensajes en letras grandes y los escribe en la salida estándar. Si el mensaje es omitido, leerá en la entrada estándar. Para imprimir dos palabras separadas por un espacio, es necesario colocarlos entre comillas. Con la opción –w, la salida es reducida a una anchura entre 132 y n, siendo n 80 por defecto. Ejemplos: $ banner EAT ***** W * * ***** ** * *** *** * * ***** * * * * * * $ banner “Hola” “que tal” MSC. NMP / M en C. FGR 61 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos La orden banner formara líneas separadas en su salida apoyándose inteligentemente en las fronteras de palabras individuales para mantener la visualización en pantalla relativamente sensata. Se utiliza a menudo en funciones de salida tales como los spoolers de impresión para visualizar diferentes tipos de información. Comando: date Formato: date [-u] [+FORMAT] [MMDDhhmm] [[CC]YY] [.ss] Descripción: Imprime y establece la fecha. Visualizará la fecha y hora actual tal como es conocida por la máquina. No especificando ningún argumento o si el argumento comienza con +, imprimirá la fecha y la hora; caso contrario, se registra o establece la fecha. La especificación de un formato consiste en una cadena entre comillas. Los campos particulares vienen representados entre signos de porcentaje (%) seguidos por una letra de código. Los descriptores de campo son: %% Literal %. %a Establece abreviatura para los días de la semana (Sat...Sun). %A Asigna nombre completo a los días de la semana (Saturday...Sunday). %b Establece abreviatura a los meses (Jan...Dec). %B Asigna nombre completo a los meses (January...December). %c Fija fecha y hora de la forma (Sun Dec 08 08:03:30 EST 2002). %d Día del mes (01...31). %D Fecha (mm/dd/yy). %h Igual que %b. %H Horas de 00 a 23. %I Horas de 01 a 12. %j Día del año 001 a 365. %k Horas de 0 a 23. %l Horas de 1 a 12. %m Mes de 01 a 12. %M Minutos de 00 a 59. %n Nueva línea. %p Fija AM o PM. %r Hora en notación AM/PM. %S Segundos de 00 a 59. %t Inserta carácter de tabulación horizontal. %w Día de la semana (de domingo a sábado) %x Establece la representación de fecha como mm/dd/yy. %X Establece la representación de hora como %H:%M:%S. %y Sólo año. Las opciones son: -u Asigna el tiempo y la fecha en coordenadas universales. MM Mes. MSC. NMP / M en C. FGR 62 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS DD Día del mes. hh Hora. mm Minutos. CC Primeros dos dígitos del año (siglo). yy Últimos dos dígitos del año. .ss Segundos. Sistemas Operativos Nota: Sólo el superusuario (administrador del sistema) puede fijar o cambiar el sistema horario. Ejemplos: $ date Wed Jun 10 18:50:06 EDT 2002 $ date +%m 06 $ date + ‘Mes: %m%nDía: %d%nHora: %T’ Mes: 09 Día: 10 Hora: 19:02:58 norma@debian:~$ date +%x 29/05/13 norma@debian:~$ date +%X 18:57:14 norma@debian:~$ date +%y 13 norma@debian:~$ date +%m 05 norma@debian:~$ date mié may 29 18:58:59 CDT 2013 norma@debian:~$ date +%c mié 29 may 2013 18:54:37 CDT norma@debian:~$ date +%D 05/29/13 norma@debian:~$ date +%c mié 29 may 2013 18:54:37 CDT Las ordenes de date especialmente construidas se utilizan con frecuencia en guiones shell para producir una visualización o para asignarlas, a variables del entorno. date también se utiliza a menudo para poner una estampación (marca) de tiempo a un trabajo. Comando: echo Formato: echo [-ne] [argumento(s)] Descripción: Regresa cualquier cosa que haya escrito después de echo. Escribe los argumentos por la salida estándar, separados por espacios en blanco y terminado(s) por una nueva línea. echo reconoce algunas anotaciones especiales: \b Caracter de retroceso o retroceder un caracter. \c Escbir la línea sin nueva línea. \f Salto de página o cambio de hoja. \n Cambio de línea o salto de línea. \r Retorno de carro. \t Caracter de tabulación o tabulador horizontal. \\ Barra invertida o barra inclinada hacia la izquierda. \v Caracter de tabulación vertical. -e Habilita la interpretación de caracteres especiales marcados por la barra inclinada hacia la izquierda. MSC. NMP / M en C. FGR 63 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS -n Sistemas Operativos Elimina el salto de línea final. Ejemplos: Ejemplos: $ echo Estoy en la clase de SO Estoy en la clase de SO $ SALUDO=“hola tic-34” variable de entorno $ PREGUNTA=“¿Como están?” $echo $SALUDO $PREGUNTA hola tic-34 ¿Como están? echo se utiliza para visualizar cadenas arbitrarias en la terminal y también para visualizar el contenido de variables de entorno. Comando: logout Finalizar sesión. Comando: exit Formato: exit Descripción: Indica que se ha terminado la sesión y libera a la terminal para ser utilizada por alguien más o para ingresar con un identificador distinto. La terminación o despedida impide que gente extraña utilice la terminal y el identificador para provocar perjuicios potenciales. Comando: man Formato: man [comando] Descripción: Localiza y muestra la(s) página(s) del manual del comando especificado. Ejemplo: man date El manual en línea man contiene páginas del manual para cada comando y otras páginas acerca de las funciones internas que los progrmadores utilizan, formatos para diferentes tipos de sistema de archivo, descripciones de hardware que puede conectarse a su SO. Comando:help Muestra la ayuda de bash, la lista de comandos disponibles y su sintaxis. Ejemplo: who --help id –help MSC. NMP / M en C. FGR 64 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos …… Comando: passwd Formato: passwd [nombre del usuario] Descripción: Cambia la contraseña del usuario (password), siempre que ya se haya registrado. Una contraseña sólo puede ser cambiada por el propietario de la misma, passwd pedirá que escriba la contraseña actual para probar que aún es la misma persona que cuando se llevo a cabo el registro. Posteriormente el programa. passwd pide la nueva contraseña dos veces para asegurarse de que sea correcta. Si se ha introducido la misma contraseña las dos veces, la orden passwd cambiará la idea de que el sistema tiene la contraseña y regresará luego al shell de la forma usual para aceptar la siguiente orden. Si se comete un error, el programa passwd acabará volviendo al shell para que se pueda intentar de nuevo. Si se cancela la ejecución del comando passwd, acabará dejando la vieja contraseña todavía en activo. Si olvidara la contraseña, no hay manera de recuperarla, ni aún el administrador del sistema puede hacerlo. Puede asignarle una nueva. El administrador del sistema podrá crear una contraseña nula o variar las contraseñas de los distintos usuarios. Sugerencias para escribir una contraseña: Debe contener entre 6 y 8 caracteres. Debe contener, al menos, un dígito (0-9). Intercale dígitos, caracteres en minúscula y caracteres en mayúscula (LINUX distingue (son diferentes) mayúsculas de minúsculas). Escriba una contraseña que sea fácil de recordar, sin necesidad de anotarla en alguna parte, y que no sea predecible. Comando: shutdown Formato: /bin/shutdown [-t segundos] [-rkhncf] tiempo [mensaje] Descripción: Termina todos los procesos que se estén ejecutando en el sistema de manera ordenada. Cierra el sistema, parando todas las conexiones y esperando antes de detenerse mientras lanza mensajes de aviso. Cuando se especifica una hora, el cierre se realizará a la hora indicada. Sólo el superusuario o un usuario con autorización pueden ejecutar la orden shutdown. Las opciones son: -t segundos Espera los segundos dados entre el mensaje de atención y las señales de finalización de shutdown. -k Manda el mensaje de aviso pero no cierra realmente el sistema. -r Reinicia después de cerrar. -n No sincroniza antes el reseteo. -f Resetea sin comprobación de los archivos de sistema. -c Cancela un shutdown que se está ejecutando. -h Se detiene después de hacer el shutdown. mensaje Envía el mensaje a todos los usuarios. MSC. NMP / M en C. FGR 65 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos tiempo El argumento tiempo puede tener diferentes formatos; formato de tiempo absoluto en la forma hh:mm, donde hh es la hora con uno o dos dígitos, y mm minutos con dos dígitos. Podrá utilizar el formato +m, donde m es el número de minutos en tiempo de espera. Tenga en cuenta la palabra now como alias de +0. Ejemplos: shutdown –h +10 El sistema se cierra al cabo de 10 minutos. shutdown –r now Cierra el sistema inmediatamente y después lo vuelve a arrancar. shutdown –h +5 “El sistema necesita un descanso” Advierte a los usuarios del cierre del sistema para darles tiempo a terminar lo que estén haciendo. #shutdown –h +10 El sistema se cierra en 10 minutos. reinicia en 5 minutos y va enviando mensaje de minutos restantes para apagar equipo. root@debian:/home/norma# shutdown +5 Broadcast message from root@debian (pts/0) (Fri May 31 18:02:56 2013): The system is going DOWN to maintenance mode in 5 minutes! The system is going DOWN to maintenance mode in 4 minutes! The system is going DOWN to maintenance mode in 3 minutes! The system is going DOWN to maintenance mode in 2 minutes! The system is going DOWN to maintenance mode in 4 minutes! El comando shutdown forma parte del procedimiento de desconexión, que tiene como finalidad mantener la sanidad del sistema cuando se arranque de nuevo. shutdown trata de evitar que los procesos en ejecución no se vean afectados o alterados por la caída o desconexión del sistema. Comando: who Formato: who [opciones] [archivo] who am i Descripción: Informa sobre quién está en el sistema. Lista el nombre de conexión, el nombre de la terminal y el momento de conexión para cada usuario conectado al sistema LINUX. También puede escribir who am i y sólo se imprimirá la línea de la terminal en la cual se escribió el comando. Las opciones son: -m Igual que who am i. -q Nombre de los usuarios y número de ellos conectados al sistema. -s Ignorado. Compatibilidad con otras versiones who. -i Muestra el número de horas y minutos que un usuario ha estado inactivo. El carácter “.” significa que el usuario ha estado inactivo menos de un minuto, y el término old, más de 24 horas.-u Igual que –i. Ejemplos: who –q MSC. NMP / M en C. FGR 66 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos who am i El comando who se ocupa para saber quien se encuentra en el sistema con la finalidad de: mandar mensajes, conocer la carga del sistema o para verificar la actividad en el sistema antes de su cierre. Comando: id Formato: id [opciones] Descripción: Muestra información sobre la identificación dentro del sistema del usuario que ejecuta el comando. La información que facilite consiste en nombre de usuario, UID, nombre de grupo y GID. Las opciones son: -g Muestra sólo el identificador de usuario. -n Muestra sólo el nombre de usuario o de grupo, es necesario en combinación con –u o –g. -r Muestra UID y GID reales en lugar de efectivos, es necesario en combinación con –u o –g. -q Muestra sólo la identificación de usuario. Comando: time Formato: time comando Descripción: Facilita la información de tiempo que consume un comando. La información que nos facilita es de tres tipos: tiempo real que transcurre desde que lanza el comando hasta que termina, tiempo de usuario que es el tiempo que realmente a utilizado de CPU y por último, tiempo de sistema que es el tiempo consumido en peticiones al sistema. Las opciones son: comando Comando que se quiere medir. Ejemplo: time ls –s / Medirá el tiempo que tarde en ejecutarse un ls –l de todo el sistema de archivos. Comando: cal Formato: cal [-j] [-y] [mes] [año] Descripción: Muestra en pantalla el calendario del año indicado, o del mes indicado. Las opciones son: -j Las fechas se muestran en formato juliano enumerando los días de forma consecutiva desde el 1 de enero. -y Muestra el calendario del año actual. mes Sirve para especificar el mes que queremos ver, se puede indicar tanto por número del 1 al 12 como por su nombre en inglés. Por defecto el valor es el del mes actual. año Especifica el año que se quiere visualizar, de año 1 a año 9999. Los años han de ser especificados con su número completo. MSC. NMP / M en C. FGR 67 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Ejemplos: cal Muestra en pantalla el calendario del mes actual. cal 4 1974 Muestra el calendario de abril de 1974. cal 2010 Muestra el calendario del año 2010. Comando: clear Formato: clear Descripción: Borra la pantalla completamente de la terminal en la que se este trabajando. Comando: finger Formato: finger [opciones] usuarios Descripción: Este comando se utiliza para obtener información sobre los usuarios del sistema, muestra toda la información referente a un usuario que hay registrada en el sistema. Si solo se invoca el comando sin ninguna opción ni nombre de usuario nos da información referente a los usuarios actualmente conectados al sistema. Podemos pedir información sobre usuarios de otras computadoras conectadas en red poniendo: usuario@nmbrecomputador.sudominio. Las opciones son: -s Da diversa información sobre los usuarios. -l Muestra la misma información que la opción –s pero en formato de líneas y además nos muestra los contenidos de los ficheros .plan y .project, si éstos existen, del directorio home -p del usuario. usuarios Impide que la opción –l muestre el contenido de los archivos .plan y .project. Se da una lista de usuarios sobre los que se demanda la información. Ejemplo: finger psanchez Nos devolverá la información almacenada referente al usuario psanchez. Comando: logname Formato: logname Descripción: Muestra el nombre de usuario con el que entró en el sistema el usuario que lo invoca. Prácticas de laboratorio: Analizar y ejecutar comandos básicos en sistemas operativos Linux MSC. NMP / M en C. FGR 68 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Comandos sobre la estructura de directorios (mkdir, rmdir, pwd, cd). Comando: mkdir Formato: mkdir [opciones] directorio Descripción: Crea directorios. Las opciones son: -m modo Establece los permisos facilitados en modo del directorio en su creación. -p Crea los directorios padres necesarios si no existen. directorio Directorio que se quiere crear. Ejemplos: mkdir –p /home/juan/documentos/cartas Crea el directorio cartas y todos los directorios anteriores necesarios. Comando: rmdir Formato: rmdir directorio Descripción: Borra el directorio especificado. Ejemplos: rmdir cartas Comando: pwd Formato: pwd Descripción: Informa sobre cuál es el directorio actual en el que nos encontramos, no tiene ningún tipo de parámetro. Comando: cd Formato: cd nombre_del_directorio Descripción: Cambia del directorio actual al indicado en nombre_del_directorio. Éste puede ser cualquier directorio del sistema. Si no se indica ningún directorio cambiara al directorio raíz del usuario que lo invoca. Admite los directorios . y .. correspondientes al actual y al padre del actual para indicar los caminos relativos al directorio destino. Ejemplos: Comandos para el tratamiento de archivos (ls, cat, rm, cp, mv, ln, more) Comando: ls Formato: ls [opciones] archivos Descripción: Lista los archivos indicados mostrando información sobre ellos. Si no se pasa como parámetro ningún nombre de archivo, lista los archivos del directorio actual. Las opciones son: MSC. NMP / M en C. FGR 69 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS -a Sistemas Operativos Muestra todos los archivos del directorio actual incluyendo los archivos ocultos, que en LINUX son los que comienza su nombre por punto. -C Muestra la lista de archivos en formato de columnas. --color Muestra la lista de archivos en colores según el tipo de archivo. -x Muestra la lista de archivos en formato de columnas ordenada por columnas. -d Muestra los directorios como archivos en lugar de mostrar sus contenidos. -k Muestra los tamaños de los archivos en kilobytes. -l Lista de forma extensa los archivos, con información como derechos propietarios, fecha de creación y tamaño. -t Muestra ordenando por la fecha de la última modificación. -u Muestra ordenando por la fecha del último acceso. -r Muestra ordenando pero de forma inversa. -R Lista el contenido de los subdirectorios recursivamente. -i Muestra el numero de inodo de cada archivo. -F Formatea la salida poniendo símbolos para diferenciar entre los distintos tipos de archivos archivos. Lista de archivos que se quiere listar, sobre todo la utilidad de este parámetro es usando los caracteres comodín ? y *. Ejemplos: ls –l Muestra los archivos del directorio actual con el formato extendido dando toda la información. ls –la *.c Muestra todos los archivos en formato extenso cuyo nombre termine en .c y que comiencen por cualquier cadena de carácter, mostrará también los que se consideran ocultos, que comprenden por .., y cumplan en resto de las condiciones. Caracteres comodín y argumentos que son nombres de archivo. Carácter comodín. Es un carácter especial que actúa como cualquier carácter en nombres de archivos o comandos. Los nombres de archivo son los argumentos más comunes en las ordenes. Es frecuente que solo sepa una parte del nombre del archivo, o tal vez le interese hacer referencia a varios nombres de archivo que tienen la misma extensión o que comienzan con el mismo carácter. El shell proporciona un conjunto de caracteres especiales que buscan, hacen coincidir y generan una lista de nombres de archivo. Estos caracteres especiales o comodín son * y ? y los [ ]. Dado el nombre parcial de un archivo, el shell usa estos operadores de coincidencia para buscar archivos y generar una lista con los nombres de archivo encontrados. El shell reemplaza el argumento del nombre parcial de archivo con la lista de nombres de archivos que hacen coincidencia. Esta lista de nombres de archivo puede entonces convertirse en los argumentos de órdenes tales como ls, que pueden operar sobre muchos archivos. MSC. NMP / M en C. FGR 70 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Caracteres comodín Ejecución * Equivale a cualquier conjunto de caracteres de nombres de archivos. ? Coincide con un solo carácter cualquiera de nombres de archivo. [] Coincide con una clase de posibles caracteres de nombres de archivo. \ Delimita el carácter siguiente: se usa para delimitar caracteres comodín. Ejemplos de uso de los caracteres comodines: $ ls doc1 doc2 doc3 doc4 docA docB docD docs document answers? lib.a mydocs anwers?.quiz monday tuesday answers?.mid main.c mylock main.o calc.c sydoc1 answers?.final $ ls doc* doc1 doc2 doc3 doc4 docA docB docD docs document $ls *day monday tuesday $ ls *.c calc.c main.c $ls doc? doc1 doc2 doc3 doc4 docA docB docD docs $ls ?y?oc? mydocs mylock sydoc1 $ls *.? calc.c lib.a $ls doc[1As] doc1 docA docs $ls doc[1-3] doc1 doc2 doc3 $ls doc[B-G] docB docD $ls *.[co] main.c main.o calc.c $ls answers\? answers? $ls answers\?.* answers? answers?.quiz answers?.mid answers?. Prácticas de laboratorio: Analizar y ejecutar comandos sobre la estructura de directorios en sistemas operativos Linux MSC. NMP / M en C. FGR 71 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Comandos Básicos para el manejo de Archivos Comando: cat Formato: cat [opciones] archivos Descripción: Concatena la lista de archivos que se le facilita en la salida estándar. Si sólo se le indica un archivo, lo muestra. Si se le indica, lo crea con el contenido que se escriba en la entrada estándar finalizando con [Ctrl] [d] para grabar o [Ctrl] [c] para salir sin grabar. Las opciones son: archivos Lista de archivos a concatenar. -b Numera las líneas que no estén en blanco. -n Numera todas las líneas aunque estén en blanco. -s Elimina varias líneas en blanco consecutivas sustituyéndolas por una sola. -V Muestra los caracteres de control excepto final de línea y tabuladores. -E Muestra el carácter $ al final de cada línea. -T Muestra los caracteres de control de los tabuladores. Ejemplos: Comando: rm Formato: rm [opciones] archivos Descripción: Elimina archivos y directorios del sistema de ficheros. Se utiliza tanto para borrar archivos, enlaces y directorios. Para eliminar directorios es necesaria la opción –r. Hay que tener mucho cuidado con la utilización de este comando pues sus acciones son irreparables. Las opciones son: -f Por defecto rm pide confirmación antes de borrar, con esta opción forzamos la operación sin pedir confirmación. -i Activa el modo interactivo para solicitar confirmación antes de borrar, este modo esta por -r defecto. -v Opción para borrar los directorios y su contenido, es necesaria para borrarlos. archivos Muestra el nombre de los archivos antes de borrarlos. Lista de archivos que se quiere eliminar. Ejemplos: rm * Borra todos los archivos del directorio actual pidiendo permiso para cada archivo que va a borrar. rm –rf a* Borra todos los archivos y directorios del directorio actual cuyo nombre empiece por a. MSC. NMP / M en C. FGR 72 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Comando: cp Formato: cp [opciones] fuente destino Sistemas Operativos Descripción: Copia archivos y directorios. Copiará fuente a destino, fuente puede ser una lista de archivos que copiará a un directorio indicado en destino. También puede copiar un archivo sobre otro archivo. Las opciones son: -a Conserva los atributos y estructuras del origen en la copia. -b Hace copias de seguridad de archivos que van a ser sobrescritos o borrados. -d Al copiar los enlaces simbólicos los mantiene como tales en lugar de copiar los ficheros a los que apuntan, y preserva las relaciones de las ligaduras físicas entre archivos fuente en las -f copias. -i Borrar archivos destino existentes. -l Interroga sobre si sobrescribir ficheros destino existentes. -p En lugar de hacer copiar archivos que no son directorios, crea ligaduras físicas. Preserva los permisos, el propietario y el grupo, así como los SUID Y SGID, además también -r conserva el tiempo de última modificación y de último acceso. -R Copia directorios recursivamente descendiendo en su árbol de directorios hijos. Es la opción -s que se debe indicar si se pretende copiar un directorio. Hace enlaces simbólicos en vez de copias de archivos que no sean directorios. Todos los nombres de archivos origen deben ser absolutos (empezar por ‘/’) a menos que los archivos de destino estén en el directorio de trabajo. Esta opción simplemente produce un mensaje de error -u en sistemas que no admitan enlaces simbólicos. No copia un archivo no-directorio si el destino ya existe y tiene el mismo tiempo de modificación -v o más reciente. -x Muestra el nombre de cada archivo antes de copiarlo. Se salta subdirectorios que estén en sistemas de archivos diferentes de aquél en el que empezó la copia. Ejemplos: cp –R */tmp Copia el contenido del directorio actual así como sus subdirectorios de forma recursiva al directorio /tmp. cp –a *.txt /home/jgarcía Copia todos los archivos *.txt del directorio actual al directorio /home/jgarcía conservando los mismos permisos que los archivos originales. cp /usr/bin/joe Copia el archivo joe del directorio /usr/bin al directorio actual. MSC. NMP / M en C. FGR 73 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Comando: mv Formato: mv [opciones] origen destino Sistemas Operativos Descripción: Mueve archivos y directorios. El comando en sí lo que realiza es la copia del origen en el destino y el borrado del origen. También es el comando que se utiliza para renombrado de archivos y directorios por ser similar el efecto que se produce. Las opciones son: -f Por defecto mv pregunta antes de borrar algo, con esta opción eliminamos esta -i confirmación. origen Con esta opción mv pregunta antes de borrar algo, está opción está por defecto. Archivo que se quiere mover. Se puede dar también una lista de archivos origen que destino serán movidos con su mismo nombre en un directorio que se dará como destino. Nombre del destino. Si se ha dado una lista de archivos origen el destino tendrá que ser un directorio. Ejemplos: mv carta.txt carta.doc Cambia de nombre el archivo carta.txt a carta.doc. Comando: ln Formato: ln [-s] origen destino Descripción: Crea un enlace a un archivo, con el fin de poder acceder a un archivo con más de un nombre. Se pueden utilizar estos enlaces para copiar archivos sin ocupar espacio en disco. Podemos tener dos tipos de enlaces, los simbólicos y los fijos. Los enlaces fijos o ligaduras físicas crean una nueva entrada en el directorio pero no crean un nuevo inodo, sino que a esa nueva entrada se le asigna en número de inodo de origen. Las ligaduras simbólicas crean un fichero especial cuyo contenido es origen. La opciones son: -s Crea un enlace simbólico. origen Archivo al que se quiere crear un enlace de ligadura. Se puede dar también una lista de archivos origen que serán enlazados con su mismo nombre en un directorio que se dará destino como destino. Nombre del enlace que se quiere crear y después de la creación del enlace y que tras la creación del enlace se podrá utilizar para referirse al archivo origen. Si se ha dado una lista de archivos origen, el destino tendrá que ser un directorio. Ejemplos: ln –s documento.txt trabajo.txt Crea un enlace simbólico o ligadura simbólica del archivo documento.txt en el enlace trabajo.txt. MSC. NMP / M en C. FGR 74 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Comando: more Formato: more [opciones] archivos Sistemas Operativos Descripción: Se utiliza para paginar texto que no cabe en la pantalla y, por tanto, se desplaza sin poderlo ver. Se utiliza a través de un redireccionamiento o una pipe para formatear el resultado de otro comando como cat o ls. Las opciones son: -n Establece el tamaño de las páginas que muestra a n líneas. -c Cambia el formato en que muestra las páginas en la pantalla, escribiendo las líneas una a una y desplazando. -q Cambia el aviso por omisión para el desplazamiento de las páginas. -s Supone varias líneas en blanco consecutivas y las cambia por una sola. Comandos más útiles de more. Comandos básicos. h Despliega información de ayuda. Espacio Despliega la pantalla siguiente q Para salir del programa Comandos avanzados. Retorno Para avanzar un renglón. n Retornos Para avanzar n renglones d Para avanzar (hacia abajo) media pantalla. u Para retroceder (hacia arriba) media pantalla. nf Para avanzar n pantallas. b Para retroceder una pantalla. nb Para retroceder n pantallas. v Arranca el editor vi usando el archivo el archivo que sé este exhibiendo. /modelo Busca el modelo especificado, hacia abajo. n Repite el comando de búsqueda anterior. comando Ejecuta el comando del intérprete de comandos especificado. = Despliega el número de renglón en uso. . Repite el comando anterior. No oprimir Retorno después de ningún comando, excepto de / y Ejemplos: ls –l | more Lista los archivos del directorio actual y se los pasa al comando more para que lo pagine y lo muestre página a página. MSC. NMP / M en C. FGR 75 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Comando: pg Formato: pg [-acefnst] [-p indicador] [-n] [+n] [+/patrón] [archivo ...] Sistemas Operativos Descripción: Despliega el contenido de los archivos que se especifiquen. Los datos se despliegan pantalla por pantalla; pg despliega el contenido de cada archivo mencionado en la línea de comando. Si no sea especificado ningún archivo en la línea de comando, pg despliega la entrada estándar. Existe cierto número de opciones que se pueden utilizar al momento de arrancar pg estas son: -n Ajusta el tamaño de la ventana (en otras palabras, la cantidad de líneas desplegada en cada interacción) al número de líneas indicado. Cuando está opción no está presente, el tamaño de ventana por omisión es una línea menos que la cantidad de líneas de la pantalla. -p indicador Despliega un indicador al final de cada pantalla de texto. La opción –p ajusta este indicador a la cadena de indicador. El indicador por omisión es : (dos puntos). -a Obliga a pg a trabajar en modo ANSI. Este medio de desplegado puede ser más portable a las máquinas que no sean compatibles con la PC. -c Borra la pantalla antes de imprimir cada nueva pantalla de texto. -e Elimina el indicador (EOF): al final de cada archivo. -f Por lo general, las líneas más largas que el ancho de la pantalla son dobladas en varias líneas. –f le dice a pg que no doble las líneas de esta forma. -n Por lo general, cuando se da un comando mientras se lee un archivo, se debe oprimir Enter al final de cada comando. Sin embargo, si se especifica la opción –n en la línea de comando no se tiene que oprimir Enter para la mayoría de los comandos, ya que pg lo ejecuta inmediatamente cuando reciba el carácter de comando. -s Despliega todos los indicadores de comandos interactivos en forma tal que destacan en la pantalla (lo más frecuente es en video inverso). -t Por lo general, pg le permite moverse hacia atrás y hacia delante cuando está leyendo un archivo. Sin embargo con algunos tipos de archivos de entrada (por ejemplo, entubación) no hay forma directa de regresar a una parte anterior del texto. Para hacer posible el regreso, pg guarda la entrada de tal tipo de fuentes en un archivo temporal. Dentro de este archivo temporal se puede ir hacia delante, incluso cuando no es posible hacerlo con la fuente original. -t Le dice a pg que no guarde tal entrada en archivo temporal. Esto le ahorra tiempo y espacio de disco. Sin embargo, significa que no se puede regresar y leer el texto que haya desaparecido de la pantalla. +n Inicia la impresión en línea número n del primer archivo. El valor por omisión es comenzar la impresión en la línea 1. +/patron/ Inicia la impresión en la línea que contenga la primera aparición de la expresión regular de patrón. MSC. NMP / M en C. FGR 76 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Dependiendo de las opciones que se especifiquen en la línea de comando, pg hace pausas en varios puntos al ir leyendo el archivo. Hace pausa entre ventanas de texto (pantallas completas), al final de cada archivo y antes de comenzar cualquier otro archivo, a excepción del primero. En estas pausas pg le permite dar comandos para indicar lo que se hará después. Por lo general, simplemente se oprime Enter o la barra espaciadora cuando pg hace pausa. Esto le dice a pg que despliegue la siguiente pantalla de texto. Si se quiere una acción diferente se pueden teclear algunos de los siguientes comandos: Comandos Descripción. H Despliega información de ayuda. Retorno Despliega la pantalla siguiente. Q Para salir del programa Q Lo mismo que Q. Nl Para ir al renglón n. 1 Para ir al renglón siguiente. +n1 Avanza n renglones. -n1 Retrocede n renglones. D Avanza (hacia abajo) media pantalla. -d Retrocede (hacia arriba) media pantalla. Ctrl-D Lo mismo que d. L Va al primer renglón de datos. s archivo Guarda en archivo el contenido completo de archivo que se está viendo. Se debe oprimir Enter al final de la línea, aunque se haya especificado la opción –n en la línea de comando de pg. $ Va al último renglón de datos. /modelo Busca hacia abajo el modelo especificado. ?modelo Busca hacia arriba el modelo especificado. !comando Ejecuta el comando del intérprete de comando especificado. p Si no se especifica ninguna dirección esto hace que se inicie el desplegado del siguiente archivo. Si se especifica una dirección n, debe ser un número sin signo, y pg desplegará el archivo anterior correspondiente con ese número contando a partir del archivo actual. w Si se especifica una dirección, w ajusta el tamaño de la ventana a ese valor (sin signo). En cualquier caso despliega la siguiente pantalla completa al tamaño de las (nuevas) líneas de tamaño de ventana. /patrón/[tmb] Busca hacia delante, dentro del archivo actual, la primera aparición de una línea que concuerde con el patrón de una expresión regular. La opción t es el valor por omisión, y despliega la línea en la parte superior de la pantalla, m la despliega a mitad de la pantalla y b la despliega en la parte inferior. Cuando no hay letra, pg MSC. NMP / M en C. FGR 77 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos usa la última letra dada (o t sí es que no se ha dado letra). Se debe oprimir Enter al final de la línea, aunque se haya especificado la opción –n en la línea de comandos de pg. ?patrón[tmb] Similar a la opción anterior, pero busca hacia atrás en vez de hacia delante. ^patrón^[tmb] Similar a ?patrón?[tmb]. Estos comandos pueden ir precedidos de un signo opcional (+ o -) seguido de una dirección numérica también opcional. Ejemplos: pg memo Los datos se despliegan una pantalla a la vez, con el indicador en la parte inferior. Tras desplegar la última pantalla de datos, pg no se detiene de manera automática. Se verá el indicador siguiente (end of file, fin de archivo) (EOF): Para salir oprimir retorno. Para desplegar el contenido del archivo memo a partir del renglón 37 se escribe: pg +37 memo Supongamos que se dio el comando: pg –n*.c y que hay gran cantidad de archivos con el sufijo .c en el directorio actual. 1 vuelve a desplegar la primera pantalla completa del archivo actual. -4 va hacia cuatro pantallas completas con el archivo actual y despliega una pantalla de texto completa. P despliega la primera pantalla completa del archivo anterior. 10w ajusta el tamaño de ventana a 10 líneas. /fred/m encuentra la primera línea que contenga Fred después de la posición actual en el archivo, y despliega una pantalla de texto completa con esa línea a la mitad de la pantalla. Comando: less Formato: less [-cmsCM] [-xtab] [+comando] [archivo...] Descripción: Al igual que more y pg, less es un programa de paginación. En trabajos sencillos less funciona como los otros dos programas. No obstante, para los usuarios avanzados less es mucho más refinado. Una de sus principales ventajas es que hace fácil desplazarse hacia atrás o hacia adelante de un archivo. MSC. NMP / M en C. FGR 78 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos El programa less despliega el contenido de los archivos que se especifiquen. Los datos se despliegan pantalla por pantalla. Después de escribirse cada pantalla, se verá un indicador en la esquina inferior izquierda. El primer indicador le muestra el nombre del archivo. Cada uno de los indicadores subsecuentes será un signo de dos puntos :. Comandos Descripción básicos H Despliega información de ayuda. Espacio Avanza una pantalla. q Para salir del programa. Comandos más avanzados Retorno Avanza un renglón. nRetorno Avanza n renglones. b Retrocede una pantalla. y Retrocede un renglón. ny Retrocede n renglones. d Avanza (hacia abajo) media pantalla. u Retrocede (hacia arriba) media pantalla. g Va al primer renglón. ng Va al renglón n. G Va al último renglón. np Va al renglón que represente el n porciento en el archivo. v Arranca el editor vi usando el archivo que se esté exhibiendo. /modelo Busca hacia abajo el modelo especificado. ?modelo Busca hacia arriba el modelo especificado. n Repite el comando de búsqueda previo. !comando Ejecuta el comando del intérprete de comandos especificado. = Despliega el número de renglón y el nombre de archivo en uso. -opcion Cambia la opción especificada. _opcion Despliega el valor actual de opcion. No oprimir retorno después de ningún comando excepto, /,? Y !. Existen un gran número de opciones que se pueden utilizar de arrancar less, las tres más útiles son: -s Remplaza múltiples renglones en blanco por uno solo, lo que es útil para condensar una salida que contenga renglones en blanco sin significado. -c Despliega cada pantalla de datos nueva de arriba abajo (borra la pantalla). -M Hace que el indicador muestre aún más información: el nombre del archivo, el número de renglón y el porcentaje desplegado. MSC. NMP / M en C. FGR 79 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Ejemplos: less –M memo esto muestra: memo line 48/75 93% less +G memo despliega el archivo memo con la posición inicial al final del archivo. less +/Harley memo despliega el mismo archivo comenzando con una búsqueda de la palabra Harley. less +37 memo un número después de + hace que less arranque en ese renglón. less +37g memo esto hace lo mismo que la opción anterior. less –x5 memo la opción –x seguida de un número hace que less establezca los tabuladores en el intervalo regular especificado. En este caso los tabuladores se configuran a cada cinco espacios. Comando: du Formato: du [opciones] archivos Descripción: Informa sobre la cantidad de espacio que ocupan en disco los archivos y directorios indicados como parámetros. Si no se da ningún parámetro se da la información del directorio actual. Las opciones son: -a Muestra para cada archivo su tamaño. -b Muestra los tamaños en bytes. -k Muestra los tamaños en kilobytes. -x Muestra sólo la información referente a los sistemas de archivos actualmente montados. -L Muestra la información del espacio ocupado por el archivo al que apunta una ligadura en lugar de mostrar el espacio que ocupa la ligadura en sí. -s Muestra el tamaño que ocupa cada subdirectorio en conjunto con la suma de todo lo que ocupa su contenido. archivos Lista de directorios y archivos sobre los que se demanda la información referente a su tamaño. Ejemplos: du –s /var Muestra el tamaño total ocupado por el directorio /var y todo su contenido. Comando: file Formato: file [opciones] archivos Descripción: Da información sobre un archivo referente al tipo de archivo. Así nos dará información sobre si un archivo es ejecutable, de datos, de texto. MSC. NMP / M en C. FGR 80 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Las opciones son: -c Muestra para cada archivo su tamaño. -z Muestra los tamaños en bytes. -L Muestra los tamaños en kilobytes. -f archilista Muestra sólo la información referente a los sistemas de archivos actualmente -m montados. Muestra la información del espacio ocupado por el archivo al que apunta una archivos ligadura en lugar de listar el espacio que ocupa la ligadura en sí. Lista de directorios y archivos sobre los que se demanda la información referente a su tipo. Ejemplo: file /etc/profile Nos indica el tipo de archivo que es el archivo file /etc/profile, que en este caso es de texto. Comando: head Formato: head –líneas archivos Descripción: Muestra la cantidad de primeras líneas indicadas de una lista de archivos. Las opciones son: -líneas Cantidad de líneas que queremos que se muestre. archivos Lista de archivos separados por comas que se pretende que se muestre el número de líneas indicado, por defecto diez. Comando: tail Formato: tail [opciones] archivo Descripción: Muestra las últimas líneas del archivo que se le pasan como parámetro. Por defecto muestra las diez últimas líneas. Las opciones son: offset Número desplazamiento dentro del archivo, en número de líneas, a partir de los cuales queremos que se muestre el archivo. Si el número va precedido del signo +, mostrará a partir de ese número de líneas, si va precedido del signo –, mostrará a partir de ese -f número de últimas líneas. archivo Muestra el crecimiento de un archivo, sólo termina con la combinación de teclas [Ctrl] [C]. Archivo que se quiere procesar. Prácticas de laboratorio: Analizar y ejecutar Comandos Básicos para el manejo de Archivos en sistemas operativos Linux MSC. NMP / M en C. FGR 81 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Comandos Suplementarios Comando: w Formato: w [-hs] [usuario] Descripción: Muestra información acerca de los usuarios conectados en ese momento al sistema, así como de sus procesos. La primera línea que visualiza es una línea de información general. De izquierda a derecha muestra la hora actual, el tiempo que lleva el sistema activo, el número de usuarios conectados y la carga media del sistema durante los últimos 1, 5 y 15 minutos. La siguiente línea consta de diferentes campos aclaratorios de la información que aparecerá en todas las líneas siguientes. Estos campos son, de izquierda a derecha, nombre de conexión del usuario, terminal asociado, el ordenador remoto (es su caso), la hora de conexión, el tiempo desocupado, JCPU, PCPU y, finalmente, la línea de orden correspondiente al proceso que se ejecuta. El campo JCPU indica el tiempo de procesador utilizado por todos los procesos asociados con ese terminal. Este tiempo no incluye los procesos lanzados en segundo plano en otras ocasiones, pero sí incluye los lanzados en segundo plano en esa sesión. El campo PCPU indica la cantidad de tiempo empleada por el proceso indicado en el último campo (what). Las opciones son: -h Elimina la cabecera. -s Utiliza el formato corto. No se visualizan el tiempo de conexión ni los tiempos JCPU y PCPU: usuario Muestra únicamente información relacionada con el usuario indicado. Ejemplo: w 3:47pm up 3:11, 2 users, USER TTY FROM LOGIN@ IDLE load average: 0.01, 0.09, 0.09 JCPU PCPU WHAT chan tty1 12:37pm 3:10m 2:08 0:05s sh/usr/x11/bin/startx chan ttyS0 2:29pm 0.00s 0.31s 0.06s Comando: su Formato: su [–] [usuario] w Descripción: La orden su (switch user) permite cambiar nuestro identificador de usuario. Cuando se invoca, nos pide la palabra clave (password) del usuario al que queremos cambiar. Si a su no le pasamos como parámetro ningún nombre de usuario, asumirá que deseamos convertirnos en el administrador del sistema (root). Obviamente, si no conocemos la palabra clave del usuario, la orden fallará. La opción – se emplea para indicar a su que se tomen los parámetros de inicio (directorio de arranque, ruta de búsqueda de archivos, variables del entorno, etc.) definidos por el usuario al que nos convertiremos. Por defecto estos parámetros no se toman. Ejemplo: $ su – lucas MSC. NMP / M en C. FGR 82 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos password: $ id uid=519(lucas) gid=519(lucas) grupos=519(lucas) Comando: sort Formato: sort [opciones] [+campo] [archivo(s)] Descripción: Ordena líneas compuestas por campos, separados por tabuladores, aunque podemos especificar cualquier tipo de separador de campo. Si a sort no le pasamos ningún archivo como parámetro, tomará su entrada de la entrada estándar. Con esta orden podemos ordenar las líneas de uno o varios archivos según un campo en particular. Esta ordenación no produce ninguna modificación en los archivos tratados. Ejemplo: $ Cat > desord uno dos tres cuatro [Ctrl-d] $ sort desord cuatro dos tres uno $ cat > numeros 101 112 10 373 64 19 1111 [Ctrl-d] $ sort numeros 10 101 1111 112 19 373 64 Podemos observar, a tenor de los resultados, que algunos números aparecen ordenados aparentemente al revés. La razón es que sort, por defecto, ordena las palabras según los caracteres ASCII que la componen. Si lo que deseamos es ordenar según el valor numérico asociado a esos caracteres, debemos utilizar la opción –n (ordena numéricamente), tal y como se muestra a continuación: $ sort –n numeros 10 19 64 101 112 373 1111 Los campos separadores utilizados por defectos son los tabuladores, y en algunas versiones de sort, también los espacios en blanco, pero también podemos decirle que utilice cualquier tipo de separador específico, utilizando para ello la opción –t y a continuación el separador. Como ejemplo vamos a ordenar el archivo que figura a continuación, denominado sortfich, por el último campo. $ cat sortfich blanco:73:Marte:1543:Manuel verde:17:Jupiter:1968:Sebastian azul:24:Venus:1970:Ana MSC. NMP / M en C. FGR 83 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos rojo:35:Neptuno:1122:Javier amarillo:135:Tierra:1234:Raul Como podemos apreciar, los distintos campos están separados por dos puntos. Eso no es ningún problema para sort, ya que podemos especificar el carácter de separación de campos que deseemos. $ sort –t: +4 sortfich azul:24:Venus:1970:Ana rojo:35:Neptuno:1122:Javier blanco:73:Marte:1543:Manuel amarillo:135:Tierra:1234:Raul verde:17:Jupiter:1968:Sebastian En el caso del ejemplo, el último campo es el número 4, por eso en las opciones de sort hemos puesto un +4. Obsérvese que la numeración de campos comienza por el cero. Comando: grep Formato: grep [opciones] patrón [archivo(s)] Descripción: Permite buscar cadenas de caracteres en los archivos que le indiquemos. grep toma el patrón que deseamos buscar como primer argumento y el resto de los argumentos los toma como nombres de archivos. En caso de que el elemento que deseemos buscar se componga de más de una palabra, ese elemento deberemos incluirlo entre comillas dobles. Una vez buscado el patrón, se visualizan todos los archivos que lo contienen. Con grep podemos utilizar varias opciones; las tres más comunes son las que se citan a continuación: -i Indica a grep que se ignoren mayúsculas y minúsculas. Se busca el patrón y no se diferencia entre letras mayúsculas y minúsculas. -v Visualiza por pantalla las líneas que no contienen el patrón especificado. -n Muestra por pantalla el número de línea en que se encuentra el patrón. Ejemplos: $ grep NULL * depura.c: argn = strtoul (argum, (char **)NULL, 16); depura.c: argn = strtoul (argum, (char **)NULL, 16); depura.c: DirecDeParada = strtoul (&orden[1], (char **)NULL, 16); depura.c: R[reg] = strtoul (cadena, (char **)NULL, 16); desen.c: if ((pf = fopen (programa, “r”)) == NULL) En este caso, grep busca el patrón NULL en todos los archivos del directorio actual. Recordemos que el asterisco sustituye a cualquier cadena de caracteres, y en este caso a todos los archivos del directorio en el que estemos situados. $ grep –n main /home/chan/spro/*.c /home/chan/spro/desen.c:21:main (int argc, char *argv[]) /home/chan/spro/desen.c:46:} /* Fin de main */ /home/chan/spro/ensa.c:30:main() /home/chan/spro/ensa.c:42:} /* Fin de main */ /home/chan/spro/gen.c:3:main() MSC. NMP / M en C. FGR 84 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos /home/chan/spro/principal.c:19:void main (int argc, char *argv[]) /home/chan/spro/principal.c:53:} /* Fin de main */ En el caso anterior, al colocar la opción –n se visualiza el número de línea del archivo donde se encuentra el patrón buscado. Comando: wc Formato: wc [opciones] [archivo(s)] Descripción: La orden wc (word counter) es un contador de líneas, palabras y caracteres de un archivo. Para wc, una palabra es una cadena de caracteres delimitada por espacios en blanco, tabuladores o retornos de carro existentes en el archivo. Las posibles opciones son: -l Visualizará el número de líneas. -w Visualizará el número de palabras. -c Visualizará el número de caracteres. Si a wc no se le especifica ninguna opción, tomará por defecto las tres anteriores, visualizando en orden el número de líneas, palabras y caracteres. Ejemplo: $ wc ftemp 253 939 6728 ftemp En el caso anterior, wc está indicando que el archivo ftemp tiene 253 líneas, 939 palabras y 6728 caracteres. Obviamente, la orden wc sólo puede ser utilizada para procesar archivos de texto. Comando: diff Formato: diff [opciones] archivo_a archivo_b Descripción: Básicamente, lo que realiza el comando diff es encontrar las diferencias entre dos archivos de texto, indicando lo que tendríamos que hacer para que coincidieran. Se le puede dar como parámetros nombres de directorios, así se da como primer nombre de archivo un directorio y como segundo un archivo, compara el archivo del directorio cuyo nombre coincida con el nombre del segundo archivo dado. El caso contrario funciona igual. Si se dan dos nombres de directorio compara por orden alfabético archivo de igual nombre. Las opciones son: -a Compara los archivos como de texto incluso si no parecen ser de texto. -b Ignora los espacios en blanco en la comparación. -d Cambia el algoritmo para intentar encontrar un conjunto de cambios más pequeño. -e Genera un script para el editor ed, con los cambios necesarios para igualar los archivos. -r Opción recursiva para directorios. archivo1 Éste es el archivo que se quiere que se compare. diff nos devuelve la información con las operaciones a realizar para que este archivo coincida con archivo2. archivo2 Archivo maestro que se utiliza en la comparación para que diff nos indique que se ha de hacer en archivo1 para que sea igual a éste. MSC. NMP / M en C. FGR 85 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Ejemplo: diff tabla_a.txt tabla_b.txt Compara los dos archivos indicados buscando las diferencias del primero con respecto al segundo. Comando: Compress Sintaxis: compress [opciones] archivo(s) La orden compress se utiliza para comprimir archivos. Al archivo resultante se le añade la extensión.z. Los archivos comprimidos con compress pueden ser comprimidos con uncompress o compress -d. Opciones: -c Hace que la salida de compress vaya dirigida a la salida estándar. -d Descomprime. -v Modo verboso. Cada vez que se comprime un archivo se visualiza el porcentaje de reducción de tamaño. Ejemplo: $ compress iwooos96-ipc.ps $ ls -l iwooos96-ipc.ps.Z -rw-rw-r-1 chan igx $ 127747 Jul 24 1998 iwooos96-ipc.ps.Z Generalmente se obtienen mejores porcentajes de redacción de tamaño con gzip que con compress. Vamos a comentar a continuación un método bastante extendido que se emplea para almacenar de forma comprimida, el contenido de todo un árbol de directorios En un único archivo. Esta es la forma habitual en que se almacena la información, por ejemplo, en los servidores de ftp. De este modo cuando traemos un archivo, estamos trayendo una estructura de directorios completa de forma rápida, por estar la información comprimida, y sencilla. Veamos como podemos hacerlo. Imaginemos que deseamos almacenar todos los archivos que cuelgan de nuestro directorio de arranque en un único archivo denominado todo.tar (por tener formato de tar) y posteriormente comprimido. Para realizarlo, daremos las ordenes siguientes, una vez colocados en el directorio de inicio: $ tar cf todo . tar * $ ls -l todo . tar -rw-r—r-- 1 chan igx 102400 Jan 22 19:02 todo.tar igx 67320 Jan 22 19:02 todo.tar.gz $ gzip todo.tar $ls -l todo.tar.gz -rw-r—r-- 1 chan $ Si nuestra versión de tar soporta la opción z, esto se podría haber realizado en un único paso. A continuación, si queremos descomprimir todo el árbol de directorios, posiblemente en otra maquina, daremos la siguiente orden: $ gzip -dc todo.tar.gz MSC. NMP / M en C. FGR tar -xf 86 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos $ o también: $ tar xvzf todo.tar.gz $ Comparar el contenido de dos archivos ¿ A quién no le ha pasado alguna vez? De repente nos damos cuenta de que en el directorio actual existen dos archivos con nombres muy parecidos y que a primera vista tienen el mismo contenido. En semejantes situaciones resulta muy práctico poder comparar automáticamente ambos archivos. Podemos utilizar el comando ls-l para averiguar la fecha y hora de la última modificación de los archivos, Pero esto no siempre resulta útil. Linux ofrece dos comandos diferentes que hacen posible esa comparación entre archivos. El primero se llama diff y el segundo cmp. Ambos comandos no solo trabajan con archivos. En ambos casos puede utilizarse en lugar de un nombre de archivo el carácter menos (-). Con ello, los comandos trabajaran sobre los datos del canal de entrada estándar. Los datos que extraen de el son comparados entonces con los de un archivo. Por lo tanto, ambos comandos son utilizables al final de una canalización y en parte también dentro de ella. Detectar diferencias con el comando diff El comando diff necesita como parámetros dos nombres de archivo y puede incluir también algunas opciones. Sintaxis: diff [opciones] archivo1 archivo2 El resultado de la comparación del contenido de ambos archivos se muestra en forma de los siguientes mensajes: Linea1 a Linea3,Linea4 Linea1,inea2 d Linea3 Linea1,Linea2 c Linea3,Linea4 El sentido de esos mensajes consiste en indicar al usuario que modificaciones debe sufrir el archivo1 para alcanzar el estado en el que se encuentra el archivo archivo2. En todos los mensajes, los números de línea Linea1 y Linea2 se refieren al primer archivo, y los números Linea3 y Linea4, al segundo archivo. El mensaje que va acompañado del identificador a podría ser, por ejemplo, como sigue: 3 4 a 4,7 esto significa que a la línea 3 del primer archivo habría que añadirle las líneas de la 4 a la 7 del segundo archivo. Hecho esto, las diferencias entre ambos archivos quedan equilibradas. 5,8 d 4 Las líneas de la 2 a la 5 del primer archivo deben ser borradas. No existen después de la cuarta línea del segundo archivo. 10,15 c 12,17 El identificador c indica que las líneas de la 10 a la 15 del primer archivo deben intercambiarse por las líneas de la 12 a la 17 del segundo archivo. Ademas, en estos tres tipos de mensajes diff muestra también los contenidos de las líneas a los que se refieren las propuestas de modificación. Las líneas del primer archivo que MSC. NMP / M en C. FGR 87 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos deben cambiarse van precedidas por un carácter menor que(<). En el caso de las líneas del segundo archivo que deben modificarse se trata de un carácter mayor que (>). adams:-$ cat Fruta Pera Uva Albaricoque Naranja adams:-$ cat Fruta2 Pera Melocotón Albaricoque Pomelo Limon adams:-$ diff Fruta Fruta2 2c2 < Uva -> Melocotón 4c4,5 Naranja -> Pomelo > Limon adams:-$ Comando diff Pueden usarse, entre otras, las opciones-b y -e. La opción -b se encarga de que en la comparación de los contenidos de los archivos se ignoren los espacios en blanco. La opción -e se responsabiliza de un aspecto mucho mas importante. Con ella se pueden crear scripts de ed. El editor ed es un predecesor del editor vi. Por un lado solo trabaja con líneas y, por el otro, dispone de una estructura de comandos excesivamente complicada. Sin embargo, ed puede servir para editar un archivo extrayendo comandos de modificación (scripts de ed) a través del canal de entrada estándar. Al usar la opción –e, diff genera esos scripts de ed , que después pueden utilizarse para devolver los dos archivos a su estado anterior utilizando el editor ed. adams:-$ diff -e Fruta Fruta2 4c Pomelo Limon . 2c Melocotón . adams:-$ generar un script de ed Unión de criterios para búsquedas completas Los criterios de selección explicados anteriormente pueden combinarse a voluntad y, en ese caso, los archivos encontrados deben cumplir todas las condiciones descritas. Puede suceder que busquemos archivos que cumplan bien una condición u otra. Estos archivos deben buscarse en ejecuciones separadas del comando find. El comando find permite otras combinaciones lógicas de sus opciones de selección: Unión Significado ! Negación logia de una opcion de selección. MSC. NMP / M en C. FGR 88 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS -a Unión y logia de opciones de selección. -o Unión O lógica de opciones de selección Sistemas Operativos Si desea especificar una unión Y/O de opciones de selección, debe colocarse entre paréntesis la condición global de selección que representan. Sin embargo, los paréntesis tienen un significado especial en el sheell y por ello deben bloquearse. Si el usuario busca en su directorio actual todos los archivos que no le pertenezcan, puede hacerlo con la ayuda del signo de exclamación (!) para la negación logia. Find . ! -user hugo -print Si se utilizan varios operadores lógicos para unir opciones de selección entre si, debe estar claro que los operadores !, -a y-o aparecen por rango de prioridad. La negación lógica tiene el rango mas alto y va seguida de –a en segunda posición y –o en tercera posición. En la figura se muestran algunos ejemplos de la unían lógica de opciones de selección con –a y –o. Debe estar especialmente atento en la forma de escritura de los paréntesis. adams:-$ find . \( -type d -o -name <<*ham>> \) -print . ./.term ./abrham ./mi-primer ./mi_primer/abraham ./zebraham ./mi_segundo adams:-$ find . \( -size +0 -a -size -10) -print . ./.kermrc ./.less ./.lessrc ./.term ./.term/termrc ./abraham ./verdura ./mi_primer ./mi_primer/abraham ./fruta ./zebraham ./direcciones ./sortdat ./.bashrc ./todo ./listaUsuarios ./mi_segundo ./mi_segundo/K ./mi_segundo/M ./mi_segundo/S ./mi_segundo/keymap ./mi_segundo/local ./mi_segundo/0 ./mi_segundo/cdrom adams:-$ Opciones -a y -o grep : Búsqueda de líneas determinadas en un archivo En muchas situaciones, el usuario necesita un programa auxiliar que le permita extraer solo determinadas líneas de un archivo o de un flujo de datos dentro de una canalización. Para este fin pueden usarse el programa auxiliar grep y otros programas similares. Estos dos programas son respectivamente una MSC. NMP / M en C. FGR 89 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos versión ampliada y reducida del comando grep. Se trata del comando egrep, que incluye mayores capacidades de búsqueda, y del comando fgrep, que permite buscar solo texto simple sin caracteres especiales. El comando grep tiene como primer parámetro un criterio de búsqueda que utiliza los mismos caracteres especiales que utilizaba el editor vi. para la búsqueda. El comando grep busca en todas las líneas de un archivo o en los datos del canal de entrada estándar que contienen el criterio de búsqueda y muestra las líneas correspondientes a través del canal de salida estándar. A modo de ejemplo utilicemos el criterio de búsqueda del apostrofo (‘) grep `[Ll]uis´ < Texto El comando busca todas las líneas en las que aparezca Luis o luis. Los datos se leen del archivo texto a través del canal de entrada estándar. Mediante el canal de salida estándar se muestran solo las líneas en las que aparece Luis o luis. Buscar con el comando grep El comando grep accede a sus datos a través del canal estancar de entrada de datos o directamente de los archivos, que deben indicarse como parámetros. La sintaxis del comando grep es la siguiente: Grep [opciones] plantilla_de_busqueda [archivo1 ...] adams:-$ cat vehículos Coche Barca Motocicleta Ciclomotor Bicicleta Triciclo Monociclo adams:-$ grep cicl Vehículos Coche Motocicleta Ciclomotor Bicicleta Triciclo Monociclo adams:-$ grep “[Cc]icl” Vehículos Coche Motocicleta Ciclomotor Bicicleta Triciclo Monociclo Adams:-$ grep “^.o” Vehículos Coche Motocicleta Ciclomotor Bicicleta Triciclo Monociclo Adams:-$ grep “^.o” Vehículos | wc -l 4 adams:-$ ls Vehículos abraham mi_primero/ adams:-$ ls | grep “hams$” abraham zebraham adams:-$ zebraham El comando grep Caracteres especiales existentes con su significado correspondiente: MSC. NMP / M en C. FGR 90 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Carácter especial Sistemas Operativos Significado [...] Simboliza un conjunto de caracteres que pueden ocupar esa posición [^...] Versión negativa del anterior, es decir, en esa posición puede haber cualquier carácter excepto los que se muestran entre corchetes (conjunto complementario) · Un carácter único cualquiera (incluidos espacios en blanco). * Signo de repetición. Se aplica al carácter o carácter especial que lo procede. ^ Simboliza el principio de una línea dentro de una plantilla de búsqueda. $ Simboliza el final de la línea. {...} Signo de repetición. Entre las llaves puede indicarse exactamente cuantas veces puede aparecer el carácter o carácter especial procedente. Existen tres maneras de determinar la cantidad: 1. 2. \{número} Numero exacto \{numero,\} Numero mínimo 3. \{número1,número2\} Limite inferior y superior (desde numero1 hasta numero2) Los caracteres especiales deben ser interpretados por el comando grep y no por el sheell. Para que no sean interpretados, debe bloquearse la expresión de búsqueda. La manera de conseguirlo es insertando una barra diagonal inversa antes de cada carácter especial, por ejemplo: grep \^\[A-Z\]\[A-Z\]\*\$ sellos Como vemos esto no facilita precisamente la lectura de la línea de comandos. Por eso es recomendable utilizar las comillas dobles (“...”) o simples (‘...’), con lo que tendríamos la siguiente sintaxis: grep ‘^[A-Z][A-Z]*$’ sellos Las líneas encontradas se mostraran a través del canal de salida de datos estándar. Si se han indicado como parámetro varios archivos, antes de cada línea aparecerá el nombre del archivo para una mejor identificación. Si se encuentran demasiadas líneas, las primeras desaparecen de la pantalla. En tal caso, pueden enviarse los datos al programa auxiliar more. La descripción de la sintaxis del comando grep muestra que pueden especificarse opciones. A continuación incluimos una lista de las opciones mas importantes del comando grep: Opcion Significado -v Se mostrara a través del canal de datos estándar las líneas que no contengan la plantilla de búsqueda. -c Si se añade la opción –c, el comando grep solo mostrará el número de líneas encontradas, sin mostrar las líneas propiamente dichas. -i Si se utiliza la opción –i grep no distinguirá entre las mayúsculas y las minúsculas al comparar la plantilla de búsqueda con el texto de la líneas -n Se indican el número de línea delante de cada línea encontrada. -l Sólo se mostrarán los nombres de los archivos en los que se hayan encontrado líneas. Las líneas propiamente dichas no se mostrarán. adams:-$ cat vehículos Coche MSC. NMP / M en C. FGR 91 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Barca Motocicleta Ciclomotor Bicicleta Triciclo Monociclo Adams:-$grep –i “ cicl” Vehículos Motocicleta Ciclomotor Bicicleta Triciclo Monociclo Adams:-$grep –v “ cicl” Vehículos Coche Barca Ciclomotor A dams:-$grep –vi “ cicl” Vehículos Coche Barca Adams:-$grep –n ”l$” Vehículos 3:Motocicleta 5:Bicicleta 6:Triciclo 7:Monociclo Adams:-$grep –vc “cicl” Vehículos 3 Adams:- Prácticas de laboratorio: Analizar y ejecutar Comandos Suplementarios en sistemas operativos Linux Comandos usados en Diferentes Sistemas Operativos Para sistemas compatibles con POSIX (o parcialmente compatibles) como FreeBSD, Linux, OS X o Solaris, los comandos básicos son los mismos, ya que están estandarizados. MSC. NMP / M en C. FGR 92 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos descripción FreeBSD Linux OS X Solaris Windows (cmd) Windows (powershell) Windows (cygwin, SFU o MKS) listar directorios ls ls ls ls dir dir & ls & Get-ChildItem ls limpiar consola clear clear clear clear cls clear clear copiar archivo(s) cp cp cp cp copy cp & Copy-Item cp mover archivo(s) mv mv mv mv move mv & Move-Item mv renombrar archivo(s) mv mv, rename mv mv ren, rename ren, mv mv borrar archivo(s) rm rm rm rm del (erase) rm & Remove-Item rm borrar directorios rmdir rmdir rmdir rmdir rd (rmdir) rmdir rmdir crear directorio mkdir mkdir mkdir mkdir md (mkdir) mkdir mkdir cambiar el directorio actual cd cd cd cd cd (chdir) cd & Set-Location cd ejecutar guión shell en nuevo shell sh file.sh sh file.sh sh file.sh sh file.sh cmd /c file.cmd matar procesos kill, killall killall, pkill, kill, skill kill, killall kill, pkill taskkill cambiar prioridad de procesos nice nice, chrt nice nice start /low, start /normal, start /high, start /realtime N/A cambiar prioridad i/o [1] ionice [2] nice N/A N/A N/A N/A crear nuevo sistema de archivos newfs mkfs mkfs newfs format N/A N/A verificación y recuperación de sistemas de archivos fsck N/A N/A crear software raid atacontrol, gmirror, zfs create (mdadm—create) N/A montar dispositivo mount desmontar dispositivo umount MSC. NMP / M en C. FGR sh file.sh N/A fsck fsck fsck taskkill kill nice chkdsk diskutil appleRAID metainit, zfs create diskpart (mirror only) diskpart (mirror only) mount mount, diskutil mount mount mountvol mount & New-PSDrive umount umount, diskutil unmount(disk) umount mountvol /d Remove-PSDrive N/A N/A 93 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos montar archivo como dispositivo de bloques mdconfig + mount mount -o loop mostrar configuración de red ifconfig ip addr, ifconfig mostrar ruta de red route ip route route route route rastrear ruta de red traceroute traceroute traceroute traceroute tracert tracert rastrear ruta de red con ping traceroute -I traceroute -I & mtr traceroute -I traceroute -I pathping pathping descripción FreeBSD Linux OS X Solaris Windows (cmd) Windows (powershell) hdid ifconfig lofiadm + mount ifconfig N/A N/A ipconfig ipconfig N/A N/A N/A N/A N/A N/A Windows (cygwin, SFU o MKS) NOTA: Los sistemas Linux pueden variar por distribución en un programa específico, o incluso en cómo se denomina un comando, mediante la función POSIX alias. Por ejemplo, si se desea utilizar el comando dir de DOS para obtener una lista de directorios por línea, debe usarse alias dir='ls -lahF' (en un archivo de configuración de sesión). [1] Esta característica está en desarrollo, véase (http://unix.derkeiler.com/Mailing-Lists/FreeBSD/stable/2009-01/msg00316.html). [2] El comando nice utiliza la llamada de sistema setpriority(), que afecta la prioridad I/O; véase (http://developer.apple.com/ library/mac/#documentation/Darwin/Reference/Manpages/man2/setpriority.2.html). MSC. NMP / M en C. FGR 94 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS 3.3. Sistemas Operativos Personalización el entorno Shell de UNIX Una Shell de Unix o también shell, es el término usado en informática para referirse a un intérprete de comandos, el cual consiste en la interfaz de usuario tradicional de los sistemas operativos basados en Unix y similares como GNU/Linux. Mediante las instrucciones que aporta el intérprete, el usuario puede comunicarse con el núcleo y por extensión, ejecutar dichas órdenes, así como herramientas que le permiten controlar el funcionamiento de la computadora. Los comandos que aportan los intérpretes, pueden usarse a modo de guion si se escriben en ficheros ejecutables denominados shell-scripts, de este modo, cuando el usuario necesita hacer uso de varios comandos o combinados de comandos con herramientas, escribe en un fichero de texto marcado como ejecutable, las operaciones que posteriormente, línea por línea, el intérprete traducirá al núcleo para que las realice. Sin ser un shell estrictamente un lenguaje de programación, al proceso de crear scripts de shell se le denomina programación shell o en inglés, shell programming o shell scripting. MSC. NMP / M en C. FGR Pantalla durante una sesión muestra Bash, tomada en Gentoo Linux. 95 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos En el sentido más genérico del término, shell significa cualquier intérprete que los usuarios usen para escribir comandos. Su etimología proviene del uso natural de consolas en computadores funcionando bajo unix antaño, cuando los usuarios conectaban al computador central, lo hacían mediante consolas, (shells) por las cuales a través de un intérprete, hacían inicio de sesión y manejaban la computadora principal. Posteriormente, con la proliferación de los computadores personales y su filosofía monousuario, un computador por usuario (entiéndase lo contrario de la filosofía inicial de Unix, un computador, muchos usuarios conectados por terminales), se desarrolló un software que emulase las características principales de las consolas físicas, a modo de poder seguir usándolas como clientes en un computador o núcleo que comprendiera la convención estándar usada para configurar y llevar a cabo tareas de administración de emergencia con servidores basados en Unix. Los usuarios de Unix y similares, pueden elegir entre distintos shells (programa que se debería ejecutar cuando inician la sesión, véase bash, ash, csh, Zsh, ksh, tcsh). Las interfaces de usuario gráficas para Unix, como son GNOME, KDE y Xfce pueden ser llamadas shells visuales o shells gráficas. Por sí mismo, el término shell es asociado usualmente con la línea de comandos. En Unix, cualquier programa puede ser un shell de usuario. Los usuarios que desean utilizar una sintaxis diferente para redactar comandos, pueden especificar un intérprete diferente como su shell de usuario. El término shell también hace referencia a un programa particular, tal como el Bourne shell, sh. El Bourne shell fue el shell usado en las primeras versiones de Unix y se convirtió en un estándar de facto; todos los sistemas similares a Unix tienen al menos un shell compatible con el Bourne shell. El programa Bourne shell se encuentra dentro de la jerarquía de archivos de Unix en /bin/sh. En algunos sistemas, tal como BSD, /bin/sh es un Bourne shell o un equivalente, pero en otros sistemas como muchas distribuciones de Linux, /bin/sh es un enlace simbólico a un shell compatible con más características (como Bash). POSIX especifica su shell estándar como un subconjunto estricto del Korn shell. Categorías de shell Pueden dividirse en cuatro categorías: tipo Bourne, tipo consola C, no tradicional e histórica. Compatibles con Bourne shell • Bourne shell (sh) -- Escrita por Steve Bourne, cuando estaba en Bell Labs. Se distribuyó por primera vez con la Version 7 Unix, en 1978, y se mejoró con los años. • Almquist shell (ash) -- Se escribió como reemplazo de la shell Bourne con licencia BSD; la sh de FreeBSD, NetBSD (y sus derivados) están basados en ash y se han mejorado conforme a POSIX para la ocasión. • Bourne-Again shell (bash) -- Se escribió como parte del proyecto GNU para proveerlo de un superconjunto de funcionalidad con la shell Bourne. • Debian Almquist shell (dash) -- Dash es un reemplazo moderno de ash en Debian. • Korn shell (ksh) -- Escrita por David Korn, miestras estuvo en Bell Labs. • Z shell (zsh) -- Considerada como la más completa: es lo más cercano que existe en abarcar un superconjunto de sh, ash, bash, csh, ksh, y tcsh. Compatibles con la shell de C • C shell (csh) escrita por Bill Joy, mientras estuvo en la University of California, Berkeley. Se distribuyó por primera vez con BSD en 1979. • TENEX C shell (tcsh). MSC. NMP / M en C. FGR 96 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Otros o exóticos • fish, una shell amigable e interctiva , lanzada por primera vez en 2005. • mudsh, una shell inteligente al estilo de los videojuegos que opera como un MUD. • zoidberg, una shell modular escrita en Perl, configurada y de operación completamente en Perl. • rc, el shell por defecto de Plan 9 from Bell Labs y Version 10 de Unix escrita por Tom Duff. Se han hecho ports para Inferno y para sistemas operativos basados en Unix. • es shell (es), una shell compatible con RC escrita a mediados de los 90. • scsh (Scheme Shell) Archivos de configuración para shells Un shell lee archivos de configuración en múltiples circunstancias bajo diferentes dependencias de la shell. Esta tabla muestra los achivos de configuración de las shells más populares: sh ksh csh /etc/.login no no /etc/csh.cshrc no no no /etc/csh.login no no ~/.tcshrc no ~/.cshrc tcsh bash zsh no no yes no no no login no no no no yes no no no no yes yes no no ~/.login no no login login no no ~/.logout no no login login no no login login /etc/profile login login no no i.login no ~/.profile login login no no login no ~/.bash_profile no no no no login no ~/.bash_login no no no no login no ~/.bashrc no no no no /etc/zshenv no no no no no yes /etc/zprofile no no no no no login /etc/zshrc no no no no no int. /etc/zlogin no no no no no login /etc/zlogout no no no no no login ~/.zshenv no no no no no yes ~/.zprofile no no no no no login ~/.zshrc no no no no no int. ~/.zlogin no no no no no login ~/.zlogout no no no no no login n/login no Explicación: • "no" significa que la shell no leerá el archivo en absoluto. • "yes" significa que el archivo es siempre leído por el shell. • "login" significa que el archivo es leído si la shell es una shell de sesión (loging shell). • "n/login" significa que el archivo is leído si la shell no es una shell de sesión. • "int." significa que un archivo es leído si es un shell interactivo. • "i.login" significa que un archivo es leído si la shell es de sesión interactiva. MSC. NMP / M en C. FGR 97 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Histórico • Thompson shell (sh) -- La primel shell Unix fue escrita por Ken Thompson en Bell Labs. Distribuida con la versión 1 hasta la 6 de Unix, desde 1971 a 1975. Es considerada muy rudimentaria por los estandarés modernos y no es usada en sistemas actuales. Existen algunas partes disponibles de la misma: Ancient UNIX Systems. • PWB shell o Mashey shell (sh) -- Una versión de la shell de Thompson, creada por John Mashey y otros, mientras estuvieron en Bell Labs. Distribuida con el Programmer's Workbench UNIX, en 1976. shells no Unix Dentro del conjunto de sistemas operativos Microsoft Windows, el análogo son los programas command.com, o cmd.exe para sistemas operativos basados en Windows NT, y Windows PowerShell introducido con Windows Server 2008. Bibliografía • Ellie Quigley (2001). «Introduction to UNIX shells». Unix Shells by Example. Prentice Hall PTR. ISBN 0-13-066538-X. — Historia de varios shells, los usos y las responsabilidades de una shell en Unix. Enlaces externos • shell encyclopedia - history, types, definitions, technical information and resources • Linux Shell Scripting Tutorial - A Beginner's handbook • www.freebsd.org Lista de shells [1] [2] [3] Referencias [1] http://www.shell.ir [2] http://www.freeos.com/guides/lsst/ [3] http://www.freebsd.org/ports/shells.html Prácticas de laboratorio: Analizar el entorno de trabajo en sistemas operativos Linux/Windows MSC. NMP / M en C. FGR 98 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Editores gedit Es el editor de textos oficial de Gnome. Gedit está bajo licencia GNU GPL. - Soporta muchas codificaciones, lenguajes de programación y corrector ortográfico multi-idioma. - Puede usar para crear y editar archivos de texto. - puede utilizar plugins gedit para realizar una variedad de tareas relacionadas con edición de texto dentro de la ventana de gedit. Sintáxis gedit [- help] [- debug [la sección]] [- nueva ventana] [- nuevo documento] [- quit] [archivo (s) ...] Ejemplo ………$gedit archivo.ext ………$gedit ejemplo1.ext nano Ejemplo: ………$nano archivo.ext ………$nano comandos1.txt MSC. NMP / M en C. FGR 99 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos vi Un editor de texto es simplemente un programa usado para la edición de archivos que contienen texto, como una carta, un archivo en C o un archivo de configuración del sistema, mientras que hay muchos editores de texto en Linux, el único editor que esta garantizado encontrar en cualquier sistema UNIX y es el vi “visual editor” . Este es el editor estándar usado por todos los sistemas UNIX, el cual sirve para escribir y modificar archivos. La manera de entrar al editor es a través de la línea de comandos tecleando “vi” y después el nombre del archivo o desde el menú de programas. Modos del editor vi A. MODO COMANDOS B. MODO INSERCIÓN C. MODO EJECUCIÓN DE COMANDO Cada uno de los cuales cuenta con sus propios comandos, que ha continuación se explican: A. Modo comando Para activar este modo se presiona la tecla ESC, y entonces queda listo para recibir instrucciones las cuales tienen categorías en base a la función que desempeñan, a continuación se muestra un listado de las categorías del modo comando con sus comandos respectivos. Movimientos del cursor h Desplaza el cursor una localidad hacia la izquierda. j Desplaza el cursor una localidad hacia abajo k Desplaza el cursor una localidad hacia arriba. l Desplaza el cursor una localidad hacia la derecha. wóe Desplaza el cursor una palabra a la derecha. b Desplaza el cursor una palabra hacia la izquierda $ Desplaza el cursor al final de la línea . O Desplaza el cursor al principio de la línea. G Desplaza el cursor al final del documento. lG Desplaza el cursor al principio del documento. nG Desplaza el cursor a la línea n dentro del documento. ctrl.-f Una pantalla hacia delante. ctrl.-b Una pantalla hacia atrás. MSC. NMP / M en C. FGR 100 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Reemplazo de texto r Reemplaza la letra sobre el cursor por la que sea presionada después de la letra ns Cambia n letras partiendo de la posición del cursor. R Reemplaza todo texto deseado a partir de la posición del cursor. cw Cambia la palabra que se encuentra el cursor. ncw Cambia n palabras empezando con la que se encuentra sobre el cursor c$ Cambia todo el texto a partir del cursor y hasta el final de la línea. cO Cambia todo el texto a partir del cursor y hasta el inicio de la línea. cc Cambia el texto de una línea completa. ncc Cambia el texto de n líneas completas. Borrado de texto x Borra el carácter que se encuentra sobre el cursor. nx Borra n caracteres partiendo de la posición del cursor. dw Borra una palabra que se encuentra sobre o a la derecha del cursor. ndw Borra n palabras que se encuentran sobre o a la derecha del cursor. d$ ó D Borra el texto de la posición del cursor al final de la línea. d0 B. Borra el texto de la posición del cursor al inicio de la línea. dd Borra la línea donde se encuentra el cursor. ndd Borra n líneas a partir de donde se encuentra el cursor. Modo de inserción Para activar este modo se presiona cualquiera de las teclas que permiten introducir texto al documento las cuales son: I Entra al modo de inserción de texto. I Inserta el texto al principio de la línea. A Añade texto una posición delante de la del cursor. A Añade texto al final de la línea. O Abre una línea para inserción de texto bajo la posición del cursor. O Abre una línea para inserción de texto sobre la posición del cursor. C. Modo ejecución de comandos Para activar este modo se presiona la tecla ESC y uno de los siguientes caracteres :,/,? ó !. Más adelante se verá el uso de cada uno de ellos. Una vez activado este modo se pueden realizar las siguientes funciones: Búsqueda /patrón Busca un patrón de caracteres a partir de la posición el cursor hasta el final del archivo. ? patrón Busca un patrón de caracteres partiendo de la posición del cursor hasta el inicio del archivo n Repite la última búsqueda o busca la siguiente ocurrencia. N MSC. NMP / M en C. FGR Repite la última búsqueda o busca la siguiente 101 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Ocurrencia en sentido contrario. Reemplazo :s/patrón/cadena/[g] Busca la cadena patrón en la línea actual y al encontrarlo lo reemplaza por cadena. Si la opción “g” esta puesta hará un reemplazo global en la línea de los contrario solo reemplazará la primera ocurrencia. :N.Ms/patrón/cadena [g] Tiene el mismo efecto que la sintaxis anterior, solo que este se aplica sobre un rango de líneas , especificándolo en “N” y ”M” . Utilizando “l” para denotar el inicio del y “$” Para denotar el final. Cualquier otro valor para Estas literales será el número de líneas deseado. Copiado :inicio,final co posición Copia el texto a partir de la línea inicio hasta la línea final y lo posiciona en el lugar posición Movimiento :inicio ,final m posición Mueve el texto que se encuentra entre las líneas inicio y final posicionándolo a partir de la línea posición. Salvar :w Salva el contenido actual del buffer (archivo) y continua trabajando en el editor. :w archivo l Salva el contenido actual del buffer (archivo) en uno nuevo llamado archivo l. :x Salva el contenido actual del sistema y sale del editor. :q! Sale del editor sin salvar el trabajo o modificaciones recientes. Ejecución de comandos UNIX MSC. NMP / M en C. FGR 102 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS :! Comando Sistemas Operativos Una vez que le da la tecla de “!” sale del vi y permite que el comando sea ejecutado después de lo anterior retorna al editor. Otros :set number Activa la numeración de líneas. :ser nonumber desactiva la numeración de líneas. u Elimina el último comando que se realizó. La sintaxis de vi es: vi nombre del archivo Por ejemplo inicie vi tecleando /home/larry# vi test inmediatamente aparecerá algo parecido a ~ ~ “test” [New file] La columna de caracteres “-“ indica que esta al final del archivo Insertando texto Orden “i” Esta ahora en el modo ordenes, para poder insertar texto en el archivo, pulse <i> (lo que le hará entrar en el modo de inserción), y empiece a escribir. Now is the for all gob men to come to the aid of the party ~ ~ Mientras inserta texto, puede escribir tantas líneas como desee (pulsando <return> después de cada una) y puede corregir los errores con la tecla de borrado de carácter. Para salir del modo de inserción y volver al modo de ordenes solo pulse <esc>. Mientras esta en modo ordenes puede usara las teclas del cursor para moverse por el archivo. Cuando solo se tiene una línea e intenta moverse hacia abajo muy probablemente vi emita un sonido. MSC. NMP / M en C. FGR 103 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Orden “a” Insertar texto comenzando detrás de la posición actual del cursor, en lugar de la posición actual del cursor. Por ejemplo, use la tecla de cursor a la izquierda para desplazar el cursor sobre las palabras “good” y “men” Now is the for all gob_men to come to the aid of the party ~ ~ Pulse <a> para iniciar el modo de inserción y escriba Now is the for all gob women to come to the aid of the party ~ ~ orden “o” Para insertar texto en la línea de debajo de la actual Por ejemplo, pulse <o> y teclee otra línea o dos: Now is the for all gob women to come to the aid of the party Afterwards, we’ ll go out for pizza and beer. ~ ~ Borrando texto Desde el modo de ordenes, la orden “x” borra el caracter debajo del cursor. Si pulsa “x” cinco veces terminara con> Now is the for all gob women to come to the aid of the party Afterwards, we’ ll go out for pizza and_ ~ ~ Ahora pulse <a>, inserte algún texto seguido de <esc>: Now is the for all gob women to come to the aid of the party Afterwards, we’ ll go out for pizza and Diet coke. ~ ~ orden dd Se utiliza para borrar líneas enteras. Por ejemplo para borrar la segunda línea, mueva el cursor en la segunda línea y pulse la tecla d dos veces (dd). Now is the for all gob women to come to the aid of the party ~ MSC. NMP / M en C. FGR 104 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos ~ orden dw Borra la palabra sobre la que se encuentra el cursor. Por ejemplo, situé el cursor sobre la palabra “good” y pulse <dw>. Now is the for all women to come to the aid of the party ~ ~ Modificando texto Orden R Se utiliza para sustituir sesiones de texto. Por ejemplo, Situé el cursor en la primera letra de la palabra “party” y pulse <R>, y escriba la palabra “hungry”. Now is the for all gob_men to come to the aid of the hungry ~ ~ El uso de la orden R para editar texto es bastante parecido al uso de las ordenes “i” y “ a”, pero “R” sobrescribe texto en lugar de insertarlo. Orden r Sustituye un único carácter situado debajo del cursor Por ejemplo, situé el cursor al comienzo de la palabra “now” y escriba “r” seguido c, obtendrá: c_ow is the for all gob_men to come to the aid of the party ~ ~ La orden “~” cambia de mayúsculas a minúsculas o viceversa la letra donde se encuentra el cursor. Por ejemplo, situé el cursor sobre la “o” de “Cow”, y repetidamente pulsa <~> . Cow is the for all gob_men to come to the aid of the party ~ ~ Ordenes de movimiento Además de utilizar las teclas del cursor para moverse por el documento, en vi existen las ordenes h, j, k y l, para mover el cursor a la izquierda, abajo, arriba y derecha respectivamente. Orden w Mueve el cursor al comienzo de la siguiente palabra. Orden b Lo lleva al comienzo de la palabra anterior MSC. NMP / M en C. FGR 105 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Orden 0 (cero). Mueve el cursor al comienzo de la línea actual. Orden $ Lo lleva al final de la línea. Orden <ctrl-F> Avanza el cursor una pantalla hacia delante Orden <ctrl-B> Regresa una pantalla atrás. Orden G Lleva el cursor al final del archivo, puede también desplazarse una línea arbitraria; por ejemplo, pulsando la orden 10G, llevara el cursor a la linea 10 del archivo, para desplazarse al comienzo pulse 1G. Puede también asociar ordenes de desplazamiento con otras ordenes como es el borrado. Por ejemplo, la orden d$ borrara todo desde la posición del cursor al final de la línea; dG borrara todo desde la posición del cursor al final del archivo. Guardando archivos y saliendo del editor vi Orden :q! Al pulsar “:” , El cursor se desplazara a la ultima línea de la pantalla. (Esta en modo de ultima línea). Cow is the for all gob_men to come to the aid of the party ~ ~ : Orden :wq Salva el archivo y sale de vi Orden ZZ (desde el modo de ordenes, sin “:”) Es equivalente a la orden :wq Orden :w Salva los cambios sin salirse de vi. Editando otro archivo Orden :e Se utiliza para abrir otro archivo. Por ejemplo, para dejar de editar el archivo test y en su lugar editar el archivo test2 Cow is the for all gob_men to come to the aid of the party ~ ~ :e test2 Si utiliza la orden :e sin salvar primero el archivo, obtendrá el mensaje de error No write since last change (“:edit !” overrides) Lo cual significa que vi no quiere editar otro archivo hasta que salve el primero MSC. NMP / M en C. FGR 106 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Orden :e! Indica al editor que realmente se desea editar otro archivo sin salvar los cambios en el primero. Incluyendo otro archivo Orden :r Puede incluir el contenido de otro archivo en el archivo que esta editando. Por ejemplo, para editar los archivos test y test2, estando editado el test Cow is the for all gob_men to come to the aid of the party ~ ~ :r test2 Ahora tendremos dos archivos, el archivo test2 se inserta en la posición actual del cursor. Ejecutando comandos del intérprete Se pueden ejecutar comandos del interprete desde editor vi con las siguientes ordenes: Orden :r! Funciona como la orden :r, pero en lugar de leer un archivo, inserta la salida de un comando dado en el archivo en la posición actual del cursor. Por ejemplo, la orden :r! ls –F . Muestra en el archivo el listado del directorio donde se encuentra ubicado. Orden :! Se utiliza para salir a un interprete de comandos desde vi, es decir, ejecutar desde dentro de vi y volver al editor una vez finalice. Por ejemplo, si usa la orden: :! ls –F La orden ls –F sera ejecutada, y los resultados mostrados en la pantalla, pero no insertados en el archivo de edición. :shell. Con esta orden vi inicia una instancia de comandos, permitiéndole temporalmente dejar a vi “parado” mientras ejecuta otras ordenes. Simplemente salga del interprete de comandos usando la orden exit, para regresar a vi. Prácticas de laboratorio: Utilizar diferentes editores para la configuración de servicios en sistemas operativos Linux/Windows Script En informática un guión, archivo de órdenes o archivo de procesamiento por lotes, vulgarmente referidos con el barbarismo script (del latín scriptum, escrito), es un programa usualmente simple, que por lo regular se almacena en un archivo de texto plano. Los guiones son casi siempre interpretados, pero no todo programa interpretado es considerado un guion. El uso habitual de los guiones es realizar diversas tareas como combinar componentes, interactuar con el sistema operativo o con el usuario. Por este uso es frecuente que los shells sean a la vez intérpretes de este tipo de programas. En el sistema operativo Los archivos script suelen ser identificados por el sistema a través de uno de los siguientes encabezamientos en el contenido del archivo, conocido como shebang: #!/bin/bash ; #!/bin/ksh ; !/bin/csh Aunque en entornos UNIX la mayoría de los guiones son identificados por dicho encabezamiento, también pueden MSC. NMP / M en C. FGR 107 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos ser identificados a través de la extensión ".sh", siendo ésta quizá menos importante que el encabezamiento, ya que casi todos los sistemas no necesitan dicha extensión para ejecutar el guion, por lo tanto, esta suele ser añadida por tradición, o más bien, es útil para que el usuario pueda identificar estos archivos a través de una interfaz de línea de comandos sin necesidad de abrirlo. Difieren de los programas de aplicación, debido a que los últimos son más complejos; además, los guiones son más bien un programa que le da instrucciones a otros más avanzados. En Windows y DOS En el sistema operativo DOS, a los guiones creados para ser interpretados por cmd.exe o el obsoleto COMMAND.COM se les conoce como archivos "BATCH" (procesamiento por lotes) y acaban en .bat. En el sistema operativo Windows, existen varios lenguajes interpretados como Visual Basic Script, JavaScript, WScript, Batch Script, etc. En diseño web Los guiones en internet se pueden clasificar en guiones del lado del cliente y del lado del servidor. Guiones del lado del cliente Los guiones del lado del cliente se deben incluir con el tag <script>, incluyendo el atributo type con el tipo MIME Generalmente se usa JavaScript, pero se puede usar VBScript (solo Internet Explorer o Google Chrome). Tiene como objetivo, por lo general, AJAX o manipulación del DOM. Guiones del lado del servidor No tienen los problemas de accesibilidad que pueden presentar los guiones en el cliente. También permiten modificar las cabeceras http, u obtenerlas. Además, permiten acceso a bases de datos y otros archivos internos. Traducción El término inglés script se tomó del guion escrito de las artes escénicas, el cual es interpretado por una serie de actores/actrices (o, en este caso, programas) siguiendo un orden establecido. En algunos textos se traduce script como «guión». Esta traducción de momento está empezando a establecerse y es bastante frecuente en el ámbito de algunas comunidades y publicaciones sobre software libre, como el equipo de traducción de KDE, que traduce en la mayoría de las aplicaciones para este escritorio script como «guión», o diversas guías y manuales de software[1]. No obstante su uso es aún minoritario a nivel general, pero junto con la expresión "archivo de órdenes" empleada en América es la castellanización más difundida. Enlaces externos [2] • ¿Qué es un guion (script)? [3] • Curso de programación de guiones en bash • Conversaciones de Bar - Un libro libre de bash scripting [4] Referencias [1] [2] [3] [4] http://www.gentoo.org/doc/es/handbook/handbook-amd64.xml?part=2&chap=4#doc_chap4 http://www.demiurgo.org/doc/shell/shell-2.html http://www.etxea.net/docu/taller_bash/bash.html http://apoie.org/JulioNeves/ConversaIII.htm Prácticas de laboratorio: Manejo de Scripts para la configuración del entorno y servicios en sistemas operativos Linux/Windows MSC. NMP / M en C. FGR 108 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS 3.4. Sistemas Operativos Administración de cuentas y grupos de usuarios Comandos para el manejo de Usuarios y Grupos Tipos de usuarios Los usuarios en Unix/Linux se identifican por un número único de usuario, User ID, UID. Y pertenecen a un grupo principal de usuario, identificado también por un número único de grupo, Group ID, GID. El usuario puede pertenecer a más grupos además del principal. Se pueden identificar tres tipos de usuarios en Linux: •Usuario root •Usuarios especiales •Usuarios normales Usuario root También llamado superusuario o administrador. Su UID (User ID) es 0 (cero). Es la única cuenta de usuario con privilegios sobre todo el sistema. Acceso total a todos los archivos y directorios con independencia de propietarios y permisos. Controla la administración de cuentas de usuarios. Ejecuta tareas de mantenimiento del sistema. Puede detener el sistema. Instala software en el sistema. Puede modificar o reconfigurar el kernel, controladores, etc. Usuarios especiales Ejemplos: bin, daemon, adm, lp, sync, shutdown, mail, operator, squid, apache, etc. Se les llama también cuentas del sistema. Se crean (generalmente) automáticamente en la instalación de Linux o de la aplicación. No tiene todos los privilegios del usuario root, pero dependiendo de la cuenta asumen distintos privilegios de root, para proteger al sistema de posibles formas de vulnerar la seguridad. Se les conoce como cuentas de "no inicio de sesión" (nologin). No tienen contraseñas. Generalmente se les asigna un UID entre 1 y 100 (definido en /etc/login.defs) Usuarios normales Se usan para usuarios individuales. Cada usuario dispone de un directorio de trabajo, ubicado generalmente en /home. Cada usuario puede personalizar su entorno de trabajo. Tienen solo privilegios completos en su directorio de trabajo o home. Por seguridad, es siempre mejor trabajar como un usuario normal en vez del usuario root, y cuando se requiera hacer uso de comandos solo de root, utilizar el comando su. En las distribuciones actuales de Linux se les asigna generalmente un UID superior a 500. Directorios donde se guarda la información de usuarios y grupos /etc/passwd -- información de los usuarios. /etc/shadow - almacenamiento de contraseñas cifradas /etc/group -- información de grupos /etc/login.defs -- están definidas las variables que controlan los aspectos de la creación de usuarios y de los campos de shadow usadas por defecto. MSC. NMP / M en C. FGR 109 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Comandos para el manejo de usuarios adduser – useradd useradd o adduser es el comando que permite añadir nuevos usuarios al sistema desde la línea de comandos. adduser [opciones] nombreusuario useradd [opciones] nombreusuario Nota: Se creará el usuario y su grupo, asi como las entradas correspondientes en /etc/passwd, /etc/shadow y /etc/group. También se creará el directorio de inicio o de trabajo: /home/tic y los archivos de configuración que van dentro de este directorio y que más adelante se detallan. Las fechas de expiración de contraseña, etc Sus opciones más comunes o importantes son las siguientes: -c añade un comentario al momento de crear al usuario, campo 5 de /etc/passwd -d directorio de trabajo o home del usuario, campo 6 de /etc/passwd -e fecha de expiración de la cuenta, formato AAAA-MM-DD, campo 8 de /etc/shadow -g número de grupo principal del usuario (GID), campo 4 de /etc/passwd -G otros grupos a los que puede pertenecer el usuario, separados por comas -r crea una cuenta del sistema o especial, su UID será menor al definido en /etc/login.defs en la variable UID_MIN, además no se crea el directorio de inicio -s shell por defecto del usuario cuando ingrese al sistema. Si no se especifica, bash, es el que queda establecido -u UID del usuario, si no se indica esta opción, automáticamente se establece el siguiente número disponible a partir del último usuario creado. Ejemplo: Primera forma #adduser tic1 tic1:x:1002:1002:TIC,1,9,9,9:/home/tic1:/bin/bash MSC. NMP / M en C. FGR 110 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Segunda forma #useradd tic tic:x:1001:1001::/home/tic:/bin/sh #passwd tic escribir contraseña: #useradd -c “Alumnos TIC" tic #adduser -c “grupo TIC33“ tic33a #useradd -d /usr/tic -s /bin/csh -u 800 -c " Alumnos TIC " tic #adduser tic1 tic1:x:1002:1002:TIC,1,9,9,9:/home/tic1:/bin/bash Manejo de permisos El Permiso de Archivo se da a usuarios, grupos y otros son: -rwxrw-rLa línea anterior indica que se trata de un fichero normal, con permisos de lectura, escritura y ejecución para el usuario propietario, lectura y escritura para el grupo propietario y lectura para el resto de usuarios. r (lectura): Permite ver el contenido del directorio MSC. NMP / M en C. FGR 111 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos w (escritura): Permite modificar el contenido de un directorios, es decir, añadir y/o eliminar ficheros y directorios (para poder modificar un directorio es imprescindible, tener además, permiso de ejecución) x (ejecución): Permite convertir el directorio en el directorio activo chmod Permite alterar / cambiar los derechos de acceso a archivos y directorios. Sintaxis: chmod [options] [MODE] FileName Opciones: •Sintáxis no numérica u Permisos de usuarios. g Permisos de grupo. o Permisos de otros. + agregar permiso - eliminar permiso Ejemplos: #ls –l -rw-r--r-- 1 norma norma 120 jun 19 22:41 comandos.txt # chmod u+rwx comandos.txt #ls –l -rwxr--r-- 1 norma norma 120 jun 19 22:41 comandos.txt #chmod g+rwx comandos.txt #ls –l -rwxrwxr-- 1 norma norma 120 jun 19 22:41 comandos.txt # chmod o+rwx comandos.txt #ls –l -rwxrwxrwx 1 norma norma 120 jun 19 22:41 comandos.txt •Sintáxis numérica chmod [-R] XYZ fichero1 [ fichero2 ...] XYZ: son tres dígitos que se deben activar con 1 para especificar los permisos que deseamos establecer para el archivo. –R se utiliza para forzar recursivamente el cambio de permisos para los ficheros especificados que sean directorios. #chmod permisos nombre Indica los permisos a cambiar fichero o directorio afectado Supongamos que queremos poner los permisos rwxr—r-- es decir, 111 100 100, con lo que el número será 744. Para poner todos los permisos será 777 y para poner solo permisos para el propietario será 700. Ejemplos: root@tic32#chmod 700 var root@tic32#chmod 770 var root@tic32#chmod 777 var MSC. NMP / M en C. FGR 112 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Programación desde el Shell con el manejo de scripts Los .sh son scripts que ejecutas directamente en la consola. La ventaja de instalar un programa con estos formatos es que funciona bien casi en todas las distribuciones, en tanto que los formados precompilados para instalar programas como los .deb o .rpm están más limitados. * Revisar cuál es el shell que estamos usando y en que directorio esta instalado Shell de tipo bash Prácticas de laboratorio: analizar y ejecutar comandos para el manejo de usuarios de sistemas operativos Linux/Windows MSC. NMP / M en C. FGR 113 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Comandos para el manejo de Grupos de Usuarios chgrp Formato: chgrp [opciones] grupo archivos Descripción: Permite el cambio del grupo propietario de un archivo o directorio. Para cambiar la propiedad de grupo de un archivo o directorio hay que ser el propietario de dicho archivo o ser el usuario root. Las opciones son: -c Muestra detalladamente la acción de cambio de grupo propietario para archivo o directorio en el que se realice la acción. -f Anula los mensajes de error de los archivos o directorios a los que no puede cambiar el grupo propietario. -v Muestra detalladamente los cambios de grupo propietario. -R Cambia recursivamente la propiedad de grupo en los directorios y sus contenidos. grupo En grupo se indica cuál será el nuevo propietario. archivos En archivos se indica la lista de archivos y directorios a los que se le quiere cambiar el grupo propietario. Ejemplo: chgrp invitados p* Cambia el grupo propietario a invitados de todos los archivos que comiencen por la letra p dentro del directorio actual. MSC. NMP / M en C. FGR 114 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Comando: chown Formato: chown [opciones] usuario archivos Sistemas Operativos Descripción: Permite el cambio de usuario propietario de un archivo o directorio. Para cambiar el propietario de un archivo o directorios hay que ser el propietario de dicho archivo o ser el usuario root. Si se cambia la propiedad de un archivo sin ser el root ya no se podrá volver a obtener dicha propiedad, esta acción la tendrá que hacer el nuevo propietario o el root. Las opciones son: -c Muestra detalladamente la acción de cambio de propietario para cada archivo o directorio en el que se realice la acción. -f Anula los mensajes de error de los archivos o directorio a los que no puede cambiar el -v propietario. -R Muestra detalladamente los cambios de propietario. usuario Cambia recursivamente el usuario propietario en los directorios y sus contenidos. archivos En usuario se indica cuál va a ser el nuevo propietario. En archivos se indica la lista de archivos y directorios a los que se quiere cambiar el propietario. Ejemplos: chown psanchez tabla.txt Cambia el propietario de tabal.txt al usuario psanchez. Prácticas de laboratorio: analizar y ejecutar comandos para el manejo de grupos de usuarios de sistemas operativos Linux/Windows MSC. NMP / M en C. FGR 115 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS IV. Sistemas Operativos Instalación y configuración de servicios de los sistemas operativos (Windows y basado en UNIX). Objetivo: El alumno administrará los sistemas operativos para la instalación y configuración de los servicios. 4.1. Servicio de correo electrónico Seleccionar un programa de correo La selección de un programa de correo es principalmente una cuestión de preferencias; algunos son muy fáciles de usar, mientras que otros puede que ofrezcan funciones más complejas, como las libretas de direcciones o los datos adjuntos de archivos. En esta sección veremos varios programas sencillos y conocidos de correo que funcionan con Linux. Comando mail El programa de correo más sencillo que hay se denomina mail y se suele hallar en el directorio / bin. Este programa no tiene un editor a pantalla completa y no requiere el sistema X Window. El comando mail, parecido al programa mailx que se distribuye con otras versiones de UNIX , soporta las características básicas necesarias para redactar, enviar, enumerar y leer mensajes. ¡ATENCIÓN AL ENVIAR CORREO DESDE LA LÍNEA DE COMANDOS! Utilice el redireccionamiento con prudencia. ¡No es una idea muy buena que digamos enviar a alguien el contenido del diccionario del sistema ! Para crear y enviar correo con mail, siga estos pasos: 1. En la línea de comandos, introduzca la palabra mail seguida de la dirección de correo electrónico de destino, de este modo : # mail 2. El comando mail responderá con la indicación Subject. Introduzca una breve línea relativa al asunto: Subject: Proyecto de Programación Nexus. 3. Pulse Intro y escriba el texto de su mensaje: ¡Tengo una oportunidad inmejorable! La empresa con la que hablamos el miércoles está interesada en contratar tu equipo de programación. Por favor, llámame para confirmar si puedes atenderles. 4. Cuando haya terminado de escribir el texto, introduzca un punto (.) en una línea sola para enviar el mensaje: EOT 5. El programa mail responde imprimiendo las letras EOT (fin de texto) y enviando el mensaje. Utilice el comando mail para recuperar el correo del directorio /var/spool/mail. Para leer el correo, utilice el comando mail en la línea de comandos, así: # mail Cuando utiliza el comando mail, éste imprime una versión corta del mensaje y luego enumera los mensajes. El signo & es una indicación de la línea de comandos. Utilice in comando de una sola letra (véase la Tabla 17.2) para leer, eliminar, guardar o responder al mensaje de correo en curso, lo cual se sabe por un signo mayor que (>). Por defecto, los mensajes guardados se almacenan en un archivo llamado mbox del directorio de inicio. La siguiente tabla enumera los comandos más habituales del programa mail ; para obtener una lista completa de los comandos mail , remítase a la página man correo. MSC. NMP / M en C. FGR 116 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Comandos habituales del programa mail Tecla Específica + Moverse al siguiente mensaje y enumerarlo - Moverse al mensaje anterior y enumerarlo ? Imprimir una lista de los comandos mail R Responde al remitente d Eliminar mensaje en curso h Volver a imprimir la lista de mensajes (después de enumerar un mensaje) n Ir al mensaje siguiente y enumerarlo q Salir y guardar los mensajes en el buzón predeterminado, mbox. r Responder al remitente y a todos los destinatarios. t Escribir o enumerar el mensaje en curso. x Salir y no guardar los mensajes de mbox. Comando talk El comando talk permite una conversación entre dos usuarios al mismo tiempo, en pantalla. El formato del comando talk es el siguiente: Talk username [ttyname] Este programa que te permite tener una comunicación de manera visual, el cual copia las líneas que se escriben en la pantalla del usuario con el que ha establecido la conversación. Si desea platicar con alguien que está en le mismo sistema, entonces como username se pone el login de esa persona. Pero si se desea platicar con alguien que se encuentra en otra máquina, entonces el username de esa persona debe llevar información adicional, indicando el host en el que se encuentra: user@host Para mandar un mensaje a una persona que está trabajando en varias sesiones, debemos utilizar el argumento tíñame para indicar la terminal apropiada en que debe aparecer el mensaje. Cuando alguien hace la primera llamada, se envía el siguiente mensaje: Message from talk _Daemon@goya at 21:24... talk : connection requested by bety@goya.staff.udg.mx talk : respond with: talk bety@goya.staff.udg.mx Y el que recibe el mensaje , para poder iniciar la conversación debe contestar de la siguiente manera: goya% talk bety@.staff .udg.mx Una vez que se establece la comunicación, ambos usuarios pueden teclear mensajes al mismo tiempo, es decir, de manera simultánea. En el momento del establecimiento de la conversación la pantalla de ambos usuarios se divide en dos partes. MSC. NMP / M en C. FGR 117 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Con CTRL-L puedes reestablecer la imagen de la pantalla, esto se utiliza cuando los caracteres no se borran, o se ven incompletas o cortadas los mensajes que se envían los usuarios. Cuando se llena la pantalla de caracteres con la conversación o cuando los caracteres no aparecen en la pantalla de manera normal. Para terminar la comunicación se teclea CTRL.-C. Correo electrónico Talk permite comunicaciones en tiempo real; sin embargo, muchas veces es necesario enviar un mensaje a un usuario que no se encuentra actualmente conectado. Para ello puede utilizarse el correo electrónico. El comando talk es un programa de comunicaciones terminal-a-terminal.talk anuncia al otro usuario que se desea hablar con él. Si el nombre del otro usuario es alu123 y se teclea: $ talk alu123 El comando talk notifica a alu123 que se desea hablar con él y le solicita el visto bueno, alu123 ve en la pantalla un mensaje que le indica quien desea hablar con él , desde donde y qué debe teclear para iniciar la conversación. Si alu123 responde, talk divide la pantalla de cada terminal en una mitad superior y otra inferior. Las líneas que el usuario teclea en su terminal, aparecen en la mitad superior, y las que teclea la otra persona aparecen en la mitad inferior. Los dos pueden teclear simultáneamente y ver cada uno la salida del otro sobre su pantalla. Para finalizar la conversación basta con pulsar CTRL-C. Para mandarle un mensaje a una persona que está trabajando en varias sesiones, se debe utilizar el argumento tíñame para indicar la terminal apropiada en que debe aparecer el mensaje. Dos personas pueden establecer una conversación escribiéndose uno al otro. Cuando la otra persona recibe el mensaje de aviso de que alguien le va a enviar un mensaje, puede contestarle si es que lo desea. Ahora, desde que los dos se están mandando mensajes de manera simultánea, deben establecer una manera para saber cuándo terminó de escribir un mensaje cada quien . Ya sea algún carácter como por ejemplo -o- para indicar que ya terminaron esa frase y con –oo- para indicar que ya es el fin de la conversación. Una vez que se ha terminado de teclear el mensaje, se teclea CTRL.-D para enviarlo. 4.2. Servicio web Servidor HTTP Apache Apache Desarrollador Apache Software Foundation [1] httpd.apache.org Información general Diseñador Lanzamiento inicial MSC. NMP / M en C. FGR Robert [] McCool [] 1995 118 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Última versión estable 2.4.4 (info [2] ) 25 de febrero de 2013 Género Servidor web Programado en C Sistema operativo Multiplataforma Licencia Licencia Apache 2.0 En español ? El servidor HTTP Apache es un servidor web HTTP de código abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.1[3] y la noción de sitio virtual. Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que Behelendorf quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU, y en esos momentos la preocupación de su grupo era que llegasen las empresas y "civilizasen" el paisaje que habían creado los primeros ingenieros de internet. Además Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. En inglés, a patchy server (un servidor "parcheado") suena igual que Apache Server. El servidor Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache Software Foundation. Apache presenta entre otras características altamente configurables, bases de datos de autenticación y negociado de contenido, pero fue criticado por la falta de una interfaz gráfica que ayude en su configuración. Apache tiene amplia aceptación en la red: desde 1996, Apache, es el servidor HTTP más usado. Alcanzó su máxima cuota de mercado en 2005 siendo el servidor empleado en el 70% de los sitios web en el mundo, sin embargo ha sufrido un descenso en su cuota de mercado en los últimos años. (Estadísticas históricas y de uso diario proporcionadas por Netcraft[4]). La mayoría de las vulnerabilidades de la seguridad descubiertas y resueltas tan sólo pueden ser aprovechadas por usuarios locales y no remotamente. Sin embargo, algunas se pueden accionar remotamente en ciertas situaciones, o explotar por los usuarios locales malévolos en las disposiciones de recibimiento compartidas que utilizan PHP como módulo de Apache. Ventajas • Modular • Código abierto • Multi-plataforma • Extensible • Popular (fácil conseguir ayuda/soporte) Módulos La arquitectura del servidor Apache es muy modular. El servidor consta de una sección core y diversos módulos que aportan mucha de la funcionalidad que podría considerarse básica para un servidor web. Algunos de estos módulos son: • mod_ssl [5] - Comunicaciones Seguras vía TLS. [6] • mod_rewrite - reescritura de direcciones (generalmente utilizado para transformar páginas dinámicas como php en páginas estáticas html para así engañar a los navegantes o a los motores de búsqueda en cuanto a cómo fueron desarrolladas estas páginas). MSC. NMP / M en C. FGR 119 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos [7] • mod_dav - Soporte del protocolo WebDAV (RFC 2518). [8] • mod_deflate - Compresión transparente con el algoritmo deflate del contenido enviado al cliente. • mod_auth_ldap [9] • mod_proxy_ajp y JSP). [10] • mod_cfml [11] - Permite autentificar usuarios contra un servidor LDAP. - Conector para enlazar con el servidor Jakarta Tomcat de páginas dinámicas en Java (servlets - Conector CFML usado por Railo [12] . El servidor de base puede ser extendido con la inclusión de módulos externos entre los cuales se encuentran: • mod_cband [13] [14] • mod_perl - Control de tráfico y limitador de ancho de banda. - Páginas dinámicas en Perl. [15] • mod_php - Páginas dinámicas en PHP. [16] • mod_python - Páginas dinámicas en Python. • mod_rexx [17] - Páginas dinámicas en REXX y Object REXX. [18] • mod_ruby - Páginas dinámicas en Ruby. [19] • mod_aspdotnet - Páginas dinámicas en .NET de Microsoft (Módulo retirado). • mod_mono [20] - Páginas dinámicas en Mono • mod_security - Filtrado a nivel de aplicación, para seguridad. Uso Apache es usado principalmente para enviar páginas web estáticas y dinámicas en la World Wide Web. Muchas aplicaciones web están diseñadas asumiendo como ambiente de implantación a Apache, o que utilizarán características propias de este servidor web. Apache es el componente de servidor web en la popular plataforma de aplicaciones LAMP, junto a MySQL y los lenguajes de programación PHP/Perl/Python (y ahora también Ruby). Este servidor web es redistribuido como parte de varios paquetes propietarios de software, incluyendo la base de datos Oracle y el IBM WebSphere application server. Mac OS X integra apache como parte de su propio servidor web y como soporte de su servidor de aplicaciones WebObjects. Es soportado de alguna manera por Borland en las herramientas de desarrollo Kylix y Delphi. Apache es incluido con Novell NetWare 6.5, donde es el servidor web por defecto, y en muchas distribuciones Linux. Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a disposición en una forma segura y confiable. Un ejemplo es al momento de compartir archivos desde una computadora personal hacia Internet. Un usuario que tiene Apache instalado en su escritorio puede colocar arbitrariamente archivos en la raíz de documentos de Apache, desde donde pueden ser compartidos. Los programadores de aplicaciones web a veces utilizan una versión local de Apache con el fin de previsualizar y probar código mientras éste es desarrollado. Microsoft Internet Information Services (IIS) es el principal competidor de Apache, así como Sun Java System Web Server de Sun Microsystems y un anfitrión de otras aplicaciones como Zeus Web Server. Algunos de los más grandes sitios web del mundo están ejecutándose sobre Apache. La capa frontal (front end) del motor de búsqueda Google está basado en una versión modificada de Apache, denominada Google Web Server (GWS). Muchos proyectos de Wikimedia también se ejecutan sobre servidores web Apache. Configuración La mayor parte de la configuración se realiza en el fichero apache2.conf o httpd.conf, según el sistema donde esté corriendo. Cualquier cambio en este archivo requiere reiniciar el servidor, o forzar la lectura de los archivos de configuración nuevamente. Licencia MSC. NMP / M en C. FGR 120 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos La licencia de software bajo la cual el software de la fundación Apache es distribuido es una parte distintiva de la historia de Apache HTTP Server y de la comunidad de código abierto. La Licencia Apache permite la distribución de derivados de código abierto y cerrado a partir de su código fuente original. La Free Software Foundation no considera a la Licencia Apache como compatible con la versión 2 de la GNU General Public License (GPL), en la cual el software licenciado bajo la Apache License no puede ser integrado con software distribuido bajo la GPL: Este es software libre pero es incompatible con la GPL. La Apache Software License es incompatible con la GPL porque tiene un requerimiento específico que no está incluido en la GPL: tiene ciertos casos de terminación de patentes que la GPL no requiere. No consideramos que dichos casos de terminación de patentes son inherentemente una mala idea, pero a pesar de ello son incompatibles con la GNU [21] GPL. Sin embargo, la versión 3 de la GPL incluye una provisión (Sección 7e) que le permite ser compatible con licencias que tienen cláusulas de represalia de patentes, incluyendo a la Licencia Apache. El nombre Apache es una marca registrada y puede ser sólo utilizada con el permiso expreso del dueño de la [22] marca. Referencias [1] [2] [3] [4] http://httpd.apache.org http://www.apache.org/dist/httpd/Announcement2.4.txt RFC 2616 (http://www.ietf.org/rfc/rfc2616.txt) Netcraft (http://news.netcraft.com/) [5] http://httpd.apache.org/docs/2.2/mod/mod_ssl.html [6] http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html [7] http://httpd.apache.org/docs/2.2/mod/mod_dav.html [8] http://httpd.apache.org/docs/2.2/mod/mod_deflate.html [9] http://httpd.apache.org/docs/2.2/mod/mod_auth_ldap.html [10] http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html [11] http://www.modcfml.org [12] http://en.wikipedia.org/wiki/Railo [13] http://www.howtoforge.com/mod_cband_apache2_bandwidth_quota_throttling [14] http://perl.apache.org/ [15] http://www.php.net/manual/es/security.apache.php [16] http://www.modpython.org/ [17] http://sourceforge.net/projects/modrexx/ [18] http://www.modruby.net/en/ [19] http://httpd.apache.org/cli/ [20] http://www.mono-project.com/ASP.NET [21] Various Licenses and Comments about Them (http://www.gnu.org/philosophy/license-list.html) from GNU Enlaces externos • Sitio web del Proyecto Apache (http://httpd.apache.org) • Sitio web de Apache Software Foundation (http://www.apache.org) PHP MSC. NMP / M en C. FGR 121 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos PHP Desarrollador(es) PHP Group [1] php.net/ Información general Extensiones comunes .php, .phtml .php4 .php3 .php5 .phps Paradigma multiparadigma: imperativo, orientado a objetos, procedural, reflexivo Apareció en 1995 Diseñado por Rasmus Lerdorf Última versión estable 5.5.0 [2] (20 de junio de 2013) Tipo de dato dinámico Influido por C, C++, Perl, Java, Python Sistema operativo Multiplataforma Licencia Licencia PHP PHP es un lenguaje de programación de uso general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera la página Web resultante. PHP ha evolucionado por lo que ahora incluye también una interfaz de línea de comandos que puede ser usada en aplicaciones gráficas independientes. PHP puede ser usado en la mayoría de los servidores web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo. PHP fue creado originalmente por Rasmus Lerdorf en 1995. Actualmente el lenguaje sigue siendo desarrollado con [] nuevas funciones por el grupo PHP. Este lenguaje forma parte del software libre publicado bajo la licencia PHP que [3] es incompatible con la Licencia Pública General de GNU debido a las restricciones del uso del término PHP. Visión general PHP es un acrónimo recursivo que significa PHP Hypertext Pre-processor (inicialmente PHP Tools, o, Personal Home Page Tools). [4] Fue creado originalmente por Rasmus Lerdorf; sin embargo la implementación principal de PHP es producida ahora por The PHP Group y sirve como el estándar de facto para PHP al no haber una especificación formal. Publicado bajo la PHP License, la Free Software Foundation considera esta licencia como software libre. Puede ser desplegado en la mayoría de los servidores web y en casi todos los sistemas operativos y plataformas sin costo alguno. El lenguaje PHP se encuentra instalado en más de 20 millones de sitios web y en un millón de servidores, el número de sitios en PHP ha compartido algo de su preponderante dominio con otros nuevos lenguajes no tan poderosos desde agosto de 2005. El sitio web de Wikipedia está desarrollado en PHP. Es también el módulo Apache más popular entre las computadoras que utilizan Apache como servidor web. El gran parecido que posee PHP con los lenguajes más comunes de programación estructurada, como C y Perl, permiten a la mayoría de los programadores crear aplicaciones complejas con una curva de aprendizaje muy corta. También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones. MSC. NMP / M en C. FGR 122 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Aunque todo en su diseño está orientado a facilitar la creación de sitios webs, es posible crear aplicaciones con una interfaz gráfica para el usuario, utilizando la extensión PHP-Qt o PHP-GTK. También puede ser usado desde la línea de órdenes, de la misma manera como Perl o Python pueden hacerlo; a esta versión de PHP se la llama PHP-CLI (Command Line Interface). Cuando el cliente hace una petición al servidor para que le envíe una página web, el servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado que generará el contenido de manera dinámica (por ejemplo obteniendo información de una base de datos). El resultado es enviado por el intérprete al servidor, quien a su vez se lo envía al cliente. Mediante extensiones es también posible la generación de archivos PDF, Flash, así como imágenes en diferentes formatos. Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite. PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos, tales como Unix (y de ese tipo, como Linux o Mac OS X) y Microsoft Windows, y puede interactuar con los servidores de web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI. PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que utiliza C# y Visual Basic .NET como lenguajes), a ColdFusion de la empresa Adobe, a JSP/Java y a CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe además un entorno de desarrollo integrado comercial llamado Zend Studio. CodeGear (la división de lenguajes de programación de Borland) ha sacado al mercado un entorno de desarrollo integrado para PHP, denominado 'Delphi for PHP. También existen al menos un par de módulos para Eclipse, uno de los entornos más populares. [5] Historia Fue originalmente diseñado en Perl, con base en la escritura de un grupo de CGI binarios escritos en el lenguaje C por el programador danés-canadiense Rasmus Lerdorf en el año 1994 para mostrar su currículum vítae y guardar ciertos datos, como la cantidad de tráfico que su página web recibía. El 8 de junio de 1995 fue publicado "Personal Home Page Tools" después de que Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI. Dos programadores israelíes del Technion, Zeev Suraski y Andi Gutmans, reescribieron el analizador sintáctico (parser en inglés) en el año 1997 y crearon la base del PHP3, cambiando el nombre del lenguaje por PHP: Hypertext [] Preprocessor. Inmediatamente comenzaron experimentaciones públicas de PHP3 y fue publicado oficialmente en junio de 1998. Para 1999, Suraski y Gutmans reescribieron el código de PHP, produciendo lo que hoy se conoce [] como motor Zend. También fundaron Zend Technologies en Ramat Gan, Israel. En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend Engine 1.0. El día 13 de julio de 2007 se anunció la suspensión del soporte y desarrollo de la versión 4 de PHP, [6] a pesar de lo anunciado se ha liberado una nueva versión con mejoras de seguridad, la 4.4.8 publicada el 13 de enero del 2008 y posteriormente la versión 4.4.9 publicada el 7 de agosto de 2008. 2008. [7] Según esta noticia [8] se le dio soporte a fallos críticos hasta el 9 de agosto de [] El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0 (o Zend Engine 2). Incluye todas las ventajas que provee el nuevo Zend Engine 2 como: • Mejor soporte para la programación orientada a objetos, que en versiones anteriores era extremadamente rudimentario. • Mejoras de rendimiento. • Mejor soporte para MySQL con extensión completamente reescrita. • Mejor soporte a XML (XPath, DOM, etc.). • Soporte nativo para SQLite. • Soporte integrado para SOAP. • Iteradores de datos. MSC. NMP / M en C. FGR 123 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos • Manejo de excepciones. • Mejoras con la implementación con Oracle. Historial de lanzamiento Significado Rojo Sin soporte Verde Con soporte Azul Versión mayor Lanzamiento futuro Versión menor Fecha de lanzamiento 1 1.0.0 08-06-1995 2 2.0.0 01-11-1997 [] Considerada por sus creadores la "herramienta más rápida y sencilla" para crear páginas web dinámicas. 3 3.0.0 06-06-1998 [] Zeev Suraski y Andi Gutmans reescribieron la base para esta versión. 4 4.0.0 22-05-2000 [] Se añadió un sistema de parsing de dos fases llamado motor Zend. 4.1.0 10-12-2001 [] Se introducen 'superglobales' ($_GET, $_POST, $_SESSION, etc.) 4.2.0 22-04-2002 4.3.0 27-12-2002 4.4.0 11-07-2005 [] Se añaden páginas man para phpize y php-config . 4.4.9 07-08-2008 [9][10] Mejoras de seguridad y arreglo de bugs. Último lanzamiento de la serie PHP 4.4. 5.0.0 13-07-2004 [] Motor Zend II con un nuevo modelo de objetos. 5.1.0 24-11-2005 [] Mejoras de rendimiento con la introducción de variables de compilador para el nuevo motor de PHP. 5.2.0 02-11-2006 [] Activida extensión de filtro por defecto. Soporte JSON nativo. 5.2.17 06-01-2011 Arreglo de vulnerabilidad crítica conectada a punto flotante. 5.3.0 30-06-2009 Soporte para espacios de nombres, enlace estático en tiempo de ejecución, etiqueta de salto (goto limitada), Clausuras nativas, Soporte nativo para archivos PHP (phar), recolección de basura para referencias circulares, soporte mejorado para Windows, sqlite3, mysqlnd como reemplazo a libmysql como biblioteca para extensiones que funcionan con MySQL, fileinfo como reemplzado de mime_magic para mejor soporte MIME, extensión de Internacionalización, y etiqueta ereg obsoleta. 5.3.1 19-11-2009 Cerca de 100 bug fixes 5.3.2 04-03-2010 Gran número de bug fixes. 5.3.3 22-07-2010 Mayoritariamente arreglo de errores; FPM SAPI. 5.3.4 10-12-2010 Mejoras a FPM SAPI. 5.3.5 06-01-2011 Arreglo de vulnerabilidad crítica relacionada a punto flotante. 5.3.6 10-03-2011 Cerca de 60 bug fixes. 5 MSC. NMP / M en C. FGR Notas Llamada oficialmente "Personal Home Page Tools (PHP Tools)". Es la primera versión en usar el nombre [] "PHP". Se deshabilitan register_globals por defecto. Datos recibidos por la red no son insertados en el [] espacio de nombres global, cerrando posibles agujeros de seguridad en las aplicaciones. [][] Se introduce CLI, y CGI. [11] . 124 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos 5.3.7 18-08-2011 Esta versión se enfoca en la estabilidad con cerca de 90 bug fixes, algunos de los cuales tienen implicaciones a la seguridad. 5.3.8 23-08-2011 Esta versión arregla dos errores introducidos por la versión 5.3.7. 5.3.9 10-01-2012 Esta versión se enfoca en la estabilidad con cerca de 90 bug fixes, algunos de los cuales tienen implicaciones a la seguridad. 5.3.10 02-02-2012 Arreglo de vulnerabilidad de ejecución de código arbitrario reportada por Stefan Esser, CVE-2012-0830. 5.3.11 26-04-2012 .. 5.3.12 03-05-2012 .. 5.3.13 08-05-2012 Arreglo de vulnerabilidad para instalaciones basadas en CGI. 5.3.14 14-06-2012 ... 5.3.15 19-07-2012 ... 5.3.16 16-08-2012 ... 5.3.17 13-09-2012 ... 5.3.18 18-10-2012 ... 5.3.19 22-11-2012 ... 5.3.20 20-12-2012 ... 5.3.21 17-01-2013 ... 5.3.22 21-02-2013 ... 5.3.23 14-03-2013 ... 5.3.24 11-04-2013 ... 09-05-2013 ... 06-06-2013 ... 11-07-2013 ... 5.3.25 [12] 5.3.26 [13] 5.3.27 [14] 5.4.0 MSC. NMP / M en C. FGR 01-03-2012 Soporte para Trait y sintaxis abreviada de array. Elementos removidos: register_globals, safe_mode, allow_call_time_pass_reference, session_register(), [15] session_unregister() y session_is_registered(). Servidor web Varias incorporado. mejoras a características existentes y al rendimiento, y requerimientos de memoria menores. 125 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos 5.4.1 26-04-2012 Varios bug fixes y mejoras de seguridad. 5.4.2 03-05-2012 Parche de seguridad para arreglar vulnerabilidad del parámetro query string de PHP-CGI. 5.4.3 08-05-2012 Arreglo de vulnerabilidad para instalaciones basadas en CGI y también para la vulnerabilidad de desbordamiento de búfer para apache_request_headers() 5.4.4 14-06-2012 ... 5.4.5 19-07-2012 ... 5.4.6 16-08-2012 ... 5.4.7 13-09-2012 ... 5.4.8 18-10-2012 ... 5.4.9 22-11-2012 ... 5.4.10 20-12-2012 ... 5.4.11 17-01-2013 ... 5.4.12 21-02-2013 ... 5.4.13 14-03-2013 ... 5.4.14 11-04-2013 ... 09-05-2013 ... 06-06-2013 ... 04-07-2013 ... 5.5.0 beta3 11-04-2013 ... 5.5.0 25-04-2013 ... 09-05-2013 ... 23-05-2013 ... 09-05-2013 ... 5.4.15 [16] 5.4.16 [17] 5.4.17 [18] beta4 [19] 5.5.0 [20] RC1 5.5.0 [21] RC2 5.5.0 [22] RC3 6 5.5.0 20-06-2013 6.0.0 Sin fecha MSC. NMP / M en C. FGR Nuevos generadores para bucles, empty() soporta expresiones. Se pierde el soporte para Windows XP y [23] Windows Server2003. El desarrollo de PHP 6 ha sido retrasado porque los desarrolladores decidieron que el enfoque actual para [24] tratar cadenas Unicode no es correcto, y están considerando formas alternas para la siguiente versión. Las mejoras planeadas para PHP 6 fueron añadidas en su lugar en PHP 5.3.0 (Soporte para espacios de nombre, enlace estático en tiempo de ejecución, funciones lambda, clausuras, goto) y 5.4.0 (traits, revinculación de clausura). 126 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Sintaxis Programa Hola mundo con PHP embebido en código HTML: <!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8" /> <title> Ejemplo básico PHP</title> </head> <body> <?php echo 'Hola mundo'; ?> </body> </html> El intérprete de PHP solo ejecuta el código que se encuentra entre sus delimitadores. Los delimitadores más comunes son <?php para abrir una sección PHP y ?> para cerrarla. El propósito de estos delimitadores es separar el código PHP del resto de código, como por ejemplo el HTML. [25] Las variables se prefijan con el símbolo del dólar ($) y no es necesario indicar su tipo. Las variables, a diferencia de las funciones, distinguen entre mayúsculas y minúsculas. Las cadenas de caracteres pueden ser encapsuladas tanto en dobles comillas como en comillas simples, aunque en el caso de las primeras, se pueden insertar variables en la cadena directamente, sin necesidad de concatenación. Los comentarios se pueden escribir bien con dos barras al principio de la línea, o con una almoadilla. También permite comentarios multi-línea encapsulados en /* */. En cuanto a las palabras clave, PHP comparte con la mayoría de otros lenguajes con sintaxis C las condiciones con if, los bucles con for y while y los retornos de funciones. Como es habitual en este tipo de lenguajes, las sentencias deben acabar con punto y coma (;). Características de PHP Características • Orientado al desarrollo de aplicaciones web dinámicas con acceso a información almacenada en una base de datos. • Es considerado un lenguaje fácil de aprender, ya que en su desarrollo se simplificaron distintas especificaciones, como es el caso de la definición de las variables primitivas, ejemplo que se hace evidente en el uso de php arrays. • El código fuente escrito en PHP es invisible al navegador web y al cliente, ya que es el servidor el que se encarga de ejecutar el código y enviar su resultado HTML al navegador. Esto hace que la programación en PHP sea segura y confiable. • Capacidad de conexión con la mayoría de los motores de base de datos que se utilizan en la actualidad, destaca su conectividad con MySQL y PostgreSQL. • Capacidad de expandir su potencial utilizando módulos (llamados ext's o extensiones). • Posee una amplia documentación en su sitio web oficial, entre la cual se destaca que todas las funciones del sistema están explicadas y ejemplificadas en un único archivo de ayuda. • Es libre, por lo que se presenta como una alternativa de fácil acceso para todos. • Permite aplicar técnicas de programación orientada a objetos. Incluso aplicaciones como Zend framework, empresa que desarrolla PHP, están totalmente desarrolladas mediante esta metodología. MSC. NMP / M en C. FGR 127 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos • No requiere definición de tipos de variables aunque sus variables se pueden evaluar también por el tipo que estén manejando en tiempo de ejecución. • Tiene manejo de excepciones (desde PHP5). • Si bien PHP no obliga a quien lo usa a seguir una determinada metodología a la hora de programar, aún haciéndolo, el programador puede aplicar en su trabajo cualquier técnica de programación o de desarrollo que le permita escribir código ordenado, estructurado y manejable. Un ejemplo de esto son los desarrollos que en PHP se han hecho del patrón de diseño Modelo Vista Controlador (MVC), que permiten separar el tratamiento y acceso a los datos, la lógica de control y la interfaz de usuario en tres componentes independientes. • Debido a su flexibilidad ha tenido una gran acogida como lenguaje base para las aplicaciones WEB de manejo de contenido, y es su uso principal. Inconvenientes • Como es un lenguaje que se interpreta en ejecución, para ciertos usos puede resultar un inconveniente que el código fuente no pueda ser ocultado. La ofuscación es una técnica que puede dificultar la lectura del código pero no necesariamente impide que el código sea examinado. • Debido a que es un lenguaje interpretado, un script en PHP suele funcionar considerablemente más lento que su equivalente en un lenguaje de bajo nivel, sin embargo este inconveniente se puede minimizar con técnicas de cache tanto en archivos como en memoria. • Las variables al no ser tipificadas dificulta a los diferentes IDEs para ofrecer asistencias para el tipificado del código, aunque esto no es realmente un inconveniente del lenguaje en sí. Esto es solventado por Zend Studio añadiendo un comentario con el tipo a la declaración de la variable. XAMPP, LAMP, WAMP, MAMP, UWAMP XAMPP es un servidor independiente de plataforma, software libre, que consiste principalmente en la base de datos MySQL, el servidor Web Apache y los intérpretes para lenguajes de script: PHP y Perl. El nombre proviene del acrónimo de X (para cualquiera de los diferentes sistemas operativos), Apache, MySQL, PHP, Perl. El programa está liberado bajo la licencia GNU y actúa como un servidor Web libre, fácil de usar y capaz de interpretar páginas dinámicas. Actualmente XAMPP esta disponible para Microsoft Windows, GNU/Linux, Solaris, y MacOS X. LAMP presenta una funcionalidad parecida a XAMPP, pero enfocada en Linux, y WAMP lo hace enfocado en Windows. Principales sitios desarrollados con PHP PHP es utilizado en millones de sitios, entre los más destacados se encuentran Wikipedia.org, Facebook.com y Wordpress.com. Referencias [1] http://www.php.net/ [4] FAQ General (http://us.php.net/manual/en/faq.general.php) PHP.net. [5] Existen tanto PHPEclipse como PDT for Eclipse. Véanse http://www.phpeclipse.com y http://www.eclipse.org/pdt [6] PHP: News Archives 2007 (http://www.php.net/archive/2007.php) (en inglés) Consultado 9 de diciembre de 2007 [7] PHP: News Archives 2008 (http://www.php.net/archive/2008.php#id2008-08-07-1) (en inglés) [8] Archivo: 13 Julio de 2007 (http://www.php.net/archive/2007.php#2007-07-13-1) PHP.net. [11] http://www.php.net/ChangeLog-5.php#5.3.1 MSC. NMP / M en C. FGR 128 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Enlaces externos Wikilibros • Wikilibros alberga un libro o manual sobre Programación en PHP. • Sitio web oficial de PHP (http://www.php.net) (en inglés) • Tutorial de PHP y Mysql (http://paginaweb2.com/cat-php-y-mysql-6) • Manual oficial en español (http://docs.php.net/manual/es) SQL SQL Desarrollador(es) IBM ISO/IEC 9075-1:2012 [1] Información general Paradigma Multiparadigma Apareció en 1974 Diseñado por Donald D. Chamberlin Raymond F. Boyce Última versión estable SQL:2012 (2012) Tipo de dato Estático, Fuerte Implementaciones Varias Dialectos SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2012 Influido por Datalog Ha influido a Agena, CQL, LINQ, Windows PowerShell[cita requerida] Sistema operativo multiplataforma SQL Desarrollador IBM ISO/IEC 9075-1:2008 [1] Información general Extensión de archivo .sql Tipo de MIME application/x-sql Lanzamiento inicial 1986 Última versión SQL:2012 2012 Tipo de formato Base de datos Estándar(es) ISO/IEC 9075 Formato abierto MSC. NMP / M en C. FGR 129 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos El lenguaje de consulta estructurados o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar de forma sencilla información de interés de bases de datos, así como hacer cambios en ella. Orígenes y evolución Los orígenes del SQL están ligados a los de las bases de datos relacionales. En 1970 E. F. Codd propone el modelo relacional y asociado a este un sublenguaje de acceso a los datos basado en el cálculo de predicados. Basándose en estas ideas, los laboratorios de IBM definen el lenguaje SEQUEL (Structured English Query Language) que más tarde sería ampliamente implementado por el sistema de gestión de bases de datos (SGBD) experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial. El SEQUEL terminaría siendo el predecesor de SQL, siendo este una versión evolucionada del primero. El SQL pasa a ser el lenguaje por excelencia de los diversos sistemas de gestión de bases de datos relacionales surgidos en los años siguientes y es por fin estandarizado en 1986 por el ANSI, dando lugar a la primera versión estándar de este lenguaje, el "SQL-86" o "SQL1". Al año siguiente este estándar es también adoptado por la ISO. Sin embargo, este primer estándar no cubre todas las necesidades de los desarrolladores e incluye funcionalidades de definición de almacenamiento que se consideró suprimirlas. Así que, en 1992, se lanzó un nuevo estándar ampliado y revisado del SQL llamado "SQL-92" o "SQL2". En la actualidad el SQL es el estándar de facto de la inmensa mayoría de los SGBD comerciales. Y, aunque la diversidad de añadidos particulares que incluyen las distintas implementaciones comerciales del lenguaje es amplia, el soporte al estándar SQL-92 es general y muy amplio. El ANSI SQL sufrió varias revisiones y agregados a lo largo del tiempo: Año Nombre 1986 SQL-86 Alias SQL-87 1989 SQL-89 1992 SQL-92 Comentarios Primera publicación hecha por ANSI. Confirmada por ISO en 1987. Revisión menor. SQL2 Revisión mayor. 1999 SQL:1999 SQL2000 Se agregaron expresiones regulares, consultas recursivas (para relaciones jerárquicas), triggers y algunas características orientadas a objetos. 2003 SQL:2003 2006 SQL:2006 Introduce algunas características de XML, cambios en las funciones, estandarización del objeto sequence y de las [2] columnas autonumericas. (Ver Eisenberg et al.: SQL:2003 Has Been Published .) ISO/IEC 9075-14:2006 Define las maneras en las cuales el SQL se puede utilizar conjuntamente con XML. Define maneras de importar y guardar datos XML en una base de datos SQL, manipulándolos dentro de la base de datos y publicando el XML y los datos SQL convencionales en forma XML. Además, proporciona facilidades que permiten a las aplicaciones integrar dentro de su código SQL el uso de XQuery, lenguaje de consulta XML publicado por el W3C (World Wide Web Consortium) para acceso concurrente a datos ordinarios SQL y documentos XML. 2008 SQL:2008 MSC. NMP / M en C. FGR Permite el uso de la cláusula ORDER BY fuera de las definiciones de los cursores. Incluye los disparadores del tipo INSTEAD OF. Añade la sentencia TRUNCATE. (Ver [3].) 130 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Características generales del SQL El SQL es un lenguaje de acceso a bases de datos que explota la flexibilidad y potencia de los sistemas relacionales y permite así gran variedad de operaciones. Es un lenguaje declarativo de "alto nivel" o "de no procedimiento" que, gracias a su fuerte base teórica y su orientación al manejo de conjuntos de registros —y no a registros individuales— permite una alta productividad en codificación y la orientación a objetos. De esta forma, una sola sentencia puede equivaler a uno o más programas que se utilizarían en un lenguaje de bajo nivel orientado a registros. SQL también tiene las siguientes características: • Lenguaje de definición de datos: El LDD de SQL proporciona comandos para la definición de esquemas de relación, borrado de relaciones y modificaciones de los esquemas de relación. • Lenguaje interactivo de manipulación de datos: El LMD de SQL incluye lenguajes de consultas basado tanto en álgebra relacional como en cálculo relacional de tuplas. • Integridad: El LDD de SQL incluye comandos para especificar las restricciones de integridad que deben cumplir los datos almacenados en la base de datos. • Definición de vistas: El LDD incluye comandos para definir las vistas. • Control de transacciones: SQL tiene comandos para especificar el comienzo y el final de una transacción. • SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar instrucciones de SQL en lenguajes de programación como: C++, C, Java, Cobol, Pascal y Fortran. • Autorización: El LDD incluye comandos para especificar los derechos de acceso a las relaciones y a las vistas. Tipos de Datos Los tipos de datos básicos de SQL son: • Date: una fecha de calendario que contiene el año (de cuatro cifras), el mes y el día. • Time: La hora del día en horas minutos segundos (el valor predeterminado es 0). • Timestamp: la combinación de Date y Time. Optimización Como ya se dijo antes, y suele ser común en los lenguajes de acceso a bases de datos de alto nivel, el SQL es un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y no cómo conseguirlo, por lo que una sentencia no establece explícitamente un orden de ejecución. El orden de ejecución interno de una sentencia puede afectar gravemente a la eficiencia del SGBD, por lo que se hace necesario que éste lleve a cabo una optimización antes de su ejecución. Muchas veces, el uso de índices acelera una instrucción de consulta, pero ralentiza la actualización de los datos. Dependiendo del uso de la aplicación, se priorizará el acceso indexado o una rápida actualización de la información. La optimización difiere sensiblemente en cada motor de base de datos y depende de muchos factores. Existe una ampliación de SQL conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el acceso a bases de datos difusas, usando la lógica difusa. Este lenguaje ha sido implementado a nivel experimental y está evolucionando rápidamente. MSC. NMP / M en C. FGR 131 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Lenguaje de definición de datos (DDL) El lenguaje de definición de datos (en inglés Data Definition Language, o DDL), es el que se encarga de la modificación de la estructura de los objetos de la base de datos. Incluye órdenes para modificar, borrar o definir las tablas en las que se almacenan los datos de la base de datos. Existen cuatro operaciones básicas: CREATE, ALTER, DROP y TRUNCATE. ALTER | MODIFICAR Este comando permite modificar la estructura de un objeto. Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, modificar un trigger, etc. Ejemplo (agregar columna a una tabla) ALTER TABLE 'NOMBRE_TABLA' ADD NUEVO_CAMPO INT UNSIGNED; DROP | ELIMINAR Este comando elimina un objeto de la base de datos. Puede ser una tabla, vista, índice, trigger, función, procedimiento o cualquier otro objeto que el motor de la base de datos soporte. Se puede combinar con la sentencia ALTER. Ejemplo DROP TABLE 'NOMBRE_TABLA';. TRUNCATE | BORRAR TABLA Este comando trunca todo el contenido de una tabla. La ventaja sobre el comando DROP, es que si se quiere borrar todo el contenido de la tabla, es mucho más rápido, especialmente si la tabla es muy grande. La desventaja es que TRUNCATE sólo sirve cuando se quiere eliminar absolutamente todos los registros, ya que no se permite la cláusula WHERE. Si bien, en un principio, esta sentencia parecería ser DML (Lenguaje de Manipulación de Datos), es en realidad una DDL, ya que internamente, el comando TRUNCATE borra la tabla y la vuelve a crear y no ejecuta ninguna transacción. Ejemplo TRUNCATE TABLE 'NOMBRE_TABLA'; Lenguaje de manipulación de datos DML(Data Manipulation Language) Definición Un lenguaje de manipulación de datos (Data Manipulation Language, o DML en inglés) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado. El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. MSC. NMP / M en C. FGR 132 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos INSERT | INSERTAR Una sentencia INSERT de SQL agrega uno o más registros a una (y sólo una) tabla en una base de datos relacional. Forma básica INSERT INTO 'tabla' ('columna1',['columna2,... ']) VALUES ('valor1', ['valor2,...']) Las cantidades de columnas y valores deben ser iguales. Si una columna no se especifica, le será asignado el valor por omisión. Los valores especificados (o implícitos) por la sentencia INSERT deberán satisfacer todas las restricciones aplicables. Si ocurre un error de sintaxis o si alguna de las restricciones es violada, no se agrega la fila y se devuelve un error. Ejemplo INSERT INTO agenda_telefonica (nombre, numero) VALUES ('Roberto Jeldrez', 4886850); Cuando se especifican todos los valores de una tabla, se puede utilizar la sentencia acortada: INSERT INTO nombreTabla VALUES ('valor1', ['valor2,...']) Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas de la tabla 'agenda_telefonica'): INSERT INTO agenda_telefonica VALUES ('Jhonny Aguiar', 080473968); Formas avanzadas Una característica de SQL (desde SQL-92) es el uso de constructores de filas para insertar múltiples filas a la vez, con una sola sentencia SQL: INSERT INTO ''tabla'' (''columna1'', [''columna2,... '']) VALUES (''valor1a'', [''valor1b,...'']), (''value2a'', [''value2b,...'']),...; Esta característica es soportada por DB2, PostgreSQL (desde la versión 8.2), MySQL, y H2. Ejemplo (asumiendo que 'nombre' y 'número' son las únicas columnas en la tabla 'agenda_telefonica'): INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850'), ('Alejandro Sosa', '4556550'); Que podía haber sido realizado por las sentencias INSERT INTO agenda_telefonica VALUES ('Roberto Fernández', '4886850'); INSERT INTO agenda_telefonica VALUES ('Alejandro Sosa', '4556550'); Notar que las sentencias separadas pueden tener semántica diferente (especialmente con respecto a los triggers), y puede tener diferente rendimiento que la sentencia de inserción múltiple. Para insertar varias filas en MS SQL puede utilizar esa construcción: INSERT INTO phone_book SELECT 'John Doe', '555-1212' UNION ALL SELECT 'Peter Doe', '555-2323'; MSC. NMP / M en C. FGR 133 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Tenga en cuenta que no se trata de una sentencia SQL válida de acuerdo con el estándar SQL (SQL: 2003), debido a la cláusula subselect incompleta. Para hacer lo mismo en Oracle se usa DUAL TABLE, siempre que se trate de solo una simple fila: INSERT INTO phone_book SELECT 'John Doe', '555-1212' FROM DUAL UNION ALL SELECT 'Peter Doe','555-2323' FROM DUAL Una implementación conforme al estándar de esta lógica se muestra el siguiente ejemplo, o como se muestra arriba (no aplica en Oracle): INSERT INTO phone_book SELECT 'John Doe', '555-1212' FROM LATERAL ( VALUES (1) ) AS t(c) UNION ALL SELECT 'Peter Doe','555-2323' FROM LATERAL ( VALUES (1) ) AS t(c) Copia de filas de otras tablas Un INSERT también puede utilizarse para recuperar datos de otros, modificarla si es necesario e insertarla directamente en la tabla. Todo esto se hace en una sola sentencia SQL que no implica ningún procesamiento intermedio en la aplicación cliente. Un SUBSELECT se utiliza en lugar de la cláusula VALUES. El SUBSELECT puede contener JOIN, llamadas a funciones, y puede incluso consultar en la misma TABLA los datos que se inserta. Lógicamente, el SELECT se evalúa antes que la operación INSERT esté iniciada. Un ejemplo se da a continuación. INSERT INTO phone_book2 SELECT * FROM phone_book WHERE name IN ('John Doe', 'Peter Doe') Una variación es necesaria cuando algunos de los datos de la tabla fuente se está insertando en la nueva tabla, pero no todo el registro. (O cuando los esquemas de las tablas no son iguales.) INSERT INTO phone_book2 ( [name], [phoneNumber] ) SELECT [name], [phoneNumber] FROM phone_book WHERE name IN ('John Doe', 'Peter Doe') El SELECT produce una tabla (temporal), y el esquema de la tabla temporal debe coincidir con el esquema de la tabla donde los datos son insertados. MSC. NMP / M en C. FGR 134 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos UPDATE Una sentencia UPDATE de SQL es utilizada para modificar los valores de un conjunto de registros existentes en una tabla. Ejemplo UPDATE My_table SET field1 = 'updated value asd' WHERE field2 = 'N'; DELETE Una sentencia DELETE de SQL borra uno o más registros existentes en una tabla. Forma básica DELETE FROM tabla WHERE columna1 = 'valor1' Ejemplo DELETE FROM My_table WHERE field2 = 'N'; Recuperación de clave Los diseñadores de base de datos que usan una clave suplente como la clave principal para cada tabla, se ejecutará en el ocasional escenario en el que es necesario recuperar automáticamente la base de datos, generando una clave primaria de una sentencia SQL INSERT para su uso en otras sentencias SQL. La mayoría de los sistemas no permiten sentencias SQL INSERT para retornar fila de datos. Por lo tanto, se hace necesario aplicar una solución en tales escenarios. Implementaciones comunes incluyen: • Utilizando un procedimiento almacenado específico de base de datos que genera la clave suplente, realice la operación INSERT, y finalmente devuelve la clave generada. • Utilizando una sentencia SELECT específica de base de datos, sobre una tabla temporal que contiene la última fila insertada. DB2 implementa esta característica de la siguiente manera: SELECT * FROM NEW TABLE ( INSERT INTO phone_book VALUES ( 'Cristobal Jeldrez','0426.817.10.30' ) ) AS t • Utilizando una sentencia SELECT después de la sentencia INSERT con función específica de base de datos, que devuelve la clave primaria generada por el registro insertado más recientemente. • Utilizando una combinación única de elementos del original SQL INSERT en una posterior sentencia SELECT. • Utilizando un GUID en la sentencia SQL INSERT y la recupera en una sentencia SELECT. • Utilizando la función de PHP mysql_insert_id() de MySQL después de la sentencia INSERT. • Utilizando un INSERT con la cláusula RETURNING para Oracle, que sólo se puede utilizar dentro de un PL/SQL bloque, en el caso de PostgreSQL se puede usar también tanto con SQL como con PL/SQL. INSERT INTO phone_book VALUES ( 'Cristobal Jeldrez','0426.817.10.30' ) RETURNING phone_book_id INTO v_pb_id • En el caso de MS SQL se puede utilizar la siguiente instrucción: Set NoCount On; INSERT INTO phone_book VALUES ( 'Cristobal Jeldrez','0426.817.10.30' ); Select @@Identity as ID MSC. NMP / M en C. FGR 135 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Disparadores Los disparadores, también conocidos como desencadenantes (triggers en inglés) son definidos sobre la tabla en la que opera la sentencia INSERT, los desencadenantes son evaluados en el contexto de la operación. Desencadenantes BEFORE INSERT permiten la modificación de los valores que se insertará en la tabla. Desencadenantes AFTER INSERT no puede modificar los datos de ahora en adelante, pero se puede utilizar para iniciar acciones en otras tablas, por ejemplo para aplicar mecanismos de auditoría. Sistemas de gestión de base de datos Los sistemas de gestión de base de datos con soporte SQL más utilizados son, por orden alfabético: • DB2 • Firebird • HSQL • Informix • Interbase • MariaDB • Microsoft SQL Server • MySQL • Oracle • PostgreSQL • PervasiveSQL • SQLite • Sybase ASE Referencias [1] http://www.iso.org/iso/catalogue_detail.htm?csnumber=45498 [2] http://www.acm.org/sigmod/record/issues/0403/index.html#standards [3] http://iablog.sybase.com/paulley/2008/07/sql2008-now-an-approved-iso-international-standard/ Links externos • Tutorial de SQL usando MsSQLServer (https://www.youtube.com/watch?v=WGja87_isbo& list=PLA298FFE8D125FE75) por Jesús Ambriz Meza. MSC. NMP / M en C. FGR 136 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS 4.3. Sistemas Operativos Servicios de impresión Common Unix Printing System Common Unix Printing System Desarrollador Easy Software Products [1] www.cups.org Información general Diseñador Michael Sweet (Easy Software Products) Lanzamiento inicial 9 de junio de 1999 Última versión estable 1.6.1 27 de julio de 2012 Género Servidor de impresión Sistema operativo tipo-Unix Licencia GNU GPL GNU LGPL En español ? Common Unix Printing System (Sistema de impresión común de Unix, abreviado CUPS) es un sistema de impresión modular para sistemas operativos de tipo Unix que permite que un computador actúe como servidor de impresión. Un computador que ejecuta CUPS actúa como un servidor que puede aceptar tareas de impresión desde otros computadores clientes, los procesa y los envía al servidor de impresión apropiado. CUPS está compuesto por una cola de impresión con su planificador, un sistema de filtros que convierte datos para imprimir hacia formatos que la impresora conozca, y un sistema de soporte que envía los datos al dispositivo de impresión. CUPS utiliza el protocolo IPP (Internet Printing Protocol) como base para el manejo de tareas de impresión y de colas de impresión. También provee los comandos tradicionales de línea de comandos de impresión de los sistemas Unix, junto a un soporte limitado de operaciones bajo el protocolo server message block (SMB). Los controladores de dipositivos de impresión que CUPS provee pueden ser configurados utilizando archivos de texto con formato PostScript Printer Description (PPD) de Adobe Systems. Existen varias interfaces de usuario para diferentes plataformas para configurar CUPS; cuenta también con una interfaz como aplicación Web. CUPS es software libre y se distribuye bajo licencia GNU General Public License y GNU Lesser General Public License, versión 2. MSC. NMP / M en C. FGR 137 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Historia Michael Sweet, dueño de Easy Software Products, comenzó a desarrollar CUPS en 1997. Las primeras versiones públicas beta aparecieron en 1999. [2] El diseño original de CUPS usaba el protocolo Line Printer Daemon protocol (LPD), pero debido a limitaciones en el protocolo e incompatibilidades entre marcas, se optó cambiar por el protocolo Internet Printing Protocol (IPP). Cups fue rápidamente adoptado como el sistema de impresión por defecto en varias distribuciones Linux. En marzo de 2002, la empresa Apple Inc. adoptó CUPS como el sistema de impresión en el sistema operativo Mac OS X 10.2. Sweet y compró el código fuente de CUPS. [3] En febrero de 2007, Apple Inc. empleó al desarrollador Michael [4] Visión general CUPS provee un mecanismo que permite que los trabajos de impresión sean enviados a impresoras de manera estandarizada. La información es enviada planificador [5] quien envía el trabajo a un sistema de filtros que convierte el trabajo [6] a un formato que la impresora comprende. El sistema de filtros luego envía los datos a un backend —un filtro especial que envía datos de impresora a un periférico o una conexión de red. [7] El sistema hace un uso extensivo del lenguaje PostScript y de rasterización de los datos, para convertir los datos recibidos a un formato aceptado por la impresora. CUPS tiene como ventaja principal ser un sistema de impresión estandarizado y modularizado, capaz de procesar diferentes formatos de datos en el servidor de impresión. Antes de CUPS, era difícil encontrar un sistema de impresión estandarizado capaz de adaptarse a la gran gama de variedades de impresoras existentes en el mercado, utilizando cada una su propio lenguaje de impresión y formatos. Como ejemplo: los sistemas de impresión de System V y de Berkeley fueron durante mucho tiempo incompatibles uno con el otro, requiriendo scripts complicados y arreglos varios para lograr convertir el formato de datos desde el programa a un formato imprimible. Normalmente no se lograba detectar el formato de archivo que estaba siendo enviado a la impresora, con lo que no se podía corregir y convertir automáticamente el flujo de datos. Además se ejecutaba la conversión de datos en cada estación de trabajo y no en un servidor central. CUPS permite más fácilmente, a los fabricantes de impresoras y a los desarrolladores de controladores, crear controladores que funcionen nativamente en el servidor de impresión. El procesamiento ocurre en el servidor, permitiendo sistemas de impresión basadas en red mucho más sencillas que con otros sistemas de impresión Unix. Cuando es utilizado con Samba, pueden ser utilizados las impresoras en computadoras Windows remotas y controladores genéricos PostScript pueden ser utilizados para imprimir a través de la red. Planificador EL planificador de CUPS implementa Internet Printing Protocol (IPP) sobre HTTP/1.1. Una aplicación de ayuda (cups-lpd) convierte peticiones de LPD a IPP. El planificador también provee una interfaz web para administrar los trabajos de impresión, la configuración del servidor y para brindar documentación de CUPS mismo. [5] [8] • Un módulo de autorización controla cuáles mensajes de IPP y HTTP pueden pasar a través del sistema. • Una vez que los paquetes IPP/HTTP han sido autorizados son enviados al módulo cliente, quién escucha y atiende conexiones entrantes. El módulo cliente es también responsable de ejecutar programas CGI externos, según sea necesario para soportar impresoras web, clases y el monitoreo y administración de estado de los trabajos de impresión. [9] MSC. NMP / M en C. FGR 138 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos • Una vez que éste módulo ha procesado sus solicitudes, las envía al módulo IPP quién ejecuta una validación de Uniform Resource Identifier (URI) previniendo que un cliente esquivar algún control de acceso o de autenticación en el servidor HTTP. [10] El URI es una cadena de caracteres que indica un nombre o dirección que puede ser utilizada para referir un recurso -abstracto o físico- en una red. El planificador permite la utilización de clases de impresoras. Las aplicaciones pueden enviar peticiones a grupos de [11] impresoras en una clase, permitiendo al planficador redirigir el trabajo a la primer impresora libre de ésa clase. • Un módulo de trabajos (jobs en inglés) gestiona los trabajos de impresión, enviándolos al filtro y proceso backend para conversión final e impresión, monitoreando además los mensajes de estado provenientes de éstos [12] procesos. • El planificador de CUPS utiliza un módulo configuración, quien analiza archivos de configuración, inicializa las estructuras de datos de CUPS, y es quien inicia y detiene el programa CUPS. Este módulo de configuración detendrá el servicio de CUPS durante el procesamiento del archivo de configuración para luego reiniciar el [13] servicio al finalizar el procesamiento. • Un módulo de bitácora (logging module en inglés) se encarga de registrar los eventos de acceso, error y registros de páginas. • El módulo principal (main en inglés) se encarga de servir las peticiones de entrada/salida a tiempo por parte de las conexiones clientes, vigilar si hay señales, manejar errores y finalizaciones de procesos hijos, y de recargar los archivos de configuración del servidor según sea necesario. [14] Otros módulos utilizados por el planificador son: • el módulo Mime, encargado de una base de datos de tipos y de conversión Multipurpose Internet Mail Extensions (MIME), utilizado en el proceso de filtrado que convierte los datos recibidos a un formato adecuado para la [15] impresora [16] • el módulo PPD encargado de manejar una lista de archivos PPD PostScript Printer Description • el módulo periféricos quien administra una lista de periféricos disponibles en el sistema [18] • y un módulo impresoras encargado de las impresoras y PPDs dentro de CUPS. [17] Sistema de filtrado Una de de las principales ventajas de CUPS es que puede procesar una variedad de formatos de datos en el servidor de impresiones. Convierte la información del trabajo de impresión al lenguaje/formato destino de la impresora a través de una serie de [19][20] filtros. Lo hace utilizando tipos de MIME, siendo éste un estándar web para el formato de correo electrónico, pero muy útil para permitir que CUPS determine el tipo del archivo que está siendo procesado. Base de datos MIME Luego de que un trabajo de impresión ha sido asignado al planificador, es reenviado al sistema de filtrados de CUPS. Éste convierte los datos a un formato adecuado para la impresora. El demonio CUPS carga durante el inicio dos Bases de datos MIME: • mime.types define los tipos de archivos conocidos, de los cuales CUPS acepta datos CUPS permite que diferentes datos sean enviados al servidor CUPS y ser convertidos a un formato que la impresora entienda y sea capaz de imprimir. • mime.convs define las aplicaciones que deben procesar cada tipo MIME en particular. [21] MSC. NMP / M en C. FGR 139 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos El archivo mime.types utiliza la siguiente sintaxis: mimetype { [file-extensions] | [pattern-match] } Por ejemplo, para detectar un archivo HTML se utilizaría la siguiente entrada: text/html html htm \ printable(0,1024) + (string(0,"<HTML>") string(0,"<!DOCTYPE")) La segunda línea une el contenido del archivo al tipo MIME especificado, determinando que el primero kilobyte de texto en el archivo contiene caracteres imprimibles y que éstos incluyen html. Si el pattern de arriba es coincidente, será tildado el archivo como de tipo MIME text/html. [22] El archivo mime.convs utiliza la siguiente sintaxis: source destination cost program El campo source es el tipo MIME determinado al revisar el archivo mime.types, mientras que el campo destination lista el tipo de salida solicitada y determina qué aplicación debe ser utilizada. Esto también es obtenido desde mime.types. El campo cost asiste en la selección del conjunto de filtros al convertir el archivo. El último campo, program, determina los programas de filtros a ser utilizados para ejecutar la conversión de datos. [23] Algunos ejemplos: text/plain application/postscript 50 texttops application/vnd.cups-postscript application/vnd.cups-raster 50 pstoraster image/* application/vnd.cups-postscript 50 imagetops image/* application/vnd.cups-raster 50 imagetoraster MSC. NMP / M en C. FGR 140 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Procesos de filtrados El proceso de filtrado se ejecuta tomando como entrada datos preformateados con seis argumentos: nombre de la cola de impresión, job ID del trabajo de impresión, nombre de usuario, nombre del trabajo, número de copias, opciones de impresión, y nombre de archivo (aunque éste no es necesario si ha sido redireccionado desde entrada estándar. [20] Luego determina el tipo de dato de la entrada y el filtro a ser usado a través del uso de la base de datos MIME. Por ejemplo datos de imagen que será detectada y procesada a través de un filtro particular y datos HTML detectados y procesados a través de otro filtro. Ésta información puede ser o bien convertido en datos PostScript o directamente en datos rasterizados. Si es convertido a PostScript, entonces es aplicado un filtro adicional llamado prefiltro, quien corre los datos PostScript a través de otro conversor PostScript para poder incluir opciones específicas de la impresora - por ejemplo rango de [24] páginas a imprimirse, modo n-up y otras opciones específicas del periférico. Luego del pre-filtrado pueden ser enviados los datos directamente al backend de CUPS si es utilizada una impresora PostScript, o puede ser desviado a algún otro filtro como Foomatic de linuxprinting.org. Alternativamente puede ser pasado a Ghostscript, quien [25] convierte el PostScript en un formato intermedio CUPS-raster Éste formato rasterizado intermedio es luego pasado a un filtro final quien convierte los datos rasterizados en un formato específico de la impresora. Los filtro por defecto incluidos en CUPS son: • rasterizado a PCL • rasterizado a ESC/P o ESC/P2 (un lenguaje de impresoras Epson, ahora ampliamente superado por su nuevo formato ESC/P-Raster) • rasterizado a Dymo (otro fabricante de impresoras) • otros lenguajes propietarios como GDI o SPL (Samsung Printer Language) tienen soporte bajo Splix, un traductor [26] de rasterizado a SPL. Igualmente, hay varias otras alternativas que pueden ser utilizadas junto con CUPS. Easy Software Products (ESP), creadores de CUPS, han publicado sus propios filtros CUPS; Gutenprint (anteriormente conocido como Gimp-Print) es un una gama de controladores de impresoras de alta calidad para una gran mayoría de las impresoras de chorro de tinta (inkjet), y Turbo-Print para Linux tiene otra gama de controladores de alta calidad. Backends Los "backends" son las maneras en que la información es enviada a la impresora. Hay varios backends disponibles para CUPS: Puertos paralelo, serial y USB, como también a través de la red mediante los protocolos IPP, Jet Direct (AppSocket), Line Printer Daemon (LPD) y SMB. Compatibilidad CUPS provee comandos de impresión de System V y de Berkley, para poder utilizar los comandos tradicionales con CUPS. Escucha en el puerto 515, puerto tradicional de LPD (lo trata como un 'backend'). Cuando CUPS está instalado, se instalan los comandos lp del sistema de impresión de System V y lpr de Berkeley printing system como aplicaciones compatibles. Esto permite tener una interfaz estándar con CUPS mientras se permite máxima compatibilidad con las aplicaciones existentes que se basan en éstos sistemas de impresión. Apple Computer está utilizando CUPS como sistema de impresión en su sistema operativo Mac OS X a partir de la versión:10.2 (Jaguar) MSC. NMP / M en C. FGR 141 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Herramientas de Interfaz de Usuario Hay varias herramientas para ayudar en la configuración de CUPS. Interfaz web para administrar CUPS Para administrar CUPS se cuenta con una interfaz web corriendo sobre [27] puerto 631. Extremadamente útil en organizaciones que deben monitorear trabajos de impresión y crear colas de impresión e impresoras remotamente. CUPS 1.0 proveía una interfaz web sencilla para monitorear clases, trabajos e impresoras. CUPS 1.1 sustituyó esta interfaz con una interfaz de administración que permite agregar, modificar, eliminar, configurar y controlar clases, trabajos e impresoras. CUPS 1.2 tiene una interfaz web modernizada, caracterizada por Interfaz web de CUPS 1.4 b2. mejorada legibilidad y diseño, soporte a descubrimiento automático de impresoras y un mejor acceso a las bitácoras del sistema y a seteos avanzados. CUPS 1.4 actualiza la interfaz web con un diseño mas atractivo e intuitivo, agregando nuevas funciones como la capacidad de limpiar cabezales. GNOME El GNOME CUPS Manager puede ser utilizado para agregar nuevas impresoras, y para administrar las impresoras CUPS con sus colas. Existen además otras aplicaciones (de terceras partes) para administrar las impresiones, por ejemplo GtkLP GtkLPQ, o GtkPSproc [29] [28] y su herramineta asociada . EL grupo de bibliotecas para desarrollar interfaces gráficas de usuario (widget toolkit) llamado GTK+, sobre los cuales GNOME está basado, GNOME CUPS Manager. incluye soporte integrado de impresiones basadas en CUPS a partir de su versión 2.10, introducida en 2006. KDE [30] KDEPrint , para KDE, es un marco que contiene varias herramientas de interfaces gráficas de usuarios que actúa comom un front-end de CUPS y permite la administración de clases, colas de impresión y trabajos. Incluye un asistente para agregar nuevas impresoras, entre otras características. Fue agregado en KDE 2.2. KDEPrint soporta varias plataformas diferentes, entre las cuales CUPS es una de las mejores soportada. Reemplazó una versión previa de soporte de impresión en KDE, qtcups y es compatible con éste módulo de KDE. kprinter, una aplicación de cuadro de diálogo, es ahora la herramienta principal para enviar trabajos a la impresora; también puede ser arrancado desde la línea de comandos. KDEPrint incluye un sistema de prefiltrado de cualquier trabajo antes de enviarlo a CUPS; o de manejar los trabajos completamente solor (por ejemplo convertir archivos en PDF); estos filtros son descritos por una pareja de Escritorio / Archivos XML. La primera versión es de 1999, la más reciente es la 1.2.8 de 14 de febrero de 2007 El 12 de julio de 2007, Apple Computer anunció que compró en febrero de ese año CUPS "Common Unix Printing System". Desde Linux al propio OSX dependen de la biblioteca para imprimir. Apple ha contratado a Michael Rose para que continúe con el desarrollo y ha dicho que mantendrá la actual licencia GPL v2. MSC. NMP / M en C. FGR 142 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Referencias [1] http://www.cups.org/ [2] Michael Sweet (June 9, 1999), "A Bright New Future for Printing on Linux" (http://linuxtoday.com/news_story. php3?ltsn=1999-06-09-014-10-NW-SM), Linux Today & followup from Michael Sweet (June 11, 1999), "The Future Brightens for Linux Printing" (http://linuxtoday.com/news_story.php3?ltsn=1999-06-11-018-10-NW-SM), Linux Today. [3] Easy Software Products, CUPS Licensed for Use in Apple Operating Systems! (http://www.cups.org/articles.php?L68+I10+T+P1+ Qapple), March 1, 2002. [4] "CUPS", CUPS Purchased by Apple Inc. (http://www.cups.org/articles.php?L475), July 11,2007. [5] Easy Software Products, CUPS Design Description (http://www.cups.org/documentation.php/spec-design.html), sección "Scheduler". Último acceso enero de 2007 [6] Easy Software Products, CUPS Design Description (http://www.cups.org/documentation.php/spec-design.html), sección "Filters". Último acceso enero de 2007 [7] Easy Software Products, CUPS Design Description (http://www.cups.org/documentation.php/spec-design.html), ver sección "Backend". Último acceso enero de 2007 [8] Easy Software Products. CUPS Software Design, Authorization (http://www.cups.org/doc-1.1/sdd.html#3_8_1). último acceso enero de 2007. [9] Easy Software Products. CUPS Software Administrators Manual, Authorisation (http://www.cups.org/doc-1.1/sdd.html#3_8_3). Last accessed January 9th, 2007. [10] Easy Software Products. CUPS Software Design, IPP (http://www.cups.org/doc-1.1/sdd.html#3_8_7). Último acceso enero de 2007. [11] Easy Software Products. CUPS Software Administrators Manual, Classes (http://www.cups.org/doc-1.1/sam.html#2_4). Último acceso enero de 2007. [12] Easy Software Products. CUPS Software Administrators Manual, Jobs (http://www.cups.org/doc-1.1/sam.html#2_3). Último acceso enero de 2007. [13] Easy Software Products. CUPS Software Design, Configuration (http://www.cups.org/doc-1.1/sdd.html#3_8_4). Último acceso enero de 2007. [14] Easy Software Products. CUPS Software Design, Logging (http://www.cups.org/doc-1.1/sdd.html#3_8_9). ültimo acceso enero de 2007. [15] Easy Software Products. CUPS Software Design, MIME (http://www.cups.org/doc-1.1/sdd.html#3_8_11). Último acceso enero de 2007. [16] Easy Software Products. CUPS Software Design, PPD (http://www.cups.org/doc-1.1/sdd.html#3_8_12). Último acceso enero de 2007. [17] Easy Software Products. CUPS Software Design, Devices (http://www.cups.org/doc-1.1/sdd.html#3_8_5). Último acceso enero de 2007. [18] Easy Software Products. CUPS Software Design, Printers (http://www.cups.org/doc-1.1/sdd.html#3_8_13). Último acceso enero de 2007. [19] Easy Software Products. CUPS Software Administrators Manual, Filters (http://www.cups.org/doc-1.1/sam.html#2_5). Último acceso enero de 2007. [20] Easy Software Products. CUPS Software Design, Filters (http://www.cups.org/doc-1.1/sdd.html#3_7). Último acceso enero de 2007. [21] Easy Software Products. CUPS Software Administrators Manual, File Typing and Filtering (http://www.cups.org/doc-1.1/sam. html#FILE_TYPING_FILTERING). Último acceso enero de 2007. [22] Easy Software Products. CUPS Software Administrators Manual, mime.types (http://www.cups.org/doc-1.1/sam.html#7_13_1). Último acceso enero de 2007. [23] Easy Software Products. CUPS Software Administrators Manual, mime.convs (http://www.cups.org/doc-1.1/sam.html#7_13_é). Último acceso enero de 2007. [24] Easy Software Products. CUPS Software Administrators Manual, pstops (http://www.cups.org/doc-1.1/sdd.html#3_7_5). Último acceso enero de 2007. [25] [26] [27] [28] [29] [30] El tipo MIME del formato rasterizado de CUPS es application/vnd.cups-raster. Splix home page (http://splix.ap2c.org/) CUPS Software Administrators Manual (http://www.cups.org/sam.html#4_4), "Managing Printers from the Web" http://gtklp.sourceforge.net http://www.rastersoft.com/gtkpsproc.html http://printing.kde.org/ • Easy Software Products CUPS HTTP GET Denial Of Service Vulnerability (http://www.securityfocus.com/ bid/12200) (January 13, 2005). SecurityFocus. • Mandriva Linux. Mandrivalinux general features — printing (http://www1.mandrivalinux.com/en/10.1/ features/9.php3). Company webpage detailing Mandriva Linux features. Retrieved January 14, 2005. • Multiple security vulnerabilities in Common UNIX Printing System (CUPS) (http://www.derkeiler.com/ MSC. NMP / M en C. FGR 143 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Mailing-Lists/Securiteam/2002-12/0063.html) (December 19, 2002). SecuriTeam. • ThreatAlert > CUPS HTTP GET Denial Of Service Vulnerability (http://www.packetalarm.de/sec_notices/ index.php?id=683&delimit=1#detail) (January 8, 2005). PacketAlarm. • Sweet, Michael (July 10, 2000). CUPS overview (http://www.cups.org/overview.html). Easy Software Products. • CUPS software administration manual: Managing printers from the web (http://www.cups.org/sam.html#4_4) (versión 1.1.21, 2004). Easy Software Products. Retrieved January 5, 2005. • http://www.cups.org/articles.php How-to articles and FAQs about using CUPS • Design of CUPS Filtering System — including the context for Mac OS X ("Jaguar") (http://www.linuxprinting. org/CUPS-Filter-Chart.html). LinuxPrinting.org. Retrieved January 5, 2005. • KDE. KDEPrint information (http://printing.kde.org/info/). KDE-printing website. Retrieved January 14, 2005. • Pfeifle, Kurt; Vizitiu, Ciprian; Vernooij, Jelmer R. (June 3, 2003) CUPS Printing Support: The CUPS Filtering Architecture (http://info.ccone.at/INFO/Samba/CUPS-printing.html#id2933709) from SAMBA Project Documentation (http://info.ccone.at/INFO/Samba/). • Raymond, Eric (July 3, 2004). The luxury of ignorance: an Open-Source horror story (http://www.catb.org/ ~esr/writings/cups-horror.html). Eric S. Raymond's Home Page. Essay. • "zen-parse" (December 23, 2002). iDEFENSE Security Advisory 12.23.02: Integer Overflow in pdftops (http:// lists.netsys.com/pipermail/full-disclosure/2002-December/003052.html). iDefense. • "Planeta mac" (Julio 12, 2007). Apple compra CUPS (http://www.planetamac.es/apple-compra-cups/). Planeta Mac. Enlaces externos • Página oficial (http://www.cups.org/) • localhost:631 (http://localhost:631/) Página de configuración web (local) de CUPS. • Productos de Easy Software (creadores de CUPS) (http://www.easysw.com) • Página de CUPS en Freshmeat.net (http://freshmeat.net/projects/cups/) • LinuxPrinting.org (http://www.linuxprinting.org/) • Universal Plug and Play - Printer Device V 1.0 and Printer Basic Service V 1.0 (http://www.upnp.org/ standardizeddcps/printer.asp) • Configuración de CUPS bajo Debian GNU/Linux (http://mumford1.dyndns.org/~bs7452/linuxhelp/cups. html) • pequeño Manual de Configuración de Impresoras en Linux y otros UNIX (http://okltsmash.blogspot.com/ 2007/07/bueno-les-voy-dejar-algun-pequeo.html) MSC. NMP / M en C. FGR 144 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS 4.4. Sistemas Operativos Servicio de acceso remoto Secure Shell Secure Shell (SSH) Familia Internet Función Administración remota a través de una red. Ubicación en la pila de protocolos Aplicación SSH Transporte TCP Red IP (IPv4 y IPv6) Estándares RFC 4250, RFC 4251, RFC 4252, RFC 4253, RFC 4254, RFC 4255, RFC 4256, RFC 4335, RFC 4344, RFC 4345, RFC 4419, RFC 4432, RFC 4462, RFC 4716, RFC 4819 SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la computadora mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo. Además de la conexión a otros dispositivos, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH. Seguridad SSH trabaja de forma similar a como se hace con telnet. La diferencia principal es que SSH usa técnicas de cifrado que hacen que la información que viaja por el medio de comunicación vaya de manera no legible, evitando que terceras personas puedan descubrir el usuario y contraseña de la conexión ni lo que se escribe durante toda la sesión; aunque es posible atacar este tipo de sistemas por medio de ataques de REPLAY y manipular así la información entre destinos. Historia Al principio sólo existían los r-commands, que eran los basados en el programa rlogin, el cual funciona de una forma similar a telnet. La primera versión del protocolo y el programa eran libres y los creó un finlandés llamado Tatu Ylönen, pero su licencia fue cambiando y terminó apareciendo la compañía SSH Communications Security, que lo ofrecía gratuitamente para uso doméstico y académico, pero exigía el pago a otras empresas. En el año 1997 (dos años después de que se creara la primera versión) se propuso como borrador en la IETF. A principios de 1999 se empezó a escribir una versión que se convertiría en la implementación libre por excelencia, la de OpenBSD, llamada OpenSSH. MSC. NMP / M en C. FGR 145 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Versiones Existen 2 versiones de SSH, la versión 1 de SSH hace uso de muchos algoritmos de cifrado patentados (sin embargo, algunas de estas patentes han expirado) y es vulnerable a un agujero de seguridad que potencialmente permite a un intruso insertar datos en la corriente de comunicación. La suite OpenSSH bajo Red Hat Enterprise Linux utiliza por defecto la versión 2 de SSH, la cual tiene un algoritmo de intercambio de claves mejorado que no es vulnerable al agujero de seguridad en la versión 1. Sin embargo, la suite OpenSSH también soporta las conexiones de la versión 1. Aplicaciones Cliente SSH • Comparación de clientes SSH Aplicaciones Servidor SSH • Comparación de servidores SSH Enlaces externos • Sitio Oficial de OpenSSH [1] (en inglés) [2] • OpenSSH (en español) [3] • Seguridad de Debian Sitio oficial. (en inglés) • Guía documentada para Ubuntu [4] (en español) • Securing the connection between MySQL and MySQL Administrator using an SSH tunnel [5] Crear un túnel SSH al servidor MySQL. (en inglés) • Cliente SSH en un sitio web • SSH y SCP sin contraseña [6] [7] (en inglés) (en español) Referencias [1] [2] [3] [4] [5] [6] [7] http://www.openssh.org http://www.openssh.com/es/index.html http://security.debian.org http://www.guia-ubuntu.org/index.php?title=Servidor_ssh http://www.howtoforge.com/secure_mysql_connection_ssh_tunnel http://webssh.uni.me http://crysol.org/es/ssh-public-key MSC. NMP / M en C. FGR 146 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Network File System (NFS) Network File System (NFS) Familia Protocolos de sistema de archivos en red Función Acceso a sistema de archivos vía red. Última versión NFSv4 Ubicación en la pila de protocolos* Aplicación NFS Presentación XDR Sesión ONC RPC Transporte TCP o UDP Red IP * según el Modelo OSI Estándares RFC 1094 (versión 2) RFC 1813 (versión 3) RFC 3530 (versión 4) El Network File System (Sistema de archivos de red), o NFS, es un protocolo de nivel de aplicación, según el Modelo OSI. Es utilizado para sistemas de archivos distribuido en un entorno de red de computadoras de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales. Originalmente fue desarrollado en 1984 por Sun Microsystems, con el objetivo de que sea independiente de la máquina, el sistema operativo y el protocolo de transporte, esto fue posible gracias a que está implementado sobre [] los protocolos XDR (presentación) y ONC RPC (sesión). El protocolo NFS está incluido por defecto en los Sistemas Operativos UNIX y la mayoría de distribuciones Linux. Características • El sistema NFS está dividido al menos en dos partes principales: un servidor y uno o más clientes. Los clientes acceden de forma remota a los datos que se encuentran almacenados en el servidor. • Las estaciones de trabajo locales utilizan menos espacio de disco debido a que los datos se encuentran centralizados en un único lugar pero pueden ser accedidos y modificados por varios usuarios, de tal forma que no es necesario replicar la información. • Los usuarios no necesitan disponer de un directorio “home” en cada una de las máquinas de la organización. Los directorios “home” pueden crearse en el servidor de NFS para posteriormente poder acceder a ellos desde MSC. NMP / M en C. FGR 147 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos cualquier máquina a través de la infraestructura de red. • También se pueden compartir a través de la red dispositivos de almacenamiento como disqueteras, CD-ROM y unidades ZIP. Esto puede reducir la inversión en dichos dispositivos y mejorar el aprovechamiento del hardware existente en la organización. Todas las operaciones sobre ficheros son síncronas. Esto significa que la operación sólo retorna cuando el servidor ha completado todo el trabajo asociado para esa operación. En caso de una solicitud de escritura, el servidor escribirá físicamente los datos en el disco, y si es necesario, actualizará la estructura de directorios, antes de devolver una respuesta al cliente. Esto garantiza la integridad de los ficheros. Operaciones [] Inicialmente NFS soportaba 18 procedimientos para todas las operaciones básicas de E/S. Los comandos de la [1] versión 2 del protocolo son los siguientes: • NULL: no hace nada, pero sirve para hacer ping al server y medir tiempos. • CREATE: crea un nuevo archivo. • LOOKUP: busca un fichero en el directorio actual y si lo encuentra, devuelve un descriptor a ese fichero más información sobre los atributos del fichero. • READ y WRITE: primitivas básicas para acceder el fichero. • RENAME: renombra un fichero. • REMOVE: borra un fichero. • MKDIR y RMDIR: creación/borrado de subdirectorios. • READDIR: para leer la lista de directorios. • GETATTR y SETATTR: devuelve conjuntos de atributos de ficheros. • LINK: crea un archivo, el cual es un enlace a un archivo en un directorio, especificado. • SYMLINK y READLINK: para la creación y lectura, respectivamente, de enlaces simbólicos (en un "string") a un archivo en un directorio. • STATFS: devuelve información del sistema de archivos. • ROOT, para ir a la raíz (obsoleta en la versión 2). • WRITECACHE: reservado para un uso futuro. En la versión 3 del protocolo se eliminan los comandos se STATFS, ROOT y WRITECACHE; y se agregaron los siguientes: [2] • ACCESS: Para verificar permisos de acceso. • MKNOD: Crea un dispositivo especial. • READDIRPLUS: una versión mejorada de READDIR. • FSSTAT: devuelve información del sistema de archivos en forma dinámica. • FSINFO: devuelve información del sistema de archivos en forma estática. • PATHCONF: Recupera información POSIX. • COMMIT: Enviar datos de caché sobre un servidor un sistema de almacenamiento estable. Se corresponden MSC. NMP / M en C. FGR con la mayoría de primitivas de E/S usadas en el sistema operativo local para acceder a 148 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos ficheros locales. De hecho, una vez que se ha montado el directorio remoto, el sistema operativo local tiene que "reencaminar" las primitivas de E/S al host remoto. Esto hace que todas las operaciones de E/S sobre ficheros tengan el mismo aspecto, independientemente de si el fichero es local o remoto. El usuario puede trabajar con los comandos y programas habituales en ambos tipos de ficheros; en otras palabras, el protocolo NFS es completamente transparente al usuario. La versión 4 fue publicada en abril de 2003 y no es compatible con las versiones anteriores. Soporta 41 comandos: NULL, COMPOUND, ACCESS, CLOSE, COMMIT, CREATE, DELEGPURGE, DELEGRETURN, GETATTR, GETFH, LINK, LOCK, LOCKT, LOCKU, LOOKUP, LOOKUPP, NVERIFY, OPEN, OPENATTR, OPEN_CONFIRM, OPEN_DOWNGRADE, PUTFH, PUTPUBFH, PUTROOTFH, READ, READDIR, READLINK, REMOVE, RENAME, RENEW, RESTOREFH, SAVEFH, SECINFO, SETATTR, SETCLIENTID, SETCLIENTID_CONFIRM, VERIFY, WRITE, RELEASE_LOCKOWNER, ILLEGAL. [3] Versiones Hay tres versiones de NFS actualmente en uso: • La versión 2 de NFS (NFSv2), [1] es la más antigua y está ampliamente soportada por muchos sistemas operativos. [2] • La versión 3 de NFS (NFSv3) tiene más características, incluyendo manejo de archivos de tamaño variable y mejores facilidades de informes de errores, pero no es completamente compatible con los clientes NFSv2. [3] • NFS versión 4 (NFSv4) incluye seguridad Kerberos, trabaja con cortafuegos, permite ACLs y utiliza operaciones con descripción del estado. Referencias [1] RFC 1094 Especificación del protocolo versión 2. (en inglés) [2] RFC 1813 Especificación del protocolo versión 3. (en inglés) [3] RFC 3530 Especificación del protocolo versión 4. (en inglés) Enlaces externos • Sitio oficial de NFS Version 4 (http://www.nfsv4.org) (en inglés) • Linux NFS (http://nfs.sourceforge.net) (en inglés) • El Sistema de Ficheros de Red (http://es.tldp.org/Manuales-LuCAS/GARL2/garl2/x-087-2-nfs.html) Proyecto de Documentación de Linux. Guía de Administración de Redes con Linux, Capítulo 14. • Microsoft financia un cliente Open Source de NFS v4 para Windows (http://www.vivalinux.com.ar/soft/ cliente-nfs-v4-para-windows.html) MSC. NMP / M en C. FGR 149 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS 4.5. Sistemas Operativos Compartir recursos entre diferentes sistemas operativos Samba (programa) Samba Desarrollador Equipo de Samba http://www.samba.org/'' Información general Última versión estable 4.0.6 (info [1] ) 21 de mayo de 2013 Samba es una implementación Género Acceso Remoto Sistema operativo Multiplataforma Licencia GPL En español ? libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que computadoras con GNU/Linux, Mac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autentificar con su propio archivo de usuarios. Entre los sistemas tipo Unix en los que se puede ejecutar Samba, están las distribuciones GNU/Linux, Solaris y las diferentes variantes BSD entre las que podemos encontrar el Mac OS X Server de Apple. Samba fue desarrollado originalmente para Unix por Andrew Tridgell utilizando un sniffer o capturador de tráfico para entender el protocolo usando ingeniería inversa. El nombre viene de insertar dos vocales al protocolo estándar que Microsoft usa para sus redes, el SMB o server message block. En un principio Samba tomó el nombre de smbserver pero tuvieron que cambiarlo por problemas con una marca registrada. Tridgell buscó en el diccionario de su máquina Unix alguna palabra que incluyera las letras. Samba es una implementación de una docena de servicios y una docena de protocolos, entre los que están: NetBIOS sobre TCP/IP (NetBT), SMB (también conocido como CIFS), DCE/RPC o más concretamente, MSRPC, el servidor WINS también conocido como el servidor de nombres NetBIOS (NBNS), la suite de protocolos del dominio NT, con su Logon de entrada a dominio, la base de datos del gestor de cuentas seguras (SAM), el servicio Local Security Authority (LSA) o autoridad de seguridad local, el servicio de impresoras de NT y recientemente el Logon de entrada de Active Directory, que incluye una versión modificada de Kerberos y una versión modificada MSC. NMP / M en C. FGR de LDAP. Todos estos servicios y protocolos son frecuentemente referidos de un modo 150 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos incorrecto como NetBIOS o SMB. Samba configura directorios Unix y GNU/Linux (incluyendo sus subdirectorios) como recursos para compartir a través de la red. Para los usuarios de Microsoft Windows, estos recursos aparecen como carpetas normales de red. Los usuarios de GNU/Linux pueden montar en sus sistemas de archivos estas unidades de red como si fueran dispositivos locales, o utilizar la orden smbclient para conectarse a ellas muy al estilo del cliente de la línea de órdenes ftp. Cada directorio puede tener diferentes permisos de acceso sobrepuestos a las protecciones del sistema de archivos que se esté usando en GNU/Linux. Por ejemplo, las carpetas home pueden tener permisos de lectura y escritura para cada usuario, permitiendo que cada uno acceda a sus propios archivos; sin embargo, deberemos cambiar los permisos de los archivos localmente para dejar al resto ver nuestros archivos, ya que con dar permisos de escritura en el recurso no será suficiente. La configuración de Samba se logra editando un solo archivo, ubicado en /etc/smb.conf o en /etc/samba/smb.conf. Ejemplo de configuración básica Archivo de configuración /etc/samba/smb.conf [global] workgroup = nombreGrupoTrabajo [compartido] comment = Archivos Compartidos path = /home/nombreUsuario/compartido browseable = yes read only = no guest ok = yes writable = yes valid users = @nombreUsuario Enlaces externos [2] • Sitio web oficial de Samba (en inglés) [3] • SAMBA: Linux y Windows en Red Referencias [1] http://www.samba.org/samba/history/samba-4.0.6.html [2] http://www.samba.org [3] http://estaciondetransito.com.ar/estaciondetransito/?p=18 Prácticas de laboratorio: Instalar y configurar servicios en sistemas operativos Linux/Windows MSC. NMP / M en C. FGR 151 DIRECCIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS Sistemas Operativos Bibliografía Andrew S. Tanenbaum m , (2009) , Sistemas Operativos Modernos , México , México, Prentice Hall. Andrew S. Tanenbaum , (2010) , Sistemas Operativos , México , México , Prentice Hall. Brian W. Kernighan , (2006) , El entorno de Programación en UNIX. , Madrid , España , Prentice Hall. Harley Hahn , (2009) , Guía del Estudiante de UNIX , Estados Unidos , Estados Unidos , Harley Hahn Books. Tom Adelstein, Bill Lubonavic, (2004), Administration de Sistemas Linux , España , España , O´relly. Gómez, J. y Padilla, N. y Gil, J. A. , (2006) , Administración de Sistemas Operativos Windows y Linux: Un Enfoque Práctico , Gómez Lopez, J, (2011), Administración de Sistemas Operativos: Un Enfoque Práctico. 2ª. Edición, D.F., México, Ra-Ma. D.F., México, Alfaomega, Ra-Ma. Molina, Francisco y Peramato, Iván, (2011), Enciclopedia de GNU/Linux para Usuarios y Administrador, D.F., México, Alfaomega, Ra-Ma. Mark G. Sobell. (2010). Manual práctico de Linux. Comandos, editores y programación Shell. Para usuarios de distribuciones GNU/Linux: Ubuntu, Fedora, openSUSE, Red Hat, Debian, Mandriva, Mint y Mac OS X. Ediciones Anaya Multimedia. MSC. NMP / M en C. FGR 152