Download HERRAMIENTAS INFORMATICAS Tema de investigación

Document related concepts

Sistema operativo wikipedia , lookup

Anillo (seguridad informática) wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Emulador wikipedia , lookup

Interfaz binaria de aplicaciones wikipedia , lookup

Transcript
HERRAMIENTAS INFORMATICAS
Tema de investigación:
SOFTWARE Y SUS TIPOS DE SOFTWARE
Integrante:
JORGE IVAN CARRILLO PATERNINA
Ingeniería De Sistemas II Semestre
A entregar:
ELKIN NAVARRO
UNIVERSIDAD DE CARTAGENA
CREAD MAGANGUÉ
Fecha:
05 De Mayo De 2011
INTRODUCCION
Software es todo el conjunto intangible de datos y programas de la computadora que
funcionan en conjunto para dar instrucciones, el cual permite la ejecución del hardware para la
realización de las tareas del ordenador. Estos en conjunto funcionan como herramienta de
trabajo.
Este es tan complejo que posee infinidad de programas para diferentes funcionamientos en
particular; para que haya un orden a la hora de trabajar con él; y así al usuario no se le haga
tan complicado.
El software muy importante, como también es importante los diferentes elementos que lo
rodean para poder funcionar, ya que requiere de una serie de sistemas o programas que lo
ayudan a realizar mejor sus funciones y necesita ser estudiado detenidamente ya que son
muchos elementos que lo conforman, y si no sabemos sus funciones no podemos manejar
correctamente al computador.
OBJETIVOS
Reconocer el software e identificar sus diferentes tipos en que se clasifica y las diferentes
funcionalidades que nos brinda ya sea en el hogar o en los negocios.

Sistema operativo: es el software que controla la ejecución de todas las aplicaciones
y de los programas de software de sistema.

Programas de ampliación: o también llamado software de aplicación; es el software
diseñado y escrito para realizar una tarea específica, ya sea personal, o de
procesamiento. Aquí se incluyen las bases de datos, tratamientos de textos, hojas
electrónicas, gráficas, comunicaciones, etc.

