Sistemas & Desarrollo
3 meneos
63 clics

Qué hace a BeOS y Haiku únicos [ENG]  

En este artículo se describen las características propias de Haiku junto a ciertas características heredadas de BeOS que hacen que Haiku sea un sistema operativo único. Por ejemplo, cómo funcionan los paquetes de software, packagefs, simplicidad de la interfaz, formato vectorial de los iconos (HVIF), atributos del sistema de archivos, el comando hey, etc.
2 meneos
57 clics

Creando un script de completado de BASH [ENG]

La funcionalidad de completado de BASH es una característica de esta shell a través de la cual se ayuda a los usuarios a escribir comandos de forma más rápida y sencilla. Esto se logra al presentar opciones posibles cuando los usuarios presionan la tecla de tabulación (una o dos veces) mientras escriben un comando. En esta publicación intentaré familiarizarte con el proceso de creación de un script de completado de BASH.
4 meneos
70 clics

Despedazando ‘printf()’ [ENG]  

Si ‘Hello World’ es el primer programa hacen los estudiantes de C, printf() es probablemente la primera función que usan. He respondido preguntas sobre printf() muchas veces, por lo que finalmente he dedicado tiempo para hacer una reseña. Las preguntas comunes se adaptan generalmente a dos formas: fácil: ¿cómo resuelve mecánicamente el problema del formato?; compleja: ¿cómo muestra printf() el texto en pantalla? Mi respuesta habitual suele ser: abre stdio.h y búscalo. Esta tarea no es sólo una gran experiencia de aprendizaje, sino que también es una prueba interesante para el principiante dedicado. ¿Volverá con la respuesta? Si es así, ¿con qué nivel de detalle?
2 meneos
44 clics

Rincones oscuros de Unicode [ENG]

Supongo que, si estás en Internet y lees algún blog nerd, sabes qué es Unicode. Por lo menos tienes una comprensión muy general de ello, quizás un “es lo que nos da emoji”. En mi experiencia eso es todo lo que extiende la comprensión de la gente, incluso entre los programadores. Y eso es una tragedia, porque Unicode tiene mucha... profundidad. No quiere decir que Unicode sea un desastre terrible, o no más desastre terrible que el lenguaje humano, y cualquier cosa con los nobles objetivos de representarlo no estará libre de arrugas.
2 meneos
44 clics

La asombrosa plantilla que no hace nada [ENG]

Recientemente empecé a usar una nueva plantilla con más frecuencia en el nuevo código D: el uso de la plantilla de identidad. La plantilla de identidad (disponible en std.traits aunque no documentada), se declara así: alias Identity (alias X) = X;. Esta es una forma abreviada de una declaración de plantilla, sinónimo de la forma explícita: template Identity (alias X) { alias Identity = X; }. Se trata de una plantilla epónima, por lo que la instanciación se reemplaza con X (el único parámetro de la plantilla). En consecuencia, Identity!(anything) es asignado a anything. Entonces, ¿de qué sirve una plantilla que no hace nada?
4 meneos
86 clics

¿Qué hace un procesador cuando no tiene nada que hacer? [ENG]

Una CPU está inactiva si no hay tareas a ejecutar. El kernel Linux tiene varias clases de prioridad interna de procesos; una de ellas es la clase especial de procesos inactivos. Si no hay tareas a ejecutar en una CPU determinada en cualquiera de sus clases la CPU se considera inactiva. Si el hardware no soporta “desactivar” las CPU entonces la CPU tiene que ejecutar instrucciones inútiles hasta que sea necesaria para trabajo real. Sin embargo, este es un uso muy ineficiente de la electricidad, por lo que muchas CPU soportan estados de bajo consumo. Pero entrar en esos estados no es gratis.
3 meneos
33 clics

Considerando las implicaciones que tendría en el rendimiento usar una pila explícita en lugar de recursión [ENG]

Supongamos que tenemos un algoritmo de recursión explícita. Por ejemplo, un algoritmo que recorra un árbol en in-orden. Supongamos además que la pila es lo suficientemente grande y el conjunto de datos lo suficientemente pequeño como para que el desbordamiento de la pila no sea un problema. ¿Mejorará el rendimiento si se convierte el algoritmo recursivo en un algoritmo no recursivo con una pila explícita?
3 meneos
48 clics

Matando procesos que no quieren morir [ENG]

