lunes, 19 de enero de 2015

Cuestión D: Programada ideado sencillo y codificado en ARM o x86

Paso 1:


Paso 2:

Descargar y Instalar el depurador de GNU (la versión multi-tier architecture)
https://packages.debian.org/fr/sid/gdb-multiarch

Paso 3:
  • Para ensamblar el codigo ARM y generar el archivo objeto (.o), en la linea de comandos se introduce:
$ arm-linux-gnueabi-as -o programa.o programa.s
  • Para enlazar y generar el ejecutable, en la linea de comandos:
$ arm-linux-gnueabi-ld -o programa programa.o

¡LISTO! Ya se puede ejecutar el programa. Para ejecutar introduzca desde la linea de comandos:
$ ./programa
Para depurar el codigo ARM hay que conectar QEMU con el depurador de GNU:

Paso 1: Hacemos que QEMU espere a una conexión :
qemu-arm -g 1234 ./programa

Paso 2: Abrimos un nuevo terminal e introducimos:
gdb-multiarch -q -nx

Paso 3: Cargamos el programa:
(gdb) file programa

Paso 4: ponemos la arquitectura ARM:
(gdb) set architecture arm

Paso 5: Y finalmente: conectamos el depurador a la conexión remota:
(gdb) target remote 127.0.0.1:1234

Fuente: Instrucciones del blog
Descarga del programa: Proyecto.s Proyecto.o Proyecto (ejecutable)
Parte realizada por: Owayss Kabtoul

Cuestión C: Presupuesto de 800€ para un ordenador sobremesa

El ordenador de sobremesa se verá orientado para el montaje de un servidor de respaldo, cuyo presupuesto será de 800€. He sido muy cuidadoso a la hora de elegir los componentes del ordenador, ya que un servidor que goce de buenas características se necesita un alto precio.

Para ello, lo primero que tenemos que fijarnos es la placa base, que es como una base de los componentes que vamos a necesitar como: el tipo de memoria RAM, Socket, microprocesador, fuente de alimentación y la caja.

No es necesario que el presupuesto de la placa base sea excesivo, siempre y cuando utilicemos la mayoría de sus características.

Placa Base Asus P9D-X


  • ASUS Dr. Power Switch

Permite que el sistema muestre mensajes de notificación en Windows en el caso de que se detecte un problema de la fuente de alimentación.

Podemos activarlo mediante un mecanismo en la propia placa base, obviamente podemos desactivarlo si no queremos recibir esas notificaciones.

Será necesario para mantenerlo en alerta nuestro servidor de respaldo si queremos tenerlo al 100% operativo.




  • DDR3 1600/1333 ECC/non-ECC Support
Tenemos dos opciones a la hora de utilizar memoria RAM, por el que tendremos que elegir entre la DDR3-1333 y DDR3-1600. Por el momento, no sabemos qué estándar vamos a escoger, pero tenemos que tener muy en cuenta el precio aparte de sus características y si será necesario utilizar una mayor cantidad de memoria RAM.
  • Support 22nm CPU Intel LGA1150 Socket
El socket o también llamado zócalo de la CPU se utiliza para fijar y conectar un microprocesador sin soldar, lo cual permite extraerlo si es necesario.

Es compatible con los microprocesadores Intel Core i3, i5 e i7 de cuarta generación y Broadwell. En nuestro caso vamos a utilizar un procesador de Intel Xeon, veremos sus características a continuación.






  • USB BIOS Flashback
Resulta que es la manera más sencilla de actualizar la BIOS a través de una memoria USB y una fuente de alimentación, sin necesidad de una CPU, memoria o algún que otro hardware adicional. Tiene una gran compatibilidad con PCI-E 3.0, DRAM y Overclock de la CPU.
  • HDMI
High-Definition Multimedia Interface o HDMI (interfaz multimedia de alta definición) es una norma de audio y vídeo digital cifrado sin compresión apoyada por la industria para que sea el sustituto del euroconector. HDMI provee una interfaz entre cualquier fuente de audio y vídeo digital como podría ser un sintonizador TDT, un reproductor de Blu-ray, un Tablet PC, un ordenador (Microsoft Windows, Linux, Apple Mac OS X, etc.), un receptor A/V,... y un monitor de audio/vídeo digital compatible, tal como un televisor digital (DTV).

Dependiendo del tipo de monitor, podremos utilizar la norma HDMI aunque no será necesario.
  • Displayport
DisplayPort es una interfaz digital estándar de dispositivos desarrollado por la Asociación de Estándares Electrónicos de Vídeo (VESA). Libre de licencias y cánones, define un nuevo tipo de interconexión destinado principalmente para la transmisión de Vídeo entre una computadora y su monitor. Opcionalmente permite la transmisión de Audio para su uso por ejemplo en sistemas de cine en casa, y el envío de Datos, por ejemplo USB.

Dependiendo del tipo de monitor, podremos utilizar la tecnología DisplayPort aunque no será necesario.
  • Dual Intel Server LAN
Es la interfaz de conexión en red que dispone por defecto en la placa base, con su conector RJ45.
  • Tecnología de bus PCI-Express
No lo utilizaremos para conectar tarjetas gráficas, ya que la placa base dispone de una integrada en la placa base, además aumentaría el presupuesto innecesariamente. En esta placa base podemos utilizar diferentes buses PCI:

 - PCI-E x16 (Gen3 x16/x18 link)
 - PCI-E x16 (Gen3 x4 link)
 - PCI-E x16 (Gen2 x4 link)

 - PCI-Ex1 (Gen3 x8/x4 link): No vamos a prescindir de este PCI para incorporar una tarjeta adaptadora controladora con 2 puertos eSATA Externos (SATA II), ya que ofrece una conectividad simple entre un ordenador host y dispositivos e-SATA. Al poseer dos puertos e-SATA, la tarjeta adaptadora ofrece una solución eficaz y económica para realizar un almacenamiento de conexión directa de alta velocidad, y a su vez permite realizar copias de respaldo y archivo de datos con mayor facilidad.

- PCI: En caso de necesitar una tarjeta adaptadora de red, nos conviene tenerlo como reserva.

  • Chassis intrusion header
  • COM Port
  • TPM Port/ G.P. Diagnosis card bundied
  • LPT1 Port
  • 6 x SATA 6GB/s ports
  • Intel C226 Chipset


Placa base: 148,28 € [Comprar]

Seagate ST4000VN000 - Disco duro interno para servidor NAS

NAS es una tecnología de almacenamiento dedicada a compartir, en este caso, el disco duro del servidor con computadoras personales o servidores clientes a través de la red, accediendo a través de los protocolos de red como CIFS, NFS, FTP o TFTP.

Está probada para proporcionar un buen rendimiento en el sector de aplicaciones NAS ininterrumpidas, por lo que nos resulta ideal para un servicio de copias de respaldo de forma operativa.

Tiene una capacidad de 3 TB de almacenamiento, pero como se trata de un servidor de bajo presupuesto su capacidad es ideal, al igual que la transferencia de datos tasa/velocidad resulta ser ideal en comparación con otros discos duros.

Tasa sostenida de transferencia de datos: 180 MB/s
Velocidad de transferencia de datos: 6 Gbit/s

Disco duro: 119.95€ [Comprar]


Intel Xeon E3-1220 V3, QUAD CORE, 3.10 GHz, 8M, 1150 (Procesador)

Daremos uso de este procesador porque cumple las características para el uso de un servidor dedicado, en este caso, para una copia de respaldo.

Una de las tres características importantes del procesador Intel Xeon E3-1220 V3 es la arquitectura Turbo Boost, que sirve para aumentar la frecuencia de forma dinámica al procesador. Otra es la arquitectura Intel 64, ofreciendo los 64 bits en plataformas de servidores. Y la tecnología Intel SpeedStep mejorada se desarrolla en esa arquitectura utilizando las estrategias de diseño como separación entre cambios de voltaje y frecuencia, y partición de reloj y recuperación.

