Vous êtes sur la page 1sur 66

Programacin de un

Sistema Operativo
Claudio La Rosa Josafat Junior
Delzo Gutierrez Ennis Martin
Poma Melendez, Jherson
Quispe Ponce Rider
Qu es un Sistema Operativo?
Conjunto de programas que se integran con el hardware para facilitar al usuario, el
aprovechamiento de los recursos disponibles. Algunos de sus objetivos principales son:
Provee de un ambiente conveniente de trabajo.
Hace uso eficiente del Hardware.
Provee de una adecuada distribucin de los recursos.
Para un Sistema Operativo real deber satisfacer las siguientes funciones:
Gobierna el Sistema.
Asigna los recursos.
Administra y controlar la ejecucin de los programas.
El sistema operativo (a veces tambin citado mediante su forma abreviada OS en ingls) se
encarga de crear el vnculo entre los recursos materiales, el usuario y las aplicaciones
(procesador de texto, videojuegos, etctera). Cuando un programa desea acceder a un
recurso material, no necesita enviar informacin especfica a los dispositivos perifricos;
simplemente enva la informacin al sistema operativo, el cual la transmite a los perifricos
correspondientes a travs de su driver (controlador).
Qu es un Sistema Operativo?
Hay criterios distintos para distinguirlos. Cuatro tpicos son:

Monousuario/Multiusuario. En funcin de si el sistema operativo permite acceso a un solo
usuario de cada vez. O si varios de ellos pueden acceder al mismo tiempo a sus programas,
compartiendo los recursos de la computadora.
Monotarea/Multitarea. Segn el sistema operativo pueda ejecutar slo un programa o varios
simultneamente.
Monoprocesador/Multiprocesador. Dependiendo de si el sistema operativo es capaz de
aprovechar la capacidad de proceso de una sola CPU o de varias a la vez.
Centralizado/Distribuido. En un sistema centralizado el sistema operativo se limita a una sola
computadora. Uno distribuido liga un conjunto de sistemas autnomos, donde los usuarios
pueden acceder a recursos remotos igual que si estuvieran en sus propias computadoras.



El sistema LFS se construye utilizando una distribucin Linux ya
instalada (como Debian, Mandriva, RedHat o SUSE).
Este sistema Linux existente (el anfitrin) se utilizar como punto
de inicio para suministrar los programas necesarios, como un
compilador, un enlazador y un intrprete de comandos, para
construir el nuevo sistema.
LINUX FROM SCRATCH
Captulo 1. Como construir un sistema
LFS
LiveCD de Linux From Scratch
El LiveCD de LFS puede no funcionar en configuraciones de hardware
recientes, fallando en el arranque o fallando al detectar algunos dispositivos,
como los discos duros.

Preparativos para la construccin
Iniciando

Captulo 2. Preparar una nueva particin
Crear una nueva particin

Inicia un programa de particionado como cfdisk o fdisk pasndole como
argumento el nombre del disco duro en el que debe crearse la nueva
particin, por ejemplo /dev/hda para el disco IDE primario.
Crear un sistema de ficheros en la
particin
Ahora que hay preparada una particin en blanco ya puede crearse el
sistema de ficheros.
Montar la nueva particin

Elige un punto de montaje y asgnalo a la variable de entorno LFS ejecutando:

Crea el punto de montaje y monta el sistema de ficheros LFS ejecutando:

























Ahora que se ha establecido un lugar en el que trabajar, es hora de descargar los paquetes.
Captulo 3. Paquetes y parches
Ser necesario guardar todos los paquetes y parches descargados en algn sitio que est
disponible durante toda la construccin. Tambin se necesita un directorio de trabajo en el
que desempaquetar las fuentes y construirlas. Puede usarse $LFS/sources tanto para
almacenar los paquetes y parches como directorio de trabajo. Al usar este directorio, los
elementos requeridos se encontrarn en la particin LFS y estarn disponibles durante todas
las fases del proceso de construccin.
Para crear este directorio, ejecuta el siguiente comando como usuario root antes de
comenzar la sesin de descarga:

Haz este directorio escribible y pegajoso (sticky). Pegajoso significa que aunque diversos
usuarios tengan permisos de escritura en un mismo directorio, slo el propietario de un
fichero puede borrarlo.


El siguiente comando activar los modos de escritura y pegajoso:


Paquetes
Se descargaron los paquetes necesarios
Parches
Se descargaron los parches necesarios
Captulo 4. ltimos preparativos


La variable de entorno LFS se usar frecuentemente. Es importante que esta variable est
siempre definida. Debera establecerse al punto de montaje que elegiste para tu particin
LFS. Comprueba que tu variable LFS est correctamente establecida con:


Sobre $LFS

Creacin del directorio $LFS/tools
Los programas compilados aqu son slo herramientas temporales y no formarn parte del
sistema LFS final. Al mantener estos programas en un directorio aparte podrn eliminarse
fcilmente tras su uso.
Crea el directorio necesario ejecutando lo siguiente:



El prximo paso es crear un enlace /tools en el sistema anfitrin. Este apuntar al directorio
que acabamos de crear en la particin LFS.
Ejecuta este comando tambin:



Aadir el usuario lfs
Si se trabaja como root, un simple error puede daar o destruir un sistema. Por tanto
recomendamos construir los paquetes del siguiente captulo como un usuario sin privilegios.
Puedes usar tu propio nombre de usuario, pero para facilitar la creacin de un entorno de
trabajo limpio, crea un nuevo usuario llamado lfs como miembro de un nuevo grupo (llamado
tambin lfs) y utilzalo para el proceso de construccin. Como root, ejecuta el siguiente
comando para aadir el nuevo usuario:




Para ingresar como lfs (en vez de cambiar al usuario lfs cuando se est como root, que no
precisa que el usuario lfs tenga una contrasea = sistemas), asgnale una contrasea a lfs:
Concede a lfs acceso completo a $LFS/tools dndole la propiedad del directorio:


Si creaste un directorio de trabajo como te sugerimos, haz que el usuario lfs sea tambin el
propietario de este directorio:
A continuacin, entra como usuario lfs. Esto se puede hacer mediante una consola virtual,
con un administrador de sesin grfico o con el siguiente comando de sustitucin de usuario:

Establece un buen entorno de trabajo mediante la creacin de dos nuevos ficheros de inicio
para el intrprete de comandos bash.

Estando en el sistema como usuario lfs, ejecuta los siguientes comandos para crear un
.bash_profile nuevo:

Configuracin del entorno

Esto asegura que en el entorno de construccin no aparezcan variables de entorno indeseadas
o dainas procedentes del sistema anfitrin. La tcnica aqu usada consigue el objetivo de
asegurar un entorno limpio.
La nueva instancia del intrprete comandos es un intrprete de no ingreso que no lee los
ficheros /etc/profile o .bash_profile, pero en su lugar lee el fichero .bashrc. Crea ahora el
fichero .bashrc:
Finalmente, para tener el entorno preparado por completo para construir las herramientas
temporales, carga el perfil de usuario recin creado:
Captulo 5. Construir un sistema
temporal
Comprueba de nuevo que la variable de entorno LFS est correctamente establecida:

Asegrate de que la salida muestra la ruta al punto de montaje de tu particin LFS, que es
/mnt/lfs.

Se instala primero Binutils debido a que, tanto en GCC como en Glibc, la ejecucin de
configure realiza varias pruebas sobre el ensamblador y el enlazador para determinar qu
caractersticas del software deben activarse o desactivarse. Esto es ms importante de lo que
uno podra pensar. Un GCC o una Glibc incorrectamente configurados puede provocar unas
herramientas sutilmente rotas cuyo impacto podra no notarse hasta casi finalizada la
construccin de una distribucin completa. Un fallo en el banco de pruebas normalmente
resaltar dicho error antes de perder demasiado tiempo.

Instalacin del Binutils
(contiene un enlazador, un ensamblador, y otras utilidades para trabajar con ficheros objeto)
Es importante que Binutils sea el primer paquete que compiles, pues tanto Glibc como GCC
llevan a cabo varias comprobaciones sobre el enlazador y el ensamblador disponibles para
determinar qu caractersticas activar. La documentacin de Binutils recomienda construirlo
en un directorio dedicado, fuera del rbol de las fuentes:


