Поговорим о компах... И не только:)

Беседы ни о чем

Re: Поговорим о компах... И не только:)

Сообщение KPG » 20 май 2021, 11:02

Когда старый компьютер лучше нового: https://habr.com/ru/company/vdsina/blog/557752/
KPG
Мастер Даунгрейда
 
Сообщения: 197
Зарегистрирован: 21 окт 2015, 20:53

Re: Поговорим о компах... И не только:)

Сообщение igor_pc » 20 май 2021, 11:57

"Софт может работать на порядок быстрее, если начнёт выполнять операции I/O в обход ядра."
Забаная фраза и их там много :)
Ну да, подтвердили давно известную истину. Да и люди про это и смежное давно уже говорят, и даже не совсем уж неизвестные, если кто не видел https://www.youtube.com/watch?v=J7tsUeXLYLY
Последний раз редактировалось igor_pc 20 май 2021, 12:01, всего редактировалось 1 раз.
Аватара пользователя
igor_pc
Мастер Даунгрейда
 
Сообщения: 355
Зарегистрирован: 29 сен 2020, 01:56

Re: Поговорим о компах... И не только:)

Сообщение SokilOff » 20 май 2021, 13:44

"В обход ядра" - это как ? Обращаясь напрямую в контроллер накопителя ? Ну-ну, успехов...
Лень - это привычка отдыхать ещё до того, как устал.
Аватара пользователя
SokilOff
Мастер Даунгрейда
 
Сообщения: 586
Зарегистрирован: 09 янв 2013, 00:24

Re: Поговорим о компах... И не только:)

Сообщение igor_pc » 20 май 2021, 14:19

Это таки был сарказм или таки у вас на самом дле есть сомнения, что так будет ЭФФЕКТИВНЕЕ И ПРОИЗВОДИТЕЛЬНЕЕ??? :?
Аватара пользователя
igor_pc
Мастер Даунгрейда
 
Сообщения: 355
Зарегистрирован: 29 сен 2020, 01:56

Re: Поговорим о компах... И не только:)

Сообщение SokilOff » 20 май 2021, 15:43

Мы сейчас о чём ? О сферической лошади диаметром 1м и массой 1кг в вакууме ?

Сколько времени уйдёт на то, чтобы в программу добавить поддержку десятков контроллеров разных производителей и отладить всё это дело ? Даже стандартный набор команд, не говоря уже о так называемых vendor-specific commands, которые у каждого свои. К тому же документация на них "простым смертным" доступна далеко не всегда. И да, при любом изменении прошивки что-то может быть добавлено, а что-то перестанет быть доступно извне. Как это всё поддерживать ? Как обрабатывать ситуации, когда несколько процессов одновременно полезут в контроллер на низком уровне ?

Такую штуку, как HAL (hardware abstraction level) в операционках не просто так придумали.
Лень - это привычка отдыхать ещё до того, как устал.
Аватара пользователя
SokilOff
Мастер Даунгрейда
 
Сообщения: 586
Зарегистрирован: 09 янв 2013, 00:24

Re: Поговорим о компах... И не только:)

Сообщение uav » 20 май 2021, 15:55

Для однозадачных ОС такое вполне годится, для многозадачных, конечно, будут проблемы.
(Если речь про HDD, то vendor specific-команды тут не нужны, а сам ATA/IDE достаточно хорошо стандартизирован.)
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 926
Зарегистрирован: 22 дек 2008, 14:21

Re: Поговорим о компах... И не только:)

Сообщение SokilOff » 20 май 2021, 16:05

uav писал(а):Для однозадачных ОС такое вполне годится

Ну да, конечно (с)
Мы лезем напрямую в контроллер, и тут один из драйверов, загруженных до нас, делает то же самое...
Лень - это привычка отдыхать ещё до того, как устал.
Аватара пользователя
SokilOff
Мастер Даунгрейда
 
