Perché la chiamata di sistema UNIX kill si chiama 'kill'?


41

Sono curioso della storia del nome, mi sembra che la chiamata di sistema "kill" avrebbe potuto essere chiamata "segnale", e la chiamata di sistema "signal" avrebbe potuto essere chiamata "handle".

Mi chiedevo se l'uso originale della chiamata di sistema avrebbe potuto essere semplicemente quello di uccidere un altro processo, e il suo utilizzo è stato forse ampliato a un meccanismo di invio del segnale più generale con lo sviluppo del sistema, ma questa è una speculazione da parte mia.

Qualcuno sa?

Risposte:


55

In effetti, lo scopo originale di un segnale era di uccidere il processo target. killè apparso in Unix 3rd Edition ; a quel tempo, era riservato al root e il processo è stato forzatamente ucciso (come SIGKILL oggi) e ha lasciato una discarica principale.

La 4a edizione di Unix ha aggiunto un argomento relativo al numero del segnale, nonché la signalchiamata di sistema complementare per impostare un gestore del segnale. Al momento, tutti i segnali hanno ucciso il processo target a meno che il processo target non avesse chiamato ignore.

Nel tempo, sono comparsi sempre più segnali, alcuni dei quali non hanno ucciso il processo di destinazione per impostazione predefinita. Ma il nome è rimasto.

Il comitato POSIX ha discusso della ridenominazione kill, poiché, come notate, non tutti i segnali sono destinati a terminare il processo di destinazione, ma a questo punto è stato radicato l'uso storico, quindi cambiarlo sarebbe stato più confuso che no.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.