Prepara Binutils para su compilacin:

Compila el paquete:

Instala el paquete:

Prepara el enlazador para la posterior fase de ajuste:
Instalacin del GCC
(contiene compiladores a los cuales incluye los de C y C++)
La documentacin de GCC recomienda construirlo en un directorio dedicado, fuera del rbol
de las fuentes:


Prepara GCC para su compilacin:

Compila el paquete:






Instala el paquete:

Como toque final, crea un enlace simblico. Muchos programas y guiones ejecutan cc en vez
de gcc. Esto es una forma de hacer que los programas sean genricos y por tanto utilizables
en toda clase de sistemas Unix. No todos tienen instalado el compilador de C de GNU.
Ejecutar cc deja al administrador del sistema libre de decidir qu compilador de C instalar,
mientras haya un enlace simblico que apunte a l:
Instalacin de las cabeceras API de Linux
(exponen la API del ncleo para ser usada por Glibc)
El ncleo Linux necesita exponer una Interfaz de Programacin de Aplicaciones (API) para ser
usada por la librera C del sistema (Glibc en LFS). Esto se hace sanitizando los diversos
ficheros de cabecera incluidos en el paquete con las fuentes de ncleo Linux.
Instala los ficheros de cabecera:

Instalacin de Glibc
(contiene la librera C principal. Esta librera proporciona todas las rutinas bsicas para la
ubicacin de memoria, bsqueda de directorios, abrir y cerrar ficheros, leerlos y escribirlos, etc.)


La documentacin de Glibc recomienda construirlo fuera del rbol de las fuentes, en un
directorio de construccin dedicado:


Prepara Glibc para su compilacin:


Compila el paquete:

La compilacin est completa. Como se mencion antes, no es obligatorio
ejecutar los bancos de pruebas de las herramientas temporales en este
captulo. Si de todas formas deseas ejecutar el banco de pruebas de Glibc,
hazlo con el siguiente comando:

La fase de instalacin de Glibc mostrar un aviso inofensivo sobre la ausencia
del fichero /tools/etc/ld.so.conf. Evita este confuso aviso con:


Instala el paquete:



Otras herramientas que se deben instalar son:

Ajustar herramientas (enlaza todas las herramientas con la librera de C temporal)
Tcl (lenguaje para herramientas de comandos)
Expect (suministra un programa que mantiene dilogos programados con otros
programas interactivos)
DejaGNU (contiene entorno de trabajo para comprobar otros programas)
GCC-Fase 2(reinstalacin el cual tiene los compiladores de C y C++)
Binutils-Fase 2 (reinstalacin contiene enlazador, ensamblador y otras utilidades)
Ncurses (contiene libreras para el manejo de pantallas independientes del terminal)
Bash (Bourne-Again SHell)
Bzip2 (contiene programas para comprimir y descomprimir ficheros)
Coreutils (contiene utilidades para mostrar y establecer las caractersticas bsicas del
sistema)

