Sistemas & Desarrollo

encontrados: 40, tiempo total: 0.008 segundos rss2
6 meneos
31 clics

Actualizaciones críticas en Git v2.45.1

GIT está llamando actualizar a la la última versión GIT 2.45.1, lanzada el 14 de mayo de 2024, que aborda cinco vulnerabilidades. Las plataformas afectadas son Windows, MacOS, Linux e incluso *BSD, ¡por lo que estas soluciones son importantes para todos! Esta versión se coordinó con Visual Studio y Github Desktop, que incluyen un subconjunto de GIT. También están lanzando varias actualizaciones de defensa en profundidad para corregir errores.
9 meneos
167 clics
Entender la pila de audio en sistemas Unix [ENG]

Entender la pila de audio en sistemas Unix [ENG]

El audio en Unix es un pequeño zoológico, hay tantas siglas para proyectos y API que es fácil perderse. ¡Abordemos ese problema! La mayoría de los artículos son confusos porque utilizan jerga técnica de audio o porque apenas rascan la superficie y dejan a la gente sin pistas. Poco de conocimiento puede ser peligroso. En este artículo intentaré cerrar la brecha al no requerir ningún conocimiento previo y al mismo tiempo brindar una buena descripción general de todo el panorama de audio de Unix.
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
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
25 clics

Taller de exploiting: baby BOF en Linux x64

Voy a retomar los ejercicios de exploiting en Linux, esta vez en arquitectura de 64 bits. Básicamente se trata de lo mismo que en 32 bits pero con "pequeños" cambios, principalmente: los registros de propósito general se han ampliado a 64 bits. Así que ahora tenemos RAX, RBX, RCX, RDX, RSI y RDI; el puntero de instrucción (instruction pointer), el puntero de base (base pointer) y el puntero de pila (stack pointer) también se han ampliado a 64 bits como RIP, RBP y RSP respectivamente; se han proporcionado registros adicionales: R8 a R15; etc.
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
4 meneos
42 clics

Análisis comparativo de Linux y Open Source Unix [eng]

Análisis comparativo entre Linux, varias distribuciones BSD e Illumos sobre cuestiones relativas a licencias, abuso corporativo de dichas licencias, rendimiento y características de dichos sistemas operativos. vía soylentnews.org/article.pl?sid=19/11/05/0424205
18 meneos
208 clics
Comunicación de procesos en Linux III: sockets y señales [ENG]

Comunicación de procesos en Linux III: sockets y señales [ENG]

Este es el tercer y último artículo de la serie sobre comunicación entre procesos (IPC) en Linux. El primer artículo se centró en IPC a través de almacenamiento compartido (archivos y segmentos de memoria) y el segundo hace lo mismo con los canales básicos: tuberías (pipes en inglés; con nombre y sin nombre) y colas de mensajes. Este artículo pasa desde el IPC al alto nivel (sockets) hasta IPC a bajo nivel (señales). Los ejemplos de código dan forma a los detalles.
12 6 0 K 26
12 6 0 K 26
8 meneos
52 clics

Comunicación de procesos en Linux II: tuberías y colas de mensajes [ENG]

Este es el segundo artículo de la serie sobre comunicación entre procesos (IPC) en Linux. El primer artículo se centró en IPC a través del almacenamiento compartido: archivos y memoria compartida. Este artículo se dirige a las tuberías (pipes), canales que conectan procesos para la comunicación con un punto de escritura para escribir bytes y otro punto de lectura para leer estos bytes en orden FIFO (primero en entrar, primero en salir), y colas de mensajes, donde se añaden mensajes a colas FIFO que luego se procesan.
8 meneos
82 clics

Comunicación de procesos en Linux I: archivos y memoria compartida [ENG]

Este es el primer artículo de una serie sobre comunicación entre procesos (IPC) en Linux. La serie utiliza ejemplos de código en C para aclarar los siguientes mecanismos de IPC: archivos compartidos; memoria compartida (con semáforos); pipes (con nombre y sin nombre); colas de mensajes; sockets; y señales. Este artículo revisa algunos conceptos básicos antes de continuar. Los dos primeros de estos mecanismos: archivos compartidos y memoria compartida.
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.
14 meneos
259 clics
Escalado de privilegios en Linux usando LD_PRELOAD

Escalado de privilegios en Linux usando LD_PRELOAD

Las librerías compartidas (shared libraries en inglés) en Linux/Unix normalmente tienen el prefijo lib y la extensión .so. Los programas `ld.so` y `ld-linux.so*` encuentran y cargan los objetos compartidos (librerías compartidas) que necesita un programa, preparan el programa para ejecutarlo y luego lo ejecutan. `LD_PRELOAD` es la variable de entorno que lista las rutas de la librerías compartidas, al igual que `/etc/ld.so.preload`. Hoy vamos a ver cómo aprovechar esta característica común para escalar privilegios.
10 4 0 K 55
10 4 0 K 55
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.
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.
15 meneos
243 clics
Lecciones aprendidas en 25 años de desarrollo del kernel Linux [ENG]

