viernes, 21 de noviembre de 2014

KERNEL
El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.
Las funciones más importantes del mismo, aunque no las únicas, son:
  • Administración de la memoria para todos los programas y procesos en ejecución.
  • Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.
  • Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.
TIPOS DE KERNEL:
No necesariamente se necesita un núcleo para usar una computadora. Los programas pueden cargarse y ejecutarse directamente en una computadora «vacía», siempre que sus autores quieran desarrollarlos sin usar ninguna abstracción del hardware ni ninguna ayuda del sistema operativo. Ésta era la forma normal de usar muchas de las primeras computadoras: para usar distintos programas se tenía que reiniciar y reconfigurar la computadora cada vez.
Con el tiempo, se empezó a dejar en memoria (aún entre distintas ejecuciones) pequeños programas auxiliares, como el cargador y eldepurador, o se cargaban desde memoria de sólo lectura. A medida que se fueron desarrollando, se convirtieron en los fundamentos de lo que llegarían a ser los primeros núcleos de sistema operativo.
Hay cuatro grandes tipos de núcleos:
§  Los núcleos monolíticos facilitan abstracciones del hardware subyacente realmente potentes y variadas.
§  Los micronúcleos: proporcionan un pequeño conjunto de abstracciones simples del hardware, y usan las aplicaciones llamadas servidores para ofrecer mayor funcionalidad.
§  Los núcleos híbridos: son muy parecidos a los micronúcleos puros, excepto porque incluyen código adicional en el espacio de núcleo para que se ejecute más rápidamente.
§  Los exonúcleos: no facilitan ninguna abstracción, pero permiten el uso de bibliotecas que proporcionan mayor funcionalidad gracias al acceso directo o casi directo al hardware.

Lenguajes 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:
A CADA instrucción le corresponde UNA acción de procesador.
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.

A continuación, encontrará una breve lista de los lenguajes de programación actuales:
LenguajePrincipal área de aplicaciónCompilado/interpretado
ADATiempo realLenguaje compilado
BASICProgramación para fines educativosLenguaje interpretado
CProgramación de sistemaLenguaje compilado
C++Programación de sistema orientado a objetoLenguaje compilado
CobolAdministraciónLenguaje compilado
FortranCálculoLenguaje compilado
JavaProgramación orientada a InternetLenguaje intermediario
MATLABCálculos matemáticosLenguaje interpretado
Cálculos matemáticosCálculos matemáticosLenguaje interpretado
LISPInteligencia artificialLenguaje intermediario
PascalEducaciónLenguaje compilado
PHPDesarrollo de sitios web dinámicosLenguaje interpretado
Inteligencia artificialInteligencia artificialLenguaje interpretado
PerlProcesamiento de cadenas de caracteresLenguaje interpretado

OS/2

