Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> sistemi >> Unix >> .

Perché i comandi UNIX sono divisi in comandi interni ed esterni?

I comandi UNIX sono divisi in comandi interni (integrati) e esterni per diversi motivi chiave relativi all'efficienza, alla sicurezza e alla progettazione del sistema:

* Efficienza: I comandi interni fanno parte della shell stessa (ad esempio, `bash`,` zsh`). Sono compilati direttamente nell'eseguibile della shell, il che significa che la shell non ha bisogno di dedicare del tempo a cercare nel filesystem per la loro posizione. Ciò rende la loro esecuzione significativamente più veloce dei comandi esterni. Comandi semplici come `cd`,` pwd`, `echo` e` usit` sono candidati perfetti per questa ottimizzazione.

* Sicurezza: I comandi interni possono essere più strettamente controllati dalla shell. Ciò consente migliori controlli di sicurezza e previene alcune attività dannose. I comandi esterni, al contrario, devono essere localizzati ed eseguiti, introducendo una potenziale vulnerabilità se un programma dannoso viene mascherato come comando legittimo.

* Flessibilità e manutenibilità: La separazione consente la modularità. I comandi esterni sono eseguibili separati che risiedono nelle directory specificate dalla variabile di ambiente `percorso 'della shell. Ciò consente aggiornamenti più facili, aggiunta di nuovi comandi e rimozione di comandi obsoleti senza ricompilare l'intera shell. È possibile aggiungere facilmente nuove funzionalità semplicemente installando nuovi eseguibili.

* Gestione delle risorse: I comandi interni hanno generalmente un sovraccarico inferiore perché non richiedono una creazione di processo separata per l'esecuzione. I comandi esterni, d'altra parte, creano un nuovo processo, portando ad un aumento del consumo di risorse (memoria e tempo della CPU). Questa differenza è particolarmente evidente quando si tratta di un gran numero di comandi.

* Gestione dello spazio dei nomi: I comandi interni hanno uno spazio dei nomi dedicato all'interno della shell. I comandi esterni hanno il proprio spazio dei nomi e potrebbero aver bisogno di un'attenta gestione per evitare conflitti. La divisione garantisce un migliore controllo dello spazio dei nomi e riduce le potenziali collisioni di denominazione.

In breve, la divisione fornisce un equilibrio tra velocità, sicurezza, flessibilità e gestione delle risorse. I comandi interni gestiscono in modo efficiente attività frequenti e semplici, mentre i comandi esterni forniscono ampie funzionalità e manutenibilità.

 

sistemi © www.354353.com