PDF de programación - Creación de un Sistema Mínimo con GNU/Linux

Imágen de pdf Creación de un Sistema Mínimo con GNU/Linux

Creación de un Sistema Mínimo con GNU/Linuxgráfica de visualizaciones

Publicado el 21 de Julio del 2018
621 visualizaciones desde el 21 de Julio del 2018
279,6 KB
21 paginas
Creado hace 11a (24/05/2012)
Creación de un Sistema Mínimo con

GNU/Linux

Dr. Luis Gerardo de la Fraga

Departamento de Computación

Cinvestav

E-mail: [email protected]

25-26 Octubre, 2011

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

1/21

Sistema Mínimo

En vez de quitar todos los programas que no se usan, se

puede arrancar una máquina con el software mínimo.

Esto es recomendable hacerlo para crear un cortafuegos.
Esto se debe de realizar para una Computadora en una Sola

Tarjeta (Single Board Computer, SBC)

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

2/21

http://www.embeddedsys.com/subpages/products/sbc1670.shtml

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

3/21

http://www.embeddedarm.com/products/

board-detail.php?product=TS-7800

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

4/21

Pasos a seguir

Obtener un núcleo ya compilado
Crear un sistema de archivos mínimo para que arranque ese

núcleo

Compilar algunos comandos básicos (se usará BusyBox)
Configurar el sistema y arrancarlo
Instalarle más software (DropBear, por ejemplo)

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

5/21

Podríamos usar el núcleo de esta computadora:

$ uname -a
Linux ceres 2.6.35-22-powerpc #33-Ubuntu Mon Sep 20 \

00:42:22 UTC 2010 ppc GNU/Linux

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

6/21

El núcleo es el archivo

$ cd /boot
$ file vmlinux-2.6.35-22-powerpc
vmlinux-2.6.35-22-powerpc: ELF 32-bit MSB executable,
PowerPC or cisco 4500, version 1 (SYSV),
statically linked,
with unknown capability 0x41000000 = 0x13676e75,
with unknown capability 0x10000 = 0xb0402,
not stripped

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

7/21

Podríamos crear un árbol de archivos para arrancar ese núcleo con
un sistema operativo mínimo:

/dev Archivos de dispositivos para E/S
/proc Directorio para montar la información del núcleo
/etc Archivos de configuración del sistema
/sbin Binarios para el mantenimiento del sistema
/bin Binarios del sistema
/lib Bibliotecas compartidas en tiempo de ejecución
/mnt Un punto de montaje para otros sistemas de archivos
/usr Utilerias para usuarios
/var Archivos de auditoría del sistema

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

8/21

El sistema de archivos debe llenarse con la siguiente información:

El ejecutable de BusyBox (que contiene todas las utilerias

necesarias)

Las bibliotecas compartidas en /lib
Los archivos de E/S en /dev
Los archivos de configuración en /etc

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

9/21

Bibliotecas

Las biblioteca estándar está compilada con información para trazar
muchas cosas, intentar

$ LD_DEBUG=help /bin/ls

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

10/21

Para saber las bibliotecas que está usando un comando también se
puede usar directamente el comando ldd

$ ldd /bin/ls
linux-vdso32.so.1 => (0x00100000)
libselinux.so.1 => /lib/libselinux.so.1 (0x0ffbf000)
librt.so.1 => /lib/librt.so.1 (0x0ff96000)
libacl.so.1 => /lib/libacl.so.1 (0x0ff6d000)
libc.so.6 => /lib/libc.so.6 (0x0fdd9000)
libdl.so.2 => /lib/libdl.so.2 (0x0fdb5000)
/lib/ld.so.1 (0x2024e000)
libpthread.so.0 => /lib/libpthread.so.0 (0x0fd7a000)
libattr.so.1 => /lib/libattr.so.1 (0x0fd55000)

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

11/21

BusyBox

Busybox está disponible en http://www.busybox.net
se considera a sí mismo la “navaja suiza” para sistemas

empotrados (o embebidos).

Busybox contiene una gran cantidad de utilerías para realizar

un minisistema operativo.

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

12/21

La última versión es busybox-1.19.2.tar.bz2
Las instrucciones de su instalación se encuentran en

busybox-1.19.2/INSTALL

Para compilar todo el paquete que viene por defecto se hace

make defconfig
make

Para instalarlo, por ejemplo, en
/home/pepito/SistemaMinimo

sudo make CONFIG_PREFIX=/home/pepito/SistemaMinimo/ \

install

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

13/21

Verificación del sistema

Se puede usar el comando chroot para verificar si nuestro

sistema de archivos está funcionando.

Tal vez sea necesario copiar el binario del shell bash (al

directorio /bin) y agregar las bibliotecas necesarias para que
pueda ejecutarse (se checan con ldd /bin/bash.

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

14/21

Creación de la imagen

Para crear la imagen que cargará el núcleo se realiza, en el
directorio donde se tiene el árbol de archivos creado:

find . -print | cpio -ov -H newc > /home/pepito/imagen

Finalmente, se puede comprimir la imagen creada:

cd
gzip imagen

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

15/21

Arranque

Para probar nuestra imagen podemos arrancar desde disco

duro. El arranque lo maneja grub

Como mi laptop es una iBook G4 (con Ubuntu 10.10) maneja

yaboot en vez de grub.

Para hacer arrancable una memoria USB hay que instalar

también grub en ella.

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

16/21

La línea para arrancar el sistema mínimo en yaboot o grub es

image=/boot/vmlinux

label="Mi sistema minimo"
initrd=/boot/imagen.gz
read-write
append="root=/dev/ram0"

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

17/21

Configuración de DropBear

Las llaves van en el directorio /etc/dropbear y el script para
arrancar el servidor podría ser

$ cat /etc/arrancaDropBear
#!/bin/sh

touch /var/log/lastlog
echo -n "Setting dropbear server..."
/usr/sbin/dropbear -w

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

18/21

Configuración de dnsMasq (1/2)

Este podría ser el script para arrancar dnsmasq

#!/bin/sh

echo "Setting dnsmasq server..."
mkdir -p /var/lib/dhcp
/sbin/dnsmasq

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

19/21

Configuración de dnsMasq (1/2)

Este podría ser el archivo de configuración de nuestro servidor
dhcp:

$ cat /etc/dnsmasq.conf
dhcp-range=192.168.10.100,192.168.10.200,24h
dhcp-host=00:B0:D0:CF:66:C1,cliente01,192.168.10.91
#
dhcp-leasefile=/var/lib/dhcp/dnsmasq.leases

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

20/21

¡ Suerte !

Dr. Luis Gerardo de la Fraga

CCE 2011. Mérida

Creación de un Sistema Mínimo con GNU/Linux

21/21
  • Links de descarga
http://lwp-l.com/pdf12650

Comentarios de: Creación de un Sistema Mínimo con GNU/Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad