8 - Linux

[editar]
Curso gratis creado por Zonagratuita. Extraido de: http://www.zonagratuita.com
30 de Noviembre de 1999
Linux es una implementación del sistema operativo UNIX (uno más de entre los numerosos clónicos del histórico Unix), pero con la originalidad de ser gratuito y a la vez muy potente, que sale muy bien parado (no pocas veces victorioso) al compararlo con las versiones comerciales para sistemas de mayor envergadura y por tanto teóricamente superiores. Comenzó como proyecto personal del –entonces estudiante- Linus Torvalds, quien tomó como punto de partida otro viejo conocido, el Minix de Andy. S. Tanenbaum (profesor de sistemas operativos que creó su propio sistema operativo Unix en PCs XT para usarlo en su docencia).

Actualmente Linus lo sigue desarrollando, pero a estas alturas el principal autor es la red Internet, desde donde una gigantesca familia de programadores y usuarios aportan diariamente su tiempo aumentando sus prestaciones y dando información y soporte técnico mútuo.  La versión original -y aun predominante- comenzó para PCs compatibles (Intel 386 y superiores), existiendo también en desarrollo versiones para prácticamente todo tipo de plataformas:

PowerPC <http://www.cs.us.es/archive/linuxppc/>,

Sparc  <http://www.geog.ubc.ca/sparclinux.html>,

Alpha  <http://www.azstarnet.com/~axplinux>,

Mips <http://www.fnet.fr/linux-mips/>, etc.

De todas ellas la más reciente en este momento es la versión para PowerMac <http://www.mklinux.org> (el PowerPC de Apple)  basada en el microkernel Mach 3.0 y de la que ya hay una distribución para desarrolladores avalada directamente por Apple y OSF pero conservando el espíritu (gratuito, de libre distribución, etc) de la version original. Un servidor la acaba de probar hace unos días y se ha llevado una grata sorpresa (aún tendrá muuuchos fallos, pero para ser una primerísima versión y el poco tiempo que lleva en marcha, ha avanzado más de lo que me esperaba).

Ejemplo de linux:

Compilar el Kernel

Dado que un diskette sólo almacena 1.44 Megabytes (1440 Kilobytes) de datos, no puedes  el mismo kernel que utilizas al diskette. Primero debes conseguir los fuentes del núcleo y  descomprimirlos en /usr/src/linux. Luego ejecuta la siguiente orden desde el directorio

/usr/src/linux:

make config

Configura solamente aquello que realmente necesites. Yo, personalmente, sólo configuro el soporte  para "ext2", soporte para la disquetera (floppy disk), y soporte para "PPP". Tus elecciones pueden  se diferentes en función de lo que decidas incluir. Ahora introduce el siguiente comando:

make dep; make clean; make zImage

¡make zImage es muy importante! Comprime el kernel definitivo. Después de que termine la compilación, deberás buscar el nuevo núcleo en /usr/src/linux/arch/i386/boot bajo el

nombre de zImage.

El sistema de ficheros: No es solamente un conjunto de ficheros

Ahora hemos de crear el sistema de ficheros (en inglés: filesystem, fs) para el diskette. En vez de  copiar los ficheros tal cual directamente al diskette, los comprimiremos antes de copiarlos. Esto nos hará un poco más difícil la faena de modificar todo permanentemente. Primero tecleamos el siguiente

comando:

dd if=/dev/zero of=[DEVICE] bs=1k count=3000

Donde [DEVICE] es "lugar" en el disco duro donde vas a guardar el sistema de ficheros  descomprimido. Luego, introduce el siguiente comando y pulsa ENTER, sustituyendo [DEVICE] por  el directorio en tu disco duro donde estás guardando el sistema de ficheros descomprimido:

mke2fs -m 0 [DEVICE]

Si make2fs te pregunta si realmente quieres hacer esto (Do you really want to do this?), acepta  tecleando "y" (yes).

Después tenemos que montar este sistema de ficheros que hemos creado. Para ello, el núcleo que  utilices tiene que permitir "montar ficheros", en otras palabras, ha de tener habilitada la posibilidad de  "loopback devices". Para ello has de compilar el núcleo de tu máquina (no el núcleo que hemos  creado, sino el de tu propia máquina) con la opción:

Loopback device support (CONFIG_BLK_DEV_LOOP) [M/n/y/?]

bien como módulo (M) o en el mismo núcleo (Y). Si lo compilas como módulo (lo más  recomendable) luego tienes que insertar el módulo modprobe loop !No olvides rearrancar la  máquina si has tenido que recompilar el núcleo!

mount -t ext2 DEVICE /mnt

Si se queja la orden mount puedes intentar con la siguiente orden:

mount -o loop -t ext2 DEVICE /mnt

Ahora debes copiar todos los ficheros que necesites en el nuevo sistema de ficheros. Primero, ponte  en el directorio /mnt, (cd /mnt), y crea los siguientes directorios:

/dev

/pro

/etc

/bin

/lib

/mnt

/usr

Ahora crearemos el directorio /dev tecleando lo siguiente:

cp -dpR /dev /mnt/dev

Si se te acaban los i-nodos del diskette, puedes ir a /mnt/dev y borrar los archivos de dispositivo  que no necesites. Cuando acabes de copiar los ficheros necesarios para /dev, ves a /etc. Para estar seguro copia todos los ficheros de /etc a /mnt/etc:

cp -dpR /etc /mnt/etc

Luego copia todo del directorio /lib en /mnt:

cp -dpR /lib /mnt/lib

Para el directorio /bin, copia sólo aquello que creas que necesitas en /mnt/bin.

Copiar todo a tu diskette

Ahora hemos de copiar todo en el/los diskette/s. Para hacer esto, debemos comprimir ahora el  sistema de ficheros tecleando las siguientes ordenes:

cd /

umount /mnt

dd if=[DEVICE] bs=1k | gzip -9 > rootfs.gz

Ahora es importante comprobar el tamaño del núcleo. Ponte en  /usr/src/linux/arch/i386/boot y teclea "ls -l". Luego divide el tamaño del núcleo entre 1024.

Por ejemplo, si el tamaño es de 250000 bytes, entonces son 245 KB. En adelante, reemplaza   [ROOTBEGIN] en las ordenes que aparezca por el número total de kilobytes que has calculado.  Ahora copia el kernel al diskette usando el siguiente comando:

dd if=zImage of=/dev/fd0

Este comando grabará el kernel en el diskette. Luego introduce el siguiente comando para que el  kernel pueda encontrar la raíz del sistema de ficheros en el diskette.

rdev /dev/fd0 /dev/fd0

Ahora tendrás que hacer un pequeño cálculo en hexadecimal. Suma 4000 al equivalente en hexadecimal de [ROOTBEGIN] (que en nuestro ejemplo es F5). Convierte el resultado a decimal y teclea el siguiente comando, sustituyendo 16629 con el resultado que tú has obtenido:

rdev -r /dev/fd0 16629

Finalmente, teclea lo siguiente para copiar el sistema de ficheros al diskette:

dd if=/rootfs.gz of=/dev/fd0 bs=1k seek=[ROOTBEGIN]

El sistema de ficheros raíz será copiado al diskette justo después del kernel. ¡Ya lo tienes! Para el  segundo diskette, el proceso es más fácil. Copia los ficheros que quieras en el diskette. No obstante,  para poder usar los ficheros que hay en el segundo disco, tendrás que entrar lo siguiente después de  arrancar con el diskette:

mount /dev/fd0 /usr
[editar]

23 opiniones

tonto

www.tonto.com
Elìas DG.

Està fantastico...
www.elias.com
Excelente...

Solo una pregunta, que lenguaje uso para desarrollar el sistema operativo.
Acerca del post.

Bueno es mi primer lectura acerca del tema,sin embargo me aclaro algunas dudas sobre como se basa la
creación de lenguajes en función de la maquina.
Lo mejor.

Muy bueno ahora a perfeccionar los programas.
1 2 3 4 5 | siguiente >

Cursos gratis relacionados con 'Los lenguajes de programación informática'

Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de... Más »
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
El diseño web va más allá del diseño gráfico, al influir en él multitud de... Más »

Autor y licencia de 'Los lenguajes de programación informática'


Curso gratis de Zonagratuita. Extraido de: http://www.zonagratuita.com CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.