Otras características a destacar:
Ancho de banda de memoria (max): 25,6 GB/s
De caché L3: 8 MB
Frecuencia del procesador: 3,1 GHz
Frecuencia del procesador turbo máxima: 3,5 GHz
Número de ligas QPI: 1
Número de núcleos de procesador: 4
Socket de procesador: Socket H3 (LGA 1150)
System bus data transfer rate: 5 GT/s
Velocidades de reloj de memoria soportadas: 1333, 1600 MHz

Procesador: 216,64€ [Comprar]

Disipador

Normalmente los disipadores que incluyen junto a la CPU son de una gama baja, para un servidor será necesario un disipador y un ventilador para la refrigeración. 
CPU Socket Intel® Socket LGA1366/1156/1155/775/1150 y las dimensiones Dimension 90 x 79 x 136 mm (3.5 x 3.1 x 5.4 inch) son compatibles con la placa base.


Disipador: 19.95€ [Comprar]


Memoria RAM DDR3


Utilizaremos el estándar DDR3 debido a que es compatible con la placa base ASUS P9D-X, bajo la norma 1600, ya que ofrece mejores características en todos los aspectos:
 - Velocidad de reloj: 200 MHz
 - Tiempo entre señales: 5ns
 - Velocidad de reloj de E/S: 800MHz
 - Datos transferidos por segundo: 1600 Millones
 - Máxima capacidad de transferencia: 12.800 MB/s
 - Latencia: 7-8-8-24

Tiene una capacidad de memoria de 4GB y se utilizará para 4 ranuras, es decir, que la placa base podrá ofrecer 12 GB de memoria RAM.

Memoria RAM: 144 (Pack de 4) = 144€ [Comprar]




Fuente de alimentación

La calidad de la fuente de alimentación es aceptable, tiene una potencia de 750W a un precio asequible además de contener distintos conectores flexibles, lo que hace más sencilla su instalación. Resulta importante la calidad de la fuente de alimentación, así, evitando el ruido de la propia fuente y la fácil instalación que conlleva en la torre ATX, que es el siguiente y último componente para el montaje de un ordenador.

Es importante que la fuente de alimentación disponga de 24 pines, ya que es lo requiere la placa base que vamos a utilizar.

Fuente de alimentación: 92.49€ [Comprar]

Torre ATX
El último paso es comprar una torre ATX. Es fundamental que sea el modelo ATX, ya que sigue la norma de factor de forma que son unos estándares que definen algunas características físicas de la placa base para un ordenador. Existen estándares como AT, microATX, Baby-AT, etc. La 'Caja Zorro' está especializada para el overcloking, también contiene un sistema de refrigeración ideal para el servidor compuesto con 3 ventiladores de 12 centímetros.

Caja ATX: 39€ [Comprar]








Total: 780,31€
Parte realizada por: Adrián Dávila Guerra

Cuestión B: Programa ideado y codificado en ambas arquitecturas ARM/x86.

Este código en ensamblador lo que pretende es dada una cadena de entrada hacer una copia de la misma en una variable "destino", para ello el código en ARM es el siguiente:
;Copia de cadenas o strings
.text

.data
.global _start
_start:
ldr r0, = orig ;carga en el r0 la direccion de origen
ldr r1, = dest ;carga en el r1 la direccion de destino
mov r2, #38 ;en r2 indica el espacio para la cadena a copiar
bl string
ldr r0, = dest ;carga en r0 la direccion de la cadena copiada
bl exit

string:
orig = "Ejercicio comparativo entre ARM y PC", &0a, &0d, 0
dest = "", &0a, &0d, 0
.space 38

.exit:
.end

Y análogamente el código en x86 es el siguiente:
;Copia de cadenas o strings
.MODEL small
.stack 100h

.data
str1 db "Ejercicio comparativo entre ARM y x86","$"
str2 db 40, dup,"$"
len dw 40

.code
start:
mov ax,@data ;inicializa el registro ax
mov ds,ax ;mueve el registro ax a ds

mov si,offset str1 ;indice de la cadena origen
mov di,offset str2 ;indice de la cadena destino
mov cx,len
do1: mov al,byte ptr [si] ;comienzo del buble do-while
    mov byte ptr[di],al ;copia cada byte uno a uno
    cmp cx,0 ;si es el final de cadena termina el bucle
    je l1 ;salta si es igual la anterior instruccion
    inc si ;incremento de indice
    inc di ;incremento de indice
    dec cx
    jmp do1
l1:
lea dx,str2
mov ah,9
int 21h

mov ax,0C07h
int 21h

mov ax, 4C00h
int 21h
end start


La principal diferencia es que en ARM al trabajar con registros de cache se puede copiar directamente la cadena, en cambio en x86 al intervenir memoria principal es necesario copiar cada byte, como si fuese en C, con el tratamiento de indices parecido a un vector.

José Manuel Barba González 

Cuestión A: Estudio detallado que contraste las arquitecturas ARM/x86.

 
La diferencia mas fundamental es que constan de distintas arquitecturas. La arquitectura de ARM es RISC, que es un set de instrucciones reducidas, mientras que la arquitectura de x86 es CISC, que es un set de instrucciones compleja. 

  • La arquitectura ARM suele utilizarse en dispositivos móviles ya que al ser del tipo RISC tiene menos instrucciones y el gasto energético es menor que el de la arquitectura CISC de x86, y la arquitectura x86 se utiliza en ordenadores personales, ya sean de mesa o portátiles. En los últimos años también se ha podido adaptar la tecnología x86 a dispositivos móviles con el sistema operativo Windows 8.
  • Ya que x86 no se puede adaptar de manera eficiente a dispositivos móviles, como tablets y smartphones, y en los últimos años el numero de ventas de productos móviles se ha disparado se observa una diferencia notable entre el numero de ventas de ARM y x86, siendo la de ARM mucho mayor y con un crecimiento muchísimo mas alto.
  • Hay muchísimas empresas que fabrican procesadores ARM, como QualComm, Texas instruments, Apple, Samsung, etc, frente a las que fabrican x86, que solo son Intel y AMD.
  • Los procesadores x86 pueden ofrecer sistemas de 64 bits mientras que los ARM no han podido adaptar aun esa tecnología a sus procesadores.
  • La arquitectura x86 ha evolucionado durante muchos años y siempre a mantenido compatibilidad con sus versiones anteriores, mientras que ARM no la mantiene. La x86 al ser compatible a dificultado su evolución y adaptación mientras que la arquitectura ARM ha evolucionado mucho mas rápido ya que no requiere de retrocompatibilidad.
  • La arquitectura ARM no usa BIOS, por lo que se inicia mucho mas rápido que la x86 que si requiere de su uso.
  • Casi todo el malware esta orientado a sistemas x86 por lo que podríamos considerar mas segura la arquitectura ARM frente a la x86.
  • Dentro del contexto de programación, podemos ver como ARM usa sus 4 bits superiores como código de condición, además de que se puedan añadir shifts y rotar en el almacenamiento de datos, haciendo que se necesiten menos operaciones de carga y almacenamiento, y así aumentar el rendimiento (RISC).
  •  Hablando de x86 en programación, además de sus registros de propósito general, los x86 tienen los registros de segmento (CS, DS, ES, FS, GS, SS), otros registros (IP, registro de estado), registros extra (MMX, 3dNow!, SSE). Las instrucciones de x86 son de tipo SIMD, tienen una codificación compacta, y las instrucciones de una y dos direcciones, en las que el primer operando es también el destino. Produce flags implícitamente a través de la ALU.
Parte realizada por: José Carlos Almagro Hernández