Download Descripción de la arquitectura [editar]

Document related concepts

Bit NX wikipedia , lookup

Windows XP Professional x64 Edition wikipedia , lookup

Netwide Assembler wikipedia , lookup

SSE wikipedia , lookup

Extensiones Vectoriales Avanzadas wikipedia , lookup

Transcript
x86 es la denominación genérica dada a ciertos microprocesadores de la familia Intel,
sus compatibles y la arquitectura básica a la que estos procesadores pertenecen, por la
terminación de sus nombres numéricos: 8086, 80286, 80386, 80486, etc. Son
comúnmente conocidos por versiones abreviadas de sus nombres, como 286 ó i286, 386
ó i386, 486 ó i486, e incluso 086, por i8086 o i8088 (su respectiva versión de 8 bits). A
partir del i486, sus sucesores serán conocidos por los nombres no numéricos referentes
a la marca, logotipo o nombre clave con los que fueron lanzados al mercado, y se les
comercializó (a menudo seguido de su frecuencia, en megahertzios, de ciclos de reloj),
como los Pentium (y Pentium MMX), o los K5, para el 80586 (ó i586), en sus
respectivas versiones de Intel y AMD; los Pentium Pro, Pentium II, Pentium III y K6,
así como los 6x86, de Cyrix, para el 80686 (ó i686); ó los Pentium 4, Pentium D y K7
(Athlon, Athlon XP, Duron y Sempron), para los 80686 de séptima generación. Con la
octava generación de procesadores compatibles x86, los x86-64, que utilizan
arquitectura y bus de 64 bits, con posibilidad de múltiples núcleos, introducida por
AMD y clonada por Intel, se introducen por primera vez nuevas variantes y formas, en
lo que a la denominación y clasificación del procesador se refiere, tales como el nombre
comercial ó tecnología del modelo, la compañía fabricante, su número de serie, la
cantidad de bits a la que puede trabajar o la cantidad de núcleos por los que está
compuesto, por ejemplo: Intel Core 2 Duo E2180, o lo que es lo mismo, i686 ó Intel
Pentium de doble núcleo E2180, de 64 bits y de 1,6 a 2,0 Ghz; ó AMD Athlon 64 X2, es
decir, un AMD 64 bits, Athlon X de doble núcleo a 2 Ghz; todos ellos englobados bajo
el denominador común x86-64, y compatibles con subarquitecturas anteriores de 32, 16
y 8 bits, de la familia de procesadores x86 de Intel, y compatibles.
La comercial popularidad de esta arquitectura hizo que muchos fabricantes, además de
Intel, empezaran a fabricar en masa microprocesadores basados en esta arquitectura.
Estas compañías son entre otras AMD, Cyrix, NEC Corporation y Transmeta.
La arquitectura es notablemente no limpia, por mantener compatibilidad con la línea de
procesadores de 16 bits de Intel, que a su vez también eran compatibles con una familia
de procesadores de 8 bits. Existen dos sucesores de 64 bits para esta arquitectura:


IA64, empleada en los procesadores Itanium de Intel y no compatible con X86,
excepto bajo emulación.
AMD64 o x86-64, de AMD, que es básicamente una extensión de 64 bits de la
familia x86.
Técnicamente, la arquitectura es denominada IA32 (Intel Architecture 32 bits). Está
basada en un modelo de arquitectura CISC (del inglés Complex Instruction Set
Computing).
Intel Itanium, antes conocida como IA-64 (Intel Architecture-64), es una arquitectura de
64 bits desarrollada por Intel en cooperación con Hewlett-Packard para su línea de
procesadores Itanium e Itanium 2. Usa direcciones de memoria de 64 bits y está basada
en el modelo EPIC[1] (Explicitly Parallel Instruction Computing, procesamiento de
instrucciones explícitamente en paralelo).
Los procesadores Intel Itanium 2 representan el diseño de producto más complejo del
mundo con más de 1.700 millones de transistores. Esto permite obtener sólidas
capacidades de virtualización, mejorar la confiabilidad y niveles de rendimiento líderes
del mercado.
A diferencia de productos de los pocos fabricantes* de procesadores RISC que siguen
operando, la serie de procesadores Intel Itanium 2 ofrece libertad al usuario final a
través de una amplia gama de opciones de software con más de 8.000 aplicaciones en
producción. Los servidores y sistemas de cómputo de alto desempeño basados en el
procesador Itanium ofrecen soporte de misión crítica para Windows, Linux, Unix y
otros sistemas operativos.

