Vai al contenuto

Process control block (Unix)

Da Wikipedia, l'enciclopedia libera.

Il Process control block nei sistemi Unix e Unix-like include tra le altre le seguenti informazioni.

Attributi non ereditati

Questi attributi non sono ereditati dai processi figli creati tramite fork()

  • PID: identifica univocamente il processo nel sistema.
  • parent parent PID: identifica il processo padre

Attributi ereditati

I processi figli creati tramite fork() ereditano una copia dei seguenti attributi, e solo alcuni di essi (effective UID, effective GID, saved effective UID e saved effective GID) sono poi modficati da invocazioni di exec() e derivate:

  • PGID: identifica il gruppo di processi di cui questo processo fa parte, ed anche il processo leader del gruppo. Tutti i processi possono modificarselo (con dei limiti) tramite la chiamata di sistema setpgrp()
  • SID (Session ID): identifica la sessione di cui questo processo fa parte. Tutti i processi possono modificarselo (con dei limiti) tramite le chiamate di sistema setsid() e setpgrp()
  • real UID corrente: identifica l'utente reale proprietario del processo. I processi privilegiati possono modificarselo tramite le chiamate di sistema setuid() e setreuid().
  • real GID corrente: identifica il gruppo principale reale. I processi privilegiati possono modificarselo tramite le chiamate di sistema setgid() e setregid().
  • effective UID corrente: identifica l'utente da usare ai fini dei permessi. Normalmente è identico al real UID, ma può essere diverso in caso di programmi set User ID. I processi privilegiati possono modificarselo tramite le chiamate di sistema setuid() e setreuid()
  • effective GID corrente: identifica il gruppo principale da usare ai fini dei permessi. Normalmente è identico al real GID, ma può essere diverso in caso di programmi set User ID. I processi privilegiati possono modificarselo tramite le chiamate di sistema setgid() e setregid()
  • saved effective UID: è il valore dell'effective UID dopo l'ultimo caricamento di un programma tramite exec(). I processi privilegiati possono modificarselo tramite la chiamata di sistema setuid()
  • saved effective GID: è il valore dell'effective GID dopo l'ultimo caricamento di un programma tramite exec(). I processi privilegiati possono modificarselo tramite la chiamata di sistema setgid()
  • umask corrente: indica i permessi da negare in fase di creazione di un nuovo File o Directory. Tutti i processi possono modificarsela tramite la chiamata di sistema umask()
  • l'elenco dei GID supplementari (in numero dipendente dall'implementazione). I processi privilegiati possono modificarsela tramite la chiamata di sistema setgroups()
  • l'elenco dei file descriptor correntemente aperti
  • puntatore all'Inode della directory corrente. Tutti i processi possono modificarselo tramite la chiamata di sistema chdir()
  • puntatore all'Inode della directory da considerare come radice del file system. I processi privilegiati possono modificarselo tramite la chiamata di sistema chroot()
  • puntatore alla struttura che rappresenta il terminale controllante. Può anche non esservi alcun terminale controllante associato al processo.
  • puntatori ai gestori dei segnali