Peut-on exécuter `yes> / dev / null? Nuire-t-il un Mac?

J'ai récemment couru yes > /dev/null pendant 3 minutes pour alimenter la batterie de mon Mac. Pendant ce time, la température a augmenté à 72 ° C et les ventilateurs ont varié jusqu'à 4000 tr / min. Je quitte immédiatement le process.

Devrais-je craindre que ce matériel endommagé ou la carte logique?

La sortingste vérité est: ceci peut "endommager un Mac ".

L'exemple réel donné dans le corps pour la question: il est fort probable que cela ne nuisait pas à l'appareil. Accordé.

Mais comme une réponse générale à la question dans le titre: Cela dépend de quel type de Mac on parle. Les conseils et le raisonnement donnés jusqu'à présent sur cette question ou dans les commentaires ne sont pas universellement vrais et peuvent être très dangereux! Il y a trop de confiance et de foi dans la seule conviction que le matériel Apple est juste le meilleur qu'il y a.

Il n'est tout simplement pas vrai que Apple concevait maintenant ou conçu dans le passé tous ses systèmes pour ne pas vraiment se nuire à la surchauffe. S'il est vrai que cela ne devrait pas se produire, il est vrai aussi que cela se produit . Et a fait:

Le principal exemple pour cela est le MacBook Pros, en particulier ceux de 2010-2012. Alors que la puce Intel qui est principalement stressée avec yes sur tous les threads pendant un time prolongé, cela permettra de gérer les températures élevées assez bien et même le operating system démarrera et augmentera Kernel_task pour ne rien utile, sauf aide à refroidir la machine, Une puce discrète sur le même heatpipe est la contrepartie vulnérable.

Soulignant ces systèmes inutilement, comme avec yes , accélère l'échec de la puce graphique RadeonGate. Il existe de nombreux exemples de questions sur le 8,2 sur le site Web le plus fortement utilisé. Cette erreur GPU est un problème thermique. Il existe même des guides là-bas sur la façon de tuer la machine en exécutant un très gros rendu 3D ou des repères pour un time. Ces systèmes ont été annoncés, mais pas adaptés pour, par exemple, le rendu ou le jeu. Les recours collectifs (seulement menacés) et les programmes d'extension de réparation parlent d'eux-mêmes.

Les instructions pour yes ont ce petit bijou de la page man :

L'utilisation de yes entraîne une utilisation de 100% du processeur, pour cette raison, elle est rarement utilisée autrement que pour des tests, par exemple, pour maximiser la CPU d'un ordinateur.

Ce qui signifie, non, vous n'aurez pas endommagé votre matériel. L'utilisation de la command yes est une façon d'utiliser tout (c'est-à-dire 100%) de votre CPU. Les symptômes que vous avez éprouvés (c'est-à-dire une augmentation de la température et l'augmentation qui en résulte du régime des ventilateurs) sont à prévoir dans ces circonstances. De plus, votre CPU "accéléra-t-elle" et finira par s'arrêter si son seuil thermique est dépassé pour éviter tout dommage.

La command yes écrit à plusieurs resockets une string à stdout, le caractère y par défaut. Redirection ( > ) à /dev/null provoque simplement l'oubli des données de stream. En d'autres termes, cela n'a pas d'effet durable sur l'état persistant de votre ordinateur, ce n'est pas une command dangereuse à travers cette lentille.

Puisque la command yes écrit une string à stdout sans aucune contrainte sur la vitesse de sortie, cela entraînera que la CPU atteigne l'utilisation maximale sur un kernel. Ceci est à l'origine de l'augmentation de la température du processeur et de l'augmentation de la vitesse du ventilateur associée.

Dans une machine moderne, en particulier une design bien conçue comme un ordinateur portable Apple, le matériel se protégera contre les dommages causés par la surchauffe. D'abord en augmentant la vitesse du ventilateur, puis en diminuant la vitesse de l'horloge du processeur, et finalement en arrêtant le processeur. Sans contourner intentionnellement ces fonctionnalités, votre matériel n'a pas surchauffé. La machine est bien.

Vous avez mentionné spécifiquement une température de 72 ° C. Ce n'est pas une température très élevée pour une CPU die. Un processeur mobile modeste, le i5-7260U, spécifie une température maximale autorisée de 100 ° C. Vous pouvez voir la spécification comme T_Junction dans la section des spécifications du package de cette page: http://ark.intel.com/products/97539/Intel-Core-i5-7260U-Processor-4M-Cache-up-to-3_40- GHz

Certes, comme d'autres l'ont dit: le processeur et le kernel ont leurs propres stratégies d'auto-préservation.

J'appendai un peu de la façon dont yes utilise les ressources informatiques.

Il vaut la peine de distinguer le comportement de BSD yes et GNU yes .
MacOS est un BSD, donc utilisera une (ancienne) dissortingbution de BSD yes .

  • MacOS (Darwin) yes code source
  • BSD yes code source
  • GNU yes code source

Une bonne discussion sur les différences existe à quel point GNU yes si rapide?

Et une discussion de cette discussion existe sur le fil d'actualité de Hacker du même nom .

BSD / macOS yes vraiment, exécutez simplement puts("y"); dans une boucle serrée.
GNU yes est … un peu plus sérieux. Il a des optimizations bien au-delà de la simple mise en memory tampon des E / S.