OSDev

для всех
Текущее время: 10 ноя 2024, 22:41

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 142 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 15  След.
Автор Сообщение
 Заголовок сообщения: Re: OS Dev и суровая действительность
СообщениеДобавлено: 12 дек 2011, 18:56 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
SII, сам задайся вопросами - чем Си сложнее Ассемблера? Какие конструкции Си не имеют аналогов в Ассемблере и делают непредстказуемым его компиляцию? Тогда сам найдёшь ответ.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Dev и суровая действительность
СообщениеДобавлено: 12 дек 2011, 19:00 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
StasBaybak писал(а):
Кроме ARM и x86, какие еще есть архитектуры?

Модульный микрокомпьютер Arduino.
http://ru.wikipedia.org/wiki/Arduino
Продаётся повсеместно
http://freeduino.ru/arduino/index.html
http://robocraft.ru
http://devicter.ru

Про PowerPC ничего не слышал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Dev и суровая действительность
СообщениеДобавлено: 12 дек 2011, 19:06 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1426
Himik писал(а):
SII, сам задайся вопросами - чем Си сложнее Ассемблера? Какие конструкции Си не имеют аналогов в Ассемблере и делают непредстказуемым его компиляцию? Тогда сам найдёшь ответ.


А причём здесь сложность? Единственная разница между языками высокого и низкого уровня -- это их взаимоотношения с архитектурой процессора (её сокрытие в ЯВУ и прямое отражение в ЯНУ). Неужели такая простая вещь не доходит?

А аналогов не имеют много какие конструкции. Например, в Си (и других языках высокого уровня) есть операции умножения и деления -- а во многих ассемблерах их нет. Может быть, Вы удивитесь, но и во всех разновидностях АРМовской архитектуры, кроме ARMv7-M, нет команды деления! Не было умножения и деления и в исходной архитектуре PDP-11; эти команды имелись лишь в средних и старших моделях. Про плавающую запятую (тип float) вообще молчу: его не было на подавляющем большинстве ПДПшек, на которых Си возник; на ПКшках до появления 80486 соответствующие команды имелись только при наличии сопроцессора (сам центральный процессор их не выполнял).

Или, например, циклы. У while вообще ни у каких машин нет аналога, этот цикл всегда собирается из нескольких машинных команд. Прямой аналог for имеется лишь у очень немногих архитектур, и то обычно при куче дополнительных условий (например, loop на ИА-32 умеет работать только с целыми числами, причём только уменьшать их на 1).

А компиляция вообще всегда не шибко предсказуема, если используется оптимизирующий транслятор. Мало ли что он решит соптимизировать? Хороший транслятор потому и генерит код лучше, чем посредственный программист-ассемблерщик, что может учесть кучу нюансов вплоть до взаимного влияния команд друг на друга на конвейере процессора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Dev и суровая действительность
СообщениеДобавлено: 12 дек 2011, 19:08 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1426
Himik писал(а):
StasBaybak писал(а):
Кроме ARM и x86, какие еще есть архитектуры?

Модульный микрокомпьютер Arduino.
http://ru.wikipedia.org/wiki/Arduino


Там стоит 8-разрядный микроконтроллер с крайне ограниченными возможностями -- подобные я попросту не рассматривал, поскольку сколько-нибудь "настоящий" компьютер (в современном понимании) на них создать невозможно в принципе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Dev и суровая действительность
СообщениеДобавлено: 12 дек 2011, 19:12 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Цитата:
Не согласен, но, чтобы не быть голословным, попрошу привести набор таких "подсказок" (Си -- язык очень небольшой, так что даже полный их список физически не может быть слишком большим): тогда сможем обсудить предметно.
Я думал, что всем понятно, о чем я говорю. Прежде всего это операции с присваиванием, выражения-присваивания, префиксная и постфиксная формы инкремента/декремента.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Dev и суровая действительность
СообщениеДобавлено: 12 дек 2011, 19:21 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1426
phantom-84 писал(а):
Я думал, что всем понятно, о чем я говорю. Прежде всего это операции с присваиванием, выражения-присваивания, префиксная и постфиксная формы инкремента/декремента.


Как видите, не всем :) Насчёт инкремента-декремента я сказал уже выше: оптимизация применительно к ПДП-11, на которых был создан Си, возможна лишь при адресации массивов, причём из четырёх потенциальных вариантов "катят" только два.

Операции вычисления с присваиванием вида += тоже могут работать, но с ограничениями (размер операндов -- только 16 бит; сами операции -- сложение, вычитание и логическое ИЛИ; остальные не катят).

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Dev и суровая действительность
СообщениеДобавлено: 12 дек 2011, 19:26 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
SII писал(а):
А причём здесь сложность?

Как причём? :() Уровень языка ни как, ни каким боком не определяется наличием машинных инструкций (машинный язык - это совершенно другое понятие).

Отсутствие мнемоник ЦПУ не делает автоматически ЯП языком высокого уровня.

Я конечто понимаю, что всё относительно. Для ассемблерщика любой ЯП без процессорных мненмоник выглядит высокоуровнемым. Но обратное не верно - вот в чём фокус. Существуют языки намного более высокого уровня, по сравнению с которыми Си не отличается от Ассемблера. Взять хотя бы C#, Java, не говоря уж про функциональные.

PS. Для АЛУ регистры процессора ни чем не отличаются от обычных ячеек памяти. Поэтому для программирования регистры не имеют значения.


Последний раз редактировалось Himik 12 дек 2011, 19:37, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Dev и суровая действительность
СообщениеДобавлено: 12 дек 2011, 19:34 

Зарегистрирован: 04 май 2011, 18:13
Сообщения: 121
SII писал(а):
Снова бред. ....


Резковато как-то. Я считаю Вы пытаетесь надавить на человека. И немного ЧСВ детектед.

В словах вашего опента по спору по поводу Асм и ЯВУ - есть доля истины.
В 80-х годах увлечения по Ассемблеру было побольше чем сейчас. В таком случае имеется ввиду не формальная дата появления языков и не их оффициальное использование, а интерес. Я, думаю, что каждый пятый разработчик знал АСМ, ну по крайней мере представлял, что это такое. Сейчас процент сильно сместился вниз.

А что мешало людям для программ уровня "калькулятор" педалить на Асм!? Что такого обьемного было под тот же Дос. Norton Commander? Калькулятор? Заставка "Сквозь Вселенную" с белыми точечками на экране? Doom с 2.5D графикой? Кроме операционок, исходный код, который вмещался на 1/4 дискеты?

Тогда даже устройств мало было.

АААААААААААА еще самое главное в ваших дискусиях упущенно, что на тот момент для ПК было так мало разнобразия железа, что поддержка различных девайсов не требовало множество всяких драйверов и библиотек. Ну как тут можно спорить если стандартная компликтация 90-х: 486 проц, VGA, LPT, COM, ISA, IDE(ATA), Floppy, IBM Keyboard и все. Даже под мышку не было никаких PS/2, USB. Ни видеокарт, ни звуковых карт, ни ситевых, ни дисководов со всякими Blu Ray, ни WiFi, ни LCD мониторов. К кому бы в гости не зайдешь а каждый сидит с горой дискет с большим 15" монитором с защитной фанеркой.

Я думаю тогда написать свою ОСь и сидеть на ней было реальней чем сейчас. При условии, что переход на свою ОС не требовал портирования софта. И так все можно было написать самому. Даже компилятор С свой - проще простого.
И ничего страшного, что тогда не было GUI. Ведь программисты работают все с тем же текстом.


Последний раз редактировалось JSON 12 дек 2011, 19:40, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Dev и суровая действительность
СообщениеДобавлено: 12 дек 2011, 19:35 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1426
Himik писал(а):
Отсутствие мнемоник ЦПУ не делает автоматически ЯП языком высокого уровня.


Ага. Например, у машинного кода тоже нет мнемоник команд процессора. Язык программирования становится языком высокого уровня не в силу отсутствия означенных мнемоник, а в силу отсутствия возможности точно указать, из каких машинных команд должна состоять программа, в каком порядке они должны исполняться, какие регистры процессора использовать...

Кстати, Вам не приходило в голову поинтересоваться, почему это везде Си причисляют к языкам высокого уровня? Неужто все и всюду -- сплошные кретины, и лишь Вам открыта Истина? А то в методичках врут, в учебниках врут, в Википедии тоже врут -- везде ж нагло утверждают, что Си -- язык высокого уровня.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: OS Dev и суровая действительность
СообщениеДобавлено: 12 дек 2011, 19:45 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1426
StasBaybak писал(а):
Резковато как-то. Я считаю Вы пытаетесь надавить на человека. И немного ЧСВ детектед.


Знаете, если человек несёт ахинею, я так и говорю. ЧСВ здесь никакой роли не играет.

Цитата:
В словах вашего опента по спору по поводу Асм и ЯВУ - есть доля истины.
В 80-х годах увлечения по Ассемблеру было побольше чем сейчас. В таком случае имеется ввиду не формальная дата появления языков и не их оффициальное использование, а интерес. Я, думаю, что каждый пятый разработчик знал АСМ, ну по крайней мере представлял, что это такое. Сейчас процент сильно сместился вниз.


А какое отношение это имеет к утверждению Химика, что Си -- язык низкого уровня?

Цитата:
АААААААААААА еще самое главное в ваших дискусиях упущенно, что на тот момент для ПК было так мало разнобразия железа, что поддержка различных девайсов не требовало множество всяких драйверов и библиотек. Ну как тут можно спорить если стандартная компликтация 90-х: 486 проц, VGA, LPT, COM, ISA, IDE(ATA), Floppy, IBM Keyboard и все. Даже под мышку не было никаких PS/2, USB. Ни видеокарт, ни звуковых карт, ни ситевых, ни дисководов со всякими Blu Ray, ни WiFi, ни LCD мониторов. К кому бы в гости не зайдешь а каждый сидеть с горой дискет с большим 15" монитором с защитной


Если Вы не знаете, это не значит, что чего-то не было. PS/2 был и активно использовался (он появился ещё в 286-х машинах IBM PS/2, откуда, собственно, и название пошло). У меня в своё время на работе стоял ПК на 80286 (где-то 1992-93 год), к которому и мыша, и клава как раз через PS/2 подключались. С видео был полный разброд и шатания: CGA, EGA, MCGA, VGA, Hercules, ещё несколько экзотических; плюс появились уже первые ускорители графики, пока ещё не программируемые. Существовало несколько моделей звуковух, появились сидюки (причём с четырьмя разными интерфейсами, а не с одним-единственным IDE, и надо было ставить драйвер под конкретный сидюк). Сетевух было море, причём разных -- выпускали все, кому не лень, и для каждой подавай свои драйверы. Вот блюреев с вайфаями точно не было, как и USB.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 142 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 15  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB