PDF de programación - Inicio del sistema

Imágen de pdf Inicio del sistema

Inicio del sistemagráfica de visualizaciones

Publicado el 5 de Septiembre del 2018
180 visualizaciones desde el 5 de Septiembre del 2018
365,1 KB
36 paginas
Creado hace 2a (17/02/2017)
Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Inicio del sistema

Gunnar Wolf

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Índice

1

Introducción

2 La carga inicial

3 Reconociendo el entorno

4

Inicio del espacio de usuario

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Enfocada a lo específico

Voy a enfocar esta presentación al inicio de un sistema Linux

Nos da el mayor detalle acerca del proceso
Guarda bitácora de toda la información de inicio
Permite implementaciones competitivas de subsistemas (y
permite un debate amplio, rico al respecto)

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

¿Es tan difícil?

La arquitectura esquemática básica de una computadora es
bastante trivial
Cargar un sistema operativo. . . Tal vez no tanto
Nos desviaremos brevemente del programa formal de la
materia para comprender qué es lo que ocurre en los primeros
instantes

Buscando entender hasta el punto en que tenemos un sistema
usable

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Índice

1

Introducción

2 La carga inicial

3 Reconociendo el entorno

4

Inicio del espacio de usuario

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Encendiendo la computadora: Alcance del BIOS

Verificación de sanidad del sistema (POST)
North Bridge CPU+RAM (arquitectura von Neumann)
South Bridge Dispositivos, componentes adicionales (USB,

PCI, red, SATA, etc.)
Enumeración básica de dispositivos
Selección del dispositivo de arranque
Carga del primer sector del dispositivo seleccionado

Verificación de integridad del código a ejecutar (lo veremos a
detalle la siguiente sesión)
Transferencia de control a los elementos provistos por el
usuario (sistema operativo)

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

¿Por qué tenemos programas cargadores?

En arquitecturas derivadas de Intel, el BIOS opera en modo
real

Esto es, con un límite de 640Kb RAM, según la especificación
de la PC de 1981
En años recientes, se va migrando de BIOS a EFI → Veremos
la próxima clase lo que eso conlleva

El conocimiento del BIOS del sistema es muy limitado

Su especificación no sabe más que pedir el primer sector (512
bytes) del disco duro
Cualquier programa que cargue, debe caber en 512 bytes
De ahí que tengamos cargadores de inicio (boot loaders)

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Arquitecturas con entornos de inicio inteligentes

Históricamente ha habido arquitecturas que han ofrecido
entornos de arranque inteligentes
Entornos de arranque programables (típicamente basadas en
Forth)

Arquitecturas que lo emplea(ba)n: Sparc, Alpha, PowerPC
Capacidad de alterar parámetros para el inicio del sistema

Especificar parámetros al kernel
Elegir un distinto dispositivo de arranque
Diagnósticos básicos del sistema
Operaciones básicas de red

Muchas de estas capacidades han ido integrándose al BIOS

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Los cargadores de inicio

Prácticamente cualquier sistema operativo moderno depende
de un cargador de inicio
Estos han ido creciendo para convertirse en verdaderos
mini-sistemas operativos

Partcularmente en el área de sistemas de archivo y de E/S
Enumeración de dispositivos (no siempre heredado del BIOS)
Comprensión de distintos sistemas de archivos (incluso
abstracciones como RAID/LVM)
Análisis del estado de la última carga (sugiriendo modo a
prueba de fallos)
Edición de los parámetros de invocación del kernel

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

El trabajo del cargador

Por fin, el trabajo del cargador típicamente se reduce a:

Informar al usuario que todo va bien
Reconocer el entorno
Ubicar y cargar la imágen del sistema operativo en el medio de
arranque

Posiblemente también de un disco de inicio mínimo

Especificar parámetros de inicio
Transferir la ejecución (y suicidarse)

. . . Y entramos en el terreno del sistema operativo

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Índice

1

Introducción

2 La carga inicial

3 Reconociendo el entorno

4

Inicio del espacio de usuario

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

La fuente de nuestros datos

Bitácora en /var/log/dmesg
La bitácora tiene un timestamp en cada línea de su bitácora,
con resolución de microsegundos

Eliminada de lo que aquí muestro para que quepa mejor en
pantalla

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Primeros pasos: ¿Dónde estoy?

¿La arquitectura es capaz de correr el núcleo en cuestión?

Linux version 3.2.0-4-amd64 (debian-kernel@lists.debian.org)

(gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian
3.2.35-2

Command line: BOOT_IMAGE=/vmlinuz-3.2.0-4-amd64

root=/dev/mapper/mosca-root ro vga=791 quiet splash

¿Cuál es el mapa de memoria?

BIOS-provided physical RAM map:

BIOS-e820: 0000000000000000 - 000000000009ec00 (usable)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000cd9ffc00 (usable)
BIOS-e820: 00000000cd9ffc00 - 00000000cda53c00 (ACPI NVS)
BIOS-e820: 00000000cda53c00 - 00000000cda55c00 (ACPI data)
BIOS-e820: 00000000cda55c00 - 00000000d0000000 (reserved)

(...)

BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000128000000 (usable)

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Características base del equipo

Sigue descubriendo información sobre el CPU y la memoria

NX (Execute Disable) protection: active

(...)

found SMP MP-table at [ffff8800000fe710] fe710
ACPI: XSDT 00000000000fc7f0 0008C (v01 DELL

B10K

00000015

ASL 00000061)

(...)

No NUMA configuration found
Faking a node at 0000000000000000-0000000128000000
Initmem setup node 0 0000000000000000-0000000128000000

(...)

ACPI: IRQ0 used by override.
ACPI: IRQ2 used by override.
ACPI: IRQ9 used by override.
Using ACPI (MADT) for SMP configuration information
ACPI: HPET id: 0x8086a701 base: 0xfed00000
SMP: Allowing 8 CPUs, 6 hotplug CPUs

(...)

Booting paravirtualized kernel on bare hardware

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Inicia la ejecución y recorrida de los buses

Memory: 3880132k/4849664k available (3418k kernel code, 825804k

absent, 143728k reserved, 3319k data, 576k init)

Hierarchical RCU implementation.
RCU dyntick-idle grace-period acceleration is enabled.
NR_IRQS:33024 nr_irqs:744 16
Console: colour dummy device 80x25
console [tty0] enabled
hpet clockevent registered
Fast TSC calibration using PIT
Detected 2992.557 MHz processor.

Hasta este punto, todo ocurre con t=0.000000
No es que sea un proceso tan instantáneo, sino que el kernel
no ha comenzado a registrar el paso del tiempo

Calibrating delay loop (skipped), value calculated using timer

frequency.. 5985.11 BogoMIPS (lpj=11970228)

Y acá el tiempo inicia.

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Características de ejecución de procesos en sistema

Límites y subsistemas de control

pid_max: default: 32768 minimum: 301
Security Framework initialized
AppArmor: AppArmor disabled by boot time parameter
Dentry cache hash table entries: 524288 (order: 10, 4194304

bytes)

Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
Mount-cache hash table entries: 256
Initializing cgroup subsys cpuacct
Initializing cgroup subsys memory
Initializing cgroup subsys devices
Initializing cgroup subsys freezer
Initializing cgroup subsys net_cls
Initializing cgroup subsys blkio
Initializing cgroup subsys perf_event

Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Vamos subiendo de nivel: Dispositivos base

Fundamental para multitarea: Cómo hablar con el temporizador,

manejo de interrupciones

..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1

(...)

NMI watchdog enabled, takes one hw-pmu counter.
Brought up 2 CPUs
Total of 2 processors activated (12011.18 BogoMIPS).

Y aquí (0.29s) comienzan a activarse los subsistemas que empleará

el usuario

devtmpfs: initialized

(...)

NET: Registered protocol family 16

(...)

[Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
ACPI: Interpreter enabled
ACPI: (supports S0 S1 S3 S4 S5)
Gunnar Wolf

Inicio del sistema

Introducción
La carga inicial
Reconociendo el entorno
Inicio del espacio de usuario

Comienza enumeración de dispositivos

Primer bus en ser barrido: PCI. Proceso largo (0.46s–1.9s)

PCI: Using host bridge windows from ACPI; if necessary, use

"pci=nocrs" and report a bug

ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
pci_root PNP0A03:00: host bridge window [io
pci_root PNP0A03:00: host bridge window [io
pci_root PNP0A03:00: host bridge window [mem

0x0000-0x0cf7]
0x0d00-0xffff]

0x000a0000-0x000bffff]

pci_root PNP0A03:00: host bridge window [mem

0x000c0000-0x000effff]

(...)

pci 0000:00:00.0: [8086:2e10] type 0 class 0x000600
pci 0000:00:01.0: [8086:2e11] type 1 class 0x000604
pci 0000:00:01.0: PME# supported from D0 D3hot D3cold

(...)

ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 15)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 *
  • Links de descarga
http://lwp-l.com/pdf13364

Comentarios de: Inicio del sistema (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad