ENLACES DEL CURSO

miércoles, 24 de marzo de 2010

CURSO DE SISTEMAS OPERATIVOS CON PINTOS

hola a todos antes que nada aqui vamo a programar en c puro por lo que se aprendera mucho acerca de un sistema operativo y entenderan algunas cosas con respecto a su funcionamiento , este es un curso el cual se necesita mucha dedicacion ya que algunas cosas son complicadas pero les ire explicando de una manera de los mas entendible posible espero que dejen sus comentarios.

en este curso voy hacer un aporte el cual no es muy comun en la wed por lo que pienso que sera de gran ayuda para muchos debido a que no hay mucha informacion acerca de un sistema operativo como lo es pintos .

esta es una pagina de referencia si quieren estudiar mas a fondo http://www.scs.stanford.edu/07au-cs140/pintos/pintos.html#SEC_Contents

NOTA : ANTES DE TODOS NO DESCARGUEN EL PINTOS ACTUAL DE LA PAGINA DE REFERENCIA YA QUE TIENE CIERTAS MODIFICACIONES Y NO LE VA A FUNCIONAR DE LA MISMA MANERA

primeramente les explicare lo que es y para que sirve , pintos es un sistema operativo pequeño en relacion con linux , windows u otros que aplica lo basico en un sistema operativo , una de esas cosas son las primitivas de sincronizacion , bueno por el momento no los enfocaremos en eso pero luego de ir estudiando pintos les ire explicando como funciona todo esto.

primeramente se debe saber como instalar pintos en sus maquinas por lo que deben saber instalarlo , con respecto a su instalacion pintos no se puede instalar versiones de windows debido a que su arquitectura es 80*86 y se usan en maquinas especificas .

Pintos, teóricamente, se ejecutan en un regular IBM PC compatible. Desafortunadamente, es poco práctico para abastecer cada 140 estudiantes CS una computadora dedicada para el uso con Pintos. Por lo tanto, se ejecutarán proyectos de Pintos en un simulador de sistema, es decir, un programa que simula un 80x86 de la CPU y sus dispositivos periféricos con suficiente precisión que los sistemas operativos sin modificaciones y el software se ejecute en él. En la clase se utilizará el Bochs y simuladores de QEMU. Pintos también ha sido probado con VMware Player.


bueno para instalar pintos se necesita el simulador en este vamos a usar bochs version 2.2.6 (enlace de descarga http://bochs.sourceforge.net/ ), esa version es preferidas ya que con otras versiones no trabaja bien pintos ahora bajan pintos ( por medio de este link http://www.mediafire.com/?hmwz1zwt12j ) pintos necesita ser parchado por lo cual no nesecitan hacer este trabajo pero luego les explicare como hacerlo

para instalar bochs se hace lo siguiente :

1) primeramente deben tener linux instalados en su maquina bueno yo les recomiendo a mi experiencia instalar ubuntu version 6 o linux mint version 6 pueden instalar una version resiente si quieren pero al trabajar con pintos surgen ciertas complicaciones debido a su arquitectura por lo que mejor instalen las versiones que les recomiendo .

tambien pueden usar un virtual machines ( virtualBox ) y montar una imagen iso de linux pero es mas conveniente si lo instalan y tienen una particion aparte para ello .

2) para el buen funcionamiento de pintos es decir que es indispensable se necesitan instalar las siguientes librerias (lo pueden hacer desde el gestor de paquetes synaptic de linux )

Requisitos previos para la instalación de un entorno de desarrollo Pintos se incluyen las siguientes, además de utilidades estándar de Unix:


Requisitos previos para la instalación de un entorno de desarrollo Pintos se incluyen las siguientes, además de utilidades estándar de Unix:
  • Required: GCC. Version 4.0 or later is preferred.
  • Required: GNU binutils.

  • Required: Perl. Version 5.8.0 or later is preferred. Version 5.6.1 or later should work.
  • Required: GNU make, version 3.80 or later.
  • Recommended: QEMU, version 0.8.0 or later. If QEMU is not available, Bochs can be used, but its slowness is frustrating.
  • Recommended: GDB. GDB is helpful in debugging (see section E.5 GDB).
  • Recommended: X. Being able to use an X server makes the virtual machine feel more like a physical machine, but it is not strictly necessary.
  • Optional: Texinfo, version 4.5 or later. Texinfo is required to build the PDF version of the documentation.
  • Optional: TeX. Also required to build the PDF version of the documentation.
  • Optional: VMware Player. This is a third platform that can also be used to test Pintos.
