Вы не вошли.
Все. Достаточно клоунады.
Почему моя отсылка к одной из лучших книг по архитектуре NT вам не подходит?
Подходит. Я скачал djvu этой книги и прочел разделы про WinAPI, HAL а также про режим ядра и пользовательский режим исполнения кода. Там нет ни слова про трансляцию исполняемого кода (как так?!). HAL же просто обобщает вызовы для переферии и различных устройств. Касательно процессора и HAL: максимум что он может в этом плане это поддерживать различные топологии SMP. И все.
Теперь касательно режима ядра и режима пользователя. В книге (хорошая книга кстати) русским по белому написано что код приложения идет на процессор. И с разными привелегиями. То есть код приложений исполняется на процессоре с понижинными привелегиями (читаем про ring) и не может изменить память пространства ядра. Вот и все собственно, уже можно не трепыхаться.
Отредактировано spoilt (13-02-10 12:48:58)
We'll force you to be nice to each other
Kill you before you kill each other
Вне форума
код приложения идет на процессор
Каким образом он идет на процессор? Ногами? Как вы себе представляете этот процесс? Если я скомпилировал приложение с поддержкой MMX и запускаю на процессоре без поддержки MMX, то каким образом оно там работает?
Не вижу смысла продолжать с вами дискуссию в этом ключе, ваши знания весьма и весьма поверхностны. Вы бегло пролистали раздел книги и решили что разобрались в вопросе? Ваши аргументы не выдерживают никакой критики, на вопрос "каким именно образом приложение обращается к МMX инструкциям" вы отвечаете "прямым", Я вас спрашиваю каким образом код приложения обращается напрямую к ЦП, вы отвечаете что "берет и обращается". Глубина знаний налицо. Когда услышу от вас что нибудь более вменяемое, тогда и продолжим. А пока почитайте В. М. Шукшина "Срезал", как раз про ваш случай.
"Оно, конечно, можно научить медведя ездить на велосипеде. Да только будет ли медведю от этого польза и удовольствие?" (с) А. и Б. Стругацкие
Вне форума
Если я скомпилировал приложение с поддержкой MMX и запускаю на процессоре без поддержки MMX, то каким образом оно там работает?
Никаким. Оно не заработает. Помню когда Adobe Premiere не пахал на процах без SSE. Также есть некоторые приложенмя не работающие без SSE2. Именно поэтому винда досих пор компилится как бы под i386 (даже каталог стоит такой в винде).
Не вижу смысла продолжать с вами дискуссию в этом ключе, ваши знания весьма и весьма поверхностны.
Сливание и перевод стрелок.
Глубина знаний налицо.
И это я слушу от человека утверждавшего что HAL транслирует машинный код?
"каким именно образом приложение обращается к МMX инструкциям"
Вот почитайте на ночь:
www.novalis.org/documents/mmx.html
We'll force you to be nice to each other
Kill you before you kill each other
Вне форума
Именно поэтому винда досих пор компилится как бы под i386 (даже каталог стоит такой в винде).
Аффтар жжот! Пиши исчо! Кстати сколько HAL'ов есть в поставке Windows и чем они различаются?
Сливание и перевод стрелок.
Перевод стрелок наблюдается как раз с вашей стороны, вы очень бодро прыгаете с MMX на SSE, с IA-64 на ARM и обратно, выдергивая фразы и утверждения вполне справедливые в одном контексте и пытаясь их использовать в другом. Почитайте все таки Шукшина...
"Оно, конечно, можно научить медведя ездить на велосипеде. Да только будет ли медведю от этого польза и удовольствие?" (с) А. и Б. Стругацкие
Вне форума
бодро прыгаете с MMX на SSE
И MMX и SSE являются вычислительными блоками процессора. Доступ к ним происходит с помощью машинного кода.
IA-64 на ARM
Просто примеры арихитектур с машкодами априори несовместимыми с х86.
Кстати сколько HAL'ов есть в поставке Windows и чем они различаются?
За меня скажет Руссинович:
Советую поискать докуметальное подтверждение трасляции машкода посредством hal, в противном случае будет слив. Свободен.
Отредактировано spoilt (13-02-10 15:04:07)
We'll force you to be nice to each other
Kill you before you kill each other
Вне форума
И MMX и SSE являются вычислительными блоками процессора. Доступ к ним происходит с помощью машинного кода.
MMX (Multimedia Extensions — мультимедийные расширения) — коммерческое название дополнительного набора инструкций, выполняющих характерные для процессов кодирования/декодирования потоковых аудио/видео данных действия за одну машинную инструкцию. Впервые появился в процессорах Pentium MMX. Разработан в лаборатории Intel в Хайфе, Израиль, в первой половине 1990-х.
Слив. свободен.
очевидно-невероятное или невероятно-очевидное...
Вне форума
Невропаразитолог, сам читай что даешь.
Регистры MMX
Расширение MMX включает в себя восемь 64-битных регистров общего пользования MM0—MM7. Для совместимости со способами сохранения состояния процессора в существующих ОС Intel была вынуждена объединить в программной модели процессора восемь регистров MMX с мантиссами восьми регистров FPU (Математический сопроцессор). Аппаратно это могут быть разные устройства, но с точки зрения программиста - это одни и те же регистры. Таким образом, нельзя одновременно пользоваться командами Математического сопроцессора и MMX.
А это просто так, в нагрузку:
www.codenet.ru/progr/optimize/mmx.php
Отредактировано spoilt (13-02-10 15:16:03)
We'll force you to be nice to each other
Kill you before you kill each other
Вне форума
Нихера. Читать умеете? MMX ВКЛЮЧАЕТ В СЕБЯ регистры, но ЯВЛЯЕТСЯ коммерческим названием набора инструкций. ЧИТАЕМ ВНИМАТЕЛЬНО.
очевидно-невероятное или невероятно-очевидное...
Вне форума
За такую оптимизацию надо отрывать руки ибо она делает приложение аппаратно зависимым.
Сделайте простой эксперимент. Замените в современной системе HAL с текущего на НAL для "Стандартного ПК" и вы с удивлением увидите, что ни одно ваше приложение не сможет использовать современные процессорные инструкции (SSE к примеру). С чего бы это вдруг?
Вы не понимаете сути ни MMX, ни SSE, ни 3DNov!. Это всего лишь инструкции, команды CISC процессора, которые всегда можно заменить несколькими элементарными инструкциями. Причем эти инструкции не могут быть вызваны напрямую, а только через системные вызовы уровня HAL - Kernel. Как вы вообще представляете обращение кода из User mode, в котором выполняются большинство приложений непосредственно к Hardware? Схема на этой странице выше. Ответ в стиле "берут и обращаются" не катит, лучше не тратьте время на писанину, а лучше почитайте Шукшина.
"Оно, конечно, можно научить медведя ездить на велосипеде. Да только будет ли медведю от этого польза и удовольствие?" (с) А. и Б. Стругацкие
Вне форума
MMX ВКЛЮЧАЕТ В СЕБЯ регистры, но ЯВЛЯЕТСЯ коммерческим названием набора инструкций. ЧИТАЕМ ВНИМАТЕЛЬНО.
И что из этого следует?
За такую оптимизацию надо отрывать руки ибо она делает приложение аппаратно зависимым.
Вылазь из виндомирка, все приложения являются являются аппаратно зависимыми (кроме байткода и интепретируемых языков).
Это всего лишь инструкции, команды CISC процессора, которые всегда можно заменить несколькими элементарными инструкциями.
Несколькими простыми операциями? А несколькими десятками не хотел?
Замените в современной системе HAL с текущего на НAL для "Стандартного ПК" и вы с удивлением увидите, что ни одно ваше приложение не сможет использовать современные процессорные инструкции (SSE к примеру).
Кто тебе такой бред сказал? Документальное подтверждение в студию, в противном случае слив.
Отредактировано spoilt (13-02-10 15:56:50)
We'll force you to be nice to each other
Kill you before you kill each other
Вне форума
И что из этого следует?
Как минимум - то, что вы невнимательно читаете, Кагбэ. Ваш капитан Очевидность.
очевидно-невероятное или невероятно-очевидное...
Вне форума
Кто тебе такой бред сказал? Документальное подтверждение в студию, в противном случае слив.
А кто вам мешает это проверить? Крутой специалист не знает как поменять HAL в системе?
Кстати мой вопрос:
Как вы вообще представляете обращение кода из User mode, в котором выполняются большинство приложений непосредственно к Hardware? Схема на этой странице выше.
все еще остается без ответа.
"Оно, конечно, можно научить медведя ездить на велосипеде. Да только будет ли медведю от этого польза и удовольствие?" (с) А. и Б. Стругацкие
Вне форума
А кто вам мешает это проверить?
Лады. Порекомендуйте программку где эффект SSE и прочих SIMD очень ощутим.
все еще остается без ответа.
У Руссиновича все написано.
А документальное подтверждение трансляции машкодов посредством HAL таки найдете? Или таки слив?
Кстати, искал инфу про HAL и нашел вот такую цитату:
Некоторые "специалисты" авторитетно утверждают, что выбирая i486, можно забыть про SIMD и SSE2, что не ускоряет, а наоборот, замедляет систему. Хотел бы я посмотреть кто таких "специалистов" делает… Никакого отношения к SIMD/SSE2-командам ядро не имеет, ведь не оно же их исполняет! Другой вопрос, что при переключениях с одной задачи на другую, все SIMD/SSE2 регистры должны быть сохранены, иначе совместная работа двух и более мультимедийных приложений станет невозможной. Дизассемблирование подтверждает, что i486 ядро использует команду FXSAVE, автоматически сохраняющую все SIMD/SSE2 регистры, так что волноваться за это не надо! Кстати говоря, в штатный комплект поставки Windows 2000 это ядро не входит, однако, его вполне реально найти в Интернете или попробовать выдернуть из дистрибутива Windows XP, но никаких гарантий, что оно нормально встанет на Windows 2000 ни у меня, ни у вас нет. Экспериментируйте на свой страх и риск.
209.85.135.132/search?q=cache:lBloJF_dW … ient=opera
Ну и еще щекотливый момент: проги по перепрошивке сидюков (и многие другие) тоже не могут получить доступ к железу напрямую?
Отредактировано spoilt (13-02-10 18:00:57)
We'll force you to be nice to each other
Kill you before you kill each other
Вне форума
Вопиющая безграмотность детектед.
нативные приложения под IA-64 не используют winapi, там своя система вызовов
и как же "система вызовов" (кстати, как Вы понимаете, что это вообще такое?) связана с использованием/неиспользованием WinAPI?
Winapi, в отличии от api Linux, обладает обратной совместимостью, что позволяет использовать программы написанные для старых версий ОС в новых.
да-да-да, именно поэтому под Висту по первости не шло большинство антивирусов, менеджеров виртуальных сидиромов и прочего "обратно совместимого" софта.
Здесь вы не совсем правы, загружается не его код, а трансляция его кода в команды конкретного процессора. Простой пример. У нас стоит система на базе процессора с MMX, вызовы мультимедийного приложения транслируются в команды с использованием MMX инструкций, тут мы этот процессор вынимаем и вставляем без MMX, у нас бинарник перестанет работать? Нет, его вызовы будут транслироваться в систему команд этого процессора, вместо MMX инструкций будут использовать заменяющие их последовательности простых команд, доступных данной архитектуре.
простой ответ. существует машинная инструкция CPUID.
ru.wikipedia.org/wiki/CPUID — ликбез.
www.sandpile.org/ia32/cpuid.htm — 0000 0001h, разделы ECX и EDX.
там Вы найдёте, как "работает, если нет ММХ".
программа просто узнаёт, что его нет, и придётся перекладывать все эти вычисления на ЦП.
вручную.
но вообще, этот пассаж выдаёт Ваше неведение с головой.
это может быть что угодно — "хватание верхушек", в чём Вы так любите обвинять других, теша себя мыслью, что Ваши "верхушки" якобы поглубже, или же намеренный троллинг (который всё равно многие могут принять за чистую монету в силу узкоспецифичности этих знаний), иначе — выдача желаемого за действительное...
в любом случае, абзац выше — это бред.
не исключаю, кстати, что аффтар перепутал выполнение прерываний на переопределенных векторах с выполнением инструкций процессора.
Каким образом он идет на процессор? Ногами? Как вы себе представляете этот процесс? Если я скомпилировал приложение с поддержкой MMX и запускаю на процессоре без поддержки MMX, то каким образом оно там работает?
падает оно. падает.
если не проверяет наличие ММХ (см. CPUID) и сразу идёт в бой с шашкой наголо.
к сожалению, сейчас трудно найти ЦП без поддержки ММХ, но на его месте вполне может оказаться хотя бы SSE.
Не путаю. Вы путаете. Бинарный код приложения и машинный код процессора вещи разные. Компилятор транслирует язык высокого уровня на язык близкий к машинному. Перевод инструкций машинно-ориентированного языка в набор команд для конкретного процессора осуществляется на уровне HAL.
ZOMFG.
Вы вообще различаете байткод и машкод? о_0
Если вы продолжаете настаивать, расскажите мне, опираясь на приведенную выше схему, каким образом приложение работает с MMX инструкциями процессора.
"приведённая выше схема" не имеет никакого касательства к ММХ.
расскажите мне, опираясь на справочник по пчеловодству, как приготовить борщ.
даже в режиме реальных адресов можно пользоваться такими расширениями ЦП, как этот пресловутый ММХ.
там нет никакого HAL.
парадокс?
Вы читать умеете? Во втором линке английским по белому написано, что ни одно приложение не может обратится к железу напрямую, оно может только использовать вызовы HAL. Вызовы HAL являются универсальными и не зависят от конкретного железа, так откуда же берется машинный код для процессора? И какие, по вашему, функции исполняет HAL?
уж точно не те, что Вы ему приписали.
HAL = Hardware Abstraction Layer.
это никоим образом не значит, что инструкции ЦП типа ADD EAX, EDX исполняются через вызовы HAL.
а через что, чёрт возьми, тогда исполняются вызовы HAL?!
Смеяться при слове лопата? Если вы имеете такие глубокие познания, то разъясните мне, сирому и убогому, каким именно образом и посредством какого механизма приложение уровня Win32 Application обращается напрямую к ЦП. Схема приведена выше.
при чём тут эта ваша схема?
рассмотрим инструкцию:
ADD EAX, EDX;
процессору поступает на обработку по его собственному хардварному конвейеру инструкций, если говорить очень грубо, некоторое число из RAM (можете даже открыть дебагер и посмотреть, какое), которое, если опять же огрублять, разбирается на код операции и номера регистров-операндов, и затем поступает на обработку во внутренние цепи.
Не вижу смысла продолжать с вами дискуссию в этом ключе, ваши знания весьма и весьма поверхностны. Вы бегло пролистали раздел книги и решили что разобрались в вопросе? Ваши аргументы не выдерживают никакой критики, на вопрос "каким именно образом приложение обращается к МMX инструкциям" вы отвечаете "прямым", Я вас спрашиваю каким образом код приложения обращается напрямую к ЦП, вы отвечаете что "берет и обращается". Глубина знаний налицо.
Имхо, стоит лишь прочитать Intel/AMD x86 Optimization Manual, и станет очевидно, чьи знания здесь поверхностны.
all your post are belong to us.
Вне форума
Майор Очевидность, благодарю за огневую поддержку.
We'll force you to be nice to each other
Kill you before you kill each other
Вне форума
spoilt, просто не мог пройти мимо этой чудовищной дезинформации.
впервые за сколько времени открыл SLOR, а здесь такое...
нет, я ещё понимаю если бы троллинг, здесь это норма, но такой вот псевдоучёный бред, в частности про пайп ЦП через HAL (теперь прочитал и первую страницу — даже там есть), тем более сказанный модератором, да со столь уверенным видом — это как-то нехорошо.
Отредактировано Майор Очевидность (13-02-10 20:04:46)
all your post are belong to us.
Вне форума
Hedge,
а лучше уж тогда стереть всё.
дабы не позорить себя.
выполнение инструкций процессора через уровень аппаратных абстракций, нужный только лишь для работы с контроллерами...
подумать только.
[UPDATE]:
В жару сражения забыл уточнить: всё сказанное мною касается Windows, которую и имел в виду госп. IvanOFF.
Под другие ОС существует концепция супер-HAL, предусматривающая изоляцию внутреннего кода от инструкций ЦП.
Однако, в силу своих недостатков (например, меньшей производительности + необходимости написания Trusted Internal Code), нивелирующих достоинства, схема эта не очень распространена.
Работает, в частности, на вот этом.
Равно как и на его предшественнике.
Отредактировано Майор Очевидность (13-02-10 20:24:04)
all your post are belong to us.
Вне форума
Hedge Может проще изменить заголовок темы? Перенести надо чуть менее чем полностью.
Майор Очевидность Я даже не собираюсь с вами спорить, ибо как раз таки ваши посты направлены на дезинформацию и являются тонким троллингом. Одно ваше заявление об "обратной несовместимости" антивирусов и виртуальных приводов выдает вас с головой, дальше можно не читать, надерганный кусками заумняк, в расчете что большинство посетителей форума не разбирается в вопросе, этим же объясняется ваше стремление отойти от общего обсуждения архитектуры NT, которая доступна для понимания большинства к обсуждения частных реализаций весьма специфичных и недоступных пониманию большинства вещей, ибо по первой части был слив.
Смысла вести дискуссию в данном русле не вижу, тему закрываю для наведения порядка и приведения в соответствие.
"Оно, конечно, можно научить медведя ездить на велосипеде. Да только будет ли медведю от этого польза и удовольствие?" (с) А. и Б. Стругацкие
Вне форума
ваши посты направлены на дезинформацию
где?
ткните носом.
учтите, я наснимал скриншотов.
PS.
более того, для "IT-профи", коими многие здесь себя считают, тема, мною поднятая, не должна быть "заумняком".
и уж тем более для Вас, судя по тому, как Вы себя подаёте.
ах да.
заявляя, что я "выдал себя с головой", указав на проблему Windows Vista от 2007 года (которую и содержит мой Backup DVD к ноутбуку), Вы автоматически утверждаете, что я лгу, т.е. утверждаете, что у Vista не было проблем с совместимостью ПО.
это так?
Отредактировано Майор Очевидность (13-02-10 20:56:08)
all your post are belong to us.
Вне форума
Я даже не собираюсь с вами спорить, ибо как раз таки ваши посты направлены на дезинформацию
В данном случае не имеет значения, на что направлены его посты, потому что вы спороли херню, о чем вас сразу же уведомили. Архитектура ЭВМ с программным управлением совсем не сложна, (компонентно) сложны современные реализации. Так что читайте учебники, и будет вам щастье.
.:``́3̶E̶P̶O̶W̶h̶`́`:.
Вне форума
Майор очевидность
Вы должны отдавать себе отчет, что приложения использующие собственный драйвер, могут оказаться несовместимыми по причине несовместимости этого драйвера. Приложения использующие только WinApi обратной несовместимостью не страдают.
И вообще, меня удивляет ваше (и ваших коллег) стремление взять частное и выдать его как общее, в выгодном для себя свете, а когда вас хватают за руку пытаетесь запутывать все еще больше углубляясь в такие дебри, где нужен совсем иной уровень ведения дискуссии, нежели "коснутся до всего слегка".
Linups_Troolvalds Что то я раньше вас тут не видел, с вашими обширнейшими познаниями, там еще в других темах остались для вас вопросы, на которые вы так и не соизволили ответить.
"Оно, конечно, можно научить медведя ездить на велосипеде. Да только будет ли медведю от этого польза и удовольствие?" (с) А. и Б. Стругацкие
Вне форума
Linups_Troolvalds Что то я раньше вас тут не видел, с вашими обширнейшими познаниями, там еще в других темах остались для вас вопросы, на которые вы так и не соизволили ответить.
Это не имеет отношения к данной теме.
.:``́3̶E̶P̶O̶W̶h̶`́`:.
Вне форума
Майор очевидность
Вы должны отдавать себе отчет, что приложения использующие собственный драйвер, могут оказаться несовместимыми по причине несовместимости этого драйвера. Приложения использующие только WinApi обратной несовместимостью не страдают.
т.е. Вы утверждаете, что класс функций с префиксом Ke* (например, KeSetTimer) не входит в WinAPI?! нда...
[UPDATE]:
на всякий случай поясняю. это API функции.
функции уровня ядра. используются драйверами.
И вообще, меня удивляет ваше (и ваших коллег) стремление взять частное и выдать его как общее, в выгодном для себя свете, а когда вас хватают за руку пытаетесь запутывать все еще больше углубляясь в такие дебри, где нужен совсем иной уровень ведения дискуссии, нежели "коснутся до всего слегка".
Где это было?
Что первое, что второе?
PS. (не главное, но глаз режет: коснутЬся)
Отредактировано Майор Очевидность (13-02-10 22:01:53)
all your post are belong to us.
Вне форума
Первое как раз в посте выше, причем тут класс функций с префиксом Ke*? Разговор шел о софте имеющем собственный драйвер, если производитель не напишет новый драйвер, то такой софт под новую ОС не пойдет. Причем тут обратная совместимость NT на уровне API?
И к чему вообще углубляться в дебри, они никак не влияют на понимание сути, я вижу только один расчет, что большинство читателей, для которых это "китайская грамота" примут это как должное, что позволит вам под этим соусом подать искаженные к собственной выгоде данные.
P.S. На одном моем форуме был некто ВВаСя, когда ему нечего было сказать, он начинал проверять орфографию оппонентов.
"Оно, конечно, можно научить медведя ездить на велосипеде. Да только будет ли медведю от этого польза и удовольствие?" (с) А. и Б. Стругацкие
Вне форума
Первое как раз в посте выше, причем тут класс функций с префиксом Ke*? Разговор шел о софте имеющем собственный драйвер, если производитель не напишет новый драйвер, то такой софт под новую ОС не пойдет. Причем тут обратная совместимость NT на уровне API?
а вот "причём":
Winapi, в отличии от api Linux, обладает обратной совместимостью, что позволяет использовать программы написанные для старых версий ОС в новых.
что мы имеем в действительности?
совместимость драйверов поломана.
что из этого следует?
в частности слом API и отсутствие его пресловутой обратной совместимости.
P.S. На одном моем форуме был некто ВВаСя, когда ему нечего было сказать, он начинал проверять орфографию оппонентов.
мне есть что сказать и помимо проверки орфографии, как Вы могли убедиться.
Отредактировано Майор Очевидность (13-02-10 22:22:28)
all your post are belong to us.
Вне форума
[ Сгенерировано за 0.011 сек, 7 запросов выполнено - Использовано памяти: 1.83 Мбайт (Пик: 1.91 Мбайт) ]