Lecciones aprendidas en 25 años de desarrollo del kernel Linux [ENG]

Debido a la celebración de los 25 años del inicio del desarrollo del kernel Linux en 2016, mucha gente nos ha preguntado el secreto de la longevidad y el éxito del proyecto. Generalmente me río y bromeo ya que no tengo ni idea. El proyecto se ha enfrentado a numerosos desacuerdos y desafíos. Pero ya hablando en serio, la razón que nos ha hecho llegar hasta aquí tiene mucho que ver con la capacidad de la comunidad para hacer instrospección y cambiar su modo de trabajar.
6 meneos
50 clics

Vistazo al Subsistema Windows para Linux [ING]

Recientemente anunciamos Bash en Ubuntu en Windows que permite binarios Linux ELF64 en Windows via el Windows Subsystem for Linux (WSL). Este subsistema fue creado por el equipo Microsoft Windows Kernel y ha generado mucho revuelo. Una de las preguntas más frecuentes que recibimos es la diferencia que hay con respecto a una máquina virtual. En este primer post de una serie de varios, explicaremos lo básico de WSL que responda esas y otras preguntas. En futuros posts entraremos al detalle de cada componente aquí presentado.
11 meneos
252 clics

El bucle ‘for’ en BASH, el primero paso en la automatización en Linux [ENG]

Creo que dominar el bucle ‘for’ en BASH en Linux es una de las partes fundamentales que tienen que conocer los administradores de sistemas (y los desarrolladores), lo que lleva sus habilidades hasta el siguiente nivel. En la siguiente entrada explicaré cómo funciona un bucle ‘for’ en BASH y mostraré varios útiles ejemplos.
11 meneos
217 clics
Etcher - Una forma sencilla de instalar una distro Linux en un pendrive

Etcher - Una forma sencilla de instalar una distro Linux en un pendrive

Etcher es un software creado con Node.js, Electron, JS y HTML que nos permite grabar imágenes de distribuciones Linux en un pendrive para poder disponer de nuestro propio sistema operativo en cualquier ordenador.
7 meneos
115 clics
Espacios de nombres de red en el kernel de Linux [ENG]

Espacios de nombres de red en el kernel de Linux [ENG]

Los espacios de nombres (namespaces) en Linux son una característica relativamente nueva que es esencial para implementar contenedores. Un espacio de nombres envuelve un recurso global del sistema en una abstracción que es ligada sólo a los procesos dentro de dicho espacio de nombres proporcionando aislamiento de recursos. En este artículo se explicará el espacio de nombres de red y se mostrará un ejemplo práctico.
12 meneos
393 clics
¿Qué pasa cuando ejecutas “rm -rf” en una máquina con Linux? [ENG]

¿Qué pasa cuando ejecutas “rm -rf” en una máquina con Linux? [ENG]  

He hecho un pequeño vídeo para mostrar qué pasa exactamente al ejecutar “rm -rf” en una máquina con Linux. Spoiler: realmente no pasa nada, a no ser que utilices el parámetro --no-preserve-root. Aún así, por favor, no ejecutes nunca jamás estos comandos en servidores. Algunos no permiten que lo ejecutes, pero otros, generalmente más antiguos, felizmente borrarán todo el sistema.
10 meneos
167 clics
La guía definitiva sobre las llamadas al sistema de Linux [ENG]

La guía definitiva sobre las llamadas al sistema de Linux [ENG]  

Esta entrada explica cómo funcionan las llamadas al sistema (system calls) del kernel Linux. Además, también explica diferentes métodos de creación de llamadas al sistema, cómo hacer llamadas al sistema de forma manual, los puntos de entrada y de salida de las llamadas al sistema en el kernel, las funciones relacionadas en glibc, errores y mucho, mucho más.
6 meneos
137 clics
Introducción a LXD 2.0, el gestor de contenedores a través de LXC en Linux [ENG]

Introducción a LXD 2.0, el gestor de contenedores a través de LXC en Linux [ENG]

Como está cerca de salir la versión 2.0 de LXC, LXD y LXCFS, creo que es una buena idea hablar sobre las cosas nuevas que van a venir en esta versión del proyecto desde que comenzó hace año y medio. En esta serie de entradas hablaré de qué es LXC y LXD, de la instalación y configuración, de los primeros pasos con contenedores y de su API, entre otras muchas cosas.
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.
« anterior12

menéame