bueno esta en ingles pero creo que es entendible, tambien pueden instalar estas librerias desde la terminal de linux por ejemplo si quieren instalar gcc solo escriben la siguiente orden

sudo apt-get install gcc

de esta manera pueden ir instalando las demas librerias , por si acaso no pudieron hacerlo entonces subire un video donde lo podran ver paso a paso

otra parte que se me olvidaba tiene que instalar dos librerias mas las cuales son

y luego escriba esto desde terminal
sudo ln -s /usr/lib/happycoders/libsocket.so /usr/lib/libsocket.so

estas instalenla desde terminal
sudo apt-get install build-essential
sudo apt-get install xserver-xorg-dev xorg-dev
sudo apt-get install wx-common wx2.8-headers libwxbase2.8-0 libwxgtk2.8-dev
sudo apt-get install libncurses5-dev

nota : si algunas de estas librerias las tienen instaladas les va a decir que su version es la mas reciente o algo asi

3) como les dije anteriormente pintos necesita ser parchado para ello vamos hacer lo siguiente

* descomprimimos el bochs 2.2.6 preferiblemente en el escritorio ya que sucede muchas veces que descomprimimos algo y no nos acordamos donde lo hicimos tambien lo pueden descomprimir en la carpeta personal

* luego abrimos una terminal y escribimos la siguiente orden
cd /direcotoriodebochs/bochs-2.2.6

en mi caso lo hice de esta manera cd /home/radix/Escritorio/SO/bochs-2.2.6

* instalamos un programa llamado patch de la siguiente manera sudo apt-get install patch

* ahora parchamos pintos con la siguiente orden patch -p1 < /home/radix/Escritorio/SO/pintos/src/misc/bochs-2.2.6-big-endian.patch

este directorio /home/radix/Escritorio/SO en donde tengo en el escritorio una carpeta llamada SO y dentro de esa carpeta descomprimi pintos

en esta parte pintos/src/misc/ es donde vamos a instalar los parchos bueno siguiendo la misma logica seguimos con los siguientes

patch -p1 < /home/radix/Escritorio/SO/pintos/src/misc/bochs-2.2.6-jitter.patch

patch -p1 <
/home/radix/Escritorio/SO/pintos/src/misc/bochs-2.2.6-triple-fault.patch

patch -p1 <
/home/radix/Escritorio/SO/pintos/src/misc/bochs-2.2.6-ms-extensions.patch

patch -p1 <
/home/radix/Escritorio/SO/pintos/src/misc/bochs-2.2.6-solaris-tty.patch

patch -p1 <
/home/radix/Escritorio/SO/pintos/src/misc/bochs-2.2.6-page-fault-segv.patch

patch -p1 <
/home/radix/Escritorio/SO/pintos/src/misc/bochs-2.2.6-paranoia.patch

patch -p1 <
/home/radix/Escritorio/SO/pintos/src/misc/bochs-2.2.6-solaris-link.patch

al final les tiene que quedar de esta manera


tambien pueden seguir este historial que esta bien entendible (http://www.mediafire.com/?wwyezwzbz) ahora ya sabemos como parchar pintos por lo que tenemos que instalar un simulador por lo cual instalaremos bochs-2.2.6 en la pc .

4) para la instalacion de bochs es muy facil abrimos una terminal luego solo nos metemos al directorio de bochs-2.2.6 de la siguiente manera

cd bochs-2.2.6/ o el directorio donde se encuentre y luego escribimos en la terminal la siguiente line (pueden darle copy y paste para no complicarse )

./configure --enable-gdb-stub --with-x --with-x11 --with-therm --with-nogui

esperan a que termine la configuracion luego escriben el siguiente comando
make
y luego
sudo make install

bueno ahora ya tenemos intalado bochs en nuestra pc pero todavia falta algo , se meten al directorio de pintos/src/utils en mi caso /home/radix/Escritorio/SO/pintos/src/utils

y abren una terminal e ingresa a ese directorio cd /home/radix/Escritorio/SO/pintos/src/utils y luego escribe make luego escriben las siguientes lineas :

sudo cp backtrace /usr/bin
sudo cp pintos /usr/bin
sudo cp squish-pty /usr/bin
sudo cp squish-unix /usr/bin
sudo cp pintos-gdb /usr/bin
sudo cp pintos-mkdisk /usr/bin
sudo chmod +rx /usr/bin/pintos

con esto ya estamos preparado para empezar a programar en pintos y ampliar sus conocimientos acerca de un sistema operativo

Esto es todo por hoy en el siguiente post empezaremos con el primer proyecto de pintos aplicando algunos mecanismos para la ejecucion de un sistema operativos .