Les experts en logiciels ont ignoré les aspects économiques du matériel
... ou "Moore avait raison et ils avaient tous deux tort"
La plus grande chose qui a été négligée dans ce débat a été l’impact de la technologie de fabrication des processeurs et de l’économie, entraîné par la réduction de la taille des transistors exprimée dans la loi de Moore (ce qui n’est pas surprenant car ils en savaient beaucoup sur le matériel du Fabrication de CPU ou économie). Les coûts de fabrication fixes qui sont amortis sur les CPU (par exemple, la conception ISA, la conception de CPU et les installations de production de CPU) ont rapidement augmenté, augmentant ainsi la valeur des économies d'échelle; avec des coûts de processeur par unité (en termes de "rapport qualité-prix" et de "rendement pour le watt"), le coût d'un processeur ne doit pas nécessairement être amorti sur une sélection aussi étendue de fonctions pour offrir une valeur ajoutée, de sorte que l'informatique dans les produits avec fonction fixe a explosé; Les budgets des transistors CPU ont augmenté de manière exponentielle,
1. L'échelle de l'unité centrale l'emporte sur la diversité de l'unité centrale
L'importance des économies d'échelle a permis de faire en sorte que les avantages d'un processeur ISA / CPU ciblant un marché plus vaste (et donc plus large) l'emportent sur les avantages potentiels des choix de conception qui restreignent le marché d'un processeur ISA / CPU. Les OS peuvent prendre en charge des parts de marché de plus en plus grandes par processeur ISA / CPU pris en charge. Par conséquent, les exercices de portage sont peu nécessaires (voire nuls) pour permettre à un écosystème OS de prospérer. Les domaines problématiques Les cibles d'ISA et de CPU ont tendance à être si larges qu'elles se chevauchent généralement. Ainsi, pour tout logiciel au-delà d'un compilateur, la taille des exercices de portage a également diminué. On peut dire que Torvalds et Tanenbaumsurestimé la partie de la conception et de la mise en œuvre du noyau qui doit maintenant être spécifique à ISA ou même au processeur. Comme Tanenbaum l'a décrit, les noyaux d'OS modernes font abstraction des distinctions entre les CPU et les ISA. Cependant, le code spécifique au processeur / ISA dans les systèmes d'exploitation modernes est beaucoup plus petit qu'un micro-noyau. Plutôt que de mettre en œuvre le traitement / ordonnancement des interruptions, la gestion de la mémoire, la communication et les E / S, ces bits non portables ne représentent qu'une infime partie de la mise en œuvre de ces services, même la grande majorité de l'architecture de ces fonctions de base du système d'exploitation est portable.
2. Open Source a remporté la bataille, mais a perdu la guerre
Plus rentable signifie qu'une part plus importante de l'informatique est réalisée par des produits à fonction fixe, où la possibilité de modifier le produit ne fait pas partie de la proposition de valeur pour le client. Ironiquement, l’open source s’épanouit dans ces dispositifs à fonction fixe, mais le plus souvent, les utilisateurs de ces produits tirent davantage parti de ces libertés, plutôt que les utilisateurs finaux (ce qui était encore vrai du marché du logiciel à l’époque: Microsoft était un gros consommateur de logiciels open source, mais leurs clients ne l'étaient pas). De même, on pourrait affirmer que l'open source a plus de mal à occuper les postes de travail généraux que partout ailleurs, mais à mesure que le Web et le cloud computing se développaient, l'informatique de bureau était de plus en plus utilisée à des fins plus étroites (principalement par le biais d'un navigateur), les autres fonctions étant exécutées dans le nuage (ironiquement, principalement sur des plates-formes open source). En bref: l'open source est vraiment propriétaire de l'espace informatique à usage général, mais le marché est devenu plus sophistiqué; moins souvent que les emballages de produits informatiques s'arrêtent à la fonction d'usage général, mais continuent pour les produits destinés aux fonctions fixes, où une grande partie de l'avantage de l'informatique à source ouverte est en contradiction avec les objectifs du produit.
3. 2 n Croissance signifie fixe k L'épargne n'est pas importante
La croissance exponentielle des budgets de transistors a conduit à la prise de conscience du fait que le coût du budget de transistors d’une architecture CISC est presque totalement fixe. L’avantage stratégique de RISC réside dans le fait qu’il élimine la complexité du jeu d’instructions de la CPU au compilateur (sans doute en partie motivée par le fait que les rédacteurs de compilateur tiraient un bien meilleur profit des ISA complexes que du codage par les développeurs humains dans l’assemblage, mais les compilateurs pouvaient beaucoup plus facilement raisonner. mathématiquement sur, et donc exploitent, un ISA plus simple); les économies de transistors obtenues pourraient ensuite être appliquées à l'amélioration des performances du processeur. La mise en garde était que les économies de budget des transistors générées par un ISA plus simple étaient en grande partie fixes (et que la conception du compilateur comportait également des frais généraux). Alors que cet impact fixe constituait une énorme partie du budget de la journée, Comme on peut l’imaginer, il ne faut que quelques cycles de croissance exponentielle pour que l’impact devienne trivial. Cet impact en déclin rapide, combiné à l'importance croissante susmentionnée de la monoculture de CPU, ne laissait qu'une très petite fenêtre d'opportunité pour toute nouvelle ISA de s'établir. Même là où les nouvelles ISA ont réussi, les ISA "RISC" modernes ne sont pas les ISA orthogonales décrites dans la stratégie RISC, car la croissance continue des budgets de transistors et l’applicabilité plus large du traitement SIMD en particulier ont encouragé l’adoption de nouvelles instructions adaptées à des fonctions spécifiques. Cet impact en déclin rapide, combiné à l'importance croissante susmentionnée de la monoculture de CPU, ne laissait qu'une très petite fenêtre d'opportunité pour toute nouvelle ISA de s'établir. Même là où les nouvelles ISA ont réussi, les ISA "RISC" modernes ne sont pas les ISA orthogonales décrites dans la stratégie RISC, car la croissance continue des budgets de transistors et l’applicabilité plus large du traitement SIMD en particulier ont encouragé l’adoption de nouvelles instructions adaptées à des fonctions spécifiques. Cet impact en déclin rapide, combiné à l'importance croissante susmentionnée de la monoculture de CPU, ne laissait qu'une très petite fenêtre d'opportunité pour toute nouvelle ISA de s'établir. Même là où les nouvelles ISA ont réussi, les ISA "RISC" modernes ne sont pas les ISA orthogonales décrites dans la stratégie RISC, car la croissance continue des budgets de transistors et l’applicabilité plus large du traitement SIMD en particulier ont encouragé l’adoption de nouvelles instructions adaptées à des fonctions spécifiques.
4. Simple: séparation des préoccupations. Complexe: Séparation de l'espace d'adressage.
Le noyau Linux moderne (comme la plupart des autres noyaux) correspond à la définition plutôt vague du macro-noyau et non à la définition plutôt étroite du micro-noyau. Cela dit, avec son architecture de pilotes, ses modules chargés de manière dynamique et ses optimisations de multitraitement qui rendent les communications spatiales dans le noyau de plus en plus similaires à la transmission des messages par un micro-noyau, sa structure ressemble plus à une conception de micro-noyau (telle qu'incarnée par Minix) qu'à la conception de macro-noyau (telle qu'incarnée par la conception de Linux au moment de la discussion). À la manière d'un micro-noyau, le noyau Linux fournit une communication généralisée, la planification, la gestion des interruptions et la gestion de la mémoire pour tous les autres composants du système d'exploitation. ses composants ont tendance à avoir un code et des structures de données distincts. Alors que les modules sont chargés dynamiquement, Des morceaux de code portable faiblement couplés, qui communiquent via des interfaces fixes, n'utilisent plus une propriété des micro-noyaux: ils ne sont pas des processus d'espace utilisateur. À la fin, la loi de Moore garantissait que les problèmes liés au matériel, tels que la portabilité (une préoccupation de Tanenbaum) et la performance (une préoccupation de Torvalds), diminuaient, mais que les problèmes de développement de logiciels devenaient d'une importance primordiale. Les avantages non réalisés restants qu'une séparation d'espaces d'adresses pourrait fournir sont compensés par les bagages supplémentaires imposés au logiciel du système d'exploitation en raison de limitations de conception et de la complexité accrue des interfaces de composants. s Law garantissait que les problèmes liés au matériel, tels que la portabilité (une préoccupation de Tanenbaum) et les performances (une préoccupation de Torvalds), diminuaient, mais que les problèmes de développement de logiciels devenaient d'une importance primordiale. Les avantages non réalisés restants qu'une séparation d'espaces d'adresses pourrait fournir sont compensés par les bagages supplémentaires imposés au logiciel du système d'exploitation en raison de limitations de conception et de la complexité accrue des interfaces de composants. s Law garantissait que les problèmes liés au matériel, tels que la portabilité (une préoccupation de Tanenbaum) et les performances (une préoccupation de Torvalds), diminuaient, mais que les problèmes de développement de logiciels devenaient d'une importance primordiale. Les avantages non réalisés restants qu'une séparation d'espaces d'adresses pourrait fournir sont compensés par les bagages supplémentaires imposés au logiciel du système d'exploitation en raison de limitations de conception et de la complexité accrue des interfaces de composants.
Fait intéressant, ce qui a été une tendance forte est l’émergence de l’hyperviseur, qui, tout comme les micro-noyaux, fait abstraction du matériel. Certains prétendent que les hyperviseurs sont des micro-noyaux. L’architecture de l’hyperviseur est différente, car les responsabilités qui incombent à des micro-noyaux sont gérées par les noyaux "invités", au sommet desquels se trouvent des hyperviseurs multiplexés.
En conclusion: l'avenir favorise ceux qui adoptent la sémantique la moins stricte
* .. ou "Nullpickers sucer à prédire l'avenir"
Dans la pratique, une grande partie du bien / du mal dans le débat est une question de sémantique (et cela faisait partie des arguments de Torvalds et IMHO Tanenbaum n’a pas pleinement compris). Il est difficile d’établir des définitions précises de l’avenir car de nombreux facteurs en dehors de l’argument peuvent intervenir. Une sémantique plus souple signifie que vos prédictions sont une cible plus grande sur le tableau de fléchettes que les autres gars, vous offrant ainsi de meilleures chances. Si vous ignorez la sémantique, les arguments avancés par Torvalds et Tanenbaum étaient corrects à propos de beaucoup de choses et erronés à propos de très peu de choses.
tl; dr
La plupart des ISA ne correspondent pas à la définition sémantique de RISC, mais exploitent la plupart des avantages de conception qui caractérisaient les CPU RISC à l'époque. la quantité de système d'exploitation spécifique au processeur est inférieure à celle attendue par Tanenbaum, sans parler de Torvalds; l'open source domine l'informatique à usage général, mais les consommateurs de ce marché sont principalement ceux qui intègrent l'informatique à des produits à fonction fixe, où une grande partie des avantages des logiciels open source ne sont pas réalisés; Séparer la fonction du système d'exploitation entre les espaces d'adresses ne s'est pas avéré bénéfique, mais la séparation de la fonction du système d'exploitation entre le matériel "virtuel" l'a été. Si vous voulez affirmer que vos prédictions se sont avérées correctes, laissez-vous le plus de marge possible pour les manœuvres sémantiques, tout comme M. Torvalds.
PS Une dernière observation ironique: Linus Torvalds est l’un des plus fervents partisans de la conservation du plus grand nombre possible de nouvelles fonctionnalités dans l’espace utilisateur et hors du noyau Linux.