OSDev http://osdev.su/ |
|
Место Си и ассемблера в разработке ОС http://osdev.su/viewtopic.php?f=30&t=1089 |
Страница 1 из 1 |
Автор: | Himik [ 12 май 2015, 19:57 ] |
Заголовок сообщения: | Место Си и ассемблера в разработке ОС |
Тема выделена из "Лаборатории Единой среды". Начало обсуждения: раз и два. Freeman. Yoda писал(а): Himik писал(а): К сожалению С/С++ культовым скорее всего не станет, потому что он занимает промежуточную позицию между низко в высокоуровневыми ЯП. "С" был культовым языком на протяжении длительного времени. Другое дело, что он совершенно устарел. "С++" тоже был, но не долго. Проблема С++ в том, что он не смог преодолеть недостатков С. Мне кажется, что надо обратить внимание, что Си постепенно занимает позицию низкоуровневого программирования, вытесняя Ассемблер. И ОС, и драйвера к ним, всё чаще пишутся на Си. С костылём в виде ассемблерных вставок, но всё же. При этом в компиляторы добавляют всё больше и больше встроенных (или пристроенных?) ассемблерных функций, так что и ассемблерные вставки скоро будут не нужны. |
Автор: | Freeman [ 12 май 2015, 23:06 ] |
Заголовок сообщения: | Re: Место Си и ассемблера в разработке ОС |
Himik писал(а): И ОС, и драйвера к ним, всё чаще пишутся на Си. С костылём в виде ассемблерных вставок, но всё же. При этом в компиляторы добавляют всё больше и больше встроенных (или пристроенных?) ассемблерных функций, так что и ассемблерные вставки скоро будут не нужны. Мне кажется, что имеет место встречное движение, конвергенция. Ассемблер-то сейчас уже не тот, что был лет 10 назад. Понадобавляли разных инструкций в процессоры и сопроцессоры, компиляторам тоже пришлось подтягиваться. На размер всем давно плевать. |
Автор: | rst256 [ 01 окт 2015, 00:55 ] |
Заголовок сообщения: | Re: Место Си и ассемблера в разработке ОС |
Himik писал(а): Тема выделена из "Лаборатории Единой среды". Начало обсуждения: раз и два. Freeman. Yoda писал(а): Himik писал(а): К сожалению С/С++ культовым скорее всего не станет, потому что он занимает промежуточную позицию между низко в высокоуровневыми ЯП. "С" был культовым языком на протяжении длительного времени. Другое дело, что он совершенно устарел. "С++" тоже был, но не долго. Проблема С++ в том, что он не смог преодолеть недостатков С. Мне кажется, что надо обратить внимание, что Си постепенно занимает позицию низкоуровневого программирования, вытесняя Ассемблер. И ОС, и драйвера к ним, всё чаще пишутся на Си. С костылём в виде ассемблерных вставок, но всё же. При этом в компиляторы добавляют всё больше и больше встроенных (или пристроенных?) ассемблерных функций, так что и ассемблерные вставки скоро будут не нужны. "При этом в компиляторы добавляют всё больше и больше встроенных (или пристроенных?) ассемблерных функций" - хоть одну назови? Просвети уж дурака, если не трудно. Ага ассемблер не нужен, ведь процессоры скоро исходный код на си кушать надо полагать начнут. Ведь ассемблер === машинный код (именно ===), на чем же тогда, боюсь спросить, для нового железа будет написан ПЕРВЫЙ компилятор языка си? Варианта только два на ассемблере или сразу в двоичном коде (кто не знает это когда открываем справочник, находим нужную команду, записываем ее на БУМАЖКУ (возможно команда будет составной), потом аргументы, и т.д. после через ПЕРФОКАРТУ... Короче боже благослови ассемблер) P.S. Дрова это вам не ядро и уж тем более не BIOS |
Автор: | panotnap [ 01 окт 2015, 01:21 ] |
Заголовок сообщения: | Re: Место Си и ассемблера в разработке ОС |
rst256 писал(а): Ага ассемблер не нужен, ведь процессоры скоро исходный код на си кушать надо полагать начнут. Ну, компилятор для железа надо написать всего один раз, а дальше программ можно уже сколько угодно. Видимо, имеется ввиду, что для обычного программирования он как правило не используется из-за запаса по скорости и ёмкости.Ведь ассемблер === машинный код (именно ===), на чем же тогда, боюсь спросить, для нового железа будет написан ПЕРВЫЙ компилятор языка си? Например, транзисторную логику никто отменять не собирается, но если её гипотетически поместить в ассемблер, то нетрудно будет увидеть в этом обременяющее для него излишество. |
Автор: | Yoda [ 01 окт 2015, 11:47 ] |
Заголовок сообщения: | Re: Место Си и ассемблера в разработке ОС |
rst256 писал(а): "При этом в компиляторы добавляют всё больше и больше встроенных (или пристроенных?) ассемблерных функций" - хоть одну назови? Например, memcpy. А вообще их счёт идёт на десятки, а в некоторых компиляторах (GCC) приближается к сотне. rst256 писал(а): Ведь ассемблер === машинный код (именно ===), на чем же тогда, боюсь спросить, для нового железа будет написан ПЕРВЫЙ компилятор языка си? Традиционно первый компилятор для нового железа пишут на C/C++. |
Автор: | SII [ 01 окт 2015, 12:53 ] |
Заголовок сообщения: | Re: Место Си и ассемблера в разработке ОС |
Yoda писал(а): rst256 писал(а): "При этом в компиляторы добавляют всё больше и больше встроенных (или пристроенных?) ассемблерных функций" - хоть одну назови? Например, memcpy. А вообще их счёт идёт на десятки, а в некоторых компиляторах (GCC) приближается к сотне. Но если функции типа memcpy вполне можно написать и на языке высокого уровня (на том же Си, например), то целый ряд функций можно написать только на ассемблере -- например, разрешение и запрещение прерываний (эти функции используют специальные команды процессора, которые никогда не генерируются самим компилятором). Всякие манипуляции со стеком (например, для его "раскручивания" при обработке исключений) также требуют использования ассемблера. Ну и т.д. и т.п. Yoda писал(а): rst256 писал(а): Ведь ассемблер === машинный код (именно ===), на чем же тогда, боюсь спросить, для нового железа будет написан ПЕРВЫЙ компилятор языка си? Традиционно первый компилятор для нового железа пишут на C/C++. Написать можно, в принципе, на любом языке. Тут главное другое: для нового железа, ещё не имеющего своего родного инструментария, первые инструменты пишут на другом железе -- так называемые кросс-трансляторы и т.д. (ну, Yoda-то это и без меня прекрасно знает, а вот некоторые, похоже, не осознают, что разрабатывать программу для некоей железяки вовсе не обязательно на этой самой железяке). |
Автор: | Yoda [ 01 окт 2015, 13:27 ] |
Заголовок сообщения: | Re: Место Си и ассемблера в разработке ОС |
SII писал(а): для нового железа, ещё не имеющего своего родного инструментария, первые инструменты пишут на другом железе -- так называемые кросс-трансляторы Ну вот, разжевал, а я надеялся, человек сам сообразит . |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |