sábado, 20 de octubre de 2018

Ejecución Especulativa

EJECUCIÓN ESPECULATIVA

En ciencias de la computación, la ejecución especulativa es una forma de optimización en la que un sistema informático realiza una tarea que podría no ser necesaria; la idea consiste en llevar a cabo un trabajo antes de saber si será realmente necesario con la intención de evitar el retraso que supondría realizarlo después de saber que sí es necesario. Si el trabajo en cuestión resulta ser innecesario, la mayoría de los cambios realizados por ese trabajo se revierten y los resultados se ignoran.
Wikipedia Ejecución Especulativa


Otras variantes son:
La ejecución ansiosa 
La ejecución vaga
La ejecución predictiva


Vulnerabilidades: Meltdown y Spectre


 


Meltdown
Meltdown rompe el aislamiento más fundamental entre las aplicaciones de usuario y el sistema operativo. Este ataque permite que un programa acceda a la memoria, y por lo tanto también a los datos, de otros programas y del sistema operativo.
Spectre
Spectre rompe el aislamiento entre diferentes aplicaciones. Permite a un atacante engañar a los programas error-free, que siguen las mejores prácticas, para que filtren sus datos. De hecho, los controles de seguridad de dichas mejores prácticas en realidad aumentan la superficie de ataque y pueden hacer que las aplicaciones sean más susceptibles a Spectre.


jueves, 4 de octubre de 2018

Codificacion de caracteres

Tipos de codificacion de caracteres

ASCII
Código Estadounidense Estándar para el Intercambio de Información.
Fue creado en 1963 por el Comité Estadounidense de Estándares o "ASA", este organismo cambio su nombre en 1969 por "Instituto Estadounidense de Estándares Nacionales" o "ANSI" como se lo conoce desde entonces.

Este código nació a partir de reordenar y expandir el conjunto de símbolos y caracteres ya utilizados en aquel momento en telegrafía por la compañía Bell. En un primer momento solo incluía letras mayúsculas y números, pero en 1967 se agregaron las letras minúsculas y algunos caracteres de control, formando así lo que se conoce como US-ASCII, es decir los caracteres del 0 al 127.
Así con este conjunto de solo 128 caracteres fue publicado en 1967 como estándar, conteniendo todos lo necesario para escribir en idioma ingles.
 
ASCII Extendido
Los códigos de ASCII extendido, del 128 al 255, se asignan a conjuntos de caracteres que varían según los fabricantes de computadoras y programadores de software. Estos códigos no son intercambiables entre los diferentes programas y computadoras como los caracteres ASCII estándar.
www.otae.com























Unicode

 El estándar de Unicode proporciona un número único para cada caracter, sin importar la plataforma, dispositivo, aplicación o idioma. Ha sido adoptado por todos los proveedores de software modernos y ahora permite el transporte de datos a través de diferentes plataformas, dispositivos y aplicaciones sin daños. El soporte de Unicode forma la base para la representación de idiomas y símbolos en todos los principales sistemas operativos, motores de búsqueda, navegadores, computadoras portátiles y teléfonos inteligentes, además de Internet y World Wide Web (URL, HTML, XML, CSS, JSON, etc.)
www.unicode.org 
 


EBCDIC
Código de intercambio decimal de código binario extendido, pronunciado como [ebquidic], es un código estándar de 8 bits usado por computadoras mainframe IBM. IBM adaptó el EBCDIC del código de tarjetas perforadas en los años 1960 y lo promulgó como una táctica customer-control cambiando el código estándar ASCII.

EBCDIC es un código binario que representa caracteres alfanuméricos, controles y signos de puntuación. Cada carácter está compuesto por 8 bits = 1 byte, por eso EBCDIC define un total de 256 caracteres.
es.wikipedia.org