Skip to content

robgrzel/PintOS

Repository files navigation

DOCKER CONTAINER FOR PINTOS

MADE FOR LABS OF EDA093 IN CHALMERS

BASED ON YHPARK/PINTOS-KAIS

Step 1

Open powershell as admin (best to work in ie. conemu, simple powershell has bad colors for bash of docker container)

EDIT:

#BASED ON: https://github.com/yhpark/dockerfile-pintos-kaist #...https://github.com/JohnStarich/docker-pintos/blob/master/Dockerfile #...https://hub.docker.com/r/hangpark/pintos-dev-env-kaist/

go to powershell admin

##build locally with: docker build -t docker-pintos E:\Docker-Containers\docker-pintos

##set display with: set-variable -name DISPLAY -value 192.168.1.103:0.0

##run with: #docker run -itd -p 3522:22 -p 7575:7575 -p 9595:9595 -p 1234:1234 -h pintos --privileged --security-opt seccomp:unconfined -e DISPLAY=$DISPLAY --name pintos-container --dns=8.8.8.8 -v E:\PintOS\pintos\src:/pintos/pintos/src -P docker-pintos

##connect by ssh ssh -X -p 3522 [email protected]

##open firefox on host display export DISPLAY=192.168.1.103:0.0 firefox

#OLD

#first set directory on host that will be shared with container as workspace
Set-Variable -Name WSP -Value E:\PintOS\workspace
# to pull from docker
docker pull robgrzel/pintos
docker run -it --privileged --name pintos-container --dns=8.8.8.8 -v $WSP"":/home/pintos/workspace -P robgrzel/pintos /bin/bash

# after exit if want to connect again
## manually with getting id first
docker ps -a 
docker start -ia pintos 
## or in one line
docker start -ia (docker ps -a | grep pintos | awk '{print $1;}')

# to remove image or container
docker rm (docker ps -a | grep pintos | awk '{print $1;}')
docker rmi (docker ps -a | grep pintos | awk '{print $1;}')


# if in dev change, ie. of dockerfile, to push to docker hub
docker login
docker tag pintos robgrzel/pintos
docker push robgrzel/pintos

Step 3

Do labs...

LABS TODO :

Lab0 Lab1 Lab2

LAB0

After running image:

docker run -it --privileged --name pintos-container --dns=8.8.8.8 -v $WSP"":/home/pintos/workspace -P robgrzel/pintos /bin/bash

we should go to bash:

[pintos@8487e632a6a7 ~]$

then do:

cd pintos/src/threads
make
pintos -- run alarm-multiple
#to redirect output to log we do:
pintos -- -q run alarm-multiple &> $HOME/workspace/EDA093_CODE/Labs/Lab0/run_alarm-multiple.pintos.log

and we should get:

[pintos@8487e632a6a7 threads]$ pintos -- run alarm-multiple
squish-pty bochs -q
========================================================================
                       Bochs x86 Emulator 2.2.6
              Build from CVS snapshot on January 29, 2006
========================================================================
00000000000i[     ] reading configuration from bochsrc.txt
00000000000e[     ] user_shortcut: old-style syntax detected
00000000000i[     ] installing nogui module as the Bochs GUI
00000000000i[     ] using log file bochsout.txt
PiLo hda1
Loading.......
Kernel command line: run alarm-multiple
Pintos booting with 4,096 kB RAM...
383 pages available in kernel pool.
383 pages available in user pool.
Calibrating timer...  102,400 loops/s.
Boot complete.
Executing 'alarm-multiple':
(alarm-multiple) begin
(alarm-multiple) Creating 5 threads to sleep 7 times each.
(alarm-multiple) Thread 0 sleeps 10 ticks each time,
(alarm-multiple) thread 1 sleeps 20 ticks each time, and so on.
(alarm-multiple) If successful, product of iteration count and
(alarm-multiple) sleep duration will appear in nondescending order.
(alarm-multiple) thread 0: duration=10, iteration=1, product=10
(alarm-multiple) thread 0: duration=10, iteration=2, product=20
(alarm-multiple) thread 1: duration=20, iteration=1, product=20
(alarm-multiple) thread 0: duration=10, iteration=3, product=30
(alarm-multiple) thread 2: duration=30, iteration=1, product=30
(alarm-multiple) thread 0: duration=10, iteration=4, product=40
(alarm-multiple) thread 1: duration=20, iteration=2, product=40
(alarm-multiple) thread 3: duration=40, iteration=1, product=40
(alarm-multiple) thread 0: duration=10, iteration=5, product=50
(alarm-multiple) thread 4: duration=50, iteration=1, product=50
(alarm-multiple) thread 0: duration=10, iteration=6, product=60
(alarm-multiple) thread 1: duration=20, iteration=3, product=60
(alarm-multiple) thread 2: duration=30, iteration=2, product=60
(alarm-multiple) thread 0: duration=10, iteration=7, product=70
(alarm-multiple) thread 1: duration=20, iteration=4, product=80
(alarm-multiple) thread 3: duration=40, iteration=2, product=80
(alarm-multiple) thread 2: duration=30, iteration=3, product=90
(alarm-multiple) thread 1: duration=20, iteration=5, product=100
(alarm-multiple) thread 4: duration=50, iteration=2, product=100
(alarm-multiple) thread 3: duration=40, iteration=3, product=120
(alarm-multiple) thread 1: duration=20, iteration=6, product=120
(alarm-multiple) thread 2: duration=30, iteration=4, product=120
(alarm-multiple) thread 1: duration=20, iteration=7, product=140
(alarm-multiple) thread 4: duration=50, iteration=3, product=150
(alarm-multiple) thread 2: duration=30, iteration=5, product=150
(alarm-multiple) thread 3: duration=40, iteration=4, product=160
(alarm-multiple) thread 2: duration=30, iteration=6, product=180
(alarm-multiple) thread 3: duration=40, iteration=5, product=200
(alarm-multiple) thread 4: duration=50, iteration=4, product=200
(alarm-multiple) thread 2: duration=30, iteration=7, product=210
(alarm-multiple) thread 3: duration=40, iteration=6, product=240
(alarm-multiple) thread 4: duration=50, iteration=5, product=250
(alarm-multiple) thread 3: duration=40, iteration=7, product=280
(alarm-multiple) thread 4: duration=50, iteration=6, product=300
(alarm-multiple) thread 4: duration=50, iteration=7, product=350
(alarm-multiple) end
Execution of 'alarm-multiple' complete.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published