Tecnologías de la Información Software ‐ Programas Sistema Operativo Un sistema operativo (SO, frecuentemente OS, del inglés Operating System) es un programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación, ejecutándose en modo privilegiado respecto de los restantes. Su principal objetivo es permitir la comunicación entre el resto de programas y el usuario y la máquina de forma cómoda y eficiente; se encarga de gestionar los recursos del ordenador, esto incluye la gestión del hardware desde los niveles más básicos. Tecnologías de la Información Software ‐ Programas Componentes del Sistema Operativo Componentes/Funciones básicos : • Gestión de Procesos • Gestión de Memoria • Gestión de Almacenamiento • Sistema de Archivos • Gestión de Entras/Salidas • Gestión de las Comunicaciones • Gestión de la Seguridad • Interfaz con el Usuario • Utilidades Tecnologías de la Información Software ‐ Programas SO – Gestión de Procesos Un proceso es simplemente, un programa en ejecución que necesita recursos para realizar su tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el responsable de: • Crear y destruir procesos • Parar y reanudar procesos • Ofrecer mecanismos para que los procesos puedan comunicarse y se sincronicen La gestión de procesos podría ser similar al trabajo de oficina. Se puede tener una lista de tareas a realizar y a estas fijarles prioridades alta, media, baja por ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y cuando se terminen seguir con las de prioridad media y después las de baja. Esto puede traer un problema que las tareas de baja prioridad pueden que nunca lleguen a ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se puede asignar alta prioridad a las tareas más antiguas. Tecnologías de la Información Software ‐ Programas SO – Gestión de Memoria La memoria es una gran tabla de palabras o bytes que se referencian cada una mediante una dirección única. Este almacén de datos de rápido acceso es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido ante fallos del sistema. El SO es el responsable de: • Conocer qué partes de la memoria están siendo utilizadas y por quién • Decidir qué procesos se cargarán en memoria cuando haya espacio disponible • Asignar y reclamar espacio de memoria cuando sea necesario Cuando la memoria física es insuficiente, el sistema operativo puede crear una zona de memoria en el disco duro, denominada "memoria virtual". La memoria virtual permite ejecutar aplicaciones que requieren una memoria superior a la Memoria RAM disponible en el sistema. Sin embargo, esta memoria es mucho más lenta. Tecnologías de la Información Software ‐ Programas SO – Gestión de Almacenamiento Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de: • • • • • • Planificar los discos. Gestionar el espacio libre. Asignar el almacenamiento. Gestión de Ficheros. Redundancia y Distribución. Gestión de Accesos Tecnologías de la Información Software ‐ Programas SO – Sistema de Archivos Los archivos son colecciones de información relacionada, definidas por sus creadores. Éstos almacenan programas (en código fuente y objeto) y datos tales como imágenes, textos, información de bases de datos, etc. El SO es responsable de: • Construir y eliminar archivos y directorios. • Ofrecer funciones para manipular archivos y directorios. • Establecer la correspondencia entre archivos y unidades de almacenamiento. • Realizar copias de seguridad de archivos. • … Existen diferentes sistemas de archivos, es decir, existen diferentes formas de organizar la información que se almacena en las memorias (normalmente discos) de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32, EXT3, NTFS, XFS, etc. Tecnologías de la Información Software ‐ Programas SO – Gestión de Entradas/Salidas Consiste en un sistema de almacenamiento temporal (caché), una interfaz de manejadores de dispositivos y otra para dispositivos concretos. El sistema operativo debe gestionar el almacenamiento temporal de E/S y servir las interrupciones de los dispositivos de E/S. El sistema operativo permite unificar y controlar el acceso de los programas a los recursos materiales a través de los drivers (también conocidos como administradores periféricos o de entrada/salida). Tecnologías de la Información Software ‐ Programas SO – Gestión de las Comunicaciones Para mantener las comunicaciones con otros sistemas es necesario poder controlar el envío y recepción de información a través de las interfaces de red. También hay que crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información, y crear y mantener conexiones virtuales entre aplicaciones que están ejecutándose localmente y otras que lo hacen remotamente. El sistema de be soportar los distinto protocolos de los sistemas de comunicaciones utilizados (en Ethernet TCP/IP) y la configuración de los mismos (direcciones, mascaras, puertos, …). Tecnologías de la Información Software ‐ Programas SO – Seguridad El sistema operativo se encarga de la seguridad en relación con la ejecución de programas garantizando que los recursos sean utilizados sólo por programas y usuarios que posean las autorizaciones correspondientes. • Autenticación : es un modo de asegurar que los usuarios son quien ellos dicen que ellos son ‐ que el usuario que intenta realizar funciones en un sistema es de hecho el usuario que tiene la autorización para hacer así. • Autorización. Proceso por el cual el sistema autoriza al usuario identificado a acceder a determinados recursos del sistema. • Auditoría. Mediante la cual el sistema registra todos y cada uno de los accesos a los recursos que realiza el usuario autorizados o no. Tecnologías de la Información Software ‐ Programas SO – Interfaz con el Usuario Inicialmente las interfaces de los sistemas operativos se basaban en líneas de comando (CLI), posteriormente (1984) se introdujeron las interfaces gráficas (Apple, Windows y Unix). La interfaz gráfica de usuario, conocida también como GUI (del inglés Graphical User Interface) es un programa informático que actúa de interfaz de usuario, utilizando un conjunto de imágenes y objetos gráficos para representar la información y acciones disponibles en la interfaz. Su principal uso, consiste en proporcionar un entorno visual sencillo para permitir la comunicación con el sistema operativo de un ordenador. Habitualmente las acciones se realizan mediante manipulación directa, para facilitar la interacción del usuario con la computadora. Como ejemplos de interfaz gráfica de usuario, cabe citar los entornos de escritorio Windows, el X‐Window de GNU/Linux o el de Mac OS X, Aqua. En el contexto del proceso de interacción persona‐ordenador, la interfaz gráfica de usuario es el artefacto tecnológico de un sistema interactivo que posibilita, a través del uso y la representación del lenguaje visual, una interacción amigable con un sistema informático. Tecnologías de la Información Software ‐ Programas SO – Windows 7 GUI Tecnologías de la Información Software ‐ Programas SO – X Windows GUI Tecnologías de la Información Software ‐ Programas SO – Aqua GUI Tecnologías de la Información Software ‐ Programas SO – Utilidades Son aplicaciones de utilidad que se suministran con el SO pero no forman parte intrínseca de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan: • • • • • • • • Manipulación y modificación de archivos. Información del estado y diagnostico del sistema. Soporte a lenguajes de programación. Comunicaciones. Manejo y retoques de imágenes. Sincronización de dispositivos. Calculadora. … Tecnologías de la Información Software ‐ Programas SO – Kernel El Kernel o núcleo del sistema operativo es un concepto derivado de los sistemas Unix. Realiza las funciones más básicas del sistema y está en contacto directo con el hardware. Tecnologías de la Información Software ‐ Programas SO – Kernel La función principal del kernel es gestionar el hardware del ordenador y sus recursos y permitir a otros programas ejecutarse y utilizar esos recursos. Normalmente los recursos son : • La Unidad Central de Proceso (CPU). Es la parte más “nuclear” del ordenador, responsable de ejecutar las instrucciones de los programas. El kernel toma a responsabilidad de decidir en todo momento cual de los muchos programas que se están ejecutando debe ser asignado al procesador (a cual de ellos o a cual núcleo dentro de un procesador) y durante cuanto tiempo. • La Memoria Principal. La memoria se utiliza para almacenar tanto los programas como los datos. Normalmente ambos necesitan estar presentes en memoria para poder ejecutar un programa. A menudo varios programas necesitaran acceder a la memoria simultáneamente, en muchos casos demandaran más memoria de la que dispone el ordenador. El kernel es responsable de decidir que parte de la memoria puede usar cada proceso y determinar que hacer cuando no hay memoria suficiente. • Cualquier dispositivo de entrada/salida (I/O) instalado en el ordenador, como el teclado, el ratón, los discos, los dispositivos USB, impresoras, pantallas, tarjetas de red, … .El kernel asigna recursos a las aplicaciones para poder realizar cualquier E/S al dispositivo adecuado y facilita métodos para utilizar los dispositivos (normalmente abstrayendo los datos del hardware que las aplicaciones no necesitan conocer). Aspectos clave en la gestión de recursos son la definición de un dominio de ejecución (espacio de direcciones) y el mecanismo de protección para utilizar los recurso dentro de ese dominio. El kernel normalmente también facilita los métodos para la sincronización y comunicación entre procesos llamada IPC (Inter‐Process Comunication). Tecnologías de la Información Software ‐ Programas SO – Kernel En los sistemas operativos actuales la CPU ejecuta los programas en los dos modos : Modo kernel. En el modo kernel el código que se ejecuta tiene acceso completo y sin restricciones al hardware. Puede ejecutar cualquier instrucción de la CPU y referirse a cualquier dirección de memoria. El modo kernel se reserva para el más bajo nivel y las funciones más confiables del SO. Fallos en el modo kernel producen la parada del sistema. Modo Usuario. En el modo usuario el código que se ejecuta no tiene la posibilidad de acceder directamente al hardware o referirse a la memoria. El código ejecutándose en el modo usuario debe delegar los accesos al hardware o a la memoria a APIs (Application Program Interface) del SO. Gracias a la protección aportada por esta clase de aislamiento, los fallos en el modo usuario son recuperables. La mayor parte del código que se ejecuta en el ordenado corre en modo usuario. Tecnologías de la Información Software ‐ Programas SO – Kernel Los modos de operación (kernel/usuario) no son meras “etiquetas” sino que están implementados por el hardware del procesador. La arquitectura de hardware de procesadores de la familia x86 facilita 4 anillos de protección : 0, 1, 2 y 3. Normalmente solo se utilizan el anillo 0 (kernel) y el 3 (usuarios) Tecnologías de la Información Software ‐ Programas SO – Kernel Tecnologías de la Información Software ‐ Programas Practica. Ver la distribución del uso de la CPU entre el modo kernel y el modo usuario Barra de Tareas (botón derecho) Iniciar el Administrador de Tareas (pestaña rendimiento) Ver Mostrar cronología del kernel Tecnologías de la Información Software ‐ Programas SO – Clasificación Administración de tareas • Monotarea: Solamente permite ejecutar un proceso (aparte de los procesos del propio SO) en un momento dado. Una vez que empieza a ejecutar un proceso, continuará haciéndolo hasta su finalización y/o interrupción. • Multitarea: Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de SO normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de forma alternada a los procesos que los solicitan, de manera que el usuario percibe que todos funcionan a la vez, de forma concurrente. Administración de usuarios • Monousuario: Si sólo permite ejecutar los programas de un usuario al mismo tiempo. • Multiusuario: Si permite que varios usuarios ejecuten simultáneamente sus programas, accediendo a la vez a los recursos de la computadora. Normalmente estos sistemas operativos utilizan métodos de protección de datos, de manera que un programa no pueda usar o cambiar los datos de otro usuario. Manejo de recursos • Centralizado: Si permite usar los recursos de una sola computadora. • Distribuido: Si permite utilizar los recursos (memoria, CPU, disco, periféricos...) de más de una computadora al mismo tiempo. Tecnologías de la Información Software ‐ Programas SO – Presencia en el Mercado Category Desktop, laptop, netbook Source Date Linux based Other Unix In‐House Windows Other Net Applications[34] Dec‐13 1.73% (Ubuntu) 7.43% (OS X) 90.83% (XP, 7, Vista, 8) Smartphone, tablet StatCounter Global Stats[35] Dec‐13 39.07% (Android) 31.79% (iOS) 1.79% (WP8, RT) Server (web) W3Techs [36][24] Dec‐13 31.86% (Debian, CentOS, RHEL) 34.94% (BSD, HP‐ UX, Aix, Solaris) 33.20% (W2K3, W2K8) Supercomputer TOP500 [33] Nov‐13 96.4% (Custom) 2.4% (UNIX) 0.4% Mainframe Gartner[31] Dec‐08 28% (SLES, RHEL) Gaming console Nintendo, Sony, Microsoft, Ouya [37] Jun‐13 0% (SteamOS, Android) 29.6% (PS3) 40.9% (Wii) 29.5% (Xbox) Embedded UBM Electronics [38] Mar‐12 29.44% (Android, Other) 4.29% (QNX) 13.5% 11.65% (WCE 7) 41.1% Real time NewTechPress [39] Nov‐11 19.3% (Android) 20.1% 35.8% (XPE, WCE) 24.8% 27.35% 0.8% 72% (z/OS) Tecnologías de la Información Software ‐ Programas SO – Presencia en el Mercado Ranking de sistemas operativos de escritorio a enero 2012. Varias fuentes. Tecnologías de la Información Software ‐ Programas SO – Presencia en el Mercado Ranking de sistemas operativos de escritorio por versiones a enero 2012. Varias fuentes. Tecnologías de la Información Software ‐ Programas SO – Presencia en el Mercado Ranking de sistemas operativos móviles a enero 2012. Varias fuentes. Tecnologías de la Información Software ‐ Programas SO – Presencia en el Mercado Tecnologías de la Información Software ‐ Programas SO – Presencia en el Mercado SO conexión a Internet / NetMarketShare Enero 2014 Tecnologías de la Información Software ‐ Programas SO – Presencia en el Mercado Tecnologías de la Información Software ‐ Programas SO – Presencia en el Mercado Tecnologías de la Información Software ‐ Programas SO – Unix Unix (registrado oficialmente como UNIX®) es un sistema operativo portable, multitarea y multiusuario; desarrollado, en principio, en 1969, por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy.[1] [2] El sistema, junto con todos los derechos fueron vendidos por AT&T a Novell, Inc. Esta vendió posteriormente el software a Santa Cruz Operation en 1995, y esta, a su vez, lo revendió a Caldera Software en 2001, empresa que después se convirtió en el grupo SCO. Sin embargo, Novell siempre argumentó que solo vendió los derechos de uso del software, pero que retuvo el copyright sobre "UNIX®". En 2010, y tras una larga batalla legal, ésta ha pasado nuevamente a ser propiedad de Novell.[3] Solo los sistemas totalmente compatibles y que se encuentran certificados por la especificación Single UNIX Specification pueden ser denominados "UNIX®" (otros reciben la denominación "similar a un sistema Unix" o "similar a Unix"). En ocasiones, suele usarse el término "Unix tradicional" para referirse a Unix o a un sistema operativo que cuenta con las características de UNIX Versión 7 o UNIX System V. Tecnologías de la Información Software ‐ Programas SO – Unix Ken Thompson (sentado) y Dennis Ritchie trabajando en un PDP‐11 Tecnologías de la Información Software ‐ Programas SO – Unix Estructura de UNIX Tecnologías de la Información Software ‐ Programas SO – Unix A lo largo de la historia ha surgido una gran multitud de implementaciones comerciales de UNIX. Sin embargo, un conjunto reducido de productos han consolidado el mercado y prevalecen gracias a un continuo esfuerzo de desarrollo por parte de sus fabricantes. Los más importantes son: • Solaris de Sun Microsystems. Uno de los sistemas operativos Unix más difundidos en el entorno empresarial y conocido por su gran estabilidad. Parte del código fuente de Solaris se ha liberado con licencia de fuentes abiertas (OpenSolaris). • AIX de IBM. El UNIX "propietario" de IBM cumplió 20 años de vida en el 2006 y continúa en pleno desarrollo, con una perceptible herencia del mainframe en campos como la virtualización o la RAS de los servicios, heredada de sus "hermanos mayores". • HP‐UX de Hewlett‐Packard. Este sistema operativo también nació ligado a las computadoras departamentales de este fabricante. También es un sistema operativo estable que continua en desarrollo. • Mac OS X. Se trata de un UNIX completo, aprobado por The Open Group. Su diferencia marcada es que posee una interfaz gráfica propietaria llamada Aqua, y es principalmente desarrollada en Objective‐C en lugar de C o C++. Tecnologías de la Información Software ‐ Programas SO – Linux Linux es un núcleo libre de sistema operativo (también suele referirse al núcleo como kernel) basado en Unix.[4] Es uno de los principales ejemplos de software libre y de código abierto.[5] Linux está licenciado bajo la GPL v2 y está desarrollado por colaboradores de todo el mundo. El desarrollo del día a día tiene lugar en la Linux Kernel Mailing List Archive El núcleo Linux fue concebido por el entonces estudiante de ciencias de la computación finlandés Linus Torvalds en 1991.[6] Linux consiguió rápidamente desarrolladores y usuarios que adoptaron códigos de otros proyectos de software libre para usarlo con el nuevo sistema operativo.[7] El núcleo Linux ha recibido contribuciones de miles de programadores de todo el mundo.[8] Normalmente Linux se utiliza junto a un empaquetado de software, llamado distribución GNU/Linux y servidores. Una distribución Linux es un conjunto de software acompañado del núcleo Linux que se enfoca a satisfacer las necesidades de un grupo específico de usuarios. De este modo hay distribuciones para hogares, empresas y servidores. Las distribuciones son ensambladas por individuos, empresas u otros organismos. Cada distribución puede incluir cualquier número de software adicional, incluyendo software que facilite la instalación del sistema. La base del software incluido con cada distribución incluye el núcleo Linux, en la mayoría de los casos las herramientas GNU, al que suelen añadirse también multitud de paquetes de software. Tecnologías de la Información Software ‐ Programas SO – Linux Una distribución Linux (coloquialmente llamada distro) es una distribución de software basada en el núcleo Linux que incluye determinados paquetes de software para satisfacer las necesidades de un grupo específico de usuarios, dando así origen a ediciones domésticas, empresariales y para servidores. Por lo general están compuestas, total o mayoritariamente, de software libre, aunque a menudo incorporan aplicaciones o controladores propietarios. Además del núcleo Linux, las distribuciones incluyen habitualmente las bibliotecas y herramientas del proyecto GNU y el sistema de ventanas X Window System. Dependiendo del tipo de usuarios a los que la distribución esté dirigida se incluye también otro tipo de software como procesadores de texto, hoja de cálculo, reproductores multimedia, herramientas administrativas, etc. En el caso de incluir herramientas del proyecto GNU, se utiliza el término distribución GNU/Linux. Existen distribuciones que están soportadas comercialmente, como Fedora (Red Hat), openSUSE (Novell), Ubuntu (Canonical Ltd.), Mandriva, y distribuciones mantenidas por la comunidad como Debian y Gentoo. Tecnologías de la Información SO – Unix/Linux evolución y familias Software ‐ Programas Tecnologías de la Información Software ‐ Programas SO – Unix/Linux evolución y familias Tecnologías de la Información Software ‐ Programas SO – MS Windows Microsoft Windows (conocido generalmente como Windows), es el nombre de una familia de sistemas operativos desarrollados y vendidos por Microsoft. Microsoft introdujo un entorno operativo denominado Windows el 25 de noviembre de 1985 como un complemento para MS‐ DOS (que disponía de interfaz por línea de comandos) en respuesta al creciente interés en las interfaces gráficas de usuario (GUI).[1] 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. Windows es un sistema operativo con una interfaz de usuario integrada en el sistema basado en ventanas. Las versiones más recientes de Windows son Windows 8.1 y 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. Tecnologías de la Información Software ‐ Programas SO – MS Windows Tecnologías de la Información Software ‐ Programas SO – MS Windows Tecnologías de la Información Software ‐ Programas SO – MS Windows Tecnologías de la Información Software ‐ Programas SO – MS Windows Tecnologías de la Información Software ‐ Programas SO – MS Windows Tecnologías de la Información Software ‐ Programas SO – Android Android es un sistema operativo basado en Linux diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos inteligentes o tabletas, inicialmente desarrollado por Android, Inc. Google respaldó económicamente y más tarde compró esta empresa en 2005.[9] Android fue presentado en 2007 junto la fundación del Open Handset Alliance: un consorcio de compañías de hardware, software y telecomunicaciones para avanzar en los estándares abiertos de los dispositivos móviles.[10] El primer móvil con el sistema operativo Android fue el HTC Dream y se vendió en octubre de 2008.[11] El sistema operativo Android se usa en teléfonos inteligentes, ordenadores portátiles, netbooks, tabletas, Google TV, relojes de pulsera,[50] auriculares[51] y otros dispositivos,[52] [53] [54] siendo este sistema operativo accesible desde terminales de menos de $100 hasta terminales que superen los $1000. La plataforma de hardware principal de Android es la arquitectura ARM. Hay soporte para x86 en el proyecto Android‐x86,[55] y Google TV utiliza una versión especial de Android x86. Tecnologías de la Información Software ‐ Programas SO – iOS iOS es un sistema operativo móvil de la empresa Apple Inc. Originalmente desarrollado para el iPhone (iPhone OS), siendo después usado en dispositivos como el iPod Touch, iPad y el Apple TV. Apple, Inc. no permite la instalación de iOS en hardware de terceros. Tenía el 26% de cuota de mercado de sistemas operativos móviles vendidos en el último cuatrimestre de 2010, detrás de Google Android y Nokia Symbian.[2] En enero de 2014, el 78% de los dispositivos iOS (iPad, iPod y iPhone) poseen iOS 7.[3] La interfaz de usuario de iOS está basada en el concepto de manipulación directa, usando gestos multitáctiles. Los elementos de control consisten de deslizadores, interruptores y botones. La respuesta a las órdenes del usuario es inmediata y provee de una interfaz fluida. La interacción con el sistema operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen definiciones diferentes dependiendo del contexto de la interfaz. iOS se deriva de Mac OS X, que a su vez está basado en Darwin BSD, y por lo tanto es un sistema operativo Tipo Unix. iOS cuenta con cuatro capas de abstracción: la capa del núcleo del sistema operativo, la capa de "Servicios Principales", la capa de "Medios" y la capa de "Cocoa Touch". La versión actual del sistema operativo (iOS 7.0.4) ocupa más o menos 1.1 GB, variando por modelo. Tecnologías de la Información Software ‐ Programas SO – Soporte ARM/x86 ARM X86 Windows CE Windows CE Linux Linux Android Android Unix Unix iOS Mac OS X Windows 8 RT Windows XP Windows Vista Windows 7 Windows 8 Windows Server Tecnologías de la Información Software ‐ Programas SO – 32vs64 bits Normalmente existen versiones de 32 y 64 bits de cada sistema operativo. La diferencia está básicamente en la longitud de registros que puede tratar (32 bits o 64 bits). Los sistemas operativos de 64 bits son ligeramente más rápidos al poder tratar la información en bloques de mayor tamaño y, sobre todo, pueden gestionar más memoria central, que en los sistemas de 32bits está limitada a 4GB. Existe una serie de dependencias entre los bits del procesador (CPU) y los bits del Sistema Operativo, Drivers y Aplicaciones. Limites de memoria para los sistemas Windows Tecnologías de la Información SO – Comparación de Comandos Software ‐ Programas Tecnologías de la Información Software ‐ Programas Practica. Abrir PowerShell y PowerShell ISE y practicar con algunos comandos Inicio Todos los programas Accesorios Windows PowerShell enlace Tecnologías de la Información Software ‐ Programas Practica. Comprobar el tipo de sistema operativo (32/64 bits) Inicio Equipo Propiedades Tecnologías de la Información Software ‐ Programas Practica. Comprobar el tipo de sistema operativo (32/64 bits) con PowerShell : $computerSystem = get‐wmiobject Win32_ComputerSystem $computerBIOS = get‐wmiobject Win32_BIOS $computerOS = get‐wmiobject Win32_OperatingSystem cls “Información del Sistema de : " + $computerSystem.Name “” “Fabricante: " + $computerSystem.Manufacturer "Modelo : " + $computerSystem.Model “Número de Serie : " + $computerBIOS.SerialNumber “Sistema Operativo : " + $computerOS.caption + ", Service Pack: " + $computerOS.ServicePackMajorVersion “Tipo de Sistema : “+ $computerOS.OSArchitecture “Memoria Total en Gb : " + $computerSystem.TotalPhysicalMemory/1gb “Usuario Conectado : " + $computerSystem.UserName “Ultimo Arranque : " + $computerOS.ConvertToDateTime($computerOS.LastBootUpTime) Tecnologías de la Información Software ‐ Programas Practica. Obtener la hora del ordenador y las propiedades del objeto Get‐WmiObject ‐Class Win32_LocalTime ‐ComputerName . Get‐WmiObject ‐Class Win32_LocalTime ‐ComputerName . | Select‐Object ‐Property [a‐z]* Borrar todos los archivos .txt de una carpeta y todos sus subdirectorios Get‐ChildItem ‐include “*.txt” ‐recur remove‐item Borrar todos los archivos que tengan una antigüedad superior a 10 días $now = get‐date get‐childitem . ‐recurse where‐object {($now – $_.LastWriteTime).Days ‐lt 10} remove‐item NOTA : Windows Management Instrumentation o WMI (en español, Instrumental de administración de Windows) es la implementación de WBEM (Web‐ Based Enterprise Management) de Microsoft, una iniciativa que pretende establecer normas estándar para tener acceso y compartir la información de administración a través de la red de una empresa. WMI proporciona compatibilidad integrada para el Modelo de Información Común (CIM, Common Information Model), :Y que describe los objetos existentes en un entorno de administración. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros El sistema de archivos o ficheros (en inglés : filesystem) es el componente del sistema operativo encargado de administrar y facilitar el uso de las memorias periféricas, ya sean secundarias o terciarias. Sus principales funciones son la asignación de espacio a los archivos, la administración del espacio libre, y la administración del acceso a los datos resguardados. Estructuran la información guardada en una unidad de almacenamiento (normalmente un disco duro de una computadora), que luego será representada ya sea textual o gráficamente utilizando un gestor de archivos. La mayoría de los sistemas operativos manejan su propio sistema de archivos.[1] Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores, usualmente de 512 bytes de longitud. El software del sistema de archivos es responsable de la organización de estos sectores en archivos y directorios y mantiene un registro de qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar y eliminar tanto archivos como directorios. El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de lista de control de acceso o capacidades. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros Con objeto de facilitar su localización, normalmente los archivos en los sistemas de ficheros se organizan en directorios o carpetas. La estructura de directorios suele ser jerárquica, ramificada o "en árbol", aunque en algún caso podría ser plana. En algunos sistemas de archivos los nombres de archivos son estructurados, con sintaxis especiales para extensiones de archivos y números de versión. En otros, los nombres de archivos son simplemente cadenas de texto y los metadatos de cada archivo son alojados separadamente. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros En los sistemas de archivos jerárquicos, usualmente, se declara la ubicación precisa de un archivo con una cadena de texto llamada "ruta" —o path en inglés—. La nomenclatura para rutas varía ligeramente de sistema en sistema, pero mantienen por lo general una misma estructura. Una ruta viene dada por una sucesión de nombres de directorios y subdirectorios, ordenados jerárquicamente de izquierda a derecha y separados por algún carácter especial que suele ser una diagonal ('/') o diagonal invertida ('\') y puede terminar en el nombre de un archivo presente en la última rama de directorios especificada. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros Ruta de Acceso Absoluta: Cada archivo tiene una ruta de acceso absoluta. Consta de la ruta de acceso desde el directorio raíz hasta el archivo. Los componentes de la ruta de acceso se separan mediante algún carácter llamado “separador”. Ruta de Acceso Relativa: Se utiliza junto con el concepto de directorio de trabajo o directorio activo. Todos los nombres que no comiencen en el directorio raíz se toman en relación con el directorio de trabajo. El nombre absoluto de la ruta de acceso siempre funciona, sin importar cual sea el directorio de trabajo. Tecnologías de la Información Software ‐ Programas Windows Unix SO – Sistema de Ficheros Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros Un sistema de archivos virtual (VFS) o conmutador de sistema de archivos virtual es una capa de abstracción encima de un sistema de archivos más concreto. El propósito de un VFS es permitir que las aplicaciones cliente tengan acceso a diversos tipos de sistemas de archivos concretos de una manera uniforme. Puede ser utilizada para tender un puente sobre las diferencias en los sistemas de archivos de Windows, de Mac OS y Unix, de modo que las aplicaciones pudieran tener acceso a archivos en los sistemas de archivos locales de esos tipos sin tener que saber a qué tipo de sistema de archivos están teniendo acceso. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros Estructura típica de sistemas Unix Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros System32 Security Windows Resources Estructura típica de sistemas Windows … Acrobat 9 C:\ Program Files Adobe Acrobat 10 Microsoft Office Reader Google HP … Application Data Desktop Documents Usuario1 Users Pictures Usuario2 Music … Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros Diferencia más notables de los Sistemas de Ficheros de Windows y Unix Windows Unix Letra de Unidad (C:, D:, …) Directorios Carpeta/Subcarpeta Directorio/Subdirectorio Rutas c:\... Rutas /home/… No distingue Mayúsculas Distingue Mayúsculas Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros ‐ Metadatos Los sistemas de ficheros guardan además del propio contenido de los ficheros (datos) información sobre los mismos (datos sobre los datos). Metadatos típicos pueden ser la longitud de los datos contenidos en un fichero, la hora en la que el fichero se modificó por ultima vez, la fecha y hora de creación del fichero, la fecha y hora en la que se hizó copia de seguridad del fichero por última vez, el identificador de usuario del propietario del fichero, permisos del fichero, atributos del fichero (si el fichero es de solo lectura, si es oculto, ejecutable, …), … . El sistema de ficheros guarda todos los metadatos asociados con un fichero (incluido su nombre, longitud del contenido, localización el la jerarquía de carpetas, …) separado del contenido del propio fichero. La mayoría de los sistemas de ficheros guardan los nombres de todos los ficheros de un directorio en un único lugar (la tabla de directorio de ese directorio) la cual se almacena como cualquier otro fichero. Muchos sistemas de ficheros solo ponen algunos metadatos de los ficheros en la tabla del directorio y el resto lo guardan en una estructura completamente separada (por ejemplo la tabla de i‐nodos). Se pueden asociar atributos adicionales en algunos sistemas de ficheros como NTFS, XFS, ext2, ext3, algunas versiones de UFS, y HFS+, utilizando atributos de fichero extendidos. Algunos FS ya facilitan algunos atributos definidos por el usuario como el autor del documento o el tamaño de una imagen. Algunos sistemas de ficheros pueden mantener múltiples versiones anteriores de un mismo fichero (con un nombre unico). El nombre del fichero devuelve la versión más reciente, mientras que versiones anteriores se pueden acceder con una nomenclatura especial (por ejemplo “nombre(‐4)” para acceder a la versión de hace 4 ‘salvados’ del fichero. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros Otras funciones de los Sistemas de Ficheros : • • • Cuotas de Disco: Para evitar que los usuarios se apropien de un espacio excesivo en disco, los S. O. multiusuario proporcionan generalmente un mecanismo para establecer las cuotas en el disco. La idea es que un administrador del sistema asigne a cada usuario una proporción máxima de archivos y bloques que ese usuario puede utilizar. El SO garantiza que los usuarios no excedan sus cuotas. Acceso concurrente a los ficheros : con objeto de asegurar la consistencia de los ficheros con acceso concurrentes (en los sistemas multiusuario o multiproceso) el sistema de fichero permite abrir en lectura un fichero por varios usuarios/procesos pero solamente uno de ellos lo puede tener abierto simultáneamente en Lectura/escritura‐ Permisos : en base a la Autenticación establecida por el SO, se mantienen para cada fichero la lista de usuarios/grupos que pueden ver / leer / modificar / ejecutar /… cada fichero (lista ACL). Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros Lista de Ficheros en Unix Nombre del Fichero Fecha y hora Modificación Tamaño en Bytes Grupo Usuario Nº de Enlaces Permisos Tipo de Fichero Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros Permisos de Ficheros en Unix Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros ‐ Implementación Existen dos estrategias generales para almacenar un archivo de “n” bytes : • Asignar “n” bytes consecutivos de espacio en el disco: Tiene el problema de que si un archivo crece será muy probable que deba desplazarse en el disco, lo que puede afectar seriamente al rendimiento. • Dividir el archivo en cierto número de bloques (no necesariamente) adyacentes: Generalmente los sistemas de archivos utilizan esta estrategia con bloques de tamaño fijo. Tamaño del bloque (o cluster): Dada la forma en que están organizados los bloques, el sector, la pista y el cilindro son los candidatos obvios como unidades de asignación (un sector suele ser 512KB). Sin embargo muchos sistemas de archivo utilizan un múltiplo del sector que llaman bloque o “cluster”, siendo esta unidad la mínima asignación a un fichero. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros ‐ Implementación Si se tiene una unidad de asignación grande, como un cilindro, esto significa que cada archivo, inclusive uno pequeño, ocupará todo un cilindro; con esto se desperdicia espacio de almacenamiento en disco. Si se utiliza una unidad de asignación pequeña, como un sector, implica que cada archivo constará de muchos bloques; con esto su lectura generará muchas operaciones de e / s afectando la performance. Lo anterior indica que la eficiencia en tiempo y espacio tienen un conflicto inherente. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros ‐ Implementación Gestión de disco : ¿como se utilizan los sectores del disco para representar los bloques de un fichero?. La estructura utilizada para describir qué sectores pertenecen a un fichero se llama descriptor del fichero (file descriptor). Opción 1 → Asignación contigua : mantener una lista de sectores libres en el disco. Cuando se crea un fichero solicitar que se especifique el tamaño del mismo, asignar todo el espacio del disco contiguo de una vez. El descriptor del fichero contiene el primer sector y su tamaño. Ventajas : acceso fácil tanto secuencial como aleatorio. Sencillo. Pocas búsquedas. Desventajas : enorme fragmentación del espacio libre, imposibilita la utilización de ficheros grandes. Difícil predecir necesidades Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros ‐ Implementación Opción 2 → Sectores enlazados : En el descriptor del fichero solo se guarda un apuntador al primer bloque. Cada bloque del fichero apunta al siguiente bloque. Se puede mantener también una lista enlazada de los bloques libres (sin uso). Ventajas : Los ficheros se pueden extender, no hay problemas de fragmentación del espacio libre. El acceso secuencial es sencillo, solo hay que seguir la cadena de enlaces. Desventajas : El acceso aleatorio es virtualmente imposible. Montones de búsquedas incluso en el acceso secuencial. Fragmentación. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros ‐ Implementación Opción 3 Tabla de Punteros a Bloques : Se mantiene una única tabla (Tabla de asignación de archivos, comúnmente conocido como FAT del inglés file allocation table) con los punteros a todos los bloques del disco, tanto los asignados a ficheros como aquellos que estén libres. En el descriptor del fichero se apunta al primer bloque del fichero. Cada entrada de la FAT contiene o bien el numero del siguiente bloque del fichero o un valor concreto que indica que ese bloque es el último del fichero (eof) o un valor concreto que indica que el bloque está libre. Descriptores de Fichero FAT Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros Implementación FAT Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros FAT Existe una serie bastante amplia de implementaciones FAT (FAT-12, FAT-16, FAT-32, vfat,…) todas las cuales utilizan una tabla de asignación de ficheros y a las que en líneas generales se puede aplicar la siguiente información. El Sistema de Ficheros FAT guarda cada fichero como una lista de bloques enlazados. Los bloques físicos del disco solo contienen los datos ( no la estructura de enlaces). La tabla de apuntadores que implementa la lista enlazada se almacena en memoria. El sistema FAT se introdujo con MS-DOS y las primeras versiones de Windows. Todas las versiones de Windows soportan FAT, aunque las últimas (a partir de Windows NT) también pueden utilizar un sistemas más avanzado llamado NTFS. Los sistemas Linux soportan FAT (y en algunos casos también NTFS con limitaciones). El sistema FAT también se utiliza en las memorias USB y las tarjetas de memoria de las cámaras digitales. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros FAT Principales características : • • • • • • La entrada de directorio de un fichero apunta al primer bloque del fichero (indicando el numero de bloque). La tabla FAT se mantiene en memoria y tiene una entrada por cada bloque de disco. La entrada del bloque N contiene el numero de bloque del siguiente bloque del mismo fichero. Si un bloque es el último del fichero el contenido de esa entrada es EOF. Es una implementación de asignación enlazada pero se guarda separada de los datos. El tiempo de acceso aleatorio depende del tamaño del fichero, pero los accesos son a la tabla FAT que está en memoria por lo que el rendimiento es mucho mejor que un sistema de sectores enlazados plano. El tamaño de la tabla FAT es de un apuntador por bloque de disco. Luego el tamaño de la tabla depende del tamaño del bloque (en sectores) y del tamaño de los punteros. • Si el bloque es de 4KB y la tabla FAT tiene entradas de 4-bytes, la tabla tiene un tamaño de 1MB por cada 1GB de disco. • Si el bloque es de 512 bytes (el tamaño normal de un sector de disco) la tabla ocupa 8MB por cada 1GB de disco. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros FAT Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros FAT Nombres de Fichero Largos (LFN Long Filenames) es un método que ha implementado Microsoft para utilizar nombres de ficheros más largos que el esquema inicialmente implementado en MS DOS (FAT), y mantenido en versiones posteriores, que solo admite nombre de fichero de 8 caracteres y 3 caracteres adicionales de extensión (8.3). El sistema de nombre largo de ficheros admite una longitud máxima de 255 caracteres UTF‐16. Para mantener la compatibilidad con sistemas operativos anteriores , Microsoft formuló un método para generar ficheros 8.3 desde nombres de fichero más largos (por ejemplo “Microsoft.txt” a “MICROS~1.TXT“) y asociarlo al mismo fichero. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros NTFS Todo lo que tiene que ver con los ficheros se almacena en forma de metadatos. Permitiendo una fácil ampliación de características (Active Directory). Los nombres de archivo son almacenados en Unicode (UTF‐16), y la estructura de ficheros en árboles‐B, una estructura de datos compleja que acelera el acceso a los ficheros y reduce la fragmentación, que era lo más criticado del sistema FAT. Son árboles balanceados de búsqueda en los cuales cada nodo puede poseer más de dos hijos.[1] Los árboles B mantienen los datos ordenados y las inserciones y eliminaciones se realizan en tiempo logarítmico amortizado. Se emplea un registro transaccional (journal) para garantizar la integridad del sistema de ficheros (pero no la de cada archivo). Los sistemas que emplean NTFS han demostrado tener una estabilidad mejorada, sin embargo, este sistema de archivos posee un funcionamiento prácticamente secreto, ya que Microsoft no ha liberado su código, como hizo con FAT. Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros ext2/ext3 El Sistema de Ficheros ext2 y ext3 es utilizado por Unix/Linux. Las entradas de directorio apuntan a un i‐nodo (nodo‐indexado). El i‐nodo apunta a los primeros bloques de datos del fichero, llamados bloques directos. El i‐nodo apunta también (si es necesario por el tamaño del fichero) a un bloque indirecto que a su vez apunta a bloques de disco. Si por el tamaño del fichero es necesario añadir más bloques el i‐nodo puede también apuntar a un bloque doblemente indirecto, que a su vez apunta a bloques indirectos que a su vez apuntan a bloques de disco. En algunos caso se puede llegar en caso necesario a bloques triplemente indirectos. El i‐nodo de ficheros abiertos se mantiene en memoria, luego referencias a bloques directos solo necesitan una operación de E/S. Para grandes ficheros, la mayor parte de las referencias necesitan dos operaciones de E/S (bloque indirecto + datos). Los ficheros más grandes necesitan tres operaciones de E/S para leer un bloque (doble indirecto + indirecto + datos). Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros ext2/ext3 Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros ext2/ext3 Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros ‐ Comparación Comparación de Sistemas de Archivo FAT 16 FAT 32 exFAT NTFS ReFS ext3 ext4 HFS HFS+ Fabricante Microsoft Microsoft Microsoft Microsoft Microsoft Stephen Tweedie Varios Apple Apple Aparición 1984 1996 2006 2009 1993 2013 1999 2006 1985 1998 SO Inicial DOS Windows 95 Windows CE 6.0 Windows NT 3.1 Windows Server 2012 Linux Linux Kernel 2.6.19 Mac OS Mac OS 8.1 256 256 256 Nombre Fichero 8.3 (256 con LFN) 8.3 (256 con LFN) 256 256 31 256 Sin Limite Sin Limite Sin Limite Sin Limite Longitud de la Ruta Sin Limite Sin Limite Sin Limite Sin Limite Tamaño Fichero 2GB 4GB 127PB 16EB 16EB 2TB 2TB 2GB 2GB Tamaño Volumen 4GB 2TB 64ZB 16EB 256ZB 32TB 32TB 2TB 2TB Seguridad NO NO SI SI SI SI SI SI Tecnologías de la Información Software ‐ Programas SO – Sistema de Ficheros – Compatibilidad por SO FAT 16 FAT 32 exFAT NTFS MS DOS OK MS Windows 95 OK MS Windows NT OK MS Windows XP OK OK SP3 OK MS Windows Vista OK OK OK OK MS Windows 7 OK OK OK OK Mac OS X OK OK OK Lectura GNU/Linux OK OK OK Lectura ext3 HFS OK OK OK OK Tecnologías de la Información Software ‐ Programas Practica. Ejercicio : identificar el sistema de archivos de la partición activa de mi PC (Windows). ‐> Inicio ‐> Equipo ‐> Disco C: (botón derecho) ‐> propiedades Explorar las opciones en las distintas pestañas … Tecnologías de la Información Software ‐ Programas Practica. • Comprobar el tamaño de un fichero y el tamaño ocupado en disco por un fichero. • Ver los Metadatos de un fichero de texto y un fichero de una imagen. • Indicar los Metadatos a ver en el explorador de ficheros de Windows. Tecnologías de la Información Software ‐ Programas Practica. Utilidad para la gestión del Sistema de Archivos NTFS : fsutil → fsutil fsinfo ntfsinfo → fsutil fsinfo volumeinfo c: Tecnologías de la Información Software ‐ Programas Practica. Obtener un resumen general de la configuración del sistema : Inicio Todos los Programas Accesorios Herramientas del Sistema Información del Sistema Revisar los principales apartados : • Resumen • Componentes • Red • Almacenamiento/Discos • … Tecnologías de la Información Software ‐ Programas Tecnologías de la Información Software ‐ Programas