Supongamos que hay un programa ejecutándose en su sistema en el que no confía del todo. Tal vez es un programa presentado por un alumno a un sistema de calificación automatizado. O tal vez es un modelo de dispositivo QEMU que se ejecuta en un dominio de control Xen ('dominio 0' o 'dom0') y quiere asegurarse de que incluso si un atacante de una máquina virtual deshonesta se las arregla para hacerse cargo del proceso QEMU no puedan hacer más daño. Hay muchas cosas que quiere hacer en cuanto a restringir su capacidad de hacer travesuras, pero hay algo que probablemente quieras hacer: matar el proceso de manera confiable cuando se crea necesario.
4 meneos
32 clics

¿Cuál es la diferencia entre un entero y un puntero? [ENG]

En lenguaje ensamblador normalmente no tenemos que preocuparnos demasiado por la distinción entre punteros y números enteros. Algunas instrucciones generan direcciones mientras que otras se comportan aritméticamente, pero debajo hay un único tipo de datos: bitvectors. En cambio, los lenguajes de alto nivel no ofrecen oportunidades para confundir punteros y enteros ya que las abstracciones separan por completo el uno del otro. Además, un lenguaje de alto nivel puede elegir no exponer nada relacionado con punteros.
2 meneos
32 clics

Diseccionando QNX [ENG|PDF|492 KiB]

Este trabajo es una disección de QNX, el sistema operativo propietario en tiempo real dirigido al mercado integrado. QNX se usa en muchos dispositivos sensibles y críticos en diferentes industrias y, aunque alguna investigación previa de seguridad ha descrito QNX como un subproducto de investigación móvil de BlackBerry, no hay trabajo previo sobre mitigación de exploits en QNX y generadores de números aleatorios seguros. En este trabajo se presenta la primera ingeniería inversa y análisis de las mitigaciones de exploits, generadores de […].
2 meneos
19 clics

HHVM 3.30 será la última versión que soporte PHP [ENG]

HHVM v3.30 será la última serie de lanzamientos donde HHVM pretende soportar PHP. En última instancia, recomendamos que los proyectos migren por completo al lenguaje Hack, o completamente a PHP7 y al entorno de ejecución de PHP.
2 meneos
68 clics

Cómo funciona HTTPS [ENG][Comic]  

Serie de cómics que explica diferentes conceptos de HTTPS.
2 meneos
58 clics

Ocho ejemplos de cómo se usa el comando ‘ldd’ [ENG]

‘ldd’ es una utilidad de línea de comandos de Linux que se utiliza para conocer las dependencias de bibliotecas compartidas de un archivo ejecutable o incluso de las propias bibliotecas compartidas. Una biblioteca es una colección de recursos tales como subrutinas/funciones, clases, valores o definiciones de tipos de datos. Hay dos tipos de bibliotecas: estáticas, donde los recursos que contiene se incluyen en el ejecutable final, y dinámicas, donde los programas que las usas sólo llevan una referencia a las mismas. Es mediante el comando ‘ldd’ con lo que se muestran estas librerías dinámicas compartidas usadas por cada aplicación.
3 meneos
49 clics

Implementación de una hoja XSL para la salida de nmap usando Bootstrap

Una manera rápida y eficaz de revisar la información obtenida de un escaneo de nmap cuando tenemos muchos resultados es hacerlo mediante un informe en HTML. Sin embargo, nmap no tiene la opción de guardar directamente los resultados del escaneo en HTML, por lo que para conseguir este informe se puede indicar que la salida sea en XML e indicarle la ruta a una hoja XSL que describe cómo debe transformarse. El alemán Andreas Hontzia ha publicado una hoja XSL para nmap con la que se obtienen unos resultados bastante buenos.
3 meneos
28 clics

Evil FOCA, LiLaS y el arte del engaño  

FOCA comenzó como un proyecto llamado Metaextractor que ampliaba las funcionalidades de una PoC que preparamos para un congreso en la Open Source World Conference llamado OOMetaExtractor. Luego le fuimos añadiendo cosas y se convirtió en la FOCA, y lo derivamos a una versión de protección en forma de MetaShield Protector, ganando incluso premios a la innovación.
3 meneos
5 clics

Planes R1/beta 1 de Haiku OS [ENG]

Por fin, R1/beta1 está por llegar. Como ya expliqué en la lista de correo, solo dos problemas que no son "tareas" permanecen en el hito de la versión beta 1, y tengo prototipos de soluciones para ambos. El buildbot y otros servicios importantes han sido rehabilitados y solo necesitarán ajustes menores para manejar la nueva sucursal, y mmlr ha estado dando masajes al constructor HaikuPorter para que también pueda manejar la nueva rama, aunque ese trabajo aún no está terminado.
4 meneos
42 clics

TinyWM: un pequeño gestor de ventanas [ENG]

TinyWM es un pequeño gestor de ventanas que he creado como ejercicio de minimalismo. También puede ser útil para aprender conceptos básicos sobre cómo crear un administrador de ventanas. Sólo tiene alrededor de 50 líneas de código en C (también hay una versión de Python que usa python-xlib). Este gestor permite hacer cuatro cosas básicas: mover ventanas; cambiar el tamaño de las ventanas; elevar ventanas; y poner el foco en una ventana con el ratón.
3 meneos
51 clics

microctfs: pequeños retos en contenedores docker para practicar

¿Estas de vacaciones y/o tienes tiempo libre y quieres practicar tu pericia con pequeños CTFs (Capture The Flag)? El americano Gabe Marshall tiene un repositorio en Github con una serie de interesantes microrretos en forma de contenedores Docker que pueden levantarse de inmediato para empezar a jugar. Te animo a probarlos y a compartir tu feedback e incluso writeups con nosotros.
2 meneos
30 clics

Sistema Operativo "Étoilé" (Eng)

Étoilé pretende ser un entorno de usuario basado en GNUstep innovador construido a partir de componentes altamente modulares y ligeros con la orientación de proyecto y documento en mente, para permitir a los usuarios crear su propio flujo de trabajo mediante la remodelación o recombinación de los Servicios provistos (también conocidos como Aplicaciones), Componentes, etc. La flexibilidad y la modularidad, tanto en la interfaz de usuario como en el nivel del código, nos deberían permitir escalar desde el PDA al entorno de la computadora.
2 meneos
49 clics

Movimiento y salto 2d en Godot Engine

Si eres nuevo en Godot Engine es probable que quieras aprender a mover cosas dentro de una escena. En esta entrada te mostrare como cumplir ese objetivo y, además, a aplicar gravedad. El proyecto que he realizado y que pueden usar para hacer las pruebas se encuentra aquí: mysGE Voy a tratar de explicar detalladamente lo que hace cada código
3 meneos
48 clics

Fuchsia el sistema operativo creado por Google va soportar aplicaciones de Linux (Inglés)

El sistema operativo de Google que no esta basado en Linux ha agregado un emulador para ejecutar aplicaciones de Debian...
3 meneos
16 clics

Se busca betatesters para los drivers de wifi y ethernet en Haiku OS

Haiku ha actualizado la capa de compatibilidad con freebsd del 9.2 al 11.1 de los drivers de red y agradece testeo para asegurar el correcto funcionamiento de la actualización.
4 meneos
67 clics

Análisis del coste/beneficio de comparar antes de asignar una variable [ENG]

Teniendo los dos siguientes fragmentos de código: 1) x = newValue;, y 2) if (x != newValue) x = newValue;, la pregunta es ¿cuál es más rápido? La respuesta es: depende. El segundo fragmento introduce más trabajo, ya que tiene que comparar y luego asignar, pero evita escribir en memoria innecesariamente. También hay que tener en cuenta que influyen cosas como si existen barreras de memoria (memory barriers), si se usa copy-on-write, cómo funcionan las cachés de los procesadores, etc.
2 meneos
29 clics

Ejecución de scripts en PowerShell evadiendo AMSI, logging y firmas

El uso de scripts y lenguajes interpretados se ha convertido en un medio muy usado para saltarse la detección de malware o actividades maliciosas por parte de las soluciones antimalware tradicionales. Para evitarlo, Microsoft introdujo en Windows 10 otra protección denominada AMSI (Antimalware Scan Interface), sobre todo para inspeccionar los scripts que son invocados en tiempo de ejecución, abarcando no sólo PowerShell, si no también VBScript, Ruby y otros muchos lenguajes. Pero la batalla nunca termina y pronto empezaron a surgir […].
2 meneos
24 clics

Cómo funciona el sistema de archivos de Windows 95 [ENG]

Este libro, publicado en 1997, muestra el funcionamiento interno del sistema de archivos de Windows 95, incluyendo VFAT (el sistema de archivos FAT virtual), VREDIR (cliente de Microsoft Networks) y NWREDIR (cliente de Microsoft Netware). Además se anticipan algunos de los cambios que aparecerían en el sucesor de Windows 95 (con nombre en clave Memphis), como FAT32, volúmenes de hasta 2 terabytes y WDM. [ Enlace directo al libro: Inside the Windows 95 File System PDF 16,8 MB ]
3 meneos
34 clics

Arduino con Haiku OS  

Hoy les mostraré algunas screenshots que obtuve del grupo de Telegram para Haiku donde Gerasim Troeglazov nos muestra cómo trabaja Arduino con Haiku y Fritzing.
3 meneos
89 clics

Colección de ‘trucos’ para sistemas de archivos NTFS en Windows [ENG]

Colección de ‘trucos’ en sistemas de archivos NTFS en Windows, entre los que se incluyen el poder crear un directorio en otro directorio cuyos permisos no lo permitan, o crear archivos cuyos nombres sean sólo puntos.
5 meneos
54 clics

C no es un lenguaje de bajo nivel [ENG]

A raíz de las recientes vulnerabilidades de Meltdown y Spectre, vale la pena pasar algún tiempo mirando su causa principal. Ambas vulnerabilidades involucraban a los procesadores ejecutando instrucciones especulativamente sin ningún tipo de control de acceso permitiendo al atacante observar los resultados a través de un canal lateral. Las características que llevaron a estas vulnerabilidades se añadieron para permitir que los programadores de C continúen creyendo que están programando en un lenguaje de bajo nivel.
3 meneos
48 clics

Validando cadenas UTF-8 usando tan poco como 0,7 ciclos por byte [ENG]

La mayoría de las cadenas que se encuentran en Internet están codificadas usando un formato unicode particular llamado UTF-8. Sin embargo, no todas las cadenas de bytes son UTF-8 válidas. Las reglas sobre lo que constituye una cadena UTF-8 válida son un tanto arcanas. Sin embargo, parece importante validar rápidamente estas cadenas antes de consumirlas.
2 meneos
30 clics

menesteroso ruso invento el whatsapp y regreso a donde le daban de comer gratis a hacer un donativo

Un ruso llega USA a vivir de la asistencia publica y hoy se retira de la presidecia del invento que lo saco de la pobreza Whatsapp
3 meneos
44 clics

Todo lo genial que tiene D se puede ver en ‘std.variant’ [ENG]

Hace poco leí un excelente artículo de Matt Kline sobre todo lo malo de std::visit de C++. Mis habilidades en C++ están oxidadas (hace tiempo que me fui para los pastos más verdes de D), pero tenía curiosidad sobre cómo habían cambiado las cosas en mi ausencia y cómo se podría implementar lo mismo en D. Aunque mi intuición me decía que el artículo exageraba, al final esta estaba completa y absolutamente equivocada.
3 meneos
65 clics

Una nueva era en la arquitectura de gráficos de bajo nivel en Linux (parte 1) [ENG]

Las últimas mejoras en el subsistema DRM han hecho que el la línea principal de desarrollo de Linux sea mucho más atractiva haciendo que los controladores sean más fáciles de escribir, las aplicaciones sean portables, y una comunidad mucho más amigable y colaborativa que nunca.
3 meneos
71 clics

Cómo (y por qué) hemos migrado el solitario Shenzhen a MS-DOS [ENG]  

¿Pueden dos programadores que están acostumbrados a hacer juegos para ordenadores modernos con gigabytes de RAM y pantallas de alta definición migrar uno de sus juegos a MS-DOS? Ninguno de nosotros tenía experiencia en el desarrollo en hardware tan antiguo, pero como trabajar en sistemas con limitaciones artificiales es algo así como una especialidad en el diseño de juegos dentro de Zachtronics, nos sentimos obligados a probar.
3 meneos
31 clics

El gestor de contraseñas bitwarden ya tiene aplicación de escritorio  

Hace algo más de un año que os presentamos el gestor de contraseñas bitwarden, una alternativa de código abierto a servicios como LastPass que no ha dejado de madurar desde entonces. Su última gran novedad es el lanzamiento de una aplicación de escritorio multiplataforma, disponible para Linux, Windows y macOS. Resumiendo: Bitwarden es básicamente un clon de LastPass, un servicio en la nube para gestionar contraseñas con extensiones para los principales navegadores, Android e iOS e, imprescindible, cifrado en el lado del cliente, cuya virtud más destacada es que todos sus componentes son software libre. // Relacionada: Cómo gestionar contraseñas con Bitwarden.
3 meneos
41 clics

