Языки, используемые для разработки ОС до C

Я знаю, что C - это стандартный язык программирования для разработки операционной системы, но из любопытства мне было интересно, что ему предшествовало. Какой основной язык программирования использовался для разработки операционной системы до C?

9
задан None 28 August 2010 в 04:25
поделиться

6 ответов

В зависимости от обстоятельств. Операционная система Amiga, например, изначально была написана в определенной степени на BCPL, и вы можете себе представить, что многие древние операционные системы были написаны на чистом языке ассемблера.

CP/M (который является своего рода предшественником MS-DOS) был написан на PL/M, но MS-DOS была написана на ассемблере из соображений производительности. Вот кое-что по MS-DOS: http://www.patersontech.com/Dos/Byte/InsideDos.htm

(отредактировано, не знаю, где я взял этот фортрановский мусор.)

3
ответ дан 4 December 2019 в 07:46
поделиться

До того, как C был использован для Unix (1969...), существовало много систем. Вот скудная хронология. Нажмите на каждую систему, чтобы узнать подробности. Большинство ранних систем было реализовано на ассемблере.Заметным исключением (не указанным на временной шкале) был опережающий свое время 1961 B5000 с операционной системой, написанной на АЛГОЛе.

9
ответ дан 4 December 2019 в 07:46
поделиться

Берроуз был одним из первых, кто использовал что-то кроме ассемблера для разработки ОС. Они выбрали диалект Алгола.

В 1965 году началась разработка Multics (проект MAC, финансируемый ARPA), и для разработки ОС была выбрана PL/I. В 1969 году Multics был открыт для использования в Массачусетском технологическом институте, но возникли разочарования, и Bell Labs вышла из проекта MAC. Кен Томпсон, Деннис Ричи, Дуг Макилрой и Дж. Ф. Оссанна продолжали искать Святой Грааль, и началась разработка Unics (позже Unix).

История Multics

Отказ Multics?

Unix против Multics

4
ответ дан 4 December 2019 в 07:46
поделиться

Во время «холодной войны» 1970-х годов предпринимались попытки использовать функции безопасности данных и параллельной обработки ALGOL 68 для создания операционных систем на основе Secure/Capability. :

Компьютер Cambridge CAP — все процедуры, составляющие операционную систему, были написаны на ALGOL 68C , хотя ряд других тесно связанных защищенных процедур, таких как разбиение на страницы, написаны на BCPL. ср. Microsoft

Flex-машина — аппаратное обеспечение было заказным и микропрограммируемым, с операционной системой, (модульным) компилятором, редактором, сборщиком мусора и файловой системой, написанными на Algol 68RS. Linux-порт этого Algol68RS можно загрузить из compile можно загрузить с Sourceforge:algol68toc.

/* Интересно, что части DRA алгебраически заданной абстрактной машины Ten15 все еще доступны, также из Sourceforge:TenDRA (для minux). Ten15 служит промежуточным языком DRA для компиляторов и эволюционировал для поддержки C и Ada. По-видимому, была предпринята попытка портировать FreeBSD/Unix с помощью TenDRA компилятора C */

ICL VME - язык программирования S3 был реализацией язык операционной системы VME. S3 был основан на ALGOL 68, но с типами данных и операторами, согласованными с теми, которые предлагаются в серии ICL 2900.Эта ОС до сих пор используется в качестве виртуальной машины Linux и насчитывает около 100 000 пользователей.

ЭВМ советского времени Эльбрус-1 (Эльбрус-1) и Эльбрус-2 были созданы с использованием языка высокого уровня уЭль-76 (АЛ-76), а не традиционная сборка. уЭль-76 похож на Алгол-68. Основное отличие заключается в том, что типы динамической привязки в уЭль-76 поддерживаются на аппаратном уровне. уЭль-76 используется для приложений, управления заданиями, системного программирования c.f. e2k-спецификация.

Возможно, американские военные где-то делали что-то подобное. Есть кто?

5
ответ дан 4 December 2019 в 07:46
поделиться

Операционные системы "не хотят " для написания на ассемблере. Если вы начинаете с нуля, как только вы закончите процедуры обработки прерываний, вы можете просто продолжать работу, не прибегая к языковому интерфейсу высокого уровня.

Кроме того, ассемблеры любят развиваться. После того, как вы ознакомились с указанным набором инструкций, удобно добавить псевдонимы для инструкций, которые служат нескольким целям. Далее идут псевдоинструкции, которые могут дублировать пару машинных инструкций. Кроме того, хорошо иметь расширяемые средства для написания макросов, чтобы генерировать произвольные участки кода, которые выглядят как инструкции. (В отличие от макросов C, это часто может позволить управление потоком и программирование, подобное сценариям.) Кроме того, существуют правила области действия, гарантирующие, что идентификаторы используются только в определенном контексте.

Шаг за шагом языки развиваются. C не появился из воздуха. Ему предшествовало одно или два поколения языков (Algol, BCPL), которые произошли от ассемблеров высокого уровня.Многие языки ассемблера для конкретных платформ на самом деле были довольно хорошими. IBM по-прежнему производит средний ассемблер. (Конечно, до этого были не очень хорошие ассемблеры, а до этого были перфокарты и тумблеры.)

Совсем недавно GNU as принесла ассемблеру немного дурную славу, будучи относительно примитивно. Однако не верьте тактике запугивания.

3
ответ дан 4 December 2019 в 07:46
поделиться

Было много 16-разрядных систем Forth, в которых интерпретатор и (довольно примитивный) уровень ОС были написаны на Forth.

Первоначальная Mac OS была написана на смеси 68k ASM и слегка расширенного Pascal.

ADA использовался для написания нескольких ОС.

Но я предполагаю, что доминирующим языком, используемым для разработки ОС до C, был язык ассемблера IBM 360.

4
ответ дан 4 December 2019 в 07:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: