Pull to refresh

Comments 21

Как только получено питание (от батареи или электросети), включается Intel ME. Он выполняет свой набор процедур инициализации

Да щазз! Напомню, что между микросхемой BIOS, в которой записан код Intel ME, и процессором имеется как минимум два устройства - шинный контроллер и контроллер доступа к памяти. И прежде чем процессор получит доступ к коду из микросхемы, который он должен начать выполнять, ему просто необходимо запустить, настроить и протестировать эти промежуточные компоненты.

И тут возникает вопрос: откуда процессор берет код для настройки этих промежуточных компонентов?

Кроме как иметь этот код в самом процессоре, заранее прошитым, больше ему негде быть. Поди. :-0

Если не ошибаюсь, в процах есть preboot, она же пзу, она то и выполняет сие действие.

И прежде чем процессор получит доступ к коду из микросхемы, который он
должен начать выполнять, ему просто необходимо запустить, настроить и
протестировать эти промежуточные компоненты.

ME выполняется не основным процессором, а процессором южного моста.

Программная начальная настройка контроллеров памяти и шины не нужна, потому что по включению их регистры сбрасываются по сигналу Reset в нужное состояние (на нужный участок адресного пространства подключена микросхема BIOS через соответствующий мост).

Описание в статье ужасно, но именно этот момент описан без прямого вранья.

Шинный контроллер давно специализированный для каждого компа, и не шьётся через биос как 8028 или 8038 в пк хт ;)) если имелся ввиду шинный буфео, то это усилитель шины, полностью прозрачный для программ и логики процессора (не требуется его шить на работу (само наличие этой микросхемы предполагает такую карму кристалла зашитую уже на заводе (fab), а контроллер доступа к памяти (dma) это вообще параллельное процессору устройство, которое может обходится без процессора и первоначально служило для ускорения пересылок внутри компа (а вовсе не от процессора куда либо), например от диска данных в память озу, или из памяти озу в сеть (контроллер lan).

Это означает, что вы программист, не понимающий железо ;) и пишущий гдето там далеко, на языках высокого уровня ;)

Лучше программистам в железо не соваться. Никогда. Вы постоянно пишите какую то дурь и альтернативно одарённую чушь. Иначе вам придётся постоянно банить железячников. Впрочем за 10 лет вы здесь, на хабре, в этом преуспели ;))))

Это означает, что вы программист, не понимающий железо ;) и пишущий гдето там далеко, на языках высокого уровня

Мимо. Я вообще не программист.

Вы постоянно пишите какую то дурь и альтернативно одарённую чушь.

295 комментариев, из которых только 11 имеют минусовую репу, причём половина - это минус единичка, которая запросто могла прилететь от обидевшегося автора. Как-то не очень похоже на "постоянно". Кстати, плюсованных комментариев - где-то половина.

Иначе вам придётся постоянно банить железячников. Впрочем за 10 лет вы здесь, на хабре, в этом преуспели

??? По моему разумению, чтобы кого-то банить, надо как минимум иметь на это соответствующие права. Которых у меня нет и никогда не было. Так что в упор не понимаю, о чём речь. Вы меня точно ни с кем не путаете?

А за информацию по делу - спасибо.

"295 комментариев, из которых только 11 имеют минусовую репу"

Да смешно, это ошибка выжившего. Здесь на 99% программисты. Даже если я буду тысячекратно прав, меня выпилят перевозбуждённые мамкины программисты, как это здесь неоднократно бывало достаточно вспомнить БарсМонстра, блогера номер 1 ХабраХабра, которого здешние программисты выпилили. Это говорит о его глупости?)) Нет, как раз наоборот.

Поэтому гордится тем, что вас здесь не минусят, а наоборот плюсуют такие же как вы? ;))) ну с моей точки зрения - это смехотворно.

"Так что в упор не понимаю, о чём речь. Вы меня точно ни с кем не путаете?"

Вот оно, осговное отличие программеров и железячников - вв не понимаете и не хотите понять.

А я обьясню, КАК вв стали программистом: железячников бьют, и он вынужден ПОНИМАТЬ, чьо происходит, и где накосячил, ибо больно. А программист самоизолируется от общества и бежит к компьютеру. А компьютер всё простит, порождая дальнейшее развитие инфантилизма у программистов (безответственность, херня, перепишем, перекодим, выбросим).

Железячник не может себе позволить выбросить или переделать быстро, это микросхема, в неё дохера вложено, надо сразу делать нормально и ответственно, ибо спросят на каждом этапе.

Плэтому вы "В УПОР НЕ ПОНИМАЕТЕ"))

ДАВНО ВАС НЕ БИЛИ. ВОТ ПОЭТОМУ.)

Ещё раз для особо непонятливых.

Я - НЕ программист.

Я - НЕ железячник.

Так что поберегите нервы. И экономьте буквы - вдруг да пригодятся...

В типичном BIOS находится флеш-дескриптор… и GbE (gigabit ethernet).

