Comments 21
Как только получено питание (от батареи или электросети), включается Intel ME. Он выполняет свой набор процедур инициализации
Да щазз! Напомню, что между микросхемой BIOS, в которой записан код Intel ME, и процессором имеется как минимум два устройства - шинный контроллер и контроллер доступа к памяти. И прежде чем процессор получит доступ к коду из микросхемы, который он должен начать выполнять, ему просто необходимо запустить, настроить и протестировать эти промежуточные компоненты.
И тут возникает вопрос: откуда процессор берет код для настройки этих промежуточных компонентов?
И прежде чем процессор получит доступ к коду из микросхемы, который он
должен начать выполнять, ему просто необходимо запустить, настроить и
протестировать эти промежуточные компоненты.
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 (запрет прерываний)
Как загружается процессор Intel x86