Сообщения: 586
Зарегистрирован: 09 янв 2013, 00:24

Re: Поговорим о компах... И не только:)

Сообщение uav » 20 май 2021, 16:09

и тут один из драйверов, загруженных до нас

Для этого есть команды CLI/STI, отключающие/включающие прерывания на время выполнения критичных участков кода.
Ну и прямым программированием PIC этого можно добиться.
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 926
Зарегистрирован: 22 дек 2008, 14:21

Re: Поговорим о компах... И не только:)

Сообщение SokilOff » 20 май 2021, 16:22

uav писал(а):Для этого есть команды CLI/STI

На архитектуре x86 да. А на остальных нет таких команд. И аналоги есть не везде.

uav писал(а):отключающие/включающие прерывания на время выполнения критичных участков кода

Наш гипотетический драйвер не смог получить прерывание в нужный момент времени и штатно отработать. В результате навернулась вся система. Возможно такое ? Запросто.

Прямой доступ к устройству нужен только там и только в тех редких случаях, когда он на самом деле нужен. В остальных случаях (а это 99.9%) прямой доступ - ни к чему, а зачастую вреден.
Лень - это привычка отдыхать ещё до того, как устал.
Аватара пользователя
SokilOff
Мастер Даунгрейда
 
Сообщения: 586
Зарегистрирован: 09 янв 2013, 00:24

Re: Поговорим о компах... И не только:)

Сообщение uav » 20 май 2021, 16:26

Тем не менее, в DOS это всё как-то работало - там очень много программ, напрямую работающих с оборудованием - диагностические утилиты, кэш-драйверы, да те же Victoria/MHDD. И всё как-то работало. Не факт, что будет нормально работать, если загрузить два драйвера кэша, к примеру, но это уже какое-то извращение.
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 926
Зарегистрирован: 22 дек 2008, 14:21

Re: Поговорим о компах... И не только:)

Сообщение igor_pc » 20 май 2021, 16:27

SokilOff писал(а):Мы сейчас о чём ?

Напомню. Статья вроде о том, что СОВРЕМЕНЫЕ ОС растолстели как боровы и "еле ворочаются". Элементарные функции через системный API выполняются НЕОПРАВДАННО МЕДЛЕННО. Срели прочих в статье высказано мнение, которое я озвучил выше. СТОП! Вы с этим конкретно мнением не согласны??? Насколько это сложнее кодить, сколько дестяков контроллёров придётся поддержать и т. п. (производителям побольше делать СТАНДАРТНЫХ устройств и поменьше "отсебятины" надо, будет попроще) - это всё ПОТОМ. Сейчас вопрос: работа напрямую с железом чем через системный API БЫСТРЕЕ (а говоря в сравнении с современными ОС - В ДЕСЯТКИ раз быстрее)??? Да или нет?
Аватара пользователя
igor_pc
Мастер Даунгрейда
 
Сообщения: 355
Зарегистрирован: 29 сен 2020, 01:56

Re: Поговорим о компах... И не только:)

Сообщение uav » 20 май 2021, 16:42

Кстати, в случае той же Windows, между двумя драйверами, работающими в ring-0, тоже может быть конфликт при доступе к одному устройству.
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 926
Зарегистрирован: 22 дек 2008, 14:21

Re: Поговорим о компах... И не только:)

Сообщение SokilOff » 20 май 2021, 16:52

uav писал(а):Тем не менее, в DOS это всё как-то работало - там очень много программ, напрямую работающих с оборудованием - диагностические утилиты, кэш-драйверы, да те же Victoria/MHDD. И всё как-то работало. Не факт, что будет нормально работать, если загрузить два драйвера кэша, к примеру, но это уже какое-то извращение.