OS/2 son las siglas de "Sistema operativo de segunda generación". La idea de OS/2 surgió entre IBM y Microsoft a mediados de los 80, en un intento de hacer un sucesor de MS-DOS, el cual ya empezaba a acusar el paso del tiempo y resultaba claramente desaprovechador de los recursos de las máquinas de la época (basadas en el Intel 286).
OS/2 1.0 salió en abril de 1987 y era un sistema operativo de 16 bits, pues estaba pensado para trabajar sobre el microprocesador 286. Sin embargo, aprovechaba plenamente el modo protegido de este ordenador, haciendo uso de sus capacidades para protección de memoria, gestión de multitarea, etc. El resultado fue un S.O. estable, rápido y muy potente.
OS/2 ya tenía incorporada desde esa primera versión la multitarea real. Se podían ejecutar varias sesiones simultáneamente, en cada una de ellas se podían tener múltiples programas, y cada uno de ellos podía tener múltiples threads en ejecución. Se trataba de una multitarea jerárquica, con cuatro niveles de prioridad: Crítico (útil para programas que requieran atención casi constante por parte de la CPU, como un módem), Primer plano (correspondiente al programa que tiene acceso a la pantalla, teclado y ratón), Medio (programas lanzados por el usuario que se ejecutan en BackGround) y Desocupado (tareas de poca importancia o lentas, como el Spooler de impresión). Dentro de cada nivel (a excepción del de Primer plano), existen 32 niveles de prioridad, los cuales son asignados dinámicamente a cada programa por el S.O. en función del porcentaje de uso de la CPU, de los puertos de E/S, etc.
OS/2, además, permitía memoria virtual, con lo que se podían ejecutar programas más largos que lo que la memoria física instalada permitiría en principio (los requerimientos de aquella versión eran un 286 con 2 megas de memoria). Por otro lado, incluía la característica de compartición de código: al cargar dos veces un mismo programa, el código de este no se duplicaba en memoria, sino que el mismo código era ejecutado por dos Threads diferentes. Esto permitía ahorrar mucha memoria.
Esta versión de OS/2 era íntegramente en modo texto. Si bien el Sistema Operativo daba la posibildad de usar los modos gráficos de la tarjeta del ordenador, no incluía ningún API que ayudase en ello, recayendo todo el trabajo de diseño de rutinas de puntos, líneas, etc en el programador de la aplicación. Esto no era realmente tan problemático, pues era lo que se hacía (y se hace) en el mundo del MS-DOS. Sin embargo, se hechaba en falta un entorno gráfico como Windows.
En la versión 1.1, aparecida en octubre de 1988, llegó por fin el Presentation Manager, un gestor de modo gráfico, junto con la primera versión de Work Place Shell. Ambos formaban un entorno gráfico muy parecido al aún no comercializado Windows 3.0. También hizo su aparición el formato de ficheros HPFS (High Performance File System). Este sistema de ficheros complementaba al clásico FAT, que era el usado por MS-DOS y por OS/2 1.0; sin embargo, ofrecía una gran cantidad de ventajas, tales como
  • Menor fragmentación de ficheros: HPFS busca primero una zona en donde el archivo entre completo, con lo que la fragmentación de ficheros es prácticamente inexistente. De hecho, IBM recomienda desfragmentar los discos duros una vez al año, y solo a los paranoicos.
  • Mayor capacidad: HPFS admite discos duros de hasta 512 gigabytes de capacidad, manteniendo el tamaño del cluster (unidad mínima de información almacenable) en 512 bytes o un sector. En FAT, el tamaño mínimo de cluster para un disco duro es 2048 bytes, y para discos mayores aumenta (un disco duro de 1 giga tiene un tamaño de cluster de 32Ks).
  • Soporte para nombres largos: permite nombres de hasta 256 caracteres.
  • Mayor seguridad: si al grabar en un sector se detecta un error, se marca automáticamente como defectuoso y se graba en otra parte.
  • Mayor velocidad en el acceso, gracias a la estructura jerarquica de directorios, que optimiza el acceso a disco.
