Sistemas & Desarrollo

encontrados: 36, tiempo total: 0.012 segundos rss2
12 meneos
87 clics

Nuevo sistema de archivos para Linux: bcachefs [ENG]

bcachefs es un nuevo sistema de archivos de propósito general para Linux que incluye control de errores, compresión, múltiples dispositivos, cacheado, COW… Finalmente, incluirá imágenes (snapshots) y otras características interesantes. Pero, ¿por qué otro nuevo sistema de archivos? Después de varios años desarrollando bcache en Google, pareció buena idea exportar toda esa funcionalidad a un nuevo sistema de archivos gracias a su limpio y elegante diseño, además de por tener un rendimiento similar a ext4.
8 meneos
72 clics

Portando Linux a una nueva arquitectura, parte 1: lo básico [ENG]

Aunque un port simple puede contar con tan sólo 4000 líneas de código —exactamente 3775 son las del procesador Hitachi 8/300 (sin MMU) recientemente introducidas en Linux 4.2-rc1—, conseguir que el kernel de Linux se ejecute en una nueva arquitectura de procesador es un proceso difícil. Peor aún, no hay mucha documentación disponible que describa dicho proceso de portabilidad. El objetivo de esta serie de artículos es proporcionar una visión general del procedimiento de portar el kernel de Linux a una nueva arquitectura de procesador.
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.
7 meneos
143 clics
Pinguy Builder, la herramienta definitiva para crear tu propia distribución de Linux

Pinguy Builder, la herramienta definitiva para crear tu propia distribución de Linux

Aunque existen muchas herramientas para crear tu propio pendrive de instalación o tu DVD de instalación de Linux, la verdad es que existen pocas herramientas que te permitan ir más allá y crear tu propia distribución de Linux personalizada. Una de las herramientas más famosas es Linux From Scratch pero para usarlo hay que tener conocimientos muy avanzados de Gnu/Linux. Hace poco apareció una herramienta que no necesitaba tantos conocimientos pero tampoco lo puede usar un novato, es una herramienta llamada Pinguy Builder.
16 meneos
177 clics
Canonical lanza LXD, el hipervisor más rápido del mundo [ENG]

Canonical lanza LXD, el hipervisor más rápido del mundo [ENG]

Canonical ha lanzado hoy LXD, el hipervisor más rápido del mundo, que adopta un enfoque de contenedores puros para virtualización en Linux ofreciendo rendimiento y ventajas dramáticas tanto sobre VMware ESX como sobre Linux KVM para la infraestructura de nube privada y/o pública. LXD ofrece hasta 15 veces la densidad de KVM para cargas de trabajo de inactividad y reduce drásticamente la latencia con un mayor rendimiento de E/S en cargas de trabajo intensivas tales como telecomunicaciones NFV, Big Data y aprendizaje automático.
8 meneos
198 clics
Las principales 25 herramientas de monitorización de rendimiento y de depuración en Linux [ENG]

Las principales 25 herramientas de monitorización de rendimiento y de depuración en Linux [ENG]

He compilado 25 herramientas de monitorización de rendimiento y depuración que son útiles cuando se está trabajando en entornos Linux. Esta lista no es completa, sin embargo tiene suficientes herramientas como para que se pueda probar y elegir las adecuadas en cada situación.
7 meneos
121 clics
Como cifrar imágenes en base64 en Linux para insertarlas en CSS

Como cifrar imágenes en base64 en Linux para insertarlas en CSS

Para insertar imágenes codificadas en base64 en el propio CSS el primer paso es realizar una optimización de dicha imagen. Para ello podemos usar cualquier herramienta de edición gráfica, como por ejemplo GIMP. El siguiente paso es obtener la codificación en base64 de nuestra imagen, para lo que usaremos el comando base64 que viene instalado en la mayoría de distribuciones de Linux. El paso final es insertar el texto obtenido en el CSS usando la función url() de la forma: url("data:image/png;base64,XXXXXXXX").
12 meneos
114 clics
pagemon: utilidad con interfaz con ‘ncurses’ para monitorizar la memoria de los procesos [ENG]

pagemon: utilidad con interfaz con ‘ncurses’ para monitorizar la memoria de los procesos [ENG]  

Durante el desarrollo de stress-ng quería ser capaz de ver si los diversos factores de estrés de memoria modificaban dicha memoria en la forma en que había anticipado. Buceando en la documentación de Linux descubrí que se podía consultar un bit en la tabla de páginas de memoria (PTE en inglés) para ver si una página había sido escrita o no, así que desarrollé pagemon, una utilidad con ‘ncurses’ para esta actividad en tiempo real.
13 meneos
120 clics

Todo sobre la programación de señales en Linux [ENG]

El artículo describe cómo funcionan las señales en Linux y cómo se manejan usando el API de POSIX. Se cubrirán las funciones en todos los sistemas modernos de Linux, cosa que también se puede aplicar a la mayoría de los sistemas POSIX (a menos que se indique lo contrario). Para seguir bien el artículo se recomienda tener un conocimiento básico acerca de señales.
7 meneos
114 clics
Un servidor avanzado y seguro con Hiawatha

Un servidor avanzado y seguro con Hiawatha

Servidor web o webserver, en inglés, para sistemas tipo UNIX, que prioriza ante todo la seguridad.
8 meneos
139 clics
Entendiendo los archivos y las unidades de systemd [ENG]

Entendiendo los archivos y las unidades de systemd [ENG]

Cada vez más distribuciones de Linux están adoptando systemd como sistema de inicio. Este potente software puede gestionar varios aspectos del servidor, como pueden ser servicios, puntos de montaje y estados del sistema. En systemd, una unidad (unit en inglés) se refiere a un recurso que el sistema es capaz de manejar. Este el primer objeto con el que systemd trabaja. Estos recursos son definidos en archivos de configuración llamados “unit files”.
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
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.
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.
12 meneos
392 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.
7 meneos
109 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.
11 meneos
216 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.
11 meneos
251 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.
15 meneos
242 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.
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.
14 meneos
255 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
17 meneos
256 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.
18 meneos
206 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
209 meneos
3783 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
3 meneos
10 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.
« anterior12

menéame