Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Свободное общение _ ОС

Автор: Гость 1.12.2006 0:05

А на каких языках пишут ОС?

Автор: Altair 1.12.2006 2:51

Различные компоненты на разных.

Цитата
Операцио́нная систе́ма — основной вид системного ПО, комплекс программ, обеспечивающий управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит.

Assembler, C, C++
Т.е. в основном низкоуровневые языки.

Автор: Archon 1.12.2006 2:58

lol.gif lol.gif lol.gif На всяких.

Нет ну если серьёзно smile.gif)), знание ассемблера - обязательно, а так... язык особо не важен, главное - хорошее знание принципов работы компа.

Автор: lapp 1.12.2006 12:57

Как известно, язык Си был создан в процессе создания Unix и специально для этой цели smile.gif
Вот коротенькая http://www.computer-museum.ru/histsoft/unix.htm одного моего приятеля..
Кстати, там упоминается кроссплатформенная компиляция, которая сильно выручает, когда для нового процессора программные средства еще не созданы.

Автор: xds 1.12.2006 13:10

Цитата(Altair @ 1.12.2006 5:51) *

Assembler, C, C++
Т.е. в основном низкоуровневые языки.
На перечисленных в основном и пишутся. Только, что такое низкоуровневые языки (или в основном низкоуровневые)? wink.gif

Offtopic:
Цитата
Вот коротенькая заметка одного моего приятеля..

Цитата
Но в PDP 11 команды представлялись байтами...

В PDP-11 команды представляются словами по два байта. Литералы и адреса также хранятся в виде слов.

Автор: Altair 1.12.2006 14:00

Цитата
Только, что такое низкоуровневые языки (или в основном низкоуровневые)?

Позволяющие получить низкоуровневый доступ к оборудованию.

Автор: Гость 1.12.2006 14:50

Цитата(Altair @ 1.12.2006 10:00) *

Позволяющие получить низкоуровневый доступ к оборудованию.

Уровень языка определяется не этим, а степенью абстрагирования от физической системы представления данных и команд. xds абсолютно прав, нельзя ставить Си и Ассемблер на один уровень, и тут тебе не вывернуться, Sir Altair.. smile.gif Ассемблер - существенно машинозависимый язык, что и определяет его уровень, как более низкий, чем Си. А уровень доступа к оборудованию - понятие другое.

PS
За слова приятелей не отвечаю smile.gif. Хотя да, невнимательно я читал..

Фу-ты ну-ты, опять забыл залогиниться..

Автор: xds 1.12.2006 14:59

Цитата
Позволяющие получить низкоуровневый доступ к оборудованию.

Тогда подходит и Бейсик - в некоторых реализациях...

Автор: Altair 1.12.2006 15:19

Цитата
Уровень языка определяется не этим, а степенью абстрагирования от физической системы представления данных и команд

И этим тоже!
Определение из ВикиПедии:
Цитата
Высокоуровневый язык программирования — язык программирования, разработанный для быстроты и удобства использования программистом. Слово «высокоуровневый» здесь означает, что язык предназначен для решения абстрактных высокоуровневых задач и оперирует не инструкциями к оборудованию, а логическими понятиями и абстракцией данных.


Если язык высокоуровневый, то он НЕ оперирует инструкциями к оборудованию.
Язык низкоуровневый.
Низкоуровневый язык оперирует инструкциями к оборудованию.

Цитата
нельзя ставить Си и Ассемблер на один уровень

Очень даже можно! Си изначально строился на основе ассемблера и во многом походит на него!

Автор: xds 1.12.2006 15:37

Всё, я молчу - грядёт флейм...

Автор: Altair 1.12.2006 16:12

Холиварс

Автор: hiv 1.12.2006 17:05

Иногда пишут на языке FORT.
К стати он к ассемблеру ближе чем С и до сих пор жив.
А С++ я бы не стал относить к низкоуровневым, чего стоит одна стандартная библиотека с шаблонами и перегрузкой операторов и т.д.
Операционки счас в основном пишут на С++ + Ассемблер. К стати UNIX подход считаю правильным - в начале пишется компилятор под проц (либо дописывается поддержка проца к компилятору на той ОС которая есть) а потом на нем создается ОС (либо компилируется та что есть smile.gif )

Автор: lapp 5.12.2006 10:22

Цитата(Altair @ 1.12.2006 13:12) *

Холиварс

Альтаир, при всем моем уважении - откуда в тебе столько воинственности?.. blink.gif Ну, не работает мордобой в интеллектуальной области, пойми - он всегда обречен на поражение..
Статья в Википедии, на которую ты ссылаешься, выглядит довольно дилетантской (Википедия была и будет не истиной в последней инстанции, а источником информации для размышления..). В английской версии статья http://en.wikipedia.org/wiki/High_level_programming_language выглядит несколько убедительнее. Вот отрывок из нее, который, во-первых, убедил меня, что я был отчасти не прав, а во-вторых, надеюсь, способен примирить все враждующие стороны и закрыть спор smile.gif.
Цитата
Note that the terms "high-level" and "low-level" are inherently relative. Originally, assembly language was considered low-level and COBOL, C, etc. were considered high-level, as they allowed the abstractions of functions, variables and expression evaluation, and also that they had to be compiled to assembly before being compiled into machine code. Many programmers today might refer to C as low-level, as it still allows memory to be accessed by address, and provides direct access to the assembly level

Замечу, на всякий случай, что и с этим можно поспорить, но все же рациональное зерно тут есть. Предлагаю назвать Си "универсальным языком".. smile.gif

Автор: Altair 5.12.2006 22:00

Цитата
Ну, не работает мордобой в интеллектуальной области

гыыы... это кто тебе сказал?
В интеллектуальной области - интеллектуальной мордобой! good.gif