Infrastructura:Specificatii VM

= Linux VM - oedip/faust =

Hardware

 * 128 MB RAM
 * IDE HDD ~ 3G

PSO/SO2

 * 2 x IDE HDD 100M (SO2) (preallocated)
 * 2 porturi seriale (pipe loop) - (SO2)

Software

 * Debian Sid
 * vanilla 2.6.28.4, cu optiuni de debug - (SO2)
 * netconsole (inserat in post-up pentru eth0) - (SO2)
 * gcc 4.3.2 + glibc 2.9
 * libc6-dbg (simboluri de debug pentru glibc)
 * gdb 6.8
 * valgrind, electric-fence, strace, oprofile
 * vim, emacs22-nox, ctags, cscope
 * manpages-dev

În plus

 * configurat contrib și non-free în /etc/apt/sources.list
 * mc, htop
 * sysstat pentru sar, iostat
 * manpages-posix, manpages-dev
 * emacs-goodies-el
 * ctags, subversion, cscope
 * gcc-doc, gdb-doc
 * se poate folosi acest script
 * tofrodos, flex, bison pentru tema 1
 * perl pentru tema 2 (eventual)
 * gpm pentru mouse în consolă

Minimizare spațiu ocupat de mașina virtulă (și arhiva ei)
swapoff /dev/hda5 dd if=/dev/zero of=/dev/hda5 bs=4M mkswap /dev/hda5 swapon /dev/hda5
 * zero-izare swap


 * umplere spatiu liber cu zero

dd if=/dev/zero of=zero.fill ; sync ; sleep 1 ; sync ; rm -f zero.fill


 * shrinking (trebuie instalat VMware Tools)

vmshrink

Tools
Pentru a putea fi folosite în combinație cu vmchecker, în mașinile virtuale VMWare trebuie instalate toolurile VMWare (module kernel + daemoni userspace).

Prerequisites: vmware-server-console
În procesul de instalare a toolurilor se scoate modulul de net și la un pas ulterior se cere input de la utilizator => *nu* puteți instala toolurile de pe o conexiune ssh (conexiunea se întrerupe când se instalează toolurile, și nu se mai poate răspunde la următoarele întrebări).

Din această cauză trebuie să folosiți vmware-server-console (pachetul e mascat sub numele „Management Interface”: pagina download vmware management interface).

Cu vmware-server-console vă conectați pe mașina remote pe care e instalat serverul vmware (aka sanctuary.cs.pub.ro).

Tools on guest machine
Din vmware-server-console, din meniul VM alegeți Install VMWare Tools. Asta va monta în /dev/cdrom un iso cu tools-urile.

= Windows VM scarlet/rogue =

Hardware

 * 256 MB RAM
 * IDE HDD ~ 8G
 * Atenție! Dacă modificați dimensiunea memoriei, vă va cere un cod serial nou de introdus (va considera hardware-ul schimbat echivalent cu o nouă instalare). Puteți folosi codul serial pe care vi-l oferă MSDNAA pentru "Windows Server 2003 R2".

PSO/SO2

 * 2 x IDE HDD 100M (SO2) (preallocated)
 * 2 porturi seriale (pipe loop) - (SO2)

Resurse

 * Windows Server 2003 R2 Standard Edition (580MB + 120MB)
 * se obţin cele două discuri folosind MSDNAA
 * Visual C++ Express 2005 (463MB)
 * se descarcă discul asociat
 * Windows SDK (1.3GB)
 * se foloseşte pagina de download
 * Windows Driver Kit (WDK) (577MB)
 * se urmăresc indicaţiile de aici
 * se creează cont, se înregistrează descărcarea WDK
 * se instalează Microsoft File Transfer Manager
 * se descarcă

Instalare

 * Se creează o instanţă de maşină virtuală folosind VMware. ATENŢIE la păstrarea compatibilităţii în cazul folosirii VMware Workstation.
 * Se adaugă 2 porturi seriale
 * Output to named pipe
 * primul port serial: \\.\pipe\pipe_seriala, "This end is the server.", "The other end is the virtual machine."
 * al doilea port serial: \\.\pipe\pipe_seriala, "This end is the client.", the other end is the virtual machine."
 * Se adaugă doua discuri de 0.1GB
 * Se instalează Windows 2k3