Diffutils (contiene programas que muestran las diferencias entre ficheros o directorios)
Findutils (contiene programas para encontrar ficheros)
Gawk (contiene programas para manipular ficheros de texto)
Gettext (contiene utilidades para la internacionalizacin y localizacin)
Grep (contiene programas para buscar dentro de los ficheros)
Gzip (contiene programas para comprimir y descomprimir ficheros)
Make (contiene un programa para compilar paquetes)
Patch (contiene un programa para modificar o crear ficheros mediante la aplicacin de un
fichero parche creando normalmente con el programa diff)
Perl (contiene el lenguaje prctico de extraccin e informe)
Sed (contiene un editor de flujos)
Tar (contiene un programa de archivado)
Texinfo (contiene programas usados para leer, escribir y convertir pginas info)
Util-linux (contiene una miscelnea de utilidades)
Eliminacin de smbolos (se puede eliminar cosas gracias a esta herramienta)
Cambio de propietario (sirve para modificar a los propietarios)
Captulo 6. Instalacin de los programas
del sistema base
En este captulo entramos en la zona de edificacin y comenzamos a construir de
verdad nuestro sistema LFS. Es decir, cambiamos la raz a nuestro mini sistema
Linux temporal, hacemos unos cuantos preparativos finales, y entonces
comenzamos a instalar los paquetes.
La instalacin de estos programas es bastante sencilla. Aunque en muchos casos
las instrucciones podran acortarse y ser ms genricas, hemos optado por
suministrar las instrucciones completas para cada paquete para minimizar la
posibilidad de errores. La clave para aprender qu hace que un sistema Linux
funcione es conocer para qu se utiliza cada paquete y por qu el usuario (o el
sistema) lo necesita.
El orden en el que se instalan los paquetes en este captulo debe respetarse
estrictamente para asegurar que ningn programa inserte en su cdigo una ruta
referente a /tools. Por la misma razn, no compiles paquetes en paralelo. La
compilacin en paralelo puede ahorrarte algo de tiempo (sobre todo en mquinas
con CPUs duales), pero puede generar un programa que contenga referencias a
/tools, lo que provocara que el programa dejase de funcionar cuando se elimine
dicho directorio.

Captulo 7. Configurar los guiones de
arranque del sistema


Este captulo detalla cmo instalar y configurar el paquete LFS-Bootscripts.
Muchos de estos guiones funcionarn sin necesidad de modificarlos, pero
algunos necesitan ficheros de configuracin adicionales, pues manejan
informacin dependiente del hardware.

LFS-Bootscripts
Instala el paquete:

Cmo funcionan los guiones de arranque?


Linux utiliza como sistema de inicio SysVinit, que se basa en el concepto de
niveles de ejecucin. Este sistema de inicio puede variar ampliamente de un
sistema a otro, por lo tanto no se debe asumir que porque las cosas funcionen
en una distribucin en concreto tengan que funcionar en LFS tambin. LFS
tiene su propia manera de hacer las cosas, la cual suele respetar los
estndares aceptados.

Manejo de dispositivos y mdulos en un
sistema LFS


Los sistemas Linux en general utilizan un mtodo esttico de creacin de
dispositivos, implicando que un gran nmero de nodos de dispositivo son
creados en /dev (literalmente, cientos de nodos) sin tener en cuenta si el
dispositivo hardware correspondiente existe en realidad.

Captulo 8. Hacer el sistema LFS
arrancable




En esta parte se realizar la ceracin de un fichero fstab, la construccin de
un ncleo para el nuevo sistema LFS y la instalacin del gestor de arranque
GRUB para que el sistema LFS se pueda seleccionar para arrancar el inicio.

Creacin del fichero /etc/fstab
El fichero /etc/fstab lo utilizan ciertos programas para determinar dnde
deben montarse los sistemas de ficheros, en que orden y cuales deben
comprobarse antes de montarse para asegurar contra algunos fallos de
seguridad, por lo cual se crea una tabla de sistemas de ficheros:

Los sistemas de ficheros originados en MS-DOS o Windows (vfat, ntfs, smbfs,
cifs, iso9660, udf) necesitan la opcin de montaje iocharset para poder
interpretar correctamente los caracteres no ASCII en los nombres de ficheros.

La opcin codepage tambin es necesaria para los sistemas de ficheros vfat
y smbfs. Debera establecerse al nmero de cdigo de pgina usado en tu pas
bajo MS-DOS. Por ejemplo, un usuario ru_RU.KOI8-R podra necesitar lo
siguiente en la parte de opciones de su lnea de montaje en / etc/ fstab:



Las opciones correspondiente para usuarios ru_RU.UTF-8 es:

Instalacin del ncleo
La construccin del ncleo comprende varios pasos: configuracin,
compilacin e instalacin.
Se prepara la compilacin ejecutando el comando:

Esto prepara que el rbol del ncleo est completamente limpio.
Configuramos el ncleo mediante una interfaz de mens:

Compilamos la imagen del ncleo y los mdulos:


Instala los mdulos, si la configuracin del ncleo los utiliza:

