software
software
Se conoce como software1 al equipamiento lógico o soporte lógico de un sistema informático, comprende el conjunto de los componenteslógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos, que son llamadoshardware.
Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas; tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el software de sistema, tal como el sistema operativo, que, básicamente, permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.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.
Considerando esta definición, el concepto de software va más allá de los programas de computación en sus distintos estados: código fuente, binario o ejecutable; también su documentación, los datos a procesar e incluso la información de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo «no físico» relacionado.
El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957. En la ingeniería de software y las ciencias de la computación, el software es toda la informaciónprocesada por los sistemas informáticos: programas y datos.
El concepto de leer diferentes secuencias de instrucciones (programa) desde la memoria de un dispositivo para controlar los cálculos fue introducido por Charles Babbage como parte de sumáquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, «Los números computables», con una aplicación al problema de decisión.
1.-SOFTWARE DE BSE O SISTEMA
el 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. Como ejemplos cabe mencionar a las bibliotecas como por ejemplo OpenGL para la aceleración gráfica, PNG para el sistema gráfico o demonios que controlan la temperatura, la velocidad del disco duro, como hdparm, o la frecuencia del procesadorcomo cpudyn.
El software de sistema por antonomasia es Microsoft Windows, que entre todas sus versiones acumula cerca de un 90% de la cuota de mercado.1 Mención especial merece el proyecto GNU, cuyas herramientas de programación permitieron combinarse con el núcleo informático basado en Unix denominado Linux, formando entre ambos las conocidas como distribuciones GNU/Linux. A diferencia de la plataforma de Microsoft u otros ejemplos como Mac OS, es software libre.
Estos programas realizan diversas tareas, como la transferencia de datos entre la memoria RAM y los dispositivos de almacenamiento (disco rígido, unidades de discos ópticos, etc) entre otros.
el 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. Como ejemplos cabe mencionar a las bibliotecas como por ejemplo OpenGL para la aceleración gráfica, PNG para el sistema gráfico o demonios que controlan la temperatura, la velocidad del disco duro, como hdparm, o la frecuencia del procesadorcomo cpudyn.
El software de sistema por antonomasia es Microsoft Windows, que entre todas sus versiones acumula cerca de un 90% de la cuota de mercado.1 Mención especial merece el proyecto GNU, cuyas herramientas de programación permitieron combinarse con el núcleo informático basado en Unix denominado Linux, formando entre ambos las conocidas como distribuciones GNU/Linux. A diferencia de la plataforma de Microsoft u otros ejemplos como Mac OS, es software libre.
Estos programas realizan diversas tareas, como la transferencia de datos entre la memoria RAM y los dispositivos de almacenamiento (disco rígido, unidades de discos ópticos, etc) entre otros.
Tipos de software de sistemas
a)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, usb y cd). 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.
Todos los sistemas operativos que an la carga de programas tienen cargadores. Algunos sistemas operativos empotrados de computadoras altamente especializadas corren un único programa y no existen capacidades de carga de programas, por lo tanto no usan cargadores. Ejemplos de estos sistemas embebidos se encuentran en equipos de audio para automóviles.
En los sistemas Unix, el cargador es el manejador para la llamada del sistema execve().
Algunas computadoras necesitan cargadores relocalizables, los cuales ajustan direcciones de memoria (punteros) en un ejecutable para compensar las variaciones en la cual la memoria disponible de la aplicación empieza. Las computadoras que necesitan de los cargadores relocalizables son aquellos en los cuales los punteros son direcciones absolutas en vez de compensaciones de direcciones base del programa. Un ejemplo muy conocido está en los mainframes IBM Sistema 360 y sus descendientes, incluyendo la serie de los sistemas Z9.
b)SISTEMA OPERATIVO
Un sistema operativo (SO) 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.1
Nótese que es un error común muy extendido denominar al conjunto completo de herramientas sistema operativo, es decir, la inclusión en el mismo término de programas como el explorador de ficheros, el navegador web y todo tipo de herramientas que permiten la interacción con el sistema operativo, también llamado núcleo o kernel. Esta identidad entre kernel y sistema operativo es solo cierta si el núcleo es monolítico.
c) ENSAMBLADORES
Ventajas para utilizarlo:
Mayor control de la computadora.
Independencia de lenguaje.
La mayoría de las computadoras pueden ensamblar.
Los programas hechos en lenguaje ensamblador son generalmente más rápidos y consumen menos recursos del sistema.
Desventajas para no utilizarlo:
Demasiado complejo.
Comprensión más profunda de la computadora.
Errores más frecuentes en el programa.
Mayor tiempo de codificación.
Difícilmente portable, es decir, un código escrito para un microprocesador en particular necesita ser modificado muchas veces en su totalidad para poder ser usado en otro microprocesador.
Tipos de ensambladores:
Ensambladores cruzados: Se denominan así a los ensambladores que se utilizan en una computadora que posee el procesador diferente al que tendrán las computadoras donde se va a ejecutar el programa objeto producido.
Ensambladores residentes: Son aquellas que permanecen en la memoria principal de la computadora y cargar para su ejecución al programa objeto producido.
Micro ensambladores: Al programa que indica al intérprete de instrucciones de la CPU como debe actuar se le denomina microprograma. El programa que ayuda a realizar este microprograma se llama micro ensamblador.
Macro ensambladores: Son ensambladores que permiten el uso de macroinstrucciones.
Ensambladores de una fase: Leen una línea y la traducen directamente para producir una instrucción de lenguaje maquina o la ejecuta si se trata de una pseudosinstrucción. Se construye la tabla de símbolos a medida que aparecen las definiciones de variables, etiquetas, etc.
Ensambladores de dos fases: Realiza la traducción en dos etapas: 1° fase leen el programa fuente y construyen la tabla de símbolos, 2° fase vuelve a leer el programa fuente y pueden ir traduciendo totalmente pues reconocen la totalidad de los símbolos.
d)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 un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce comocompilación.1
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.
Diagrama a bloques de la operación de un buen compilador.
e)UTILERIAS
para la construcción y ejecución de programas, en donde se incluyen las
bibliotecas de sistema, middleware, herramientas de desarrollo, etc.
* UTILERIAS DEL SISTEMA
Se ejecutan bajo el control del sistema operativo y se utilizan para preparar algunos recursos usados por el sistema. Son de uso interno.
* UTILERIAS PARA ARCHIVOS
Manejan información de los archivos tales como imprimir, clasificar, copiar, etc.
* UTILERIAS INDEPENDIENTES
Realizar funciones que se relacionan con la iniciación de dispositivos de Entrada/Salida, carga del sistema operativo, etc
Ejemplos de Software de Utilería que permiten dar Mantenimiento Al sistema Operativo.
* TuneUP Utilities: Es un paquete de aplicaciones cuya misión consiste en realizar un completo mantenimiento al ordenador. Entre otros propósitos, permite desfragmentar el disco duro, eliminar archivos temporales, realizar ajustes automáticos para incrementar la velocidad de navegación en Internet, desfragmentar y corregir errores del registro, así como personalizar la apariencia del sistema.
* Ccleaner: Es una aplicación gratuita, de código cerrado (software no libre), que tiene como propósito mejorar el rendimiento de cualquier equipo que lo ejecute mediante la eliminación de archivos innecesarios, entradas inválidas del Registro de Windows y también cuenta con la posibilidad de desinstalar programas desde su interfaz al igual que inhabilitar la ejecución de aplicaciones en el inicio del sistema con el fin de mejorar la velocidad de arranque del sistema operativo.
* Norton Utilities: Es una utilidad de software suite diseñada para ayudar a analizar, configurar, optimizar y mantener el equipo.
* jv16 PowerTools: Es una utilidad de software para la suite de Microsoft Windows sistema operativo diseñado para ayudar a analizar, optimizar y mantener el equipo.
2.-SOFTWARE DE APLICACION
Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios.Ejemplos de programas de aplicación pueden ser: programas de comunicación de datos, multimedia, presentaciones, diseño gráfico, cálculo,finanzas, correo electrónico, navegador web, compresión de archivos, presupuestos de obras, gestión de empresas, etc
a)software de aplicacion general
El software para uso general ofrece la estructura para un gran número de aplicaciones empresariales, científicas y personales. El software de hoja de cálculo, de diseño asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categoría. La mayoría de software para uso general se vende como paquete; es decir, con software y documentación orientada al usuario ( manuales de referencia, plantillas de teclado y demás ).
b)- software de aplicacion especifica
El software de Aplicación es aquel que hace que el computador coopere con el usuario en la realización de tareas típicamente humanas, tales como gestionar una contabilidad o escribir un texto.
La diferencia entre los programas de aplicación y los de sistema estriba en que los de sistema suponen ayuda al usuario para relacionarse con el computador y hacer un uso más cómo del mismo, mientras los de aplicación son programas que cooperan con el usuario para la realización de las actividades mencionadas.
Es en este software de Aplicación donde se aprecia en forma más clara la ayuda que puede suponer un computador en las actividades humanas, ya que la máquina se convierte en un auxiliar del hombre, liberándole de las tareas repetitivas.
Los programadores de aplicaciones, a diferencia de los programadores de sistemas, no necesitan conocer a fondo el modo de funcionamiento interno del hardware.
Basta con que conozcan las necesidades de información de sus aplicaciones y cómo usar elsistema operativo, para conseguir satisfacer estas necesidades.
Sus programas deben ser independientes del hardware específico que se utilice y deben ser transportados sin grandes problemas de adaptación a otras computadoras y otros entornos operativos.
Dentro de los programas de aplicación, puede ser útil una distinción entre aplicaciones verticales, de finalidad específica para un tipo muy delimitado de usuarios (médicos, abogados, arquitectos…), y aplicaciones horizontales, de utilidad para una amplísima gama de usuarios de cualquier tipo.
Algunos ejemplos de software aplicaciones son:
> Procesadores de texto. (Bloc de Notas)
> Editores. (PhotoShop para el Diseño Gráfico)
> Hojas de Cálculo. (MS Excel)
> Sistemas gestores de bases de datos. (MySQL)
> Programas de comunicaciones. (MSN Messenger)
> Paquetes integrados. (Ofimática: Word, Excel, PowerPoint…)
> Programas de diseño asistido por computador. (AutoCAD)