L'esecuzione di "yes / dev / null" può danneggiare un Mac?

33

Recentemente ho eseguito yes > /dev/null per 3 minuti per scaricare la batteria del mio Mac. Durante quel tempo, la temperatura salì a 72 ° C e le ventole girarono a 4000 RPM. Ho immediatamente lasciato il processo.

Dovrei avere paura di avere questo hardware danneggiato o la scheda logica?

    
posta bmike 15.08.2017 - 12:40
fonte

4 risposte

0

Certamente come altri hanno detto: la CPU e il kernel hanno entrambe le loro strategie di autoconservazione.

Aggiungerò alcuni aspetti riguardanti come yes utilizza le risorse del computer.

Vale la pena distinguere tra il comportamento di BSD yes e GNU yes .
macOS è un BSD, quindi userà una (vecchia) distribuzione di BSD yes .

Una buona discussione sulle differenze esiste in Com'è GNU yes così veloce?

E una discussione su quella discussione esiste sul thread Hacker News con lo stesso nome .

BSD / macOS yes esegue davvero solo puts("y"); in un ciclo stretto.
GNU yes è ... un po 'più serio. Ha ottimizzazioni ben oltre il semplice buffering di I / O.

    
risposta data 16.08.2017 - 17:24
fonte
53

Le istruzioni per yes hanno questo piccolo gioiello dalla pagina man :

Using yes results in 100% processor usage, for this reason it is rarely used other than for testing e.g. to max out a computer's CPU.

Il che significa, no, non avrai danneggiato il tuo hardware. L'utilizzo del comando yes è un modo per utilizzare tutto (vale a dire il 100%) della tua CPU. I sintomi che hai riscontrato (vale a dire un aumento della temperatura e il conseguente aumento del numero di giri del ventilatore) sono da aspettarsi in queste circostanze. Inoltre, la tua CPU si "ridurrà" e alla fine si spegne se viene superata la soglia termica per evitare danni.

    
risposta data 15.08.2017 - 13:03
fonte
7

Il comando yes scrive semplicemente ripetutamente una stringa su stdout, il carattere y per impostazione predefinita. Il reindirizzamento ( > ) a /dev/null causa semplicemente la dimenticanza dei dati del flusso. In altre parole, questo non ha alcun effetto duraturo sullo stato persistente del tuo computer, non è un comando dannoso attraverso questo obiettivo.

Dato che il comando yes scrive una stringa su stdout senza alcun vincolo sulla velocità di output, ciò farà sì che la CPU raggiunga il massimo utilizzo su un core. Questa è la causa dell'aumento della temperatura del processore e dell'aumento della velocità della ventola associato.

In una macchina moderna, in particolare una ben progettata come un laptop Apple, l'hardware proteggerà se stesso da danni dovuti al surriscaldamento. Innanzitutto aumentando la velocità della ventola, quindi diminuendo la velocità di clock del processore e infine arrestando il processore. Senza eludere intenzionalmente queste funzionalità, l'hardware non si è surriscaldato. La macchina sta bene.

Hai menzionato una temperatura di 72 ° C in particolare. Questa non è una temperatura molto alta per un die della CPU. Una CPU mobile modesta, l'i5-7260U, specifica una temperatura massima consentita di 100 ° C. Puoi vedere le specifiche come T_Junction nella sezione delle specifiche del pacchetto di questa pagina: link

    
risposta data 16.08.2017 - 03:23
fonte
-2

La triste verità è: questo può "Harm un Mac ".

L'esempio reale dato nel corpo per la domanda: questo molto probabilmente non ha danneggiato il dispositivo. Concesso.

Ma come risposta generale alla domanda nel titolo: Dipende dal tipo di Mac di cui stiamo parlando. Il consiglio e il ragionamento dati finora su questa domanda o nei commenti è non universalmente vero e può essere piuttosto pericoloso! C'è troppa fiducia e fiducia nella semplice credenza che l'hardware Apple sia il migliore che ci sia.

Semplicemente non è vero che Apple progetta ora o progetta in passato tutti i suoi sistemi per non danneggiare realmente se stessi attraverso il surriscaldamento. Se è vero che questo non dovrebbe accadere è anche vero che succede . E ha fatto:

Il primo esempio di questo sono i MacBook Pro, in particolare quelli del 2010-2012. Mentre il chip Intel che viene sollecitato principalmente con yes su tutti i thread per un tempo prolungato si guasta, gestisce le temperature elevate abbastanza bene e anche il sistema operativo si avvia e aumenta kernel_task per non fare nulla di utile tranne che per aiutare a raffreddare la macchina , il chip discreto sulla stessa heatpipe è la controparte vulnerabile lì.

Sottolineare inutilmente questi sistemi, come con yes , accelera l'errore del chip grafico RadeonGate. Ci sono numerosi esempi di domande per il 2011 8 più pesantemente effettuate su questo stesso sito web. Questo errore della GPU è un problema termico. Ci sono persino delle guide là fuori su come uccidere la macchina semplicemente eseguendo pesanti rendering 3D o benchmark per un periodo di tempo. Questi sistemi sono stati pubblicizzati ma non adatti per es. rendering o gioco. Le azioni legali di classe (solo in pericolo) e i programmi di estensione delle riparazioni parlano da soli.

    
risposta data 26.08.2017 - 15:11
fonte

Leggi altre domande sui tag