Sistemas & Desarrollo

encontrados: 16, tiempo total: 0.026 segundos rss2
2 meneos
9 clics

Diseño e implementación de variables de condición en el kernel del sistema operativo Haiku [ENG]

Unos meses después de que comenzara mi contrato con Haiku, Inc., reescribí la implementación de las variables de condición del kernel de Haiku (a diferencia de nuestras variables de condición del espacio de usuario, que son de POSIX). Como esta nueva implementación se ha ejecutado en Haiku durante más de un año. y se envió en la última versión sin signos de problemas restantes, pensé que ya era hora de profundizar en la API, su historial de implementación y el diseño de la nueva implementación que escribí.
21 meneos
269 clics

Guía de programacion de módulos del kernel Linux [ENG]

Este libro es una guía de programación de módulos del kernel Linux que se puede distribuir libremente. Inicialmente se centró en la versión 2.2 del kernel hasta que su autor principal, Ori Pomerantz, dejó de tener tiempo para mantenerlo actualizado, con lo que sus mantenedores han cambiado a lo largo de los años hasta que, finalmente, Jim Huang se hizo cargo de su actualización para cubrir hasta las versiones 5.x del kernel Linux.
17 4 0 K 26
17 4 0 K 26
3 meneos
12 clics

El código binario del microkernel seL4 ha sido verificado formalmente para procesadores RISC-V [ENG]

En junio de 2020 anunciamos que el microkernel seL4 fue el primer kernel de sistema operativo del mundo con prueba de corrección de implementación verificada por máquina, también verificada para la arquitectura RV64, lo que lo convierte en el primer sistema operativo verificado formalmente para RISC-V. Ahora nos complace anunciar que esta verificación se ha extendido al código binario ejecutable, lo que significa que se ha demostrado que el código máquina que se ejecuta en el procesador es correcto. // Relacionada: El microkernel seL4 ha sido verificado formalmente para procesadores RISC-V.
3 meneos
21 clics

Diferencias entre ASLR, KASLR y KARL  

A raíz de la publicación de la noticia del lanzamiento del Kernel 4.12 de Linux, el cual trae por primera vez activada por defecto la característica KASLR, y casi simultáneamente la publicación de otra noticia sobre la implementación de una característica llamada KARL en OpenBSD, me ha parecido que sería interesante aclarar las diferencias entre estas técnicas de seguridad, pues pienso que la combinación de ambas va a ser muy importante de cara al futuro de la seguridad de los sistemas, pues van a impedir explotar vulnerabilidades relacionadas con la corrupción de memoria (buffer overflow). Pero antes de entrar a detallar las características de KASLR y KARL, echemos un vistazo ASLR.
3 meneos
22 clics

Qué ocurre antes de que se inicie el kernel de BSD: primera parte en AMD64 [ENG]

La inicialización del sistema es una de las áreas de nicho que pocas personas analizan. Los detalles exactos varían considerablemente entre diferentes plataformas, firmwares, arquitecturas de CPU y sistemas operativos, lo que dificulta aprenderlos todos. Por lo general, si algo no funciona correctamente durante las primeras etapas del inicio del sistema o si el sistema operativo no se inicia, rara vez tiene algo que ver con el código responsable del inicio. La mayoría de las veces, se debe a otros factores, como el medio de arranque o la configuración del BIOS.
209 meneos
3806 clics
Arrancar un 486 desde un disquete con el kernel Linux más reciente y estable hasta a la fecha [ENG]

Arrancar un 486 desde un disquete con el kernel Linux más reciente y estable hasta a la fecha [ENG]  

En agosto de 2019 participé en un concurso cuyo desafío era sincronizar un archivo MIDI con un sintetizador de voz cantando la letra. En el concurso de esta semana la idea era encontrar un ordenador con un 486 como procesador (pizza box form factor) y hacerlo funcionar, así que me puse a buscar uno por Internet. Después de encontrarlo, el reto era iniciar una versión reciente de Linux, cosa que no fue trivial. Finalmente, después de configurar el kernel de forma mínima y generar un pequeño initramfs, conseguí meterlo en un disquete e iniciar el equipo.
112 97 3 K 52
112 97 3 K 52
9 meneos
115 clics
El microkernel seL4 ha sido verificado formalmente para procesadores RISC-V [ENG]

El microkernel seL4 ha sido verificado formalmente para procesadores RISC-V [ENG]

El kernel de un sistema operativo es el software que funciona a más bajo nivel en un ordenador. Es el código que funciona en modo privilegiado (S-Mode en RISC-V), por lo que es el responsable principal y único de la seguridad del sistema. Que un kernel, en este caso seL4, esté formalmente verificado significa que su implementación en C es funcionalmente correcta, ya que ha sido matemáticamente verificada mediante software probando que está libre de errores.
4 meneos
15 clics