Большинство системных утилит пользовалось сервисами BIOS и/или DOS, кэш-драйверы вообще никогда не лезли напрямую в контроллер. В итоге это были либо диагностические утилиты, созданные самими вендорами железа (которые отлично знали, что делают), либо очень специфические программы, например для диагностики/восстановления дисков pc3000, которые (сюрприз !) тоже написаны специалистами именно в этой узкой области. Т.е. "любая кухарка" в лице обычного программиста не способна корректно (и даже некорректно) реализовать такой доступ.

uav писал(а):Кстати, в случае той же Windows, между двумя драйверами, работающими в ring-0, тоже может быть конфликт при доступе к одному устройству.

Конфликт может быть. Но даже в ring0 адекватно написанные драйвера не лезут напрямую в контроллер, а используют kernel API операционной системы.

igor_pc писал(а):Сейчас вопрос: работа напрямую с железом чем через системный API БЫСТРЕЕ (а говоря в сравнении с современными ОС - В ДЕСЯТКИ раз быстрее)??? Да или нет?

"Вы уже перестали пить коньяк по утрам ? Да или нет ?" :D

См. выше про сферического коня.
На практике же при словах "а давайте всё ненужное выкинем и перепишем на ассемблере под данную конкретную архитектуру" программисты начнут разбегаться быстрее, чем Усейн Болт на стометровке. Беспредметный разговор.
Лень - это привычка отдыхать ещё до того, как устал.
Аватара пользователя
SokilOff
Мастер Даунгрейда
 
Сообщения: 586
Зарегистрирован: 09 янв 2013, 00:24

Re: Поговорим о компах... И не только:)

Сообщение uav » 20 май 2021, 17:41

кэш-драйверы вообще никогда не лезли напрямую в контроллер

Кэш-драйвера, прилагаемые к конкретным контроллерам, как правило, работали с ними напрямую, т.к. дополнительно использовали и специфические режимы этих контроллеров. Писал я как раз про них. Некоторые универсальные тоже - к примеру, UDMA.SYS.
Что касается диагностических программ - то они практически все использовали прямой доступ к оборудованию - к примеру, к портам COM для их тестирования. Также прямой доступ к портам видеокарты использовали очень многие игры, т.к. это нужно, к примеру, для переключения битовых плоскостей в некоторых VGA-режимах. Это не говоря уже о банальной записи в видеопамять - её использовали практически все игры, т.к. использование функций BIOS для вывода графики было слишком медленным. Sound Blaster и аналогичные карты также программировались прямым доступом к портам - там просто не было никакого API. И PC Speaker аналогично.

Что касается исходного предмета спора - естественно, прямой доступ быстрее и, возможно, функциональней использования дополнительных прослоек. Но получается это за счёт уменьшения совместимости, увеличения сложности программирования и, отчасти, за счёт снижения надёжности.

В общем, как обычно - "быстро, качественно, дёшево - выбирайте один пункт из трёх".
Последний раз редактировалось uav 20 май 2021, 17:49, всего редактировалось 2 раз(а).
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 926
Зарегистрирован: 22 дек 2008, 14:21

Re: Поговорим о компах... И не только:)

Сообщение SokilOff » 20 май 2021, 17:54

uav писал(а):Что касается диагностических программ - то они практически все использовали прямой доступ к оборудованию - к примеру, к портам COM для их тестирования. Также прямой доступ к портам видеокарты использовали очень многие игры, т.к. это нужно, к примеру, для переключения битовых плоскостей в некоторых VGA-режимах. Это не говоря уже о банальной записи в видеопамять

Помню, было. Этим я и сам когда-то баловался.

Вот только как это всё применимо к современному железу ? Я ж про сферического коня не просто так вспомнил. Одно дело менять режимы или переключать битовые плоскости на древней видеокарте, другое - программировать "напрямую" какой-нибудь RTX3090.
Лень - это привычка отдыхать ещё до того, как устал.
Аватара пользователя
SokilOff
Мастер Даунгрейда
 
Сообщения: 586
Зарегистрирован: 09 янв 2013, 00:24

Пред.След.

Вернуться в Флейм

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

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