Componente software de bază

 * Mozilla Firefox - trebuie dezactivată din Internet Explorer faza cu "Trusted Sites"
 * Total Commander
 * cygwin
 * Net - openssh (server şi client)
 * Web - wget
 * Archive - zip, unzip
 * Devel - gcc-core, gcc-g++, make, ctags, subversion, flex, bison
 * Editors - mc, vim
 * Perl - perl
 * se adauga binarele de cygwin in PATH (C:\cygwin\bin si C:\cygwin\usr\bin - merg comenzile ls, touch, make, man gcc etc. din command prompt)
 * se configureaza openssh-server</tt> conform indicatiilor
 * se configureaza rxvt ca terminal implicit; eventual se altereaza scriptul de pornire a Cygwin
 * Putty
 * WinSCP
 * TUGZip
 * Process Explorer
 * Adobe Flash Player
 * se creeaza doua perechi chei publice chei private
 * o pereche pentru sistem gazda Windows (puttygen)
 * o pereche pentru sistem gazda Linux (ssh-keygen)
 * se adauga cheile publice pe masina virtuala folosind cygwin in ~Administrator/.ssh/authorized_keys
 * cheile sunt disponibile la adresa http://anaconda.cs.pub.ro/~razvan/school/so/ssh-keys
 * cheile publice sunt stocate si in directorul ssh-keys din ~Administrator in Cygwin
 * se instalează vmware-tools
 * creat keyboard shortcuts pentru aplicatiile instalate
 * CTRL+ALT+T - Total Commander
 * CTRL+ALT+F - Firefox
 * CTRL+ALT+P - Putty
 * CTRL+ALT+S - WinSCP
 * CTRL+ALT+Y - Cygwin
 * CTRL+ALT+W - Windows SDK Shell
 * Bonjour for Windows

Pregătire pentru stocare versiune de bază

 * defragmentare
 * curăţare spaţiu neutilizat/fişiere temporare
 * uploadat maşina virtuală de bază în elf.cs.pub.ro:~so/

Devel Tools

 * gvim
 * notepad++
 * Crimson Editor

Windows

 * .NET Framework 2.0
 * Windows SDK
 * _doar_ "Developer Tools"
 * fara ".NET Development Tools"
 * creat shortcut pentru CMD Shell - totul merge tzutz
 * Windows Power Shell

PSO - only

 * Debugging Tools for Windows (nu e nevoie - vin cu WDK);
 * se configurează simbolurile de debug pentru WinDbg - se folosește sursa http://msdl.microsoft.com/download/symbols; eventual pot fi descărcate direct;
 * se descarcă documentația standalone pentru WDK.

Fine tuning

 * adaugat utilizatorul so
 * rulat mkpasswd si mkgroup pentru autentificare prin SSH
 * adugat cheia publica SSH in ~so/authorized_keys
 * configurat Windows SDK Shell sa ruleze în C:\cygwin\home\Administrator, respectiv C:\cygwin\home\so in momentul pornirii
 * in ~so/test/ si ~Administrator/test/ se gaseste un exemplu de test (test.c + makefile)
 * adugat bookmark-uri in Firefox catre site-ul de so si pagina de system services a documentatiei Microsoft
 * configurat cele doua pagini de mai sus ca pagini home pentru Firefox
 * adăugat certificatele pentru cs.pub.ro/~so şi pentru curs.cs.pub.ro
 * cleanup space & defragment (nu e nevoie - nu a fost frecat mult discul)
 * DeepFreeze - http://thepiratebay.org/torrent/4597032/Deep_Freeze_Evaluation_Renewal

PSO (SO2)

 * schimbat numele sistemului host din scarlet</tt> in rogue</tt>
 * configurat drepturi pentru utilizatorul so asa cum sunt descrise in tema 1
 * instalat Windows Driver Kit (ocupa 1.7GB!!!)
 * nu e nevoie sa se instaleze separat Windows Debugging Tools - se instaleaza implicit din WDK
 * instalat DbgView
 * creat scurtatura pentru shell-ul de Windows 2003 x86 Checked Build Environment
 * dezactivat ACPI pentru tema2
 * instalat OSR-Loader
 * instalat utilitarul driver pentru lucrul cu module de kernel
 * instalare in C:\driver\
 * creat un fisier makefile pentru compilare
 * adaugat calea C:\driver la PATH
 * adaugat modul de test in ~Administrator/first-module-lin; testat - totul e OK
 * copiat sursele WRK-1.2 + compilat şi adăugat în boot.ini conform indicaţiilor
 * instalat LiveKd
 * defragmentat - proastă idee - consumă spaţiu (de văzut cum poate fi minimizat)

Folosind VMware Tools (simplu)

 * Click pe tray-ul VMware Tools -> Disks -> Shrink
 * În cazul mașinii de SO2 trebuie eliminate discurile suplimentare - nu se poate face shrinking pe discuri prealocate

Folosind vmware-diskmanager (mai complicat)
C:\Program Files (x86)\VMware\VMware Server>vmware-mount.exe "D:\vm\win-pso\so2-vm-win2k3\Windows Server 2003 Standard Edition.vmdk" /p Volume 1 : 8181 Mb Volume 2 : 7 Mb C:\Program Files (x86)\VMware\VMware Server>vmware-mount.exe J: "D:\vm\win-pso\so2-vm-win2k3\Windows Server 2003 Standard Edition.vmdk" /v:1 vmware-vdiskmanager -p J: C:\Program Files (x86)\VMware\VMware Server>vmware-mount.exe J: /d C:\Program Files (x86)\VMware\VMware Server>vmware-vdiskmanager.exe -k "D:\vm\win-pso\so2-vm-win2k3\Windows Server 2003 Standard Edition.vmdk"
 * se verifică ce volumele sunt disponibile
 * pentru fiecare volum:
 * se montează volumul
 * se pregăteşte volumul
 * se demontează volumul
 * shrinking efectiv folosind vmware-vdiskmanager.exe</tt> din directorul de instalare a VMware Server:
 * Job well done!