Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cheina97/os161_labs
https://github.com/cheina97/os161_labs
Last synced: 15 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/cheina97/os161_labs
- Owner: cheina97
- Created: 2021-04-25T11:17:19.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2022-07-20T13:49:32.000Z (over 2 years ago)
- Last Synced: 2024-11-03T19:42:28.893Z (2 months ago)
- Language: C
- Size: 4.99 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Per chi avesse avuto problemi durante la compilazione della toolchain di OS161 per svolgere i laboratori nativamente sulla propria distribuzione, questi sono i problemi che ho riscontrato e come ho risolto. Ho effettuato l'installazione su pop-os 20.10 (distro Ubuntu based), seguendo questa guida http://os161.eecs.harvard.edu/resources/setup.html.
## *SEGUIRE LA GUIDA LINKATA QUI SOPRA E SEGUIRE I CONSIGLI SOTTOSTANTI QUANDO SI GENERANO DEGLI ERRORI (TALE PARTE POTREBBE ESSERE OPZIONALE IN BASE ALLA VERSIONE DELLA VOSTRA DISTRIBUZIONE), TERMINATA LA GUIDA ANDARE AL PROSSIMO PARAGRAFO (NON OPZIONALE)*
**Librerie da installare**
```bash
sudo apt install libncurses5-dev
sudo apt install libmpc-dev
```**Compilazione di GDB**
Per compilare GDB ho dovuto modificare **gdb-7.8+os161-2.1/sim/common/sim-arange.h** commentando l' **#include** a linea 76 (#include "sim-arange.c")
Inoltre ho dovuto settare come versione default di python python 2.7 sostituento python 3.8 .
Per farlo ho utilizzato il comando :```bash
sudo update-alternatives --config python
```Se il comando precedente non trova l'opzione python2.7 o da errore significa che sulla vostra distro non è stata impostata alcuna alternativa per python2.7.
Per prima cosa assicuratevi di avere python2.7 installato.```bash
sudo apt install python2.7
```Poi eseguite i seguenti comandi:
```bash
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
```Se python3.8 non viene trovato sostituire python3.8 con la vostra versione più recente installata nel comando precedente
Ora potete settare la vostra versione python di default con
```bash
sudo update-alternatives --config python
```Per verificare che tutto sia andato a buon fine verificate la versione python attuale con
```bash
python --version
```**Compilazione di sys/161 **
Per risolvere i problemi di compilazione ho dovuto dichiarare come **extern** la variabile **extra_selecttime** in **sys161-2.0.8/include/onsel.h**.## *LA PARTE SEGUENTE VA ESEGUITA SOLO DOPO AVER COMPLETATO CON SUCCESSO LA GUIDA LINKATA ALL'INIZIO DI QUESTO FILE*
**Scaricare OS161**
Scaricare l'archivio **os161-base-2.0.3.tar.gz** da http://os161.eecs.harvard.edu/download/ e decomprimerlo in **$HOME/os161/****Aggiungere tools al PATH**
per poter usare comandi come **sys161** serve aggiungere la cartella **tools/bin** al **PATH**```bash
echo -e "PATH=\"$HOME/os161/tools/bin:"'$PATH'"\"" >>$HOME/.profile
```**IMPORTANTE: EFFETTUARE IL LOGOUT E FARE DI NUOVO LOGIN PER AGGIORNARE IL PATH**
**Cartella root e build del kernel**
Eseguire il seguente script per effettuare il primo build del kernel e configurare la cartella **/root** (consiglio di eseguirlo riga per riga in modo da notare eventuali errori).
**Attenzione la cartella root si troverà nella cartella $HOME/os161/**```bash
#!/bin/bash
cd $HOME/os161/os161-base-2.0.3/
./configure --ostree=$HOME/os161/root
bmake
bmake install
cd kern
cd conf
./config DUMBVM
cd ../compile/DUMBVM/
bmake depend
bmake
bmake install
cd $HOME/os161/root
if [ -f "LHD0.img" ]; then
rm LHD0.img
fi
if [ -f "LHD1.img" ]; then
rm LHD1.img
fi
disk161 create LHD0.img 5M
disk161 create LHD1.img 5M
cp $HOME/os161/tools/share/examples/sys161/sys161.conf.sample $HOME/os161/root/sys161.conf
```**.gdbinit**
Creare un file **.gdbinit** in **$HOME** e scrivere al suo interno :```bash
set auto-load safe-path /
```Creare un file **.gdbinit** in **$HOME/os161/root** e scrivere al suo interno :
```
def dbos161
dir ../../os161/os161-base-2.0.3/kern/compile/DUMBVM
target remote unix:.sockets/gdb
end
dbos161
```**EXTRA-VSCODE setup**
Per settare vscode seguite questa guida https://github.com/cheina97/os161vscode/tree/generic-(not-only-for-VM) e ricordatevi di lasciare una stella \**wink wink*\*