Je sais que c est le langage de programmation standard pour le développement du système d'exploitation, mais en dehors de la curiosité, je me demandais ce qui l'a précédé. Quel était le principal langage de programmation utilisé pour le développement du système d'exploitation avant C? P>
6 Réponses :
Cela dépend. L'AMIGA OS Par exemple a été écrit à l'origine dans une certaine mesure dans BCPL et vous imaginez que de nombreux systèmes d'exploitation anciens ont été écrits dans la langue de montage pure. P>
CP / M (qui est une sorte de prédécesseur de MS-DOS) a été écrit dans PL / M, mais MS-DOS a été écrit en assemblage pour des raisons de performance. Voici quelque chose sur MS-DOS: http://www.patersontech.com/dos/ Octets / insiches.htm p>
(édité, pas sûr de l'endroit où j'ai ramassé cette poubelle de fortrain.) p>
C'est la première fois que j'ai entendu quelqu'un suggérer que le CP / M a été écrit en Fortran. Les pièces substantielles ont été clairement écrites en langage de montage (c'est-à-dire que je suis sûr i> aucun compilateur n'a jamais généré ce code). On croit généralement que CP / M a été écrit dans PL / M (que je crois est probablement correct, bien que je ne puisse pas indiquer le code source pour le prouver).
Je crois que de nombreux ordinateurs populaires avaient des systèmes d'exploitation développés en montage. C64 et Apple II, par exemple. Les systèmes d'exploitation et les logiciels étaient assez simples à l'époque qui écrivant complètement la plupart des logiciels en montage ont été considérés comme la norme. Surtout lorsque le système d'exploitation n'avait qu'à implémenter des pilotes pour la spécification matérielle unique que les machines sont entrées.
-1, Foretran manque d'arithmétique de pointeur significatif qui le rend inutile pour la programmation du système aussi loin que je sache
@Jerry Yep. CP / M a été programmé à l'origine dans PL / M pour exécuter sur 8080 Micros en.wikipedia.org/wiki / Pl / m
@Belisarius: Bien que je pense que c'était probablement, un article sur Wikipedia me frappe à peine comme preuve.
Est-ce une liquidation? Et pourquoi les gens sont-ils en votant? Cet endroit devient un cesspit de désinformation. CP / M n'était pas et n'aurait pas pu être écrit en Fortran et 30SeConds sur Google prouverait que cette affirmation est des ordures absolues. L'AMIGA OS est sorti des années après la popularité généralisée.
@chris Post est en cours de dépassement (il a été voté en premier), ce qui montre au moins que la communauté est capable de filtrer des réponses incorrectes.
@Ebomike - pense que j'ai repéré la source de la confusion. S'avère que PL / M était lui-même écrit en Fortran - donc une seule étape retirée. cpm.z80.de/source.html
Merci Chris, ça a du sens! J'ai vu les informations de la Fortrane lorsque j'ai creusé dans les origines de MS-DOS pour ce post et n'a pas vraiment vérifié les informations. Je suis sûr que la foule de la Rabid sur mon cas :) J'étais un spectre Amiga et Zx me revenait dans les jours et je me souciais beaucoup du monde Dos. Eh bien, leçon apprise.
Il y avait beaucoup de systèmes avant que C a été utilisé pour UNIX (1969 ...). Voici une chronologie rare. Cliquez sur chaque système pour plus de détails. La plupart des premiers systèmes seraient mis en œuvre dans Assembleur. Une exception notable (non répertoriée dans la timeline) était l'avance de 1961 B5000 avec un O / S écrit en algol. P>
+1 pour mentionner le B5000. Mon premier travail de programmation réel était destiné à la criminalité et au système d'information pénale ciblé au B5900.
Il y avait beaucoup de systèmes de 16 bits dans lesquels l'interprète et la couche d'exploitation (assez primitif) ont été écrits. P>
Le système d'exploitation Mac d'origine a été écrit dans un mélange de 68k ASM et un Pascal légèrement étendu. P>
ADA a été utilisé pour écrire plusieurs systèmes d'exploitation. P>
Mais je devinerais que la langue dominante utilisée pour le développement du système d'exploitation avant C était la langue d'assemblage IBM 360. P>
Si quelqu'un veut chier comment il était de développer un système d'exploitation central à assembleur, c'est le livre: Amazon.com/Operating-Systems-stuart-Donovan-madnick/dp/... - Lisez-le uniquement pour la curiosité historique: D
Le système Mac d'origine a été écrit entièrement dans Assembleur. Cette machine était extrêmement liée à la mémoire. (Ce fut une très belle assembleuse, cependant. Et Pascal était disponible pour des applications depuis le début et utilisée pour le prototypage.)
En outre, Apple a utilisé jusqu'au commutateur Intel. Le micrologiciel ouvert est un système supérieur à l'EFI ...
Veuillez nommer un système d'exploitation significatif qui a été écrit avant C avant de devenir généralisé. La seule circonscription déplacée hors de son environnement de niche était lorsque le 8502 850 était utilisé dans une utilisation commune chez les ordinateurs domestiques (Apple, BBC Micro, Commodore, etc.), car les 6502 ont eu du mal à prendre en charge des langages compilés en raison de sa limite de pile de 256 octets (et quelques autres limitations architecturales). Le Jupiter Ace avait effectivement été construit comme son environnement utilisateur principal, car il disposait d'une mémoire insuffisante pour basique, mais le quatrième utilisé doit avoir été écrit à l'assembleur pas au début.
@chris: Il a déclaré que les systèmes primitifs et non des systèmes d'exploitation à domicile polyvalent populaires. Mais merci d'avoir nommé l'un des derniers. Pour ce qui est que "ait été écrit dans Assembleur pas au début" ... c'est ce qu'on appelle BootsTrapping et travaux plate-forme croisée assez bien car il ne distingue pas entre la compilation d'une fonction et de générer des données.
Systèmes d'exploitation "Vous voulez" être écrit dans Assembleur. Si vous commencez à partir de zéro, une fois que vous avez effectué les routines d'interruption, vous pouvez simplement continuer à aller et ne pas vous déplacer dans une interface de langue de haut niveau. P>
En outre, les assembleurs aiment évoluer. Une fois que vous avez couvert l'ensemble d'instructions spécifiées, il est pratique d'ajouter des noms d'alias pour des instructions qui servent de multiples fins. Suivant venir pseudo-instructions qui peuvent alias quelques instructions de machine. Ensuite, il est agréable d'avoir une installation extensible pour écrire des sous-programmes macro, afin de générer des sections arbitraires de code qui ressemblent à des instructions. (Contrairement aux macros C, cela peut souvent autoriser la commande de flux et la programmation semblable à un script.) Ensuite, il existe des règles de décomposition pour que des identifiants ne soient utilisés que dans un contexte particulier. P>
bit à base de peu, les langues évoluent. C ne tomba pas de l'air mince. Il a été précédé d'une génération ou de deux langues ( Algol, BCPL ) qui a évolué à partir d'assembleurs de haut niveau. De nombreuses langues de montage spécifiques à la plate-forme étaient en fait raisonnablement agréables. IBM fait toujours un assembleur moyen. (Bien sûr, avant cela n'était pas - si beaux assembleurs, et avant cela, les cartes de poinçon et les commutateurs à bascule.) P>
Plus récemment, gnu comme code> a donné un peu un mauvais nom en étant relativement primitif. Ne croyez pas la tactique effrayante, cependant. P>
Je pense que vous décrivez la biottrage et le développement du compilateur. Cela ne doit pas nécessairement signifier que le développement des systèmes d'exploitation aurait besoin d'une "bootstress" similaire. Souvent, le nouveau développement du système d'exploitation commence par le compilateur croisé exécuté sur une plate-forme existante. En outre, dans de nombreux cas, il s'agit de la finale du développement de systèmes d'exploitation, car il n'a aucun sens de créer un compilateur natif pour ledit système d'exploitation.
@Schedler: J'essaie de transmettre que les systèmes d'exploitation ne sont pas nécessairement écrits dans la dernière langue et que l'assembleur peut même être opportun. La bootstrappe apporte une machine à la fonctionnalité de pointe le plus rapidement possible. De quoi je parle est l'évolution initiale.
Après avoir utilisé plusieurs macro-assembleurs fabuleux de retour dans la journée (y compris une famille qui étant un produit de ma compagnie de retour lorsqu'un produit qui a couru sur un PDP-11 sous RT-11 signifiait quelque chose à certaines personnes), GNU Comme code> se sent presque mieux que de simplement coder directement dans les enregistrements de Motorola S pour le programmeur UV EPROM. (Désolé, la vieille string du codeur montre à nouveau.)
Oui, bien l'assembleur GNU était vraiment plus destiné à être un arrière-dernier pour le compilateur C qu'un assembleur sérieux pour les humains.
Burroughs était l'un des premiers à utiliser autre chose que l'assembleur pour le développement du système d'exploitation. Ils ont choisi un dialecte d'algol. p>
En 1965 Multis (Project Mac, financé par ARPA) La conception a commencé et PL / I a été choisi pour développer le système d'exploitation. En 1969, les multicomanes ont été ouverts pour une utilisation au MIT, mais il y avait des frustrations et des laboratoires Bell se sont retirées de Project Mac. Ken Thompson, Dennis Ritchie, Doug McIlroy et J. F. Ossanna ont continué à rechercher le Saint-Graal et l'Université (ultérieure UNIX) Development. P>
Au MIT, et plus tard Honeywell, PL / I était souvent utilisé. Je crois que le chiffre romain, j'ai été utilisé pour indiquer que c'était PL / 1, mais différent.
Au cours de la "guerre froide" des années 1970, il y avait un effort pour utiliser la sécurité des données et les caractéristiques de traitement parallèle de l'algol 68 pour créer Secure / Capacité Systèmes d'exploitation basés sur la capacité : P>
CAMBRIDGE CAP Ordinaire - Toutes les procédures constituant le système d'exploitation ont été écrites dans Algol 68C , bien qu'un certain nombre d'autres procédures protégées étroitement associées - telles qu'un paginateur - sont écrites dans BCPL . c.f. Microsoft P>
FLEX Machine - Le matériel a été personnalisé et microprogrammable, avec un système d'exploitation (modulaire ) Compilateur, éditeur, collecteur de déchets et système de dépôt Tout écrit à Algol 68RS. Un port Linux de cet algol68RS peut être téléchargé à partir de Compile peut être téléchargé à partir de Sourceforge: algol68toc . p>
/ * Portions intéressantes de DRA'S's Abstrait Abstrait spécifié algébratiquement TEN15 est toujours disponible, également de Sourceforge: Tendra (pour les mineux). TEN15 sert la langue intermédiaire de Dra pour les compilateurs et a évolué pour soutenir C et ADA. Apparemment, une tentative a été faite à Port FreeBSD / UNIX à l'aide de Tendra C compilateur C * / P>
ICL VME - Langage de programmation S3 était la langue de mise en œuvre du Système d'exploitation VME. S3 était basé sur l'algol 68 mais avec des types de données et des opérateurs alignés sur ceux proposés par le série ICL 2900 A >. Ce système d'exploitation est toujours utilisé comme VM Linux et compte quelque 100 000 utilisateurs. P>
Les ordinateurs de l'époque soviétique эльбрус-1 (elbrus-1) et Эльбрус-2 ont été créés en utilisant un langage de haut niveau uэль-76 (al-76) , plutôt que l'assemblée traditionnelle. Uэль-76 ressemble à Algol-68, la principale différence est les types de liaison dynamiques dans Uэль-76 pris en charge au niveau matériel. uэль-76 est utilisé pour l'application, le contrôle des travaux, la programmation système C.F. E2K-SPEC . P>
Peut-être que l'armée américaine faisait quelque chose de similaire quelque part. Quiconque? P>
Le jeune âge de si, des affiches me trompent. La majeure partie de C est Vintage 1972, tandis que (comme mentionné ci-dessous) CP / M est de 1973, ADA est 1977, MS-DOS est 1981, Mac est 1984, Amiga est 1985, etc.
Toutefois, le développement concurrentiel sur la programmation de la langue de l'Assemblée requise de PC avant les années de 1990, car les caractéristiques étaient limitées par la mémoire et les cycles à l'époque, pas de maintenabilité et de QA.
@Potatoswatter: Il y a deux façons de lire la question de l'OP: "Quelle était la langue principale utilisée pour le développement O / S avant que C a été utilisée pour UNIX en 1969?" ou "Quelle était la langue principale utilisée pour le développement O / S avant que les micres avaient tendance à utiliser c?". Les affiches plus anciennes assumeront l'ancienne affiches, les plus jeunes assumeront ce dernier.
@Je: J'ai 25 ans, mais je suis un buff buff; v) alors j'ai répondu dans d'autres termes ...
@Joe Snyder Micros? Qu'est-ce que c'est? :RÉ