Göm menyn

TDDI81 Processprogrammering och operativsystem

Pintos på Linux


Med start 2014 är Pintos som finns på IDA anpassad för att köra på vissa Linux-maskiner. För att installera Pintos på din x86_64 Ubuntu-dator hemma, eller på din IP-disk, behöver i detta fall användaren "jambo007" utföra följande kommandon i en bash-terminal:

Om du kör Ubuntu-12.04 måste du se till att din installation är ordentligt uppdaterad. Pintos fungerar på min installation med gcc-4.6.4 och qemu 1.0. Uppdatera så långt det går med (du stannar på 12.04):

  sudo apt-get update  
  sudo apt-get upgrade
  sudo apt-get dist-upgrade
  sudo apt-get install qemu
  cd ~
  scp -r jambo007@astmatix.ida.liu.se:/home/TDDI81/lab/skel/pintos .
  scp -r jambo007@astmatix.ida.liu.se:/home/TDDI81/lab/bin pintos/
  cd ~/pintos/bin
  ln -s $(which qemu-system-i386) qemu
  export PATH="${PATH}:${HOME}/pintos/bin"

OBS! Det sista kommandot sätter programsökvägen och du måste lägga in det i din '.bashrc' eller liknande för att få inställningen automatiskt i fortsättningen.

Du kan själv anpassa de kommandon som behövs om du vill installera på annan plats, eller på en annan Linux-variant. Om du inte får installationen att fungera ska du arbeta via ssh istället, vi ger inte support på hemdatorer.

Råkar du på problem vid körning av program i Pintos skall du testa samma sak på en installation på IDA's Sun-maskiner för att utesluta att det är fel på din installation. Om det inte fungerar för dig ska du arbeta via ssh istället, vi ger inte support på hemdatorer. Det finns risk att kompilatorn du har fungerar lite annorlunda så att t.ex. systemanrop i pintos inte fungerar.

För att testa att alla verktyg finns och fungerar utförs följande kommandon, som är desamma vare sig du sitter på Linux eller på Solaris om uppsättningen är korrekt gjord:

  cd ~/pintos/src/userprog
  make -C .. clean
  make -C ../examples
  make
  pintos -k -v --fs-disk=2 -p ../examples/sumargv -a sumargv -- -f -q run sumargv

För att köra pintos i avlusaren (debuggern) behövs två terminaler.
Terminal 1 startar det testprogram som skall köra i pintos:

  cd ~/pintos/src/userprog
  make -C .. clean
  make -C ../examples
  make
  debugpintos -k -v --fs-disk=2 -p ../examples/sumargv -a sumargv -- -f -q run sumargv

Terminal 2 ansluter debuggern till det pintos som kör och i detta fall skapar en brytpunkt vid main, kör fram till brytpunkten och sedan kör vidare till slut:

  cd ~/pintos/src/userprog
  pintos-gdb build/kernel.o
  (gdb) debugpintos
  (gdb) break main
  (gdb) continue
  (gdb) continue

Sidansvarig: Klas Arvidsson
Senast uppdaterad: 2014-01-30