Cómo gestionar tus contraseñas con Bitwarden, una alternativa a LastPass [ENG]  

¿No has sentido alguna vez que tienes más contraseñas de las que puedes gestionar? Es probable que sea algo más que un sentimiento y, al igual que muchos, probablemente gastes bastante tiempo recordando contraseñas independientemente de lo difíciles que sean. Es por esto que mucha gente usa servicios como LastPass o 1Password que, aunque son servicios sólidos, no dejan de ser propietarios y con código fuente cerrado. ¿Existe alternativa código abierto? Bitwarden es una alternativa de código abierto para gestionar contraseñas en la web.
3 meneos
34 clics

Google lanza la biblioteca ‘cpu_features’ para identificar las características de la CPU [ENG]

Imagina que estás desarrollando una aplicación donde la velocidad es esencial y donde ciertas instrucciones del procesador la incrementan exponencialmente. Y aparece el problema: no es posible conocer a priori qué instrucciones soporta el procesador (identificar el fabricante no es suficiente). Se pueden crear mapas estáticas con modelos y características, pero es tedioso de mantener. Aquí es donde entra cpu_features, una librería pequeña, rápida y de código abierto para obtener las características de la CPU en tiempo de ejecución.
3 meneos
6 clics

Puedes resucitar cualquier cuenta borrada de GitHub; y ello crea un problema de confianza para la plataforma

La repentina partida de un desarrollador de GitHub, junto con los paquetes que mantuvo, supuso un problema para los desarrolladores que utilizaban su código en sus proyectos. Uno de ellos resucitó la cuenta y repobló los paquetes perdidos; hecho que ha puesto en evidencia un posible problema de seguridad y de confianza en la plataforma… [via] maslinux.es/problema-de-confianza-con-github
3 meneos
22 clics

Manage Remote MySQL Servers with Local phpMyAdmin throug a SSH Tunnel [eng]

Have you ever needed to manage your remote MySQL databases, and ended up settling on the less-than-ideal setup of having an instance of phpMyAdmin on the same server as the MySQL server? Well, I am about to make your day. I am going to show you how to manage any number of remote MySQL databases from your local instance of phpMyAdmin; without compromising on security.
3 meneos
41 clics

Hershell, una shell reversa escrita en Go

Hershell, de Ronan Kervella, es una sencilla shell reversa TCP escrita en Go que utiliza TLS para proteger las comunicaciones y certificate pinning para evitar la interceptación de tráfico. Se presenta como una interesante alternativa a los payloads de meterpreter que muchas veces son detectados por los AV y, al estar escrito en Go, puede compilarse para la arquitectura deseada. Soporta Windows, Linux, Mac OS, FreeBSD y derivados.
2 meneos
20 clics

Terraformando tu infraestructura en el Cloud

Terraform nos permite describir, evaluar y aplicar cambios en nuestra infraestructura mantenida como código (infrastructure as code). Creado por Hashicorp y liberado como open source, Terraform se une a productazos de esta misma compañía como Vagrant, Vault, Nomad o Consul, los cuales destacan historicamente por su calidad y flexibilidad...
3 meneos
7 clics

Swift Package Manager – Paquetes y Dependencias

En esta ocasión aprenderemos sobre Swift Package Manager, el gestor de paquetes de Swift, una herramienta con la cual podremos crear paquetes / proyectos ya sean librerías o ejecutables, gestionar las dependencias de estos y en general administrar de una manera más fácil y consensuada la distribución de nuestro código Swift...
5 meneos
78 clics

VisUAL: un emulador de la arquitectura ARM altamente visual [ENG]  

VisUAL es una herramienta multiplataforma para facilitar el aprendizaje del lenguaje ensamblador de la arquitectura ARM. Además de emular un subconjunto del conjunto de instrucciones ARM UAL, proporciona visualizaciones de conceptos clave exclusivos de la programación del lenguaje ensamblador y, por lo tanto, ayuda a que la programación del ensamblaje ARM sea más accesible. Ha sido diseñado específicamente para usarse como una herramienta de enseñanza para el curso de Introducción a la Arquitectura Computacional en el Imperial College London.
2 meneos
49 clics