Los últimos pentiums, son en realidad máquinas RISC que emulan a una
máquina CISC por temas de retrocompatibilidad.
x86-64 es una arquitectura basada en la extensión del conjunto de instrucciones x86
para manejar direcciones de 64 bits. Además de una simple extensión contempla
mejoras adicionales como duplicar el número y el tamaño de los registros de uso general
y de instrucciones SSE.
Se trata de una arquitectura desarrollada por AMD e implementada bajo el nombre de
AMD64. El primer procesador con soporte para este conjunto de instrucciones fue el
Opteron, lanzado en abril de 2003. Posteriormente ha sido implementado en múltiples
variantes del Athlon 64 y del Pentium 4 de Intel, en éste último caso bajo una versión de
Intel llamada Intel 64 (antes EM64T).
Descripción de la arquitectura [editar]
El conjunto de instrucciones del AMD x86-64 (renombrado posteriormente como
AMD64) es una extensión directa de la arquitectura del x86 a una arquitectura de 64
bits, motivado por el hecho de que los 4GB de memoria que son direccionables
directamente por una CPU de 32 bits ya no es suficiente para todas las aplicaciones.
Algunos de los cambios:

Nuevos registros. El número de registros de propósito general se ha
incrementado de 8 en los procesadores x86-32 a 16, y el tamaño de todos estos
registros se ha incrementado de 32 bits a 64 bits. Adicionalmente, el número de
registros MMX de 128 bits (usados para las instrucciones extendidas SIMD) se
ha incrementado de 8 a 16. Los registros adicionales incrementan el
rendimiento.

Registros XMM (SSE) adicionales: Igualmente el número de registros de 128
bits (usados para las instrucciones SSE) han aumentado de 8 a 16.

Espacio de direcciones mayor. Debido a la arquitectura de 64 bits, la
arquitectura AMD64 puede direccionar hasta 16 exabytes de memoria. Esto,
comparado con los 4GB del x86-32, de los que sólo la mitad está disponible para
aplicaciones en la mayoría de las versiones de Microsoft Windows, el sistema
operativo dominante en entornos domésticos. Las implementaciones futuras de
la arquitectura del AMD64 puede proporcionar hasta 2 exabytes de memoria
disponible. Si la paginación de memoria se utiliza correctamente, los sistemas
operativos de 32 bits podrían tener acceso a algunas de las extensiones de
dirección físicas sin tener que realizar la ejecución en modo largo (long).
Aunque la memoria virtual de todos los programas en el modo de 32 bits está
limitada a 4 GB.

Instrucción de acceso a datos relativa al puntero: Las instrucciones ahora
pueden hacer referencias relativas al puntero de instrucciones (registro RIP).
Esto permite crear código independiente de la posición que permite un código
mucho más eficiente en librerías dinámicas y código cargado en tiempo de
ejecución.

Llamadas al sistema más rápidas. Debido a que la segmentación no está
soportada en el modo de 64 bits, las llamadas al sistema no tienen las latencias
asociadas con almacenar y recuperar la información de segmentación ni tienen
que realizar las comprobaciones necesarias de protección a nivel de
segmentación. Por lo tanto, AMD ha introducido un nuevo interfaz de llamadas
al sistema, al que se accede utilizando solamente la instrucción "SYSCALL".
Aunque los sistemas operativos todavía pueden utilizar el sistema de
interrupciones para las llamadas al sistema, en el modo de 64 bits utilizar
"SYSCALL" es más rápido.

Instrucciones SSE. La arquitectura AMD 64 incluye las extensiones de Intel
SSE y SSE2, las últimas cpus incluyen SSE3 también. También están soportadas
las instrucciones del x86 y MMX.