Tras completar la compilacin se necesitan algunos pasos adicionales para
completar la instalacin. Es necesario copiar varios ficheros al directorio /
boot.
La ruta a la imagen del ncleo puede variar dependiendo de la plataforma
que utilices. El siguiente comando asume que la arquitectura es x86:

System. map es un fichero de smbolos para el ncleo. Mapea los puntos de
entrada de cada una de las funciones en la API del ncleo, al igual que las
direcciones de las estructuras de datos del ncleo para el ncleo en
ejecucin.

Se ejecuta el siguiente comando para instalar el fichero de mapa:


. config es el fichero de configuracin del ncleo creado por el paso make
menuconfig anterior. Contiene todas las selecciones de configuracin para el
ncleo que se acaba de compilar. Es buena idea guardar este fichero como
referencia futura:


Instala la documentacin del ncleo:











Hacer el sistema LFS arrancable
El sistema LFS est casi completo. Una de las ltimas cosas por hacer es
asegurarse de que pueda ser arrancado.
El arranque puede ser una tarea compleja. Primero, unas palabras de
advertencia. Familiarzate con tu actual gestor de arranque y con cualquier
otro sistema operativo presente en tu(s) disco(s) duro(s) que desees mantener
arrancable. Asegrate de que tienes preparado un disco de arranque de
emergencia para poder rescatar el ordenador si este quedase inutilizable
(no arrancable).
Anteriormente compilamos e instalamos el gestor de arranque GRUB en
preparacin para este paso. El proceso consiste en escribir ciertos ficheros
especiales de GRUB a su localizacin especfica en el disco duro. Para lo cual
accedemos a GRUB con el siguiente comando:

Determina la denominacin apropiada para tu particin raz. Ejemplo: hda4

Indcale a GRUB dnde debe buscar sus ficheros (stage{1,2}). Puedes utilizar
el tabulador para que GRUB te muestre las alternativas:


Indcale a GRUB que se instale en el MBR de hda:


Si todo est bien, GRUB informar que ha encontrado sus ficheros en
/boot/grub. Esto es todo para activarlo. Cierra el intrprete de comandos de
grub:

Crea un fichero de lista de men para definir el men de arranque de
GRUB:


Si lo deseas, aade una entrada para la distribucin anfitriona. Tendr un
aspecto similar a este:




Si necesitas un arranque dual a Windows, la siguiente entrada debera
permitirte iniciarlo:

El estndar FHS estipula que el fichero menu.lst debe tener un enlace
simblico a /etc/grub/menu.lst.Para satisfacer este requisito, ejecuta el
siguiente comando:

Captulo 9. El final
El nuevo sistema LFS est instalado.
Con /etc/lfs-release ser ms fcil saber que versin de LFS tienes
instalada en tu sistema.


Reinicio del sistema
Despus de haber instalado todos los programas, es hora de reiniciar el
ordenador.

Instalar varios paquetes adicionales mientras an ests en el entorno chroot
te dejar en una mejor posicin para continuar una vez que reinicies tu nueva
instalacin LFS.

El paquete GPM te permitir copiar y pegar en tu terminal virtual. Por ltimo,
si ests en una situacin en la que una configuracin de IP esttica no cubre
los requisitos de tu red, instalar ahora paquetes como Dhcpcd o PPP es
tambin til.
Despus de instalar los dems programas para tu sistema operativo salimos
del entorno chroot:


Desmontamos los sistemas de ficheros virtuales:




Desmontamos el sistema de ficheros del LFS:
Si creaste varias particiones, desmonta las otras particiones antes de
desmontar la principal, por ejemplo:



Y procedemos a reiniciar el sistema con:


Una vez terminado el reinicio, el sistema LFS est listo para su uso y puedes
aadir ms software para cubrir tus necesidades.
Despus de que ya posees tu sistema puedes realizar actividades con el
mantenimiento del mismo, ya que con regularidad se hacen informes con los
errores y fallos de seguridad para todo el software. Puesto que el sistema LFS
se compila desde las fuentes, eres t quien debe estar al tanto de dichos
informes. Podemos tener recursos en lnea para monitorear estos informes:

Vous aimerez peut-être aussi