jueves, 22 de noviembre de 2012

Gestores de Arranque

NTLDR (abreviatura de NT Loader) es el archivo encargado del arranque del Sistema Operativo en las primeras versiones de Microsoft Windows NT, incluyendo Windows XP y Windows Server 2003 (A partir de las versiones superiores a 6.0 como Windows Vista y Windows 7 se usa BOOTMGR). El NTLDR se encuentra usualmente en el disco duro principal, pero también puede encontrarse en dispositivos portátiles como CD-ROM, memorias USB, o disquetes.
NTLDR requiere, como mínimo, que dos archivos adicionales se encuentren en la partición principal:
  • NTLDR, que se encarga de cargar el sistema operativo.
  • boot.ini, que contiene un menú de opciones de inicio.
Si el archivo NTLDR no se encuentra en el disco, la computadora enviará un mensaje de error informándolo.
En Windows Vista, Windows Server 2008 y Windows 7, el NTLDR fue reemplazado por dos componentes llamados winload.exe y Windows Boot Manager.

 http://upload.wikimedia.org/wikipedia/uk/a/a8/NTLDR.png





GNU GRUB (GNU GRand Unified Bootloader) es un gestor de arranque múltiple, desarrollado por el proyecto GNU que se usa comúnmente para iniciar uno, dos o más sistemas operativos instalados en un mismo equipo.
Se usa principalmente en sistemas operativos GNU/Linux. El sistema operativo Solaris ha usado GRUB como gestor de arranque en sistemas x86 desde la revisión 10 1/06.

 http://upload.wikimedia.org/wikipedia/commons/1/12/GRUB_screenshot.png


Lilo ("Linux Loader") es un gestor de arranque que permite elegir, entre sistemas operativos Linux y otras plataformas, con cual se ha de trabajar al momento de iniciar un equipo con mas de un sistema operativo disponible. Fue desarrollado inicialmente por Werner Almesberger, actualmente está a cargo de John Coffman.

LILO funciona en una variedad de sistemas de archivos y puede arrancar un sistema operativo desde el disco duro o desde un disco flexible externo . LILO permite seleccionar entre 16 imágenes en el arranque. LILO puede instalarse también en el master boot record (MBR).
Al iniciar el sistema LILO solamente puede acceder a los drivers de la BIOS para acceder al disco duro. Por esta razón en BIOS antiguas el área de acceso está limitado a los cilindros numerados de 0 a 1023 de los dos primeros discos duros. En BIOS posteriores LILO puede utilizar sistemas de acceso de 32 bits permitiéndole acceder a toda el área del disco duro.
En las primeras distribuciones de Linux, LILO era el gestor de facto utilizado para arrancar el sistema. En la actualidad es una segunda opción en favor del gestor de arranque GRUB.


 http://upload.wikimedia.org/wikipedia/commons/f/f4/Lilo.png

 El bootmgr (BOOT ManaGeR) es el gestor de arranque de Windows Vista/7 que sustituye al NTLDR (NT LoaDeR) del Windows XP y anteriores sistemas NT (los Windows 9x, al estar basados en DOS, tenían, si no recuerdo mal, al IO.SYS).
Es un archivo que permite el arranque del sistema operativo una vez la BIOS cede el control al MBR del disco duro y éste confirma la existencia de un sistema operativo. Si ese archivo no existe o no se apunta a él de forma correcta aparece el mensaje de error que se indica.

 http://www.bttr-software.de/products/bootmgr/images/bootmgr1.gif




Lenguaje de programación

Un lenguaje de programación es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.
Por otro lado, el término "lenguaje natural" define un medio de comunicación compartido por un grupo de personas (por ejemplo: inglés o francés).
Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programación; se los conoce como protocolos de comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de programación es muy estricto:
El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de datos tal como llegan al procesador, que consisten en una serie de 0 y 1 ( datos binarios).
El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos, razón por la cual se han desarrollado lenguajes intermediarios comprensibles para el hombre. El código escrito en este tipo de lenguaje se transforma en código máquina para que el procesador pueda procesarlo.
El ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al lenguaje máquina, pero los desarrolladores pueden comprenderlo. No obstante, este lenguaje se parece tanto al lenguaje máquina que depende estrictamente del tipo de procesador utilizado (cada tipo de procesador puede tener su propio lenguaje máquina). Así, un programa desarrollado para un equipo no puede ser portado a otro tipo de equipo. El término "portabilidad" describe la capacidad de usar un programa de software en diferentes tipos de equipos. Para poder utilizar un programa de software escrito en un código ensamblador en otro tipo de equipo, ¡a veces será necesario volver a escribir todo el programa!
Por lo tanto, un lenguaje de programación tiene varias ventajas:
  • es mucho más fácil de comprender que un lenguaje máquina:
  • permite mayor portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en diferentes tipos de equipos.

Lenguajes de programación imperativos y funcionales

Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:
  • lenguajes imperativos;
  • lenguajes funcionales.

Lenguaje de programación imperativo

Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio.
No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones.

Lenguaje de programación funcional

Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.

Interpretación y compilación

Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:
  • lenguajes interpretados
  • lenguajes compilados

Lenguaje interpretado

Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los programas según sea necesario.

Lenguaje compilado

Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.
Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida.
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios.
Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricación de un programa y, de ese modo, copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...).

Lenguajes intermediarios

Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente ) y no ejecutable (requeriría un interprete). Los applets Java, pequeños programas que a menudo se cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión .class).

Algunos ejemplos de lenguajes ampliamente usados

A continuación, encontrará una breve lista de los lenguajes de programación actuales:
Lenguaje Principal área de aplicación Compilado/interpretado
ADA Tiempo real Lenguaje compilado
BASIC Programación para fines educativos Lenguaje interpretado
C Programación de sistema Lenguaje compilado
C++ Programación de sistema orientado a objeto Lenguaje compilado
Cobol Administración Lenguaje compilado
Fortran Cálculo Lenguaje compilado
Java Programación orientada a Internet Lenguaje intermediario
MATLAB Cálculos matemáticos Lenguaje interpretado
Cálculos matemáticos Cálculos matemáticos Lenguaje interpretado
LISP Inteligencia artificial Lenguaje intermediario
Pascal Educación Lenguaje compilado
PHP Desarrollo de sitios web dinámicos Lenguaje interpretado
Inteligencia artificial Inteligencia artificial Lenguaje interpretado
Perl Procesamiento de cadenas de caracteres Lenguaje interpretado

lunes, 19 de noviembre de 2012

aplicaciones informáticas

En informática, una aplicación es un tipo de programa informático diseñado como herramienta para permitir a un usuario realizar uno o diversos tipos de trabajos. Esto lo diferencia principalmente de otros tipos de programas como los sistemas operativos (que hacen funcionar al ordenador), las utilidades (que realizan tareas de mantenimiento o de uso general), y los lenguajes de programación (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 pueden ser la contabilidad, la redacción de documentos, o la gestión de un almacén. Algunos ejemplos de programas de aplicación son los procesadores de textos, hojas de cálculo, y base de datos.
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.
Otros 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.
Algunas compañías agrupan diversos programas de distinta naturaleza para que formen un paquete (llamados suites o suite ofimática) que sean satisfactorios para las necesidades más apremiantes del usuario. Todos y cada uno de ellos sirven para ahorrar tiempo y dinero al usuario, al permitirle hacer cosas útiles con el ordenador (o computadora); algunos con ciertas prestaciones, otros con un determinado diseño; unos son más amigables o fáciles de usar que otros, pero bajo el mismo principio.

TIPOS DE APLICACIONES
EJEMPLOS DE PROGRAMAS
PROCESO DE TEXTOAbiWord, Lotus Word Pro, Microsoft Word, Corel WordPerfect, OpenOffice, Writer, NotePro.
HOJAS DE CALCULO Lotus 1-2-3, OpenOffice.org Calc, Microsoft Excel.
BASES DE DATOS MySQL, Microsoft Access, Visual FoxPro, dBase,
COMUNICACIONES DE DATOS Safari, Mozilla Firefox, MSN Explorer, Internet Explorer, Netscape Navigator, Kazaa, MSN Messenger Yahoo! Messenger, ICQ, AOL Instant Messenger), entre otros.
MULTIMEDIAWindows Media Player, Winamp, RealPlayer, QuickTime.
PRESENTACIONESMicrosoft Power Point, OpenOffice.org Impress, Corel Presentations, Windows Movie Maker.
DISEÑOCorel Draw, Corel PHOTO-PAINT, Adobe Photoshop, Microsoft Photo Editor, Microsoft Paint, Microsoft Publisher, AutoCAD.
EDICIÓNAdobe Acrobat, Corel Ventura, QuarkXPress, Adobe PageMaker, Adobe InDesign, FrameMaker.
CALCULOMaple, PYM Plan de Negocio, MindManager X5 Pro.
FINANZASMicrosoft Money, Gestión MGD
COMPILACIÓNEjemplos: Visual Basic, C++, Pascal, Visual FoxPro, etcétera.
CORREO ELECTRÓNICOEjemplo: Outlook Express.
COMPRESION DE ARCHIVOSWinrar, WinZip.