CARACTERÍSTICAS:

  • Soporte de Multitarea.

  • El sistema Operativo era de texto, permitía múltiples aplicaciones corriendo a la vez aunque solo podía mostrar una aplicación a la vez en la pantalla.

  • Permitía una sesión de DOS.

  • El tamaño máximo de discos soportado era de 32MB.

  • El Sistema Operativo está diseñado para correr en equipos 80286 aunque también era capaz de correr en sistemas 80386.

  • Se agregó el Presentation Manager (PM), una interfaz gráfica muy similar a la del aún inexistente Windows 3.0.

  • Soporte para discos duros más grandes en formato FAT. El tamaño máximo total era de 2GB realizando particiones lógicas y se agregó un sistema actualizado.

  • Se incluyó una base de datos relacional denominada "Database Manager"

  • Se incluyó el "Communication Manager", el cual permitía sesiones con mainframes (emulation 5250 y 3270)

  • Mejoras en el Presentation Manager

  • Se incluyó el sistema de archivo "High Performance File Sistem" (HPFS), el cual era mucho más eficiente que el FAT.

  • Se incluye el lenguaje interpretado REXX como lenguaje de scripting del sistema.

  • LINUX

    LINUX (o GNU/LINUX, más correctamente) es un Sistema Operativo como MacOS, DOS o Windows. Es decir, Linux es el software necesario para que tu ordenador te permita utilizar programas como: editores de texto, juegos, navegadores de Internet, etc. Linux puede usarse mediante un interfaz gráfico al igual que Windows o MacOS, pero también puede usarse mediante línea de comandos como DOS.

    Linux tiene su origen en Unix. Éste apareció en los años sesenta, desarrollado por los investigadores Dennis Ritchie y Ken Thompson, de los Laboratorios Telefónicos Bell.
    Andrew Tanenbaum desarrolló un sistema operativo parecido a Unix (llamado Minix) para enseñar a sus alumnos el diseño de un sistema operativo. Debido al enfoque docente de Minix, Tanenbaum nunca permitió que éste fuera modificado, ya que podrían introducirse complicaciones en el sistema para sus alumnos.

    Un estudiante finlandés llamado Linus Torvalds, constatando que no era posible extender Minix, decidió escribir su propio sistema operativo compatible con Unix.
    En aquellos momentos el proyecto GNU (GNU's Not Unix), que Richard Stallman había iniciado hacía ya casi diez años, comprendía un sistema básico casi completo. La excepción más importante era el kernel o núcleo, que controla el hardware.

    Torvalds decidió aprovechar el sistema GNU y completarlo con su propio núcleo, que bautizó como Linux (Linux Is Not UniX). El sistema conjunto (herramientas GNU y núcleo Linux) forma lo que llamamos GNU/Linux.

    Caracteristicas:

    2.1 Multitarea

    Describe la habilidad de ejecutar, aparentemente al mismo tiempo, numerosos programas sin obstaculizar la ejecución de cada aplicación. Esto se conoce como multitarea preferente, porque cada programa tiene garantizada la posibilidad de correr. Windows no soporta multitarea preferente, sólo la llamada multitarea cooperativa, bajo la cual los programas corren hasta que ellos mismos permiten la ejecución de otro programa o no tienen otra que hacer durante ese período.

    2.2 Multiusuario

    El concepto de que numerosos usuarios pudieran accesar aplicaciones o el potencial de procesamiento en una sola PC era un mero sueño hace unos cuantos años. Linux permite que más de una sola persona pueda trabajar en la misma versión de la misma aplicación de manera simultánea, desde las mismas terminales, o en terminales separadas.

    2.3 Redes y Telecomunicaciones

    La superioridad de Linux sobre otros sistemas operativos es evidente en sus utilerías para redes y comunicaciones. Ningún otro sistema operativo incluye capacidades para red tan estrechamente acopladas. Linux soporta las siguientes interfaces de red: ethernet, fddi, token ring, arcnet, X.25, ISDN, líneas seriales síncronas y asíncronas.

    2.4 Internet

    Con Linux usted puede conectarse a Internet y al vasto mundo de información que esta red abarca. Correo Electrónico, Listas de Correo, Grupos de Interés, Búsqueda y Transferencia de Archivos, Gopher, WAIS, y por supuesto, World Wide Web.

    2.5 Interconectividad

    Usted puede conectar Linux a una red local, y convertirlo en servidor para MS-DOS, Windows, Windows para Trabajo en Grupo (WfW), Windows 95 y Macintosh por un costo muy por debajo de otros sistemas comerciales.

    2.6 Programación

    Linux cuenta con un conjunto poderoso de herramientas para el desarrollo de programas: C, C++, ObjectiveC, Pascal, Fortran, BASIC, CLISP, SmallTalk, Ada, Perl, así como depuradores y bibliotecas compartidas de enlace dinámico (DLL).

    2.7 Portabilidad

    Linux fue diseñado teniendo en cuenta la portabilidad de las aplicaciones. Linux es compatible con diversos estándares Unix, tales como System V, BSD y los estándares internacionales IEEE POSIX.1 e IEEE POSIX.2, facilitando el desarrollo de aplicaciones para múltiples plataformas.

    2.8 Ambiente Gráfico

    Linux proporciona la capacidad de ejecutar aplicaciones gráficas mediante una red heterogénea al incorporar la revisión 6 del estándar X11 del MIT, conocido también simplemente como X-Window. Con el hardware adecuado, las Estaciones de Trabajo Linux son una alternativa de bajo costo a las Estaciones de Trabajo de alto rendimiento.
    Sistema Operativo UNIX

    Es un sistema operativo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas. Controla los dispositivos de periféricos conectados a la máquina.

    Posee las siguientes características:

    - Es un sistrema operativo multiusuario, con capacidad de simular multiprocesamiento y procesamiento no interactivo.
    - Está escrito en un lenguaje de alto nivel : C.
    - Dispone de un lenguaje de control programable llamado SHELL.
    - Ofrece facilidades para la creación de programas y sistemas y el ambiente adecuado para las tareas de diseños de software.
    - Emplea manejo dinámico de memoria por intercambio o paginación.
    - Tiene capacidad de interconexión de procesos.
    - Permite comunicación entre procesos.
    - Emplea un sistema jerárquico de archivos, con facilidades de protección de archivos, cuentas y procesos.
    - Tiene facilidad para redireccionamiento de Entradas/Salidas.
    - Garantiza un alto grado de portabilidad.
    El sistema se basa en un Núcleo llamado Kernel, que reside permanentemente en la memoria, y que atiende a todas las llamadas del sistema, administra el acceso a los archivos y el inicio o la suspención de las tareas de los usuarios.
    La comunación con el sistema UNIX se da mediante un programa de control llamado SHELL. Este es un lenguaje de control, un intérprete, y un lenguaje de programación, cuyas características lo hacen sumamente flexible para las tareas de un centro de cómputo. Como lenguaje de programación abarca los siguientes aspectos:
    - Ofrece las estructuras de control normales: secuenciación, iteración condicional, selección y otras.
    - Paso de parámetros.
    - Sustitución textual de variables y Cadenas.
    - Comunicación bidireccional entre órdenes de shell.

    El shell permite modificar en forma dinámica las características con que se ejecutan los programas en UNIX: Las entradas y salidas pueden ser redireccionadas o redirigidas hacia archivos, procesos y dispositivos; Es posible interconectar procesos entre sí.

    Diferentes usuarios pueden "ver" versiones distintas del sistema operativo debido a la capacidad del shell para configurar diversos ambientes de ejecución. Por ejemplo, se puede hacer que un usuario entre directamente a su sección, ejecute un programa en particular y salga automáticamente del sistema al terminar de usarlo.
    Sistema Operativo

    Un sistema operativo es un software de sistema, es decir, un conjunto de programas de computadora destinado a permitir una administración eficaz de sus recursos. Comienza a trabajar cuando es cargado en memoria por un programa especifico, que se ejecuta al iniciar el equipo, o al iniciar una máquina virtual, y gestiona el hardware de la máquina desde los niveles más básicos, brindando una interfaz con el usuario.
    Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos electrónicos que utilicen microprocesadores para funcionar, ya que gracias a éstos podemos entender la máquina y que ésta cumpla con sus funciones (teléfonos móviles, reproductores de DVD, autoradios, computadoras, radios,etc).

    Funciones básicas:

    Los sistemas operativos, en su condición de capa de software que posibilita y simplifica el manejo de la computadora, desempeña una serie de funciones básicas esenciales para la gestión del equipo. Entre las más destacables, cada una ejercida por un componente interno (módulo en núcleos monolíticos y servidor en micronúcleos), podemos reseñar las siguientes:
    • Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos (programas)
    • Brindar una interfaz al usuario, ejecutando instrucciones (comandos), proporcionando más comodidad en el uso del computador.
    • Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).
    Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema informático: administración de recursos, administración de archivos, administración de tareas y servicio de soporte y utilidades y suministro de interfaz al usuario.
    ¿Qué es La Memoria EPROM?

    Una EPROM (Erasable Programmable Read Only Memory), es una memoria borrable y programable, o lo que es lo mismo reprogramable. Esto quiere decir que puede guardarse información en la memoria, luego borrarla e introducir otra. Esto permite realizar de manera sencilla modificaciones, ampliaciones y correcciones del contenido de la memoria.
        
    La EPROM dispone, como cualquier memoria de un bus de direcciones y de un bus de datos. Internamemte cada bit se almacena en una matriz de células de memoria. Cuando la EPROM está activa y en modo de lectura, se produce la decodificación de las direcciones y el contenido de las células de memoria seleccionadas se entrega a la salida.

    Está realizada con la combinación de Celdas de Floating Gate Avalanche-Ingection Metal-Oxide Semiconductor (FAMOS) un material que es también llamado Transistores de Puerta Florante, que consta de un material semiconductor que en el momento de su fabricación carecen de carga, teniendo la posibilidad de ser programables mediante un dispositivo que imprime Altos Voltajes (superiores a los que se utilizan en el Circuito Eléctrico del ordenador, lógicamente) haciendo que sus celdas se alteren.


    Una vez que programamos la Memoria EPROM, solamente puede ser borrada y vuelta a su estado inicial mediante una exposición súbita y fuerte a la Luz Ultravioleta, haciendo que los fotones exciten a los electrones del material semiconductor (es decir, las Celdas FAMOS) y facilitando su descarga eléctrica.

    En cuanto a su diseño, son fácilmente reconocidas por contar con una Ventana de Cuarzo que permite visualizar a través de ella todo el Chip de Silicio, siendo este material el elegido por ser apto de permitir el traspaso de la Luz Ultravioleta, necesaria para poder realizar el proceso de borrado.
    Una Memoria EPROM es capaz de almacenar los datos que se han programado en ella durante un plazo que oscila entre los 10 y 20 años de su vida útil, pudiendo ser leída ilimitadamente, requiriendo como protección cubrir la Ventana de Borrado, para evitar que la luz del sol realice un borrado accidental, siendo generalmente utilizada una Etiqueta del Fabricante.