ZeOS
Aquest article podria incomplir els criteris generals d'admissibilitat. |
Família de SO | Unix-like |
---|---|
Basat en | Linux 2.4 |
Característiques tècniques | |
Escrit en | C i llenguatge assemblador |
ZeOS és l'esquelet d'un sistema operatiu senzill per l'arquitectura x86 de 32 bits basat en el kernel de Linux 2.4. El sistema operatiu ZeOS fou inicialment desenvolupat per un grup d'estudiants de la Facultat d'Informàtica de Barcelona (FIB), amb el suport de professorat del departament d'Arquitectura de Computadors (AC).[1] És un sistema operatiu utilitzat en l'àmbit educatiu de la FIB per a l’aprenentatge i familiarització dels conceptes bàsics dels sistemes operatius.[2]
Característiques
[modifica]El sistema operatiu ZeOS ha estat implementat en múltiples ocasions amb requeriments lleugerament diferents, de forma que cada versió té les seves característiques pròpies.
Les característiques comunes inclouen:
- Gestió multiprocés (no es diferencia entre threads i processos) amb planificació (scheduling) Round Robin.[3]
- Memòria dinàmica a nivell de sistema (per la gestió de processos).[4]
- Memòria compartida[5]
- Paginació[6]
- Separació d'espai d'usuari (el userspace) i espai de sistema (el kernelspace).[7]
- Crides a sistema (syscalls) estàndards de UNIX: read, write, fork, exit, getpid.[7]
- Crides a sistema pròpies de ZeOS: gettime,[8] getstats[9]
- Llibreria estàndard de C reduïda (libc.c) que encapsula les crides a sistema, i conté funcions bàsiques de tractament d'enters i cadenes de caràcters.[10]
Característiques que apareixen en algunes de les versions:
- Semàfors
- Un intèrpret de comandes (la shell)
- Suport de ratolí i teclat PS/2
- Abstracció dels dispositius (devices), en concret, la terminal (un dispositiu tty virtual).
- Altres crides a sistema estàndards de UNIX: open, close, dup, wait.
Compilació
[modifica]El sistema operatiu no conté un sistema de fitxers, de forma que el codi d'usuari s'inclou dins la imatge del sistema operatiu.[11] Això es fa mitjançant el programa build,[12] que s'utilitza un cop compilats el codi de sistema i el codi d'usuari per separat.
Execució
[modifica]El sistema operatiu conté un bootloader[13] d'una sola etapa (a bootsect.S)[10] que carrega el sistema operatiu complet a memòria[13] i salta a la funció main del sistema (a system.c),[10] la qual inicialitza el hardware (GDT, IDT i TSS), la memòria, els dispositius, el planificador, els processos bàsics del sistema (idle_task, i task_1), i seguidament entra en mode d'usuari i salta a la funció main de l'usuari[13] (a user.c).
Referències
[modifica]- ↑ «Sistemes Operatius Avançats». Departament d'Arquitectura de Computadors.
- ↑ Segura Salvador, Albert Port de ZeOS a arquitectura ARM: Raspberry Pi, 27-06-2014, pàg. 7.
- ↑ «Process scheduling». ZeOS, pàg. 56.
- ↑ «Process creation and identification». ZeOS, pàg. 54-56.
- ↑ ZeOS, pàg. 48. «Both logical and physical pages for system and user code are shared»
- ↑ «Memory management». ZeOS, pàg. 44-46.
- ↑ 7,0 7,1 «Programming system calls». ZeOS, pàg. 29-34.
- ↑ «Gettime system call». ZeOS, pàg. 39.
- ↑ «Statistical information of processes». ZeOS, pàg. 58-60.
- ↑ 10,0 10,1 10,2 «Files». ZeOS, pàg. 21.
- ↑ «ZeOS binary image». ZeOS, pàg. 9.
- ↑ «Image construction». ZeOS, pàg. 11.
- ↑ 13,0 13,1 13,2 «Boot process». ZeOS, pàg. 10-11.