Google revela un error de “alta severidad” sin parchear en el núcleo de Apple macOS

Investigadores de Google Project Zero han hecho pública una vulnerabilidad en macOS, después de que Apple no haya liberado un parche en los 90 días previos a la publicación. Descubierta por el investigador Jann Horn y demostrada por Ian Beer, la vulnerabilidad reside en la forma que el kernel de macOS, XNU, permite a un atacante manipular el sistema de ficheros sin informar al sistema operativo.
18 meneos
406 clics
Un sólo kernel de Windows [ENG]

Un sólo kernel de Windows [ENG]

Windows es uno de los sistemas operativos más versátiles y flexibles del mercado ejecutándose en una variedad de arquitecturas (x86, x86_64, ARM y ARM64) y múltiples máquinas diferentes. Además, Windows admite una variedad de máquinas diferetnes que se ejecutan en una multitud de entornos; desde centros de datos, computadoras portátiles, Xbox, teléfonos hasta dispositivos IOT integrados, como cajeros automáticos. En esta publicación hablaré sobre la evolución de las piezas principales del kernel de Windows que le permite escalar de manera transparente desde un chip NVidia Tegra (Surface RT) hasta las grandes máquinas que hacen funcionar los centros de datos de Azure.
13 5 0 K 34
13 5 0 K 34
17 meneos
261 clics
Explorando el kernel Linux: los secretos de Kconfig/kbuild [ENG]

Explorando el kernel Linux: los secretos de Kconfig/kbuild [ENG]

El sistema de configuración/construcción del kernel Linux, también conocido como Kconfig/kbuild, ha existido durante mucho tiempo, desde que el código del kernel de Linux migró a Git. Sin embargo, como infraestructura de soporte rara vez es el centro de atención; incluso los desarrolladores de kernel que lo usan en su trabajo diario nunca lo piensan realmente. Para explorar cómo se compila el kernel de Linux, este artículo se sumergirá en el proceso interno de Kconfig/kbuild, explicando cómo se generan los archivos .config y vmlinux/bzImage y mostrando un truco inteligente para el seguimiento de dependencias.
4 meneos
49 clics

Estilo de código en el kernel Linux [ENG]

En este pequeño documento se describe el estilo de código preferido para desarrollar el kernel Linux. El estilo de código es muy personal y no se va a forzar ningún estilo en este documento, pero escribir siguiendo determinada forma hace que el código sea mucho más mantenible. Pero, antes de nada, sugiero descargar e imprimir una copia del estilo de código GNU para NO leerla nunca. Quémala. Es un gran gesto simbólico. Y a continuación, las normas del estilo de codificación del kernel Linux.
7 meneos
190 clics

¿Cómo funciona la llamada al sistema ‘open’ en Linux? [ENG]

Como supongo que sabrás, nuestros programas interaccionan con el kernel mediante un mecanismo especial conocido como llamadas al sistema (system calls o syscalls). Si has escrito al menos un programa en C, sabrás que antes de hacer cualquier lectura y/o escritura a un archivo es necesario abrirlo. Para ello se utiliza la función ‘open’. En este caso es una función de la librería estándar (libc) y es ella la que se encarga de realizar la llamada al sistema por nosotros.
5 meneos
146 clics
NodeOS ya no es un sistema operativo de juguete [ENG]

NodeOS ya no es un sistema operativo de juguete [ENG]  

Esta versión de NodeOS parece que ha tenido poco movimiento, pero el hecho es que ha tenido grandes progresos más allá de la repercusión del proyecto, entre ellos, encontrar un error que ha permanecido oculto durante año y medio. Eso puede volver loco a cualquiera.
6 meneos
91 clics

Cómo compilar el kernel de Linux, parte 1: teoría… mucha teoría [ENG]

Hoy vamos a empezar una serie de entradas acerca de cómo se compila el kernel de Linux para entender mejor cómo funciona un ordenador. Y empezaremos con teoría… con mucha teoría. En esta entrada veremos, para empezar, las tareas básicas de un kernel. Comencemos…
7 meneos
56 clics

Portando Linux a una nueva arquitectura, parte 2: el código inicial [ENG]

En la primera parte de esta serie (www.meneame.net/m/SysDevs/portando-linux-nueva-arquitectura-parte-1-ba ) hemos sentado las bases para portar Linux a una nueva arquitectura de procesador explicando los pasos preliminares (sin llegar a escribir ningún código fuente). Este artículo continúa desde allí profundizando en el código de arranque, lo que incluye desde el código necesario para arrancar Linux hasta la creación del primer hilo del kernel.

menéame