Software de Sistema y Software de Aplicación
Software se refiere al equipamiento lógico o soporte lógico de una computadora digital, y comprende el conjunto de los componentes lógicos necesarios para hacer posible la realización de una tarea específica, en contraposición a los componentes físicos del sistema.
Probablemente la definición más formal de software sea la siguiente: Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación
4.1. Software de sistema
Denominado también software de base, consiste en programas informáticos que sirven para controlar e interactuar con el sistema operativo, proporcionando control sobre el hardware y dando soporte a otros programas; en contraposición del llamado software de aplicación.
El software de sistema puede clasificarse en sistema operativo, controladores de dispositivos y programas utilitarios. Un sistema operativo crea una interfaz entre el usuario y el sistema de hardware, mientras que el resto de programas refinan o permiten mejorar la interacción con el hardware.
Clases de software de sistema son:
Cargadores de programas
Sistemas operativos (y sus componentes, muchos de los cuales pueden considerarse como software de sistema)
Controladores de dispositivos
Herramientas de programación: compiladores, ensambladores, enlazadores, etc.
Programas utilitarios
Entorno de escritorio / Interfaz gráfica de usuario (que pueden incluir Gestores de ventanas)
Línea de comandos
BIOS
Hipervisores
Bootloaders (Gestor de arranque)
firmware
Si el software de sistema se almacena en una memoria no volátil tal como circuitos integrados, usualmente se lo denomina firmware.
16
4.1.1. Cargadores de programas:
Un cargador es la parte de un sistema operativo que es responsable de cargar programas en memoria desde los ejecutables (por ejemplo, archivos ejecutables). El cargador es usualmente una parte del núcleo del sistema operativo y es cargado al iniciar el sistema y permanece en memoria hasta que el sistema es reiniciado o apagado. Algunos sistemas operativos que tienen un núcleo paginable pueden tener el cargador en una parte paginable de la memoria, entonces a veces el cargador hace un intercambio de memoria.
Sistemas operativos (y sus componentes, muchos de los cuales pueden considerarse como software de sistema):
Un Sistema operativo (SO) es un programa informático que actúa de interfaz entre los dispositivos de hardware y los programas usados por el usuario para manejar un computador. Es responsable de gestionar, coordinar las actividades y llevar a cabo el intercambio de los recursos y actúa como estación para las aplicaciones que se ejecutan en la máquina.
4.1.2. Controladores de dispositivos
Un controlador de dispositivo, llamado normalmente controlador (en inglés, device driver) es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Se puede esquematizar como un manual de instrucciones que le indica al sistema operativo, cómo debe controlar y comunicarse con un dispositivo en particular. Por tanto, es una pieza esencial, sin la cual no se podría usar el hardware.
17
4.1.3. Herramientas de programación:
Compiladores
Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación.
Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.
Ensambladores
El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado. El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible.
Enlazadores
Un enlazador (en inglés, linker) es un programa que toma los ficheros de código objeto generado en los primeros pasos del proceso de compilación, la información de todos los recursos necesarios (biblioteca), quita aquellos recursos que no necesita, y enlaza el código objeto con su(s) biblioteca(s) con lo que finalmente produce un fichero ejecutable o una biblioteca. En el caso de los programas enlazados dinámicamente, el enlace entre el programa ejecutable y las bibliotecas se realiza en tiempo de carga o ejecución del programa.
18
4.1.4. Programas utilitarios
En informática, una utilidad es una herramienta que realiza:
Tareas de mantenimiento
Soporte para la construcción y ejecución de programas
Las tareas en general
En donde se incluyen las bibliotecas de sistema, middleware, herramientas de desarrollo, etc.
Entre ellas podemos nombrar cifrado, descifrado de archivos, compresión de archivos, defragmentadores de discos editores de texto, respaldo, etc
4.1.5. Entorno de escritorio / Interfaz gráfica de usuario
Un entorno de escritorio es un conjunto de software para ofrecer al usuario de una computadora una interacción amigable y cómoda. El software es una solución completa de interfaz gráfica de usuario ofrece iconos, barras de herramientas, e integración entre aplicaciones con habilidades como, arrastrar y soltar
En general cada entorno de escritorio se distingue por su aspecto y comportamiento particulares, aunque algunos tienden a imitar características de escritorios ya existentes. El primer entorno moderno de escritorio que se comercializó fue desarrollado por Xerox en los años 80. Actualmente el entorno más conocido es el ofrecido por la familia Windows aunque existen otros como los de Macintosh (Classic y Cocoa) y de código abierto (o software libre) como GNOME, KDE, CDE, Xfce o LXDE
19
4.1.6. Línea de comandos
Interfaz de Línea de Comandos, por su acrónimo en inglés de Command Line Interface (CLI), es un método que permite a las personas dar instrucciones a algún programa informático por medio de una línea de texto simple. Debe notarse que los conceptos de CLI, Shell y Emulador de Terminal no son lo mismo, aunque suelen utilizarse como sinónimos.
Las CLI pueden emplearse interactívamente, escribiendo instrucciones en alguna especie de entrada de texto, o pueden utilizarse de una forma mucho más automatizada (batch), leyendo comandos desde un archivo de scripts.
Esta interfaz existe casi desde los comienzos de la computación, superada en antigüedad solo por las tarjetas perforadas y mecanismos similares. Existen, para diversos programas y sistemas operativos, para diversos hardware, y con diferente funcionalidad.
Las CLI son usadas por muchos programadores y administradores de sistemas como herramienta primaria de trabajo, especialmente en sistemas operativos basados en Unix; en entornos científicos y de ingeniería, y un subconjunto más pequeño de usuarios domésticos avanzados.
20
4.1.7. BIOS
El Sistema Básico de Entrada/Salida o BIOS (Basic Input-Output System ) es un código de software que localiza y reconoce todos los dispositivos necesarios para cargar el sistema operativo en la RAM; es un software muy básico instalado en la placa base que permite que ésta cumpla su cometido. Proporciona la comunicación de bajo nivel, el funcionamiento y configuración del hardware del sistema que, como mínimo, maneja el teclado y proporciona salida básica (emitiendo pitidos normalizados por el altavoz de la computadora si se producen fallos) durante el arranque. El BIOS usualmente está escrito en lenguaje ensamblador. El primer término BIOS apareció en el sistema operativo CP/M, y describe la parte de CP/M que se ejecutaba durante el arranque y que iba unida directamente al hardware (las máquinas de CP/M usualmente tenían un simple cargador arrancable en la ROM, y nada más). La mayoría de las versiones de MS-DOS tienen un archivo llamado "IBMBIO.COM" o "IO.SYS" que es análogo al CP/M BIOS.
El BIOS (Basic Input-Output System) es un sistema básico de entrada/salida que normalmente pasa inadvertido para el usuario final de computadoras. Se encarga de encontrar el sistema operativo y cargarlo en memoria RAM. Posee un componente de hardware y otro de software, este último brinda una interfaz generalmente de texto que permite configurar varias opciones del hardware instalado en la PC, como por ejemplo el reloj, o desde qué dispositivos de almacenamiento iniciará el sistema operativo (Windows, GNU/Linux, Mac OS X, etc.).
El BIOS gestiona al menos el teclado de la computadora, proporcionando incluso una salida bastante básica en forma de sonidos por el altavoz incorporado en la placa base cuando hay algún error, como por ejemplo un dispositivo que falla o debería ser conectado. Estos mensajes de error son utilizados por los técnicos para encontrar soluciones al momento de armar o reparar un equipo. Basic Input/Output System - Sistema básico de entrada/salida de datos). Programa que reside en la memoria EPROM (Ver Memoria BIOS no-volátil). Es un programa tipo firmware. La BIOS es una parte esencial del hardware que es totalmente configurable y es donde se controlan los procesos del flujo de información en el bus del
21
ordenador, entre el sistema operativo y los demás periféricos. También incluye la configuración de aspectos importantísimos de la máquina.
4.1.8. Hipervisores
Un hipervisor (en inglés hypervisor) o monitor de máquina virtual (virtual machine monitor) es una plataforma de virtualización que permite utilizar, al mismo tiempo, diferentes sistemas operativos (sin modificar o modificados en el caso de paravirtualización) en una misma computadora. Es una extensión de un termino anterior, ―supervisor‖, que se aplicaba a kernels de sistemas operativos.
Hipervisor tipo 1: También denominado nativo, unhosted o sobre el metal desnudo (bare metal), es software que se ejecuta directamente sobre el hardware, para ofrecer la funcionalidad descrita.
Hipervisor tipo 2: También denominado hosted, es software que se ejecuta sobre un sistema operativo para ofrecer la funcionalidad descrita.
4.1.9. Bootloaders
Un bootloader (en inglés «cargador de arranque» ) es un programa sencillo que no tiene la totalidad de las funcionalidades de un sistema operativo, diseñado exclusivamente para preparar todo lo que necesita el sistema operativo para funcionar. Normalmente se utilizan
22
los cargadores de arranque multietapas, en los que varios programas pequeños se suman los unos a los otros, hasta que el último de ellos carga el sistema operativo.
En los ordenadores modernos, el proceso de arranque comienza con la CPU ejecutando los programas contenidos en la memoria ROM en una dirección predefinida y se configura la CPU para ejecutar este programa, sin ayuda externa, al encender el ordenador.
4.1.10. Gestor de Arranque
Sistemas de computación impulsados por un procesador central o un conjunto de procesadores sólo pueden ejecutar código en la memoria de funcionamiento, también conocido como sistemas de memoria, que pueden ser implementados en varias tecnologías cubiertas en tipos generales de: memoria de sólo lectura o ROM, y memoria de acceso aleatorio o RAM. Modernos sistemas operativos y aplicaciones de programación de código y datos están almacenados en dispositivos no volátiles de memoria periférica o dispositivos de almacenamiento masivo. Ejemplos típicos de tales dispositivos de almacenamiento no volátiles son: Disco duro, CD-ROM, DVD, Dispositivos de memoria USB y unidades de disquete.
Gestor de Arranque de Segunda-etapa
Este programa contiene funcionalidades rudimentarias para buscar unidades que se puedan seleccionar para participar en el arranque, y cargar un pequeño programa desde una sección especial de la unidad más prometedora. El pequeño programa no es, en sí mismo, un sistema operativo sino, simplemente, un cargador de arranque de segundo nivel, como Lilo o Grub, que es capaz de cargar el sistema operativo propiamente dicho y, finalmente, transferirle el control. El sistema se auto-iniciará y puede cargar los controladores de dispositivos y otros programas que son necesarios para el normal funcionamiento del sistema operativo.
El proceso de arranque se considera completo cuando el ordenador está preparado para contestar a los requerimientos del exterior. El típico ordenador moderno arranca en, aproximadamente, un minuto (del cual, 15 segundos son empleados por los cargadores de arranque preliminares y, el resto, por el cargador del sistema operativo), mientras que los grandes servidores pueden necesitar varios minutos para arrancar y comenzar todos los servicios; para asegurar una alta disponibilidad, ofrecen unos servicios antes que otros.
La mayoría de los sistemas empotrados deben arrancar casi instantáneamente, por ejemplo, esperar un minuto para poder ver la TV se considera inaceptable. Por ello, tienen el sistema operativo en la ROM o memoria flash, gracias a lo cual pueden ser ejecutados de forma casi instantánea.
Gestor de Arranque Flash
Sistemas incorporados, especialmente en aplicaciones automotrices dependen en gran medida de gestores de arranque Flash para asegurarse de que La Unidad de Control de
23
Motor o ECU (en inglés: «Engine Control Unit» ) es programable, ya sea en producción o en servicio. Un gestor de arranque Flash reside en la memoria Flash, y es siempre la primera aplicación que se ejecuta después de un reinicio. El gestor de arranque Flash decide si una aplicación está lista y, por tanto, bien se queda en la ECU o salta a la solicitud para iniciar la ejecución. El beneficio de tener un gestor de arranque de Flash en una ECU es principalmente para permitir el borrado y la programación de nuevas aplicaciones en una sola ECU en el caso de las actualizaciones de una aplicación, o cambiar la configuración de una nueva descarga de archivos de calibración. Los gestores de arranque Flash más populares son los basados en CAN (en inglés «Controller Area Network» ) que usan el protocolo CAN para descargar datos a una ECU. Estos gestores de arranque hacen uso de un diagnóstico de protocolo para comunicar y para descargar a una ECU.
Gestor de Arranque de Red
La mayoría de los ordenadores también son capaces de arrancar en una red informática. En este escenario, el sistema operativo se almacena en el disco de un servidor, y ciertas partes del mismo se transfieren al cliente mediante un simple protocolo, como el Trivial File Transfer Protocol (en español «Protocolo de transferencia de archivos trivial».Después de que estas piezas han sido transferidas, el sistema operativo toma el control del proceso de arranque.
4.1.11. Firmware
Firmware o programación en firme, es un bloque de instrucciones de programa para propósitos específicos, grabado en una memoria de tipo no volátil (ROM, EEPROM, flash,...), que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un dispositivo de cualquier tipo. Al estar integrado en la electrónica del dispositivo es en parte hardware, pero también es software, ya que proporciona lógica y se dispone en algún tipo de lenguaje de programación. Funcionalmente, el firmware es el intermediario (interfaz) entre las órdenes externas que recibe el dispositivo y su electrónica, ya que es el encargado de controlar a ésta última para ejecutar correctamente dichas órdenes externas.
Encontramos firmware en memorias ROM de los sistemas de diversos dispositivos periféricos, como en monitores de video, unidades de disco, impresoras, etc., pero también en los propios microprocesadores, chips de memoria principal y en general en cualquier circuito integrado.
Muchos de los firmwares almacenados en ROM están protegidos por Derechos de Autor.
El programa BIOS de una computadora es un firmware cuyo propósito es activar una máquina desde su encendido y preparar el entorno para la instalación de un Sistema Operativo complejo, así como responder a otros eventos externos (botones de pulsación humana) y al intercambio de órdenes entre distintos componentes de la computadora.
24
En un microprocesador el firmware es el que recibe las instrucciones de los programas y las ejecuta en la compleja circuitería del mismo, emitiendo órdenes a otros dispositivos del sistema
No hay comentarios:
Publicar un comentario