Software de programación: son las herramientas empleadas por el usuario para
desarrollar programas, que luego van a ser ejecutados por el ordenador.
SISTEMA OPERATIVO
Un sistema operativo (SO) es el programa o conjunto de programas que efectúan la gestión
de los procesos básicos de un sistema informático, y permite la normal ejecución del resto de
las operaciones.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 y todo tipo de herramientas que permiten la interacción con el
sistema operativo, también llamado núcleo o kernel. Uno de los más prominentes ejemplos de
esta diferencia, es el núcleo Linux, que es el núcleo del sistema operativo GNU, del cual
existen las llamadas distribuciones GNU. Este error de precisión, se debe a la modernización
de la informática llevada a cabo a finales de los 80, cuando la filosofía de estructura básica de
funcionamiento de los grandes computadores2 se rediseñó a fin de llevarla a los hogares y
facilitar su uso, cambiando el concepto de computador multiusuario, (muchos usuarios al
mismo tiempo) por un sistema monousuario (únicamente un usuario al mismo tiempo) más
sencillo de gestionar.3 (Véase AmigaOS, beOS o MacOS como los pioneros4 de dicha
modernización, cuando los Amiga, fueron bautizados con el sobrenombre de Video
Toasters5 por su capacidad para la Edición de vídeo en entorno multitarea round robín,
con gestión de miles de colores e interfaces para diseño en 3D.
Uno de los propósitos del sistema operativo que gestiona el núcleo intermediario consiste en
gestionar los recursos de localización y protección de acceso del hardware, hecho que alivia a
los programadores de aplicaciones de tener que tratar con estos detalles. Se encuentran en la
mayoría de los aparatos electrónicos que utilizan microprocesadores para funcionar. (Teléfonos
móviles, reproductores de DVD, computadoras, radios, etc.).
Modos De Ejecución En Un CPU
Las aplicaciones no deben poder usar todas las instrucciones de la CPU. No obstante el
Sistema Operativo, tiene que poder utilizar todo el juego de instrucciones del CPU. Por ello,
una CPU debe tener (al menos) dos modos de operación diferentes:

Modo usuario: el CPU podrá ejecutar sólo las instrucciones del juego restringido de
las aplicaciones.

Modo supervisor: la CPU debe poder ejecutar el juego completo de instrucciones.

LLAMADAS AL SISTEMA
Una aplicación, normalmente no sabe dónde está situada la rutina de servicio de la llamada.
Por lo que si ésta se codifica como una llamada de función, cualquier cambio en el SO haría
que hubiera que reconstruir la aplicación.
Pero lo más importante es que una llamada de función no cambia el modo de ejecución de la
CPU. Con lo que hay que conseguir llamar a la rutina de servicio, sin tener que conocer su
ubicación, y hacer que se fuerce un cambio de modo de operación de la CPU en la llamada (y
la recuperación del modo anterior en el retorno).
Esto se hace utilizando instrucciones máquina diseñadas específicamente para este cometido,
distintas de las que se usan para las llamadas de función.
REGISTRO DE WINDOWS
El registro de Windows o del sistema es la base de datos que almacena las configuraciones
y opciones del sistema operativo Microsoft Windows en sus versiones de 32 bits, 64 bits
y Windows Mobile. Algunos lo definen como una base de datos jerárquica, pero esta definición
no es muy exacta.
El registro de Windows contiene información y configuraciones de todo el hardware, software,
usuarios, y preferencias del PC. Si un usuario hace cambios en las configuraciones del "Panel
de control", en las asociaciones de ficheros, en las políticas del sistema o en el software
instalado, los cambios se reflejan y almacenan en el registro.
El registro mantiene esta información en forma de árbol, estableciendo un orden por el cual
deben acceder el sistema operativo u otros programas, como las preferencias de usuario
(perfiles), hojas de ajustes para directorios e iconos de programas, enumeración de hardware
instalado y los puertos usados. El registro reemplaza los archivos de inicialización y
configuración legados de Windows 3.x y MS-DOS (.ini), autoexec.bat y config.sys.
El Registro se almacena en varios ficheros que, dependiendo de la versión de Windows, se
ubican en diferentes lugares dentro del sistema local, excepto NTuser (o archivo de usuario),
que puede ser ubicado en otra máquina para permitir perfiles móviles.
Windows NT, 2000, XP, Server 2003, Vista, Server 2008 y 7
Los siguientes archivos del Registro se encuentran en %SystemRoot%\System32\Config\:





Sam - HKEY_LOCAL_MACHINE\SAM
Security - HKEY_LOCAL_MACHINE\SECURITY
Software - HKEY_LOCAL_MACHINE\SOFTWARE
System - HKEY_LOCAL_MACHINE\SYSTEM
Default - HKEY_USERS\DEFAULT
PAGINACIÓN DE MEMORIA
En sistemas operativos de computadoras, los sistemas de paginación de memoria dividen los
programas en pequeñas partes o páginas. Del mismo modo, la memoria es dividida en trozos
del mismo tamaño que las páginas llamados marcos de página. De esta forma, la cantidad de
memoria desperdiciada por un proceso es el final de su última página, lo que minimiza la
fragmentación interna y evita la externa.
En la tabla de páginas de un proceso, se encuentra la ubicación del marco que contiene a cada
una de sus páginas. Las direcciones lógicas ahora se forman como un número de página y de
un desplazamiento dentro de esa página (conocido comúnmente como offset). El número de
página es usado como un índice dentro de la tabla de páginas, y una vez obtenida la dirección
del marco de memoria, se utiliza el desplazamiento para componer la dirección real o dirección
física. Este proceso se realiza en una parte del computador específicamente diseñada para
esta tarea, es decir, es un proceso hardware y no software.
PAGINACIÓN EN MEMORIA VIRTUAL
El único inconveniente de paginación pura es que todas las páginas de un proceso deben estar
en memoria para que se pueda ejecutar. Esto hace que si los programas son de tamaño
considerable, no puedan cargarse muchos a la vez, disminuyendo el grado de
multiprogramación del sistema. Para evitar esto, y aprovechando el principio de cercanía de
referencias donde se puede esperar que un programa trabaje con un conjunto cercano de
referencias a memoria (es decir con un conjunto residente más pequeño que el total de sus
páginas), se permitirá que algunas páginas del proceso sean guardadas en un espacio de
intercambio (en memoria secundaria) mientras no se necesiten.
Cuando la paginación se utiliza junto con memoria virtual, el sistema operativo mantiene
además el conocimiento sobre qué páginas están en memoria principal y cuáles no, usando
la tabla de paginación. Si una página buscada está marcada como no disponible (tal vez
porque no está presente en la memoria principal, pero sí en el área de intercambio), cuando la
CPU intenta referenciar una dirección de memoria en esa página, la MMU responde levantando
una excepción (comúnmente llamada fallo de página). Si la página se encuentra en el espacio
de intercambio, el sistema operativo invocará una operación llamada intercambio de página,
para traer a memoria principal la página requerida.
CONTROLADOR DE DISPOSITIVO
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.
Existen tantos tipos de controladores como tipos de periféricos, y es común encontrar más de
un controlador posible para el mismo dispositivo, cada uno ofreciendo un nivel distinto de
funcionalidades. Por ejemplo, aparte de los oficiales (normalmente disponibles en la página
web del fabricante), se pueden encontrar también los proporcionados por el sistema operativo,
o también versiones no oficiales hechas por terceros.
Debido a que el software de controladores de dispositivos se ejecuta como parte del sistema
operativo, con acceso sin restricciones a todo el equipo, resulta esencial que sólo se permitan
los controladores de dispositivos autorizados. La firma y el almacenamiento provisional de los
paquetes de controladores de dispositivos en los equipos cliente, mediante las técnicas
descritas en esta guía, proporcionan las ventajas siguientes:
Seguridad mejorada. Puesto que los usuarios estándar no pueden instalar controladores
de dispositivos que no estén firmados o que estén firmados por un editor que no es de
confianza, los administradores tendrán un control riguroso respecto a los controladores de
dispositivos que pueden usarse en una organización. Podrán impedirse los controladores
de dispositivos desconocidos, así como cualquier controlador de dispositivo que el
administrador no permita expresamente. Mediante el uso de directivas de grupo, un
administrador puede proporcionar a todos los equipos cliente de una organización los
certificados de los editores que se consideren de confianza, permitiendo la instalación de
los controladores sin intervención del usuario, para comprobar que se trata de una firma
digital de confianza.
Reducción de los costes de soporte técnico. Los usuarios sólo podrán instalar los
dispositivos que hayan sido probados y admitidos por la organización. En consecuencia, el
sistema permite mantener la seguridad del equipo, al tiempo que se reducen las solicitudes
del departamento de soporte técnico.
Experiencia de usuario mejorada. Un paquete de controladores firmado por un editor de
confianza y almacenado provisionalmente en el almacén de controladores funciona de modo
automático, cuando el usuario conecta el dispositivo al equipo. No se requiere acción alguna
por parte del usuario
LA CORRECCIÓN DE ERRORES
Para poder recuperar los datos perdidos es necesario emplear códigos altamente redundantes,
de esta forma, la utilización efectiva del canal de transmisión se reduce considerablemente. Es
necesario pues, que el receptor disponga de los mecanismos necesarios (Hardware) para
recuperar la información a través de los datos corruptos que le llegan.
Códigos de control 2 en 3
Este tipo de códigos se caracteriza por repetir la información 3 veces. Si una información
cualquiera está codificada en n bits, se forma un nuevo código 3*n bits, en donde A está
repetido 3 veces. Al analizar la información transferida se decide si es correcta según el
número de veces que coincida las 3 secuencias.
Códigos de Haming
Con este nombre se conoce a un conjunto de códigos correctores de error en k dígitos binarios;
donde k es un número natural arbitrario. En estas líneas trataremos solo el caso de k=1, es
decir, códigos de Haming de orden uno.
Este código se construye a partir de uno de n dígitos binarios de distancia mínima uno. Estos
n dígitos formarán dentro del código de Haming los dígitos binarios de datos. A continuación
añadiremos p dígitos binarios llamados dígitos de control. Por lo tanto el código formado
(código de Haming) tendrá una longitud de l=bn+p dígitos. La numeración de los dígitos se
realiza de la forma habitual pero comenzando por uno, es decir: bn+p bn+p-1... b2 b1.
Los dígitos de control ocuparán las posiciones iguales a las potencias exactas de dos, es decir
bj con j=20, 21,...,2p-1. De aquí deducimos que el número p debe ser el natural más pequeño
que satisfaga la siguiente desigualdad:
2p>=n+p+1
El valor que alcanzan estos códigos binarios, surge de establecer p controles de paridad sobre
determinadas sub combinaciones del código. Para ello se siguen sistemáticamente estos
pasos:
Se renombran eventualmente los dígitos binarios de control como: c p cp-1... c2 c1. Donde cj = b2j1 (j=1,2,....p).
Se halla la codificación en binario natural de cada una de las posiciones dentro del código a
través de los dígitos binarios: cp cp-1...c2 c1.
El dígito binario cj establecerá un control de paridad (par o impar) sobre la subcombinación
formada por las posiciones, que codificadas en el punto anterior, posean un uno en dicho dígito
binario cj.
LOS UTILITARIOS
Los utilitarios son una serie de órdenes o comandos que tiene incorporado el programa para
resolver ciertos problemas específicos; son como una caja de herramientas para emergencias.
El encabezado “Utilitarios ” del menú principal, conduce al siguiente submenú:
Indexar archivos
Permite dar mantenimiento a los índices de los archivos de la Base de Datos. Se puede utilizar
si en algún momento se percibe algún problema en el funcionamiento, como por ejemplo:
desorden en los listados, campos vacíos, etc. Esta tarea también se realiza automáticamente
cuando se reinicializa el programa.
Bitácora de envíos
Es un utilitario que permite al administrador del programa determinar las fechas y nombres de
las personas vinculadas al registro de información, basados en la clave del usuario.
Modificación de definidos por el usuario
Los definidos por el usuario son los mecanismos utilizados en SUMA para clasificar un
suministro no presente en las listas de ítems del programa. En ocasiones, por un error en la
búsqueda se crea un definido por el usuario cuyo genérico sí existe, resultando en una
duplicación que puede causar problemas para las consultas específicas.
El nivel SUMA CENTRAL permite modificarlos de manera que se elimine la duplicidad o se
clasifique más apropiadamente por medio de la opción Modificación de definidos por el usuario.
Al seleccionar esta opción, el programa muestra un listado con todos los ítems definidos por los
diferentes usuarios:
En la primera columna de la izquierda, se puede seleccionar presionando <ENTER>:
Una vez seleccionados los ítems a modificar, al presionar <ESC> el programa solicita la
confirmación del proceso. Si decide continuar , le mostrará la información del primer ítem a
verificar y secuencialmente los demás, conforme se modifiquen: Tablas del sistema
Aunque el programa permite cada vez que se configura adicionar, eliminar o editar opciones
adicionales no presentes en las tablas del sistema, la opción Tablas del Sistema permite de
manera más directa dar mantenimiento las tablas. (no es recomendable utilizar esta opción sin
contar con conocimiento pleno del programa y estar claro que es lo que quiere)
La primera alternativa que presenta el programa es la conformación del idioma en que se
encuentran las tablas. Después de seleccionarlo en español, aparece la siguiente pantalla:
Tablas General: permite adicionar o editar nuevos sitios de recepción, monedas, categorías de
donante o destinatario y la tabla de títulos del programa. Esta última corresponde a todos los
rótulos o títulos que aparecen en todas las pantallas que el programa utiliza para guiar al
usuario.
El nivel de clasificación: permite adicionar o editar nuevas categorías, subcategorías e ítems.
Con Medicinas se permite modificar la información referente a la ruta de administración,
concentración y presentación de un medicamento ya existente o de uno nuevo adicionado con
la opción anterior de nivel de clasificación. En Otros Suministros, se puede dar mantenimiento
a las unidades de presentación de todos los suministros que no sean medicamentos.
SERVIDORES
Es una aplicación informática o programa que realiza algunas tareas en beneficio de otras
aplicaciones llamadas clientes. Algunos servicios habituales son los servicios de archivos, que
permiten a los usuarios almacenar y acceder a los archivos de una computadora y los
servicios de aplicaciones, que realizan tareas en beneficio directo del usuario final. Este es el
significado original del término. Es posible que un ordenador cumpla simultáneamente las
funciones de cliente y de servidor.
Un servidor no es necesariamente una máquina de última generación de grandes
proporciones, no es necesariamente un superordenador; un servidor puede ser desde una
computadora vieja, hasta una máquina sumamente potente (ej.: servidores web, bases de
datos grandes, etc. Procesadores especiales y hasta varios terabytes de memoria). Todo esto
depende del uso que se le dé al servidor. Si usted lo desea, puede convertir al equipo desde
el cual usted está leyendo esto en un servidor instalando un programa que trabaje por la red y
a la que los usuarios de su red ingresen a través de un programa de servidor web como
Apache u algún otro existente.
Tipos de servidores
En las siguiente lista hay algunos tipos comunes de servidores:
• Servidor de archivo: es el que almacena varios tipos de archivos y los distribuye a otros
clientes en la red.
• Servidor de impresiones: controla una o más impresoras y acepta trabajos de impresión de
otros clientes de la red, poniendo en cola los trabajos de impresión (aunque también puede
cambiar la prioridad de las diferentes impresiones), y realizando la mayoría o todas las otras
funciones que en un sitio de trabajo se realizaría para lograr una tarea de impresión si la
impresora fuera conectada directamente con el puerto de impresora del sitio de trabajo.
• Servidor de correo: almacena, envía, recibe, en ruta y realiza otras operaciones
relacionadas con email para los clientes de la red.
• Servidor de fax: almacena, envía, recibe, en ruta y realiza otras funciones necesarias para
la transmisión, la recepción y la distribución apropiadas de los fax.
• Servidor de la telefonía: realiza funciones relacionadas con la telefonía, como es la de
contestador automático, realizando las funciones de un sistema interactivo para la respuesta
de la voz, almacenando los mensajes de voz, encaminando las llamadas y controlando
también la red o el Internet, p. ej., la entrada excesiva de la voz sobre IP (VoIP), etc.
HERRAMIENTA DE DIAGNÓSTICO
Una herramienta de diagnóstico es un software que permite monitorear y en algunos casos
controlar la funcionalidad del hardware, como: computadoras, servidores y periféricos, según
el tipo y sus funciones. Estos dispositivos pueden ser, la memoria RAM, el procesador, los
discos duros, ruteadores, tarjetas de red, entre muchos dispositivos más. El software permite
monitorear temperatura, rendimiento, transferencia de datos, etc.
SOFTWARE DE PROGRAMACION
Los lenguajes de programación o software de programación son herramientas que nos
permiten crear programas y software que facilitan la tarea de programación, ya que disponen
de formas adecuadas que permiten ser leídas y escritas por personas, a su vez resultan
independientes del modelo de computador a utilizar.
Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc. Una computadora funciona bajo
control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el
disco duro.
Los lenguajes de programación de una computadora en particular se conocen como un código
de máquinas o lenguaje de máquinas. Estos lenguajes codificados en una computadora
específica no podrán ser ejecutados en otra computadora diferente y para que estos
programas funcionen para diferentes computadoras hay que realizar una versión para cada
una de ellas, lo que implica el aumento del costo de desarrollo.
Por otra parte, los lenguajes de programación en código de máquina son verdaderamente
difíciles de entender para una persona, ya que están compuestos de códigos numéricos sin
sentido mnemotécnico (mnemotécnicos es un sistema sencillo utilizado para recordar una
secuencia de datos, nombres, números, y en general para recordar listas de ítems que no
pueden recordarse fácilmente)
EDITOR DE TEXTO
Un editor de texto es un programa que permite crear y modificar archivos digitales
compuestos únicamente por texto sin formato, conocidos comúnmente como archivos de texto
o texto plano. El programa lee el archivo e interpreta los bytes leídos según el código de
caracteres que usa el editor. Hoy en día es comúnmente de 7- ó 8-bits en ASCII o UTF-8, rara
vez EBCDIC.
DIFERENCIA ENTRE TEXTO PLANO Y ARCHIVOS DE TEXTO CON DIAGRAMACIÓN
Los editores de textos "planos" se distinguen de los procesadores de texto en que se usan
para escribir sólo texto, sin formato y sin imágenes, es decir sin diagramación.
• El texto plano es representado en el editor mostrando todos los caracteres presentes en el
archivo.
Los únicos caracteres de formateo son los caracteres de control del respectivo código de
caracteres. En la práctica, éstos son: salto de línea, tabulación horizontal y retorno de carro. El
código de caracteres más usado en el año 2007 es el ASCII.
• Los documentos creados por un procesador de texto generalmente contienen más
caracteres de control para darle al texto un formato o diagramación particular, a menudo
protegidos de ser copiados por una marca registrada como por ejemplo negrilla, cursiva,
columnas, tablas, tipografía, etc. En un comienzo se utilizaron tales formatos sólo en
autoedición, pero hoy se utilizan incluso en el procesador de texto más sencillo.
• Los procesadores de texto pueden en la mayoría de los casos almacenar un texto plano en
un archivo de texto plano, pero se le debe ordenar explícitamente que se desea esa opción,
de otra manera podría guardarlo con algún formato especial.
Funciones típicas de un editor de texto
Marcar región
Es la función que marca, visualmente o no, una parte del texto para ser elaborada con otras
funciones. La región puede contener varias líneas del texto (región horizontal) o bien varias
columnas adyacentes del texto (región vertical).
Búsqueda y reemplazo
El proceso de búsqueda de una palabra o una cadena de caracteres, en un texto plano y su
reemplazo por otra. Existen diferentes métodos: global, por región, reemplazo automático,
reemplazo con confirmación, búsqueda de texto o búsqueda de una Expresión regular.
Copiar, cortar y pegar
Sirve para copiar, trasladar o borrar una región marcada.
Formatear
Los editores de texto permiten automatizar las únicas funciones de formateo que utilizan:
quebrar la línea, indentar, formatear comentarios o formatear listas.
Deshacer y rehacer
Consiste en que el programa editor va almacenando cada una de las operaciones hechas por
el usuario hasta un número configurable. Si el usuario se arrepiente de algún cambio, por muy
anterior que sea, el editor le permite revertir todos los cambios hechos hasta el número
configurado. Rehacer es por consiguiente, revertir algo revertido.
Importar
Agregar o insertar el contenido de un archivo en el archivo que se está editando. Algunos
editores permiten insertar la salida o respuesta a un programa cualquiera ejecutado en la
Línea de comandos al archivo que se está editando.
Filtros
Algunos editores de texto permiten hacer pasar las líneas del texto o de una región por algún
programa para modificarlas u ordenarlas. Por ejemplo, para ordenar alfabéticamente una lista
de nombres o sacar un promedio de una lista de números.
Acceso remoto
Un editor para trabajar en la administración de una red de computadoras debe ofrecer la
funcionalidad de editar archivos en máquinas remotas, ya sea por medio de ftp, ssh o algún
otro Protocolo de red. Emacs lo puede hacer mediante el Plugin tramp [1] (ampliamente
configurable con ssh, ftp, scp, sftp, etc.), Ultraedit, del ambiente Windows, lo hace mediante
ftp.
Depurador
Un depurador (en inglés, debugger), es un programa usado para probar y depurar(eliminar
los errores) de otros programas (el programa "objetivo"). El código a ser examinado puede
alternativamente estar corriendo en un simulador de conjunto de instrucciones (ISS), una
técnica que permite gran potencia en su capacidad de detenerse cuando son encontradas
condiciones específicas pero será típicamente algo más lento que ejecutando el código
directamente en el apropiado (o el mismo)procesador. Algunos depuradores ofrecen dos
modos de operación - la simulación parcial o completa, para limitar este impacto.
Si es un depurador de nivel de fuente o depurador simbólico, comúnmente ahora visto
en entornos de desarrollo integrados, cuando el programa "se estrella" o alcanza una
condición predefinida, la depuración típicamente muestra la posición en el código original. Si
es un depurador de bajo nivel o un depurador de lenguaje de máquina, muestra la línea
en el fuente desensamblado (a menos que también tenga acceso en línea al código
fuente original y pueda exhibir la sección apropiada del código del ensamblador o
del compilador). Un "estrellamiento" sucede cuando el programa no puede continuar
normalmente debido a un error de programación. Por ejemplo, el programa pudo haber
intentado usar una instrucción no disponible en la versión actual del CPU o haber intentado
tener acceso a memoria protegida o no disponible.
Soporte de hardware para la depuración
La mayoría de los microprocesadores modernos tienen al menos una de estas características
en su diseño de CPU para hacer la depuración más fácil:
Soporte en hardware para ejecutar un programa paso a paso, tal como el trap flag.
Un conjunto de instrucciones conformado con los requerimientos de virtualización de Popek y
Goldberg, hace más fácil escribir el software depuración que corre en el mismo CPU que el
software que está siendo depurado; tal CPU puede ejecutar los bucles internos del programa
bajo prueba a velocidad completa, y todavía permanecer bajo control del depurador.
In-system programming (ISP) (programación en sistema) permite a un depurador de hardware
externo reprogramar un sistema bajo prueba, por ejemplo, adición o eliminación de
instrucciones de puntos de ruptura (breakpoints). Muchos sistemas con tal soporte de ISP
también tienen otro soporte de hardware de depuración.
Soporte de hardware para breakpoints de código y datos, tales como comparadores de
direcciones y comparadores de valores de datos, o con considerablemente más trabajo
implicado, hardware de fallo de página.
El acceso de JTAG a las interfaces de depuración de hardware tales como en procesadores
de la arquitectura ARM o usando el conjunto de comandos Nexus. Los procesadores usados
en sistemas empotrados típicamente tienen extenso soporte de depuración JTAG.
Los microcontroladores con tan poco como seis pines necesitan usar sustitutos de bajo conteo
de pines para JTAG, tal como BDM, Spy-Bi-Wire, o DebugWire en el Atmel AVR. DebugWire,
por ejemplo, usa señalización bidireccional en el pin del RESET.
El depurador lanza el programa a depurar. Éste se ejecuta normalmente hasta que el
depurador detiene su ejecución, permitiendo al usuario examinar la situación.
Uso
El depurador permite detener el programa en:

Un punto determinado mediante un punto de ruptura.

Un punto determinado bajo ciertas condiciones mediante un punto de ruptura
condicional.

Un momento determinado cuando se cumplan ciertas condiciones.

Un momento determinado a petición del usuario.

Durante esa interrupción, el usuario puede:

Examinar y modificar la memoria y las variables del programa.

Examinar el contenido de los registros del procesador.

Examinar la pila de llamadas que han desembocado en la situación actual.

Cambiar el punto de ejecución, de manera que el programa continúe su ejecución en
un punto diferente al punto en el que fue detenido.

Ejecutar instrucción a instrucción.

Ejecutar partes determinadas del código, como el interior de una función, o el resto de
código antes de salir de una función
.
El depurador depende de la arquitectura y sistema en el que se ejecute, por lo que sus
funcionalidades cambian de un sistema a otro. Aquí se han mostrado las más comunes.
EFECTOS SECUNDARIOS
Es importante notar que un programa que está siendo depurado puede presentar un
comportamiento diferente a si se ejecuta en solitario debido a que el depurador cambia
ligeramente los tiempos internos del programa. Estos cambios en los tiempos de ejecución
afectan especialmente a complejos sistemas distribuidos.
COMPILADOR
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 cómo piensa un ser humano, para luego compilarlo a un programa más manejable
por una computadora.
Proceso de compilación
Es el proceso por el cual se traducen las instrucciones escritas en un determinado lenguaje de
programación a lenguaje máquina. Además de un traductor, se pueden necesitar otros
programas para crear un programa objeto ejecutable. Un programa fuente se puede dividir en
módulos almacenados en archivos distintos. La tarea de reunir el programa fuente a menudo
se confía a un programa distinto, llamado preprocesador. El preprocesador también puede
expandir abreviaturas, llamadas a macros, a proposiciones del lenguaje fuente.
El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en
un lenguaje de programación almacenado en un archivo a código en bajo nivel (normalmente
en código objeto, no directamente a lenguaje máquina)
El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de
todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las
funciones que hay en las bibliotecas del compilador para que el ejecutable pueda comunicarse
directamente con el sistema operativo, traduciendo así finalmente el código objeto a código
máquina, y generando un módulo ejecutable.
Etapas Del Proceso
Es útil pensar en estas fases como en piezas separadas dentro del traductor, y pueden en
realidad escribirse como operaciones codificadas separadamente aunque en la práctica a
menudo se integren juntas.
Fase de análisis
Análisis léxico
El análisis léxico constituye la primera fase, aquí se lee el programa fuente de izquierda a
derecha y se agrupa en componentes léxicos (tokens), que son secuencias de caracteres
que tienen un significado
Análisis sintáctico
En esta fase los caracteres o componentes léxicos se agrupan jerárquicamente en frases
gramaticales que el compilador utiliza para sintetizar la salida. Se comprueba si lo obtenido de
la fase anterior es sintácticamente correcto (obedece a la gramática del lenguaje). Por lo
general, las frases gramaticales del programa fuente se representan mediante un árbol de
análisis sintáctico.
La estructura jerárquica de un programa normalmente se expresa utilizando reglas recursivas.
Por ejemplo, se pueden dar las siguientes reglas como parte de la definición de expresiones:
1. Cualquier identificador es una expresión.
2. Cualquier número es una expresión.
3. Si expresión1 y expresión2 son expresiones, entonces también lo son:
• expresión1 + expresión2
• expresión1 * expresión2
• (expresión1)
Las reglas 1 y 2 son reglas básicas (no recursivas), en tanto que la regla 3 define expresiones
en función de operadores aplicados a otras expresiones
La división entre análisis léxico y análisis sintáctico es algo arbitraria. Un factor para determinar
la división es si una construcción del lenguaje fuente es inherentemente recursiva o no. Las
construcciones léxicas no requieren recursión, mientras que las construcciones sintácticas
suelen requerirla.
Normalmente, se reconocen los identificadores por el simple examen del flujo de entrada,
esperando hasta encontrar un carácter que no sea ni letra ni dígito, y agrupando después todas
las letras y dígitos encontrados hasta ese punto en un componente léxico llamado
identificador. Por otra parte, esta clase de análisis no es suficientemente poderoso para
analizar expresiones o proposiciones.
Análisis semántico
La fase de análisis semántico revisa el programa fuente para tratar de encontrar errores
semánticos y reúne la información sobre los tipos para la fase posterior de generación de
código. En ella se utiliza la estructura jerárquica determinada por la fase de análisis sintáctico
para identificar los operadores y operandos de expresiones y proposiciones.
Un componente importante del análisis semántico es la verificación de tipos. Aquí, el
compilador verifica si cada operador tiene operandos permitidos por la especificación del
lenguaje fuente
Fase de síntesis
Consiste en generar el código objeto equivalente al programa fuente. Sólo se genera código
objeto cuando el programa fuente está libre de errores de análisis, lo cual no quiere decir que el
programa se ejecute correctamente, ya que un programa puede tener errores de concepto o
expresiones mal calculadas. Por lo general el código objeto es código de máquina
relocalizable o código ensamblador. Las posiciones de memoria se seleccionan para cada una
de las variables usadas por el programa. Después, cada una de las instrucciones intermedias
se traduce a una secuencia de instrucciones de máquina que ejecuta la misma tarea. Un
aspecto decisivo es la asignación de variables a registros.
Generación de código intermedio
Después de los análisis sintáctico y semántico, algunos compiladores generan una
representación intermedia explícita del programa fuente. Se puede considerar esta
representación intermedia como un programa para una máquina abstracta. Esta representación
intermedia debe tener dos propiedades importantes; debe ser fácil de producir y fácil de
traducir al programa objeto
Esta representación intermedia tiene varias propiedades:
• Primera.- Cada instrucción de tres direcciones tiene a lo sumo un operador, además de la
asignación, por tanto, cuando se generan estas instrucciones, el traductor tiene que decidir el
orden en que deben efectuarse las operaciones.
• Segunda.- El traductor debe generar un nombre temporal para guardar los valores calculados
por cada instrucción.
• Tercera.- Algunas instrucciones de "tres direcciones" tienen menos de tres operandos, por
ejemplo, la asignación.
Enlazador
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, quita aquellos recursos que no necesita, y enlaza el código objeto con su
biblioteca 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.
ENTORNOS DE DESARROLLO INTEGRADO
Un entorno de desarrollo integrado (en inglés Integrated Development Environment o IDE) es
un programa compuesto por una serie de herramientas que utilizan los programadores para
desarrollar código. Esta herramienta puede estar pensada para su utilización con un único
lenguaje de programación o bien puede dar cabida a varios de estos.
Las herramientas que normalmente componen un entorno de Desarrollo integrado son las
siguientes: un editor de texto, un Compilador, un intérprete, unas herramientas para la
Automatización, un depurador, un sistema de ayuda para la Construcción de interfaces gráficas
de usuario y, opcionalmente, un Sistema de control de versiones.
Hoy en día los entornos de desarrollo proporcionan un marco de trabajo para la mayoría de los
lenguajes de programación existentes en el mercado e incluso es posible que un mismo
entorno tenga la posibilidad de utilizar varios lenguajes de programación, como es el caso de
Eclipse, que es un entorno de desarrollo integrado multiplataforma (utilizado para los
lenguajes C, C++, Python y Java entre otros) de código abierto, utilizado en su mayoría para
desarrollar otros entornos de desarrollo (como el JDT) aunque también puede ser utilizado para
desarrollar aplicaciones cliente como Azureus (un cliente de BitTorrent).
INTÉRPRETE
Es un programa informático capaz de analizar y ejecutar otros programas, escritos en un
lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos
traducen un programa desde su descripción en un lenguaje de programación al código de
máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria,
típicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha
traducción.
Usando un intérprete, un solo archivo fuente puede producir resultados iguales incluso en
sistemas sumamente diferentes (ej. una PC y un PlayStation 3). Usando un compilador, un solo
archivo fuente puede producir resultados iguales solo si es compilado a distintos ejecutables
específicos a cada sistema.
Eficiencia
La desventaja principal de los interpretadores es que cuando se interpreta un programa,
típicamente corre más lentamente que si hubiera sido compilado. La diferencia en velocidades
puede ser minúscula o grande; a menudo un orden de magnitud y a veces más. Generalmente
toma más tiempo correr un programa bajo un interpretador que correr el código compilado,
pero puede tomar menos tiempo para interpretarlo que el tiempo total requerido para compilarlo
y ejecutarlo. Esto es especialmente importante si se está haciendo y probando un código
prototipo cuando un ciclo de editar, interpretar y depurar del interpretador, a menudo puede ser
mucho más corto que el ciclo de editar, compilar, ejecutar y depurar del compilador.
Algunos ejemplos de lenguajes que son normalmente interpretados en vez de compilados son:
*Perl
• PHP
• Java
• Java script
• Logo
• C#
• J#
• ASP
SOFTWARE DE APLICACIÓN
Programa informático diseñado para facilitar al usuario la realización de un determinado tipo
de trabajo. Posee ciertas características que le diferencia de un sistema operativo (que hace
funcionar al ordenador), de una utilidad (que realiza tareas de mantenimiento o de uso general)
y de un lenguaje (con el cual se crean los programas informáticos). Suele resultar una
solución informática para la automatización de ciertas tareas complicadas como puede ser
la contabilidad o la gestión de un almacén. Ciertas aplicaciones desarrolladas 'a medida' suelen
ofrecer una gran potencia ya que están exclusivamente diseñadas para resolver un problema
específico. Otros, llamados paquetes integrados de software, ofrecen menos potencia pero
a cambio incluyen varias aplicaciones, como un programa procesador de textos,
de hoja de cálculo y de base de datos.
Sistema de control
Dentro de los sistemas se encuentra el concepto de sistema de control. Un sistema de control
es un tipo de sistema que se caracteriza por la presencia de una serie de elementos que
permiten influir en el funcionamiento del sistema. La finalidad de un sistema de control es
conseguir, mediante la manipulación de las variables de control, un dominio sobre las variables
de salida, de modo que estas alcancen unos valores prefijados
Un sistema de control ideal debe ser capaz de conseguir su objetivo cumpliendo los siguientes
requisitos:
Garantizar la estabilidad y, particularmente, ser robusto frente a perturbaciones y errores en los
modelos.
2. Ser tan eficiente como sea posible, según un criterio preestablecido. Normalmente este
criterio consiste en que la acción de control sobre las variables de entrada sea realizable,
evitando comportamientos bruscos e irreales.
3. Ser fácilmente implementable y cómodo de operar en tiempo real con ayuda de un
ordenador
Los elementos básicos que forman parte de un sistema de control y permiten su manipulación
son los siguientes:
1- Sensores. Permiten conocer los valores de las variables medidas del sistema.
2- Controlador. Utilizando los valores determinados por los sensores y la consigna impuesta,
calcula la acción que debe aplicarse para modificar las variables de control en base a cierta
estrategia.
3- Actuador. Es el mecanismo que ejecuta la acción calculada por el controlador y que modifica
las variables de control.
Ofimática
Se llama ofimática al equipamiento hardware y software usado para crear, coleccionar,
almacenar, manipular y transmitir digitalmente la información necesaria en una oficina para
realizar tareas y lograr objetivos básicos. Las actividades básicas de un sistema ofimático
comprenden el almacenamiento de datos en bruto, la transferencia electrónica de los mismos y
la gestión de información electrónica relativa al negocio. [1] La ofimática ayuda a optimizar o
automatizar los procedimientos existentes.
Software empresarial
Por software empresarial se entiende generalmente cualquier tipo de software que está
orientado a ayudar a una empresa a mejorar su productividad o a medirla.
El término engloba una amplia variedad de aplicaciones informáticas que incluyen desde
programas de contabilidad y de ofimática, hasta sistemas de planificación de recursos
empresariales (ERP), pasando por programas de gestión de clientes (CRM), de recursos
humanos, etc.
Video juegos
un videojuego es un software creado para el entretenimiento en general y basado en
la interacción entre una o varias personas y un aparato electrónico que ejecuta dicho
videojuego: este dispositivo electrónico puede ser una computadora, una máquina árcade,
una videoconsola, un dispositivo handheld (un teléfono móvil, por ejemplo) los cuales son
conocidos como "plataformas". Aunque, usualmente el término "video" en la palabra
"videojuego" se refiere en sí a un visualizador de gráficos rasterizados,1 hoy en día se utiliza
para hacer uso de cualquier tipo de visualizador.
BASE DE DATOS
Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y
almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede
considerarse una base de datos compuesta en su mayoría por documentos y textos impresos
en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de
campos como la informática y la electrónica, la mayoría de las bases de datos están en formato
digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos.
.
Existen programas denominados sistemas gestores de bases de datos, abreviados SGBD, que
permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las
propiedades de estos SGBD, así como su utilización y administración, se estudian dentro del
ámbito de la informática.
Tipos de Base de Datos
Las bases de datos pueden clasificarse de varias maneras, de acuerdo al contexto que se esté
manejando, la utilidad de las mismas o las necesidades que satisfaga , ya sea según la
variabilidad de los datos almacenados o Según el contenido.
Según la variabilidad de los datos almacenados:
Bases de datos estáticas: éstas son bases de datos de sólo lectura, utilizadas
primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para
estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones
y tomar decisiones.
Bases de datos dinámicas: éstas son bases de datos donde la información almacenada se
modifica con el tiempo, permitiendo operaciones como actualización, borrado y adición de
datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la
base.
Según el contenido:
Bases de datos bibliográficas: solo contienen un subrogante (representante) de la fuente
primaria, que permite localizarla. Un registro típico de una base de datos bibliográfica contiene
información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada
publicación, etc. Puede contener un resumen o extracto de la publicación original, pero nunca
el texto completo, porque si no, estaríamos en presencia de una base de datos a texto
completo.
Bases de datos de texto completo: almacenan las fuentes primarias, como por ejemplo, todo
el contenido de todas las ediciones de una colección de revistas científicas.
Modelos de bases de datos:
Éstas también se pueden clasificar de acuerdo a su modelo de administración de datos
Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de
datos (algo en donde se guarda la información), así como de los métodos para almacenar y
recuperar información de esos contenedores
Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación
de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos
matemáticos.
Bases de datos jerárquicas: son bases de datos que almacenan su información en una
estructura jerárquica en donde los datos se organizan en una forma similar a un árbol, en el
que encontramos a un nodo padre de información puede tener varios hijos y los que no tienen
padre se les conoce como raíz, y los que no tienen hijos se les conoce como hojas. (Las bases
de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran
volumen de información y datos muy compartidos permitiendo crear estructuras estables y de
gran rendimiento)
Base de datos de red: Éste es un modelo ligeramente distinto del jerárquico; su diferencia
fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga
varios padres.
Este tipo de bases significo un gran avance en diferencia con la base jerárquica, ya que ofrecía
una solución eficiente al problema de redundancia de datos.
La dificultad que significa administrar la información en una base de datos de red ha significado
que sea un modelo utilizado en su mayoría por programadores.
CONCLUSION
Como nos pudimos dar cuenta el software no es cualquier cosa y con él se puede lograr todo lo
que queramos, pero sabiéndolo manejar correctamente.
Hay infinidades de programas pero a medida que las computadoras se vuelven más populares,
los desarrolladores de software, constantemente están sacando programas para quitar las
tediosas tareas personales y hacerlas más divertidas. Estos programas pueden ser excelentes
herramientas para la educación ya que si los niños disfrutan realizando las tareas jugando, sus
habilidades aumentaran.
Todos los días desarrolladores perceptivos encuentran problemas para para ser solucionados
con software, y es que la tecnología a avanzado tanto que una persona puede realizar
operaciones bancarias desde su casa, enviar un correo electrónico a cualquier parte del
mundo, etc.; todo esto por el computador. Y esto es bueno ya que cada día la competencia por
crear un mejor software, fomenta a crearlos más imaginativos, mejores y a precios más y más
baratos.