Bit NX. El bit NX es una característica del procesador que permite al sistema
operativo prohibir la ejecución del código en área de datos, mejorando la
seguridad. Esta características está disponible en los modos de 32 y 64 bits, y
está soportada por Linux, Solaris, Windows XP SP2, Windows Server 2003
SP1.
Los sistemas de archivos (filesystem en inglés), estructuran la información guardada en
una unidad de almacenamiento (normalmente un disco duro de una computadora), que
luego será representada ya sea textual o gráficamente utilizando un gestor de archivos.
La mayoría de los sistemas operativos poseen su propio sistema de archivos.
Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a
los datos como una cadena de bloques de un mismo tamaño, a veces llamados sectores,
usualmente de 512 bytes de longitud. El software del sistema de archivos es responsable
de la organización de estos sectores en archivos y directorios y mantiene un registro de
qué sectores pertenecen a qué archivos y cuáles no han sido utilizados. En la práctica,
un sistema de archivos también puede ser utilizado para acceder a datos generados
dinámicamente, como los recibidos a través de una conexión de red (sin la intervención
de un dispositivo de almacenamiento).
Los sistemas de archivos tradicionales proveen métodos para crear, mover, renombrar y
eliminar tanto archivos como directorios, pero carecen de métodos para crear, por
ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o
renombrar enlaces padres (".." en Unix).
El acceso seguro a sistemas de archivos básicos puede estar basado en los esquemas de
lista de control de acceso o capacidades. Las listas de control de acceso hace décadas
que demostraron ser inseguras, por lo que los sistemas operativos experimentales
utilizan el acceso por capacidades. Los sistemas operativos comerciales aún funcionan
con listas de control de acceso.
Sistemas de archivos de disco [editar]
Un sistema de archivo de disco está diseñado para el almacenamiento de archivos en
una unidad de disco, que puede estar conectada directa o indirectamente a la
computadora.
Otros sistemas de archivos
-HFS. HFS es el Sistema de Archivo de Mac. Se usa en todo tipo de medio de
almacenamiento, desde CD's y DVD's hasta el Disco Duro.
-HFS+. HFS+ es la variante moderna de HFS con soporte para una mayor capacidad de
almacenamiento, unicode y mucho más.
ext3 (third extended filesystem o "tercer sistema de archivos extendido") es un sistema
de archivos con registro por diario (journaling). Es el sistema de archivo más usado en
distribuciones Linux.
La principal diferencia con ext2 es el registro por diario. Un sistema de archivos ext3
puede ser montado y usado como un sistema de archivos ext2. Otra diferencia
importante es que ext3 utiliza un árbol binario balanceado (árbol AVL) e incorpora el
asignador de bloques de disco Orlov.
Estructuras de datos ext2 [editar]
El espacio en ext2 está dividido en bloques, y los bloques organizados en grupos,
análogamente los grupos de cilindro del sistema de archivos Unix. Esto se hace para
reducir la fragmentación externa y reducir al mínimo el número de búsquedas de disco
cuando se lee una gran cantidad de datos consecutivos.
Cada bloque contiene un superbloque grupo, el grupo de bloques de mapa de bits, mapa
de bits i-nodo, seguidos por los bloques de datos reales.
El superbloque contiene información importante que es crucial para el arranque del
sistema operativo, con lo que las copias se realizan en cada bloque de grupo de cada
bloque en el sistema de archivos. Sin embargo, sólo la primera copia de la misma, que
se encuentra en el primer bloque del sistema de archivos, se utiliza en el arranque.
El grupo descriptor almacena el valor del bloque de mapa de bits, mapa de bits inodo y
el comienzo de la tabla de i-nodos por cada bloque de grupo y éstos, a su vez, se
almacena en un grupo descriptor tabla.
La GPL (General Public License/Licencia Pública General) de GNU es un
conjunto específico de términos de distribución empleados para proteger un
programa con copyleft. El Proyecto GNU utiliza esta licencia para la
distribución de la mayoría del software de GNU.
El sistema GNU
El sistema GNU es el sistema operativo similar a Unix, constituido en su
totalidad por software libre, que hemos desarrollado en el Proyecto GNU desde
1984.
Un sistema operativo similar a Unix está constituido por muchos programas. El
sistema GNU incluye todo el software GNU, además de muchos otros paquetes,
como el sistema X Window y TeX, los cuales no son software de GNU.
La primera versión de prueba del sistema GNU completo estaba disponible en
1996. Éste incluía el Hurd de GNU, nuestro núcleo, desarrollado desde 1990. En
2001 el sistema GNU (incluyendo el Hurd de GNU) comenzó a funcionar con
bastante fiabilidad, pero el Hurd todavía carecía de algunas características
importantes, por lo que no se usa ampliamente. Entretanto, el sistema
GNU/Linux, un derivado del sistema GNU que utiliza Linux como núcleo en
vez del Hurd de GNU, tuvo un gran éxito desde los años 1990.
Ya que el propósito de GNU es ser un sistema libre, cada una de las piezas que
lo componen deben ser software libre. Sin embargo, no todas tienen por que
estar protegidas por copyleft; legalmente se puede incluir cualquier tipo de
software libre si este ayuda a alcanzar los objetivos técnicos propuestos. Y no es
necesario que cada componente sea software GNU individualmente. El sistema
GNU puede incluir, e incluye, software libre no protegido por copyleft, como es
el caso del Sistema X Window, que fue desarrollado en otros proyectos.
Una licencia es, en Derecho, un contrato mediante el cual una persona recibe de otra el
derecho de uso de varios de sus bienes, normalmente de carácter no tangible o
intelectual, pudiendo darse a cambio del pago de un monto determinado por el uso de
los mismos.
Estos activos son propiedad del otorgante, y pueden ser bienes de propiedad intelectual
como una marca, patentes o tecnologías. También pueden ser objeto de licencia otros
bienes de carácter intangible como la distribución de obras intelectuales.
Clases de licencias [editar]
La modalidad de licenciamiento es muy común en la industria del software, donde se
comercializan licencias de software que permiten el uso de un programa o aplicación
computacional sin ser uno el dueño, por lo que no se tiene la propiedad para venderlo,
ni arrendarlo o modificarlo.
Existen también licencias con características especiales, que permiten la modificación o
transmisión del software. Estas licencias se suelen denominar freeware (de uso
gratuito), shareware (de distribución gratuita) o las que se permite la modificación del
software: software libre y open source.
También existe la licencia para ser concesionario de una marca recibiendo el derecho de
uso de esta marca y al mismo tiempo el know how de la companía.
Los núcleos híbridos fundamentalmente son micronúcleos que tienen algo de código
«no esencial», en espacio de núcleo para que éste se ejecute más rápido de lo que lo
haría si estuviera en espacio de usuario.
Éste fue un compromiso que muchos desarrolladores de los primeros sistemas
operativos, con arquitectura basada en micronúcleo, adoptaron antes que se demostrara
que los micronúcleos pueden tener muy buen rendimiento. La mayoría de sistemas
operativos modernos pertenecen a esta categoría, siendo el más popular Microsoft
Windows. XNU, el núcleo de Mac OS X, también es un micronúcleo modificado,
debido a la inclusión de código del núcleo de FreeBSD en el núcleo basado en Mach.
DragonFlyBSD es el primer sistema BSD que adopta una arquitectura de núcleo
híbrido sin basarse en Mach.
Ejemplos de SO con núcleos híbridos [editar]




Microsoft Windows NT, usado en todos los sistemas que usan el código base de
Windows NT
XNU (usado en Mac OS X)
DragonFlyBSD
ReactOS
Se tiende a confundir el término núcleo híbrido con los núcleos monolíticos que pueden
cargar módulos después del arranque, lo que es un error. El núcleo híbrido implica que
el núcleo en cuestión usa conceptos de arquitectura o mecanismos tanto del diseño
monolítico como del micronúcleo, específicamente el paso de mensajes y la migración
de código no esencial hacia el espacio de usuario, pero manteniendo cierto código no
esencial en el propio núcleo por razones de rendimiento