что в типичном BIOS-е находится?

GbE-регион действительно может иметься, но в случае, если на материнской плате стоит сетевая карта от Intel. Данный регион используется для того, что бы заводской эксплойт Intel ME мог иметь доступ к сетевому стеку.

просто звучит крайне странно, именно GbE? а Fast Ethernet (FE) может быть?
очень странное название конкретной технологии, к биосу компа имеющую отошение примерно никакое

Это название не технологии, а региона прошивки биоса (если хотите, что-то вроде отдельных файлов dll). Эта самая прошивка собирается вендором материнской платы в соответствии с установленным железом, дрова для которого записывают как раз в дополнительные регионы.

Это название не технологии, а региона прошивки биоса

до сих пор поражаюсь странности разработчиков железа, которые начинают придумывать сущности которые очень странно выглядят со стороны


вот почему зона биоса — gbe при том что стандартов ethernet несколько..


я до сих пор не могу принять название протокола — WAP… почему wireless и что там такого что он какойто особенно и что весь софт его както "отдельно" использовать должен… видно как будто его железячники и придумывали в отрыве от разработчиков самого ПО

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

И да, некоторые протоколы созданы специально для сред передачи данных, отличных от кабеля. Подразумеваются потери. Например протоколы рида-соломона, перемежения информации, срс33, dvb, qpsk - были созданы для ненадёжных сред передачи или хранения инфы. Созданы были программерами.

Но вы, как начинающий программист думаете, что это железячники создали нарочно для вас эти ненадёжные медиа среды?

Peroo...;)))

И да, некоторые протоколы созданы специально для сред передачи данных, отличных от кабеля

так и делали бы протокол в нужном уровне передачи, в WAP же наворотили даже на верхних уровнях OSI даже сделав свой диалект html… что его и похоронило в итоге (как "еще один конкурирующий стандарт")


Но вы, как начинающий программист думаете, что это железячники создали нарочно для вас эти ненадёжные медиа среды?

Я видел много разных сред, x.25 например и какието еще более древние serial стандарты с кабелюками толщиной в руку и скоростями 10кб.сек и здоровенными девайсами с толстенными мануалами как их настраивать которые их конвертят в IP протокол
я с уважением отношусь к протоколам физических сред и транспортным, но когда лезть начинают в верхние уровни просто "мы тут за вас придумали стандарт, потому что физический канал узкий и теперь вы будете делатьтак" что положило крест на его дальнейшем развитии и вынудило делать отдельную инфраструктуру для мобильных сайтов… которую целиком закопали с появлением 3G… и "чоэтобылотакое?" в итоге


Но вы, как начинающий программист

ну извольте, я программирую с 98 года как минимум… тогда я и был начинающим

Насколько я в курсе, платформы с Intel ME (или эквивалентом AMD) и без него совершенно по-разному ведут себя по отношению к оперативной памяти. Если есть ME, то поиск модулей памяти и первичное конфигурирование контроллеров (и не только - проверяется и подключается вся периферия, которая должна работать при выключенных процессорах) исполняет он, BIOS в процессоре пользуется готовыми данными. А вот если ME нет, то включается описанный набор хитрых приёмов с использованием кэша в качестве эмуляции оперативной памяти. Прошу уточнить, кто знает точно.

Рассказ про адрес загрузки BIOS, 32-битный режим и всё такое - малая и не самая характерная часть общего рассказа без упоминания хотя бы "unreal mode" и стартового режима работы контроллера памяти, так что выглядит слишком изолированным. Аналогично про управление прерываний.

Микрокод может обновляться и через BIOS, и через ОС, так что про "очень раннюю стадию" - полуправда. В микрокоде очень много не кода, а флагов типа "для операции X использовать модуль X1, а не X2".

В целом - статья выглядит как взяли толстую книгу и рандомно выдернули несколько глав из неё, потеряв общую целостность. Качество на двойку с плюсом.

Если у нас стартовый адрес 0x000F.FFF0, (или FFFF.FFF0), у нас есть всего 16 байт на код до возникновения события переполнения указателя адреса.
Вот аккуратно там FAR JMP и помещается в этих первых байтах. В реальном режиме эта команда 5-ти байтная.
Это всегда самая первая команда (за редкими исключениями спец-стендов энтузиастов), с которой начинается выполнение кода любого биоса на процессорах х86 после а) подачи питания и б) снятия ресета.
"Чип биоса" не настраивается никаким боком, это "загружаемая в него прошивка настраивается таким образом, что...". Очень неудачный, вводящий в заблуждение перевод.

... очень сильно раньше перед JMP FAR часто шёл ещё 1 байт DI (запрет прерываний)

Ни разу не видел.
У Интела это команда CLI, код 0xFA, кажется.
Но процессор, оживая после сброса, уже имеет гарантированно запрещённые прерывания. Если сильно хочется, можно поместить её первой в сегменте, куда делается FAR JMP.

Sign up to leave a comment.