libce v3.0.5
Libreria di Calcolatori Elettronici
Caricamento in corso...
Ricerca in corso...
Nessun risultato
libce

Questa libreria contiene alcune funzioni per l'accesso a basso livello ad una macchina PC-compatibile (in particolare, una macchina QEMU con processore Intel/AMD a 64 bit, bus PCI a 32 bit e periferiche ISA).

La libreria è usata per i seguenti scopi durante il corso di Calcolatori Elettronici:

  • per supportare un boot loader (boot64, incluso nella libreria stessa) che porta il processore nella modalità a 64 bit partendo dal modo protetto a 32 bit; in questo caso la libreria è compilata a 32 bit;
  • per supportare i moduli del nucleo introdotto nella seconda parte del corso (sia il modulo sistema, sia i moduli io e utente);
  • per supportare programmi che accedono a basso livello senza usare il nucleo. Questi programmi sono detti "bare" (nudi) nella documentazione, e durante il corso si distinguono in:
    • esempiIO, piccoli programmi che sono utilizzati per spiegare il funzionamento delle periferiche ISA, del bus PCI e delle interruzioni;
    • esercizi di traduzione da C++ ad Assembler (soprattutto nel caso in cui la macchina ospite non sia Intel/AMD, ma sia ad esempio un Mac M1/M2/...);

Si noti che boot64 viene usato per il boostrap sia del nucleo che dei programmi bare.

I file nella directory bare sono invece specifici dei programmi bare e non sono usati dai moduli del nucleo.

Per compilare la libreria è sufficiente eseguire make. Si otterranno i seguenti file:

  • boot.bin (il bootloader boot64)
  • libce32.a (libreria compilata a 32 bit, usata per costruire boot.bin)
  • libce64.a (libreria compilata a 64 bit, usata per tutto il resto)

I file oggetto della libreria si trovano in build, suddivisi in varie sottodirectory.

La libreria contiene anche gli script compile, boot e debug e un file libce-debug.py che contiene alcune estensioni per gdb, usate da debug.