Сообщение Re[8]: Конец интел? от 13.09.2024 1:44
Изменено 13.09.2024 2:33 Pavel Dvorkin
Re[8]: Конец интел?
Здравствуйте, netch80, Вы писали:
N>А посмотри на VAX. Там 4 кольца используются на полную. Или сейчас на ARM, то же самое (с поправкой, что одно из них это гипервизор) и плюс по другой оси ещё "реалмы". Или на RISC-V, там три кольца плюс резерв для гипервизора (но они в итоге сделали иначе и PL2 просто не нужен).
А они реально используются ? Драйверы там отделены от ОС ? Если нет — то для чего используются ?
N>А сами Intel сделали SMM, который по их нумерации получается номер -1.
Это да. Но это нельзя было реализовать в рамках Ring3-0, не получилось бы compatibility с 286.
N>Всё просто. Если ты посмотришь на такую пачку архитектур, как MIPS, POWER, и даже SystemZ, то там можно (а в некоторых (было) обязательно), что в режиме супервизора маппинг (трансляция) виртуальных адресов в физические просто идемпотентна! То есть этот уровень работает в физических адресах. Ну просто нафиг ему не сдалось заниматься ещё и тем, что самому себе обеспечивать страничные каталоги, искать где их размещать и как правильно управлять, чтобы самому себе не вышибить почву из-под ног...
N>Пока писал, вспомнил ещё один момент. В Intel его тоже могли знать, потому что уже был VAX в полную силу доступен. Корневой каталог страниц свой на каждый процесс. Но если меняется маппинг для ядерной половины, его надо менять у всех процессов, на это есть особый контроль при переключении процесса. Что мешало сделать раздельные корневые каталоги хотя бы на две половины адресного пространства, и верхнюю не менять лишний раз? В VAX таких каталогов 4. В ARM сделали два каталога и управляемую границу между ними. Зачем x86 создал трудности на ровном месте?
Все логично. Но это еще один регистр типа CR3. А граница, вообще говоря, нигде в 386 не фиксирована, это уже потом в Windows, скажем, 2:2 или 3:1. Так что пришлось бы по каждому адресу делать проверки, нужно ли его транслировать или нет, и если да, то через какой каталог. В общем, это некоторое усложнение, и , видимо, они решили сделать проще.
И еще вот что учти. В этих ARM и VAX нет никаких GDT/LDT, а тут надо было сделать, чтобы соответствовало требованиям сегментного механизма. Никто не стал делать ОС в формате 16:32, но вообще-то ее сделать было можно, и не могла фирма не обеспечить это.
Другое дело, что вообще-то можно было совсем отказаться от сегментных регистров в 32 битном режиме. Кстати, где-то я читал, что при переходе к 64-битному от них хотели отказаться, но возникли какие-то проблемы с виртуальными машинами. Пруф не дам.
PD>>С другой стороны, когда Intel попробовала сделать с нуля "как следует" — получился Itanium.
N>Там другая история. Я уверен, что кому-то из топов хотелось, опять же, выстебнуться и зайти в историю. Иначе не объяснить, как заведомо нерабочая изначально концепция могла пойти в железо. А почему кто-то мог подумать, что она рабочая — потому что история с Rambus, которые пообещали избавление от основных причин, почему вообще нужен out-of-order.
Вот с этим объяснением не согласен. Itanium делали же Intel вместе с HP. В обеих компаниях топам захотелось ?
N>А посмотри на VAX. Там 4 кольца используются на полную. Или сейчас на ARM, то же самое (с поправкой, что одно из них это гипервизор) и плюс по другой оси ещё "реалмы". Или на RISC-V, там три кольца плюс резерв для гипервизора (но они в итоге сделали иначе и PL2 просто не нужен).
А они реально используются ? Драйверы там отделены от ОС ? Если нет — то для чего используются ?
N>А сами Intel сделали SMM, который по их нумерации получается номер -1.
Это да. Но это нельзя было реализовать в рамках Ring3-0, не получилось бы compatibility с 286.
N>Всё просто. Если ты посмотришь на такую пачку архитектур, как MIPS, POWER, и даже SystemZ, то там можно (а в некоторых (было) обязательно), что в режиме супервизора маппинг (трансляция) виртуальных адресов в физические просто идемпотентна! То есть этот уровень работает в физических адресах. Ну просто нафиг ему не сдалось заниматься ещё и тем, что самому себе обеспечивать страничные каталоги, искать где их размещать и как правильно управлять, чтобы самому себе не вышибить почву из-под ног...
N>Пока писал, вспомнил ещё один момент. В Intel его тоже могли знать, потому что уже был VAX в полную силу доступен. Корневой каталог страниц свой на каждый процесс. Но если меняется маппинг для ядерной половины, его надо менять у всех процессов, на это есть особый контроль при переключении процесса. Что мешало сделать раздельные корневые каталоги хотя бы на две половины адресного пространства, и верхнюю не менять лишний раз? В VAX таких каталогов 4. В ARM сделали два каталога и управляемую границу между ними. Зачем x86 создал трудности на ровном месте?
Все логично. Но это еще один регистр типа CR3. А граница, вообще говоря, нигде в 386 не фиксирована, это уже потом в Windows, скажем, 2:2 или 3:1. Так что пришлось бы по каждому адресу делать проверки, нужно ли его транслировать или нет, и если да, то через какой каталог. В общем, это некоторое усложнение, и , видимо, они решили сделать проще.
И еще вот что учти. В этих ARM и VAX нет никаких GDT/LDT, а тут надо было сделать, чтобы соответствовало требованиям сегментного механизма. Никто не стал делать ОС в формате 16:32, но вообще-то ее сделать было можно, и не могла фирма не обеспечить это.
Другое дело, что вообще-то можно было совсем отказаться от сегментных регистров в 32 битном режиме. Кстати, где-то я читал, что при переходе к 64-битному от них хотели отказаться, но возникли какие-то проблемы с виртуальными машинами. Пруф не дам.
PD>>С другой стороны, когда Intel попробовала сделать с нуля "как следует" — получился Itanium.
N>Там другая история. Я уверен, что кому-то из топов хотелось, опять же, выстебнуться и зайти в историю. Иначе не объяснить, как заведомо нерабочая изначально концепция могла пойти в железо. А почему кто-то мог подумать, что она рабочая — потому что история с Rambus, которые пообещали избавление от основных причин, почему вообще нужен out-of-order.
Вот с этим объяснением не согласен. Itanium делали же Intel вместе с HP. В обеих компаниях топам захотелось ?
Re[8]: Конец интел?
Здравствуйте, netch80, Вы писали:
N>А посмотри на VAX. Там 4 кольца используются на полную. Или сейчас на ARM, то же самое (с поправкой, что одно из них это гипервизор) и плюс по другой оси ещё "реалмы". Или на RISC-V, там три кольца плюс резерв для гипервизора (но они в итоге сделали иначе и PL2 просто не нужен).
А они реально используются ? Драйверы там отделены от ОС ? Если нет — то для чего используются ?
N>А сами Intel сделали SMM, который по их нумерации получается номер -1.
Это да. Но это нельзя было реализовать в рамках Ring3-0, не получилось бы compatibility с 286.
N>Всё просто. Если ты посмотришь на такую пачку архитектур, как MIPS, POWER, и даже SystemZ, то там можно (а в некоторых (было) обязательно), что в режиме супервизора маппинг (трансляция) виртуальных адресов в физические просто идемпотентна! То есть этот уровень работает в физических адресах. Ну просто нафиг ему не сдалось заниматься ещё и тем, что самому себе обеспечивать страничные каталоги, искать где их размещать и как правильно управлять, чтобы самому себе не вышибить почву из-под ног...
N>Пока писал, вспомнил ещё один момент. В Intel его тоже могли знать, потому что уже был VAX в полную силу доступен. Корневой каталог страниц свой на каждый процесс. Но если меняется маппинг для ядерной половины, его надо менять у всех процессов, на это есть особый контроль при переключении процесса. Что мешало сделать раздельные корневые каталоги хотя бы на две половины адресного пространства, и верхнюю не менять лишний раз? В VAX таких каталогов 4. В ARM сделали два каталога и управляемую границу между ними. Зачем x86 создал трудности на ровном месте?
Все логично. Но это еще один регистр типа CR3. А граница, вообще говоря, нигде в 386 не фиксирована, это уже потом в Windows, скажем, 2:2 или 3:1. Более того, формально ее просто нет, совсем нет деления на 2 части. Так что пришлось бы по каждому адресу делать проверки, нужно ли его транслировать или нет, и если да, то через какой каталог. В общем, это некоторое усложнение, и , видимо, они решили сделать проще.
И еще вот что учти. В этих ARM и VAX нет никаких GDT/LDT, а тут надо было сделать, чтобы соответствовало требованиям сегментного механизма. Никто не стал делать ОС в формате 16:32, но вообще-то ее сделать было можно, и не могла фирма не обеспечить это. Представь себе, что кто-то бы сделал ОС, в которой небольшие сегменты Ring0 лежат в 32-битном пространстве вперемежку с сегментами Ring3 — в общем, 32-битный вариант Windows 3.1...
Другое дело, что вообще-то можно было совсем отказаться от сегментных регистров в 32 битном режиме. Кстати, где-то я читал, что при переходе к 64-битному от них хотели отказаться, но возникли какие-то проблемы с виртуальными машинами. Пруф не дам.
PD>>С другой стороны, когда Intel попробовала сделать с нуля "как следует" — получился Itanium.
N>Там другая история. Я уверен, что кому-то из топов хотелось, опять же, выстебнуться и зайти в историю. Иначе не объяснить, как заведомо нерабочая изначально концепция могла пойти в железо. А почему кто-то мог подумать, что она рабочая — потому что история с Rambus, которые пообещали избавление от основных причин, почему вообще нужен out-of-order.
Вот с этим объяснением не согласен. Itanium делали же Intel вместе с HP. В обеих компаниях топам захотелось ?
N>А посмотри на VAX. Там 4 кольца используются на полную. Или сейчас на ARM, то же самое (с поправкой, что одно из них это гипервизор) и плюс по другой оси ещё "реалмы". Или на RISC-V, там три кольца плюс резерв для гипервизора (но они в итоге сделали иначе и PL2 просто не нужен).
А они реально используются ? Драйверы там отделены от ОС ? Если нет — то для чего используются ?
N>А сами Intel сделали SMM, который по их нумерации получается номер -1.
Это да. Но это нельзя было реализовать в рамках Ring3-0, не получилось бы compatibility с 286.
N>Всё просто. Если ты посмотришь на такую пачку архитектур, как MIPS, POWER, и даже SystemZ, то там можно (а в некоторых (было) обязательно), что в режиме супервизора маппинг (трансляция) виртуальных адресов в физические просто идемпотентна! То есть этот уровень работает в физических адресах. Ну просто нафиг ему не сдалось заниматься ещё и тем, что самому себе обеспечивать страничные каталоги, искать где их размещать и как правильно управлять, чтобы самому себе не вышибить почву из-под ног...
N>Пока писал, вспомнил ещё один момент. В Intel его тоже могли знать, потому что уже был VAX в полную силу доступен. Корневой каталог страниц свой на каждый процесс. Но если меняется маппинг для ядерной половины, его надо менять у всех процессов, на это есть особый контроль при переключении процесса. Что мешало сделать раздельные корневые каталоги хотя бы на две половины адресного пространства, и верхнюю не менять лишний раз? В VAX таких каталогов 4. В ARM сделали два каталога и управляемую границу между ними. Зачем x86 создал трудности на ровном месте?
Все логично. Но это еще один регистр типа CR3. А граница, вообще говоря, нигде в 386 не фиксирована, это уже потом в Windows, скажем, 2:2 или 3:1. Более того, формально ее просто нет, совсем нет деления на 2 части. Так что пришлось бы по каждому адресу делать проверки, нужно ли его транслировать или нет, и если да, то через какой каталог. В общем, это некоторое усложнение, и , видимо, они решили сделать проще.
И еще вот что учти. В этих ARM и VAX нет никаких GDT/LDT, а тут надо было сделать, чтобы соответствовало требованиям сегментного механизма. Никто не стал делать ОС в формате 16:32, но вообще-то ее сделать было можно, и не могла фирма не обеспечить это. Представь себе, что кто-то бы сделал ОС, в которой небольшие сегменты Ring0 лежат в 32-битном пространстве вперемежку с сегментами Ring3 — в общем, 32-битный вариант Windows 3.1...
Другое дело, что вообще-то можно было совсем отказаться от сегментных регистров в 32 битном режиме. Кстати, где-то я читал, что при переходе к 64-битному от них хотели отказаться, но возникли какие-то проблемы с виртуальными машинами. Пруф не дам.
PD>>С другой стороны, когда Intel попробовала сделать с нуля "как следует" — получился Itanium.
N>Там другая история. Я уверен, что кому-то из топов хотелось, опять же, выстебнуться и зайти в историю. Иначе не объяснить, как заведомо нерабочая изначально концепция могла пойти в железо. А почему кто-то мог подумать, что она рабочая — потому что история с Rambus, которые пообещали избавление от основных причин, почему вообще нужен out-of-order.
Вот с этим объяснением не согласен. Itanium делали же Intel вместе с HP. В обеих компаниях топам захотелось ?