Sistemas opertativos Llamada a Sistema

Páginas: 7 (1570 palabras) Publicado: 5 de junio de 2014
OS llamada al sistema
Paul Giancarlo Diaz Velasco
9 Diciembre 2013

1

Introduccion

Dentro del objetivo de Analizar la estructura y c´digo del Sistema Operativo
o
Ubuntu 11.04, tenemos la implementacion de una llamada al sistema, por medio
de compilacion del kernel del sistema operativo.
El kernel de Linux es Sistema Operativo mas flexible que se haya creado,
con mas de sietemillones de lineas de codigo.

version.png
Figure 1: Pantalla principal

2

Implementando una Llamada al Sistema

Luego Instalamamos los paquetes necesarios para poder compilar el kernel aptitude install kernel-package libncurses5-dev fakeroot wget bzip2.
una ves que tenemos esto podemos empezar por descargar el kernel que
queremos instalar en este caso debe ser superior al que ya tenemos ennuestra
maquina, en este caso verificamos nuestra version haciendo:
uname -r para nuestro caso el resultado es 2.6.38 − 8 − generic
1

Figure 2: Pantalla inicio e implementacion
Entonces nos dirigimos a cd /usr/src donde vamos aponer nuestras nuevas
fuentes del kernel que decargaremos haciendo : Yendo a la pagina principal y
bajandonos la version del kernel que deseamos linux-2.6.39.tar.bz219-May-2011
04:21 73M una vez descargado lo descomprimimos en nuestra carpeta usr/src/
haciendo tarxjf linux − 2.6.39.tar.bz2

Figure 3: pantalla de implementacion
Luego de descomprimir linux-2.6.39, vamos a paul@ubuntu : /usr/src/linux−
2.6.39/arch/x86/kernel$ donde vamos agregar nuestra llamada de sistema en
syscall table 32.S
Y agregamos al final nuestras dos funciones .longsys add2,.longsys strcpy.
Ahora vamos a paul@ubuntu : /usr/src/linux−2.6.39/arch/x86/include/asm$
sudo gedit unistd 32.h donde agregamos nuestras llamadas de sistema.
Debemos dirigirnos a la parte en que esta
#define

N R p r l i m i t 6 4 340

2

y despues colocar la definicion de nuestras llamadas, asi :

#define NR add2
#define NR strcpy

341
342/usr/src/linux−2.6.39/arch/x86/include/asm$ sudo gedit unistd 64.h donde
vamos a poner la definicion de nuestras llamadas.
Ubicamos primero las lineas siguientes :
#define
N R p r l i m i t 6 4 302
SYSCALL ( N R p r l i m i t 6 4 , s y s p r l i m i t 6 4 )
#define
NR syncfs

y agregamos debajo nuestras llamadas al sistema
#define
NR add2
303
SYSCALL ( NR add2 , s y s a d d 2 )
#define
NR strcpy
304
SYSCALL ( NR add2 , s ys s t r c p y )

Ahora debemos agregar las definiciones de nuestros metodos para eso nos
dirigimos al archivo include/linux/syscalls.h , debe quedar como la imagen a
continuacion.

Figure 4: Definicion de llamadas
Ahora vamos a crear dos archivos para la implementacion de nuestras llamadas, deben tener el mismo nombre para no tener problemas al compilar el
kernel. Para esto nos dirigimos ala carpeta /usr/src/linux − 2.6.39/kernel nos
quedarina como se muestra en las imagenes siguientes:
Luego que ya tenemos la implementacion y definicion de nuestras llamadas
sol nos queda agregar los objetos al Makefile. Para eso nos dirigimos a la carpeta
usr/src/linux−2.6.39/kernel/sudo gedit Makefile , y agregamos las lineas como
en la imagen siguiente:

3

Compilando el kernel

Paracompilar el kernel por primera vez tendremos que esperar un buen tiempo,
las instrucciones que debemos usar son la s siguientes:

3

Figure 5: sys add2.c

Figure 6: sys strcpy.c

Figure 7: modificacion de Makefile

mkdir . . / l i n u x −b u i l d
y e s ’ ’ | make −−j o b s =‘ g e t c o n f NPROCESSORS ONLN‘ O= . . / l i n u x −b u i l d
config
make −−j o b s =‘ g e t c o n f NPROCESSORSONLN‘ O= . . / l i n u x −b u i l d
sudo make −−j o b s =‘ g e t c o n f NPROCESSORS ONLN‘ O= . . / l i n u x −b u i l d
modules install install
cd / boot
sudo m k i n i t r a m f s −o i n i t r d . img − 2 . 6 . 3 9 2 . 6 . 3 9
sudo update−grub

4

El proceso lo veremos a continuacion:

Figure 8: Compilando el kernel

Figure 9: Compilando el kernel
Cuando termina hacemos sudo...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • sistemas opertivos
  • Sistema opertaivo
  • Sistemas Opertativos
  • Sistemas Opertaivos
  • Sistemas Opertivos
  • Sistema Opertativo
  • sistemas opertivos
  • llamados a Sistema en Sistemas Operativos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS