TSR sobre la int 09h

Aquest petit codi en assembler 16 bits (sí, prehistòria informàtica), és una possible solució a una de les pràctiques que es proposen a l’assignatura de Sistemes Operatius de la Universitat d’Andorra. Vaig tenir la curiositat de reprendre la programació en ASM només per veure com de rovellat estava. La veritat és que n’estava molt!

L’enunciat de la pràctica és clar: s’ha de reescriure la rutina que controla el teclat de manera que quan es premi la tecla F3 s’enviï la comanda DIR<CR> a la consola. Això s’ha d’implementar mitjançant un programa TSR (Terminate and Stay Resident).

La solució que proposo no és del tot òptima per tota una sèrie de detalls que no venen al cas, però és prou vàlida per entendre els conceptes darrere els TSR i les interrupcions de BIOS i DOS.

He refrescat un munt de conceptes interessants que no havia tocat des de feia més de 20 anys. Assembler pot dur a la bogeria, però és un llenguatge que toca directament la màquina i tots els informàtics l’haurien de conèixer, crec, com a mínim una mica.

Codi font i executable: KBSwitch

Aquest codi no té llicència de cap tipus. En podeu fer el que vulgueu.

NOTA: No cal la instal·lació de màquines virtuals DOS com FreeDOS o DOSBox. Funciona sota Windows 7. Per compilar el codi font fa falta MASM32 i LINK16. Al codi font hi ha les instruccions per realitzar aquesta compilació.

Ara torno a la meva vida normal...

Afegir entrada al boot de Windows Server 2008 R2

Objectiu:

Disposar d’entrades extra al boot de Windows Server 2008 R2 mitjançant la comanda bcdedit.exe.

Procediment:

El procediment no és tant trivial com editar l’arxius boot.ini de versions anteriors de windows però es pot arribar a claudicar que el mètode actual és més robust.

Primer s’ha d’obrir un terminal amb permisos elevats, és a dir, executar el cmd.exe com a administrador. Després podem executar el següent per afegir una nova entrada amb opcions extra:

$ bcdedit # Mostra l'estat actual
$ bcdedit /copy {current} /d "Windows Server 2008 R2 - NoGPLPV"
$ bcdedit /set {ID} loadoptions nogplpv #ID Correspont a la nova entrada creada en el pas anterior
$ bcdedit # Verificar

En el moment d’arrencar la màquina la nova entrada ja estarà disponible. Si no se n’escull cap el sistema arrencarà amb l’entrada per defecte.

Creació d’una màquina virtual model per a Xen

Objectiu:

Quan és necessari crear un munt de màquines virtuals sovint ens interessa tenir-ne una que estigui ja preparada i només haver de copiar-la i adaptar-la a les noves necessitats. Utilitzant virtualització això esdevé una tasca força simple i alhora permet un ràpid desplegament de nous serveis amb un cost ridícul.

Aquest petit tutorial explica com preparar una màquina virtual Squeeze (6.0) mitjançant l’instal·lador propi de Debian i deixar-la llesta per a ser clonada en el futur.

Continua llegint

Xen 4.0 sobre Debian Lenny (5.0)

Objectiu:

Disposar d’un entorn de virtualització Xen amb la versió 4.0.0 sobre un Debian Lenny, versió 5.0.

Des de la versió 4.0.0 de Xen s’utilitza per defecte les pv_ops del kernel. Així doncs ens farà falta un kernel que les suporti. Veurem tot seguit com aconseguir-lo.

Procediment:

Partim de la base que tenim un Debian Lenny completament actualitzat tal i com s’explica en aquesta entrada anterior.

El codi font de Xen està disponible a la seva pàgina web: http://www.xen.org/products/xen_source.html

Per obtenir el codi fem:

$ cd /usr/src
$ wget http://bits.xensource.com/oss-xen/release/4.0.0/xen-4.0.0.tar.gz

Continua llegint