Reemplazando el firmware de los procesadores x86 con Linux y Go [ENG]  

El Intel Management Engine (ME), que es un procesador y sistema operativo independiente que se ejecuta fuera del control del usuario en la mayoría de los sistemas x86, ha sido motivo de gran preocupación para los usuarios que son conscientes de la seguridad y la privacidad. Google y otros han estado trabajando en formas de eliminar la mayor parte posible de esa funcionalidad (al mismo tiempo que se puede iniciar y ejecutar el sistema). Ronald Minnich de Google vino a Praga para hablar acerca de esos esfuerzos en 2017 Embedded Linux Conference.
3 meneos
70 clics

La latencia de composición del escritorio es real y me molesta [ENG]

Borré mi instalación de Windows 10 hoy. No fue por la intromisión de la telemetría o los anuncios en el menú de inicio, sino por la composición del escritorio. Agrega una latencia leve pero notable que hace que escribir me resulte incómodo. En Windows 7 al menos puedes apagarlo. En la siguiente figura se puede ver que la latencia mínima que puede alcanzar en Windows 10 es de aproximadamente 8 milisegundos, mientras que en Windows 7 las cosas son algo más rápidas.
2 meneos
26 clics

Cabeceras extra de microcódigo de Intel no documentadas [ENG]

Empezando en 2006, Intel añadió una cabecera extra al microcódigo de sus procesadores que, hasta hoy, está no documentada. Esta página está destinada a aquellos que quieren entender cómo estas cabeceras están estructuradas. Gracias a la base de datos de MCE (MC Extractor, Microcode Extraction Tool), ahora ya sabemos el propósito de casi todas las cabeceras extra. Esta información deriva de las observaciones de los 990 microcódigos que incorporan estas cabeceras desde marzo de 2006 hasta noviembre de 2017.
1 meneos
36 clics

Cli.Fyi, información rápida sobre direcciones IP, correos electrónicos y más  

cli.fyi es una herramienta de consulta de línea de comando para buscar información sobre direcciones IP, correos electrónicos, dominios, criptomonedas, medios, fechas, países, lenguajes de programación, etc. Lo mejor de ella es que solo tendremos que tener curl en nuestro sistema y una conexión a Internet para poder hacer uso de esta herramienta, aunque también es posible obtener la información proporcionada a través de un navegador web.
1 meneos
26 clics

Estructuras de Datos - Lista Enlazada

Hoy abordaremos un nuevo algoritmo, aprenderemos a implementar una Lista Enlazada, una estructura de datos bien importante y de las más usadas. Pudiéramos clasificarla como clásica ya que forma parte de esas estructuras de datos que todo programador debe conocer, de hecho, con esta podemos implementar otras estructuras de datos...
1 meneos
29 clics

Por qué, para qué, cuándo y cómo migrar al Cloud computing

Tanto entre mis alumnos, como en las conversaciones con otros compañeros del sector, percibo siempre la duda de la necesidad o conveniencia de migrar al Cloud. Y, ciertamente, no es algo sencillo de explicar. Muchas veces se generan intensos debates sobre si es una moda, una técnica comercial de las multinacionales para “sacarnos los cuartos” o un camino irresistible al que mejor no presentar una excesiva resistencia...
1 meneos
69 clics

Cómo el motor Unreal dibuja un fotograma [ENG]  

Desde que se tiene acceso al código fuente de Unreal Engine, es posible estudiar cómo este motor gráfico dibuja (render) un fotograma (frame). Aunque las rutas de dibujado son una bestia, es sencillo seguir las llamadas al API de bajo nivel. Para este estudio se ha utilizado una escena simple con varias propiedades, tanto estáticas como dinámicas. Entre ellas están la luz, niebla volumétrica, objetos transparentes y efectos de partículas para cubrir gran variedad de materiales y métodos de dibujado.
1 meneos
20 clics

Raft: consenso hecho simple [ENG]  

El consenso es uno de los problemas fundamentales a la hora de programar sistemas distribuidos. Queremos que los clientes perciban el sistema como una unidad coherente, pero no queremos que haya un sólo punto de fallo, con lo que se necesitan varias máquinas colaborando de un modo en que se pongan de acuerdo en el estado del mundo, aunque fallen cosas. Raft es un algoritmo de consenso creado con para ser entendible. Es una respuesta directa a Paxos, que resuelve el mismo tipo de problemas pero que es un algoritmo bastante complicado.

menéame