Ремонт оргтехники Обсуждение и вопросы по ремонту мониторов, компьютерных комплектующих, сканеров, принтеров и т.п. |
15.05.2013, 21:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: Виндовс 8
Сообщение от Monyak
|
Я конечно же идиот, и глушь не радиофицированая, но даже мне понятно что биосы не пишут на бейсиках и сях, их пишут на асмах
|
этот выложенный кусочек есть код ACPI Source Language (ASL).
|
|
|
|
15.05.2013, 22:07
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Виндовс 8
Monyak, Вы действительно - не в теме ...
__________________
Осторожно , злой кот
|
|
|
|
15.05.2013, 22:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,574
Сказал спасибо: 704
Сказали Спасибо 4,345 раз(а) в 1,992 сообщении(ях)
|
Re: Виндовс 8
Специалиста и НЕ легко выявить по манере изложения вопроса и ведению дискуссии...
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.
|
|
|
|
15.05.2013, 23:00
|
|
Временная регистрация
Регистрация: 22.01.2007
Адрес: Германия, Маинц
Сообщений: 97
Сказал спасибо: 0
Сказали Спасибо 33 раз(а) в 15 сообщении(ях)
|
Re: Виндовс 8
Сообщение от Monyak
|
Имея только поверхностное знание английского, ни чего абсолютно не понимая в компах, можно эвристическими и дедуктивными методами понять что вы апсалютна нихрена не понимаете в том, о чем говорите.
Тут вы выложили куски какого-то кода на бейсике (при чем не имеющий каких-либо запретов), и тюхаете нам, что это ограничение для компьютеров до какого-либо года. Якобы после этого, асипи, прикажет долго жить и уйдет в Ирий, на уровни таблиц биоса забавляться с райскими гуриями. Я конечно же идиот, и глушь не радиофицированая, но даже мне понятно что биосы не пишут на бейсиках и сях, их пишут на асмах
Вам посоветую найти кокойнебудь самонаучитель работы на персональном компьютере. Лучшая токая книга афтара Фигурнова. Там доходчиво расписаны отличия биоса и виндоса
|
Если бы Вы действительно хоть что-либо читали, а не просто тролили, то знали бы о том, что BIOSы пишутся по определённым стандартам на языке ACPI (но ни как не ASM!). Приведенные мною участки кода являются ветвлениями, позволяющими осуществить автонастройку функций BIOSа в зависимости от типа используемой ОС. К таким автоматическим функциям, обычно, относятся режимы энергосбережения (в основном ноутбуки), режимы работы LPC и устройств в составе LPC, таких как HPET, TIMER и т. п. Несоответствие установленной (устанавлеваемой) ОС этому списку приводит к ограничениям функциональности устройств ACPI вплоть до невозможности загрузить ОСь (запустить инсталляцию ОСи).
Более подробно о возможностях ACPI можно прочесть в соответствующей спецификацйии (выкладывалась уже кем-то в этой ветке парой страниц ранее). Объём этого талмуда 701 (если не ошибаюсь) страница. В нём описан язык ACPI и приведены примеры кода для некоторых устройств. Язык спецификации - английский. Для такого знатока английского, как Вы - на ночку лёгкого чтива.
Для общего развития (ну коль уж так влом читать спеки по теме) вот вкратце об АCPI в Википедии: http://ru.wikipedia.org/wiki/ACPI - не сочтите за труд, прочтите хоть это на досуге.
Для особо въедливых скептиков, не способных принять не только наличие сравнительно легко читаемых таблиц BIOSa, а даже само наличие этих таблиц, рекомендую обзавестись Аидой (Эверестом) инженерной версии и выполнить последовательно ряд действий:
1. Запускаем Аиду (Эверест).
2. Кликаем правой кнопкой по нижней части окна программы и выбираем ACPI Tool (рис. 1).
3. В открывшемся новом окне выбираем Save Table (рис. 2).
4. Выбираем в выпадающем окне нужные нам таблицы (по одной!) и сохраняем их куда-либо. Одноимённые таблицы, например такие, как SSDT, при сохранении лучше переименовать (например с добавлением к существующему имени уникального номера). В противном случае сохраняемая таблица затрёт предыдущую, уже сохранённую.
В результате этих действий мы получим набор таблиц с именами acpi_таблица.bin, гда вместо "таблица" будет имя нашей таблицы из 4-х букв (например acpi_dsdt.bin). В случае же с SSDT мы получим ряд таблиц (например acpi_ssdt_0.bin, acpi_ssdt_1.bin, acpi_ssdt_2.bin, и т. п, где добавление _0, _1,_2, и т. п. - наше изменение имён для одноимённых SSDT).
5. Меняем расширения наших файлов на .aml c тем, что бы IASL мог их декомпилировать. Ищем в сети IASL под Windows.
6. Декомпилируем таблицы.
7. Вооружаемся талмудом по ACPI и внимательно изучаем то, что под крышечкой нашего Ящика Пандоры под названием РС.
По поводу IASL под Windows вот тут исходная информация: https://www.acpica.org/downloads/windows-source
Последний раз редактировалось IgorBaulin; 15.05.2013 в 23:22.
|
|
|
|
15.05.2013, 23:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Виндовс 8
Хрошо. Вы все тут такие просвящённые, поэтому спрошу вас.
1. Не важно, на чём пишутся биосы. В итоге получается исполяемый код для процессора. И этот самый исполняемый код запускается при начальной инициализации. Пока всё верно излагаю?
2. Далее биос распределяет ресурсы pnp устройств и ищет загрузчик.
Перед передачей управления загрузчику подсисема инициализации устройств (можете назвать её ACPI) включает те или иные устройства, задаёт их режим работы. Например, модуль Wi-Fi на ноутбуке может совсем не включить. Но это, как мне подсказывает внутреннее чутьё, уже не ACPI, а конкретная система управления питанием конкретного ноута или PC.
Всё так? И как правило, на данном этапе включается максимальная частота процессора и т.п.
3. Биос нашёл загрузчик и передал ему управление. Загрузчик грузит драйвера, ядро и пр. При загрузке драйвера код драйвера обращается к нужным портам и адресам памяти, чтобы начать обмен данными с устройством. ACPI тут пока как бы не нужно. Пока всё верно?
4. Драйвера загружены, ядро системы тоже. Пока я рассказываю, уже и оболочка загрузилась. И тут возникает вопрос: а когда же нужен тот самый ACPI? А нужен он получается тогда, когда система захочет понизить частоту процессора, перевести компьютер в сон, отключить какое-либо устройство. Вот на этом этапе система лезет в БИОС, откапывает там таблицы ACPI, декодирует их и в результате получает исполнимый код для ЦП, после выполнения которого нужное нам сбудется.
А что же будет, если система не найдёт подходящей для себя записи таблицы? Она просто не сможет отключить какое-либо устройство, не сможет перевести его в состояние пониженного энергопотребления и т.п. Возможно, в худшем варианте, система не сможет перевести устройство в рабочий режим (это если изначально устойство в таком состоянии и находилось, что сомнительно). Всё так?
Отсюда напрашивается вопрос: если нужной записи (например, для Windows XP) в таблице не оказалось, вероятно, в таблице должна быть дефолтная запись, как раз на такой случай. Возможно, не такой гибкий, но железно работающий, этот код система и выполнит. Или не так?
|
|
|
|
16.05.2013, 00:58
|
|
Гуру портала
Регистрация: 26.01.2007
Адрес: Дивное, Россия
Сообщений: 14,955
Сказал спасибо: 7,389
Сказали Спасибо 18,516 раз(а) в 6,442 сообщении(ях)
|
Re: Виндовс 8
Microsoft рассказала об обновлении для Windows 8
Windows Blue будет поставляться бесплатно до конца года
Microsoft объяснила, как будет распространяться обновление операционной системы Windows 8. Ранее ходили слухи, что этот продукт под названием Windows Blue станет новой версий операционной системы, но компания опровергла их.
Апдейт выйдет в свет под именем Windows 8.1 и до конца года будет распространяться на бесплатной основе. Доступ будет осуществляться сразу после выпуска прямо со стартового экрана. Превью-версии появятся 26 июня. К сожалению, сроки официального релиза пока неизвестны.
Насчет возвращения кнопки "Пуск" в обновленной Windows говорить пока рано. Зато точно известно, что будет доработан функционал ОС. Заявлена поддержка устройств с диагональю экрана меньше 10 дюймов. Хотя производители пока не спешат радовать нас "наладонниками" под Win8. Кроме того, пользователи смогут менять размер "живых плиток" — а не выбирать из нескольких имеющихся вариантов, как в предыдущей версии. Также появится возможность загружать режим привычного рабочего стола, минуя загрузку "живых плиток" и обновленный браузер Internet Explorer 11.
__________________
Любое утверждение верно, включая и это.
|
|
|
|
16.05.2013, 02:29
|
|
Временная регистрация
Регистрация: 22.01.2007
Адрес: Германия, Маинц
Сообщений: 97
Сказал спасибо: 0
Сказали Спасибо 33 раз(а) в 15 сообщении(ях)
|
Re: Виндовс 8
Сообщение от Godzilla82
|
Хрошо. Вы все тут такие просвящённые, поэтому спрошу вас.
1. Не важно, на чём пишутся биосы. В итоге получается исполяемый код для процессора. И этот самый исполняемый код запускается при начальной инициализации. Пока всё верно излагаю?
2. Далее биос распределяет ресурсы pnp устройств и ищет загрузчик.
Перед передачей управления загрузчику подсисема инициализации устройств (можете назвать её ACPI) включает те или иные устройства, задаёт их режим работы. Например, модуль Wi-Fi на ноутбуке может совсем не включить. Но это, как мне подсказывает внутреннее чутьё, уже не ACPI, а конкретная система управления питанием конкретного ноута или PC.
Всё так? И как правило, на данном этапе включается максимальная частота процессора и т.п.
3. Биос нашёл загрузчик и передал ему управление. Загрузчик грузит драйвера, ядро и пр. При загрузке драйвера код драйвера обращается к нужным портам и адресам памяти, чтобы начать обмен данными с устройством. ACPI тут пока как бы не нужно. Пока всё верно?
4. Драйвера загружены, ядро системы тоже. Пока я рассказываю, уже и оболочка загрузилась. И тут возникает вопрос: а когда же нужен тот самый ACPI? А нужен он получается тогда, когда система захочет понизить частоту процессора, перевести компьютер в сон, отключить какое-либо устройство. Вот на этом этапе система лезет в БИОС, откапывает там таблицы ACPI, декодирует их и в результате получает исполнимый код для ЦП, после выполнения которого нужное нам сбудется.
А что же будет, если система не найдёт подходящей для себя записи таблицы? Она просто не сможет отключить какое-либо устройство, не сможет перевести его в состояние пониженного энергопотребления и т.п. Возможно, в худшем варианте, система не сможет перевести устройство в рабочий режим (это если изначально устойство в таком состоянии и находилось, что сомнительно). Всё так?
Отсюда напрашивается вопрос: если нужной записи (например, для Windows XP) в таблице не оказалось, вероятно, в таблице должна быть дефолтная запись, как раз на такой случай. Возможно, не такой гибкий, но железно работающий, этот код система и выполнит. Или не так?
|
Если бы всё было именно так, то БИОС уже канул бы в Лету - его заменили бы любым другим флэш-загрузчиком размером в 4 кБ и с момента включения машины до рабочего стола проходило бы менее секунды...
Однако реальная загрузка происходит по несколько другому сценарию. Дабы не грузить ближних своих я постараюсь упростить описание процесса загрузки...
1. Итак мы включили комп... BIOS загрузил в память первичный (внутренний) загрузчик и тестирует память. После теста памяти первичный загрузчик загружает в память всё дерево устройств (DSDT). На основании этого дерева устройств начинается инициализация устройств и подгрузка первичных драйверов (графика в VESA, USB, сеть, и т. п.) из BIOSа. На этом этапе, после загрузки этих драйверов, мы можем, например, войти в бутменю, или BIOS, выбрать загрузочное уст-во, либо внести изменения в конфигурацию уст-в. При выходе из режима настройки BIOS с сохранением внесенных изменений перезапишется состояние энергонезависимой памяти CMOS, но внесенные изменения "подцепятся" только после ребута. При выборе же загрузочного уст-ва, как и в случае, если мы не трогали ничего, и первичный загрузчик не отработал прерывания клавиатуры, а так же не произошло прерываний по ошибкам уст-в, начинается поиск бутсектора загрузочного уст-ва. Как только загрузочное уст-во найдено первичный загрузчик передаёт управление загрузчику, находящемуся на этом уст-ве (смею заметить, что основные таблицы БИОСа уже давно в памяти). Загрузчик системы загружает ядросистемы. А вот уже ядро системы запрашивает таблицы BIOSa, но не в самом BIOSе, а в памяти компа, и на основании их генерирует недостающие, но ей необходимые (отсюда куча одноимённых SSDT). Эти таблицы (и вновь сгенерированные, и загруженные ранее из BIOSa) формируют:
1. Дерево устройств.
2. Общую схему энергообеспечения процессора, памяти, шины, и т. п.
Уже сама система подключает уст-ва P&P, загружает свои драйвера, частично, или полностью заменяющие BIOSовские, изменяет режимы работы устройств. Однако все эти действия система делает на основании таблиц BIOSa.
А теперь представим себе не совсем умозрительный эксперимент...
Предположим, что некий весьма продвинутый юзер решил перекроить свой DSDT. Рассматривая эту таблицу этот юзер увидел на шине PCI устройство P0P5, пересчитал разъёмы PCI, а их оказалось всего 4.
- Ну коль нет разъёма, - думает этот юзер, - отрежу ка я его...
Сказано - сделано. Устройство отрезано, новый, модифицированный DSDT вставлен в BIOS и прошит. Однако после загрузки машины этот юзер обнаружит, что интернет-адаптер, встроенный в мамку, ни в одной системе не виден и никакими драйверами не поднимается. Почему? Ведь чип остался на месте, и дорожки целы - ну ничего же не изменилось кроме DSDT!
Однако, при ближайшем рассмотрении, системы отказываются видеть не сам интернет-адаптер, а точку подключения к шине PCI. Таким образом, отрезав устройство Р0Р5 в DSDT мы удалили из дерева уст-в саму точку подключения интернет-адаптера к шине РCI.
Не вернув устройство Р0Р5 на шину PCI в DSDT ни одна система нашего встроенного интернет-адаптера не увидит никогда.
Понятно, что наш эксперимент умозрителен, т. к. одним движением мыши устройство из DSDT не выкинуть - слишком много зависимостей, и удалять куски прийдётся в нескольких местах. Но на подобные грабли и линукс-сообщество и хак-сообщество сталкивалось не раз. На профильных форумах множество тем посвящено коррекции DSDT и SSDT таблиц. Если кто-то заинтересуется более подробно темой патчинга таблиц BIOSa - Гугль в помощь (тьма ссылок, и особо искать не нужно).
Последний раз редактировалось IgorBaulin; 16.05.2013 в 10:33.
|
|
|
|
16.05.2013, 07:36
|
|
Гражданин KAZUS.RU
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: Виндовс 8
IgorBaulin, а в какой момент времени ACPI решает какая ОС будет загружена и в соответствии с этим несколько настраивает конфигурацию железа? Ведь при включении ПК еще неизвестно какую ОС мы будем загружать.
|
|
|
|
16.05.2013, 09:12
|
|
Почётный гражданин KAZUS.RU
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
|
Re: Виндовс 8
Сообщение от IgorBaulin
|
Если бы всё было именно так, то БИОС уже канул бы в лету - его заменили бы любым другим флэш-загрузчиком размером в 4 кБ и с момента включения машины до рабочего стола проходило бы менее секунды...
|
Ну про тестирование памяти - это всё понятно, щас мы об ACPI говорим, ни к чему столь подробно расписывать.
Сообщение от IgorBaulin
|
Как только загрузочное уст-во найдено первичный загрузчик передаёт управление загрузчику, находящемуся на этом уст-ве (смею заметить, что основные таблицы БИОСа уже давно в памяти).
|
Это да. Ошибся. Таблицы хранятся в RAM.
Сообщение от IgorBaulin
|
Предположим, что некий весьма продвинутый юзер решил перекроить свой DSDT. Рассматривая эту таблицу этот юзер увидел на шине PCI устройство P0P5, пересчитал разъёмы PCI, а их оказалось всего 4.
- Ну коль нет разъёма, - думает этот юзер, - отрежу ка я его...
Сказано - сделано. Устройство отрезано, новый, модифицированный DSDT вставлен в BIOS и прошит.
...
Однако, при ближайшем рассмотрении, системы отказываются видеть не сам интернет-адаптер, а точку подключения к шине PCI. Таким образом, отрезав устройство Р0Р5 в DSDT мы удалили из дерева уст-в саму точку подключения интернет-адаптера к шине РCI.
Не вернув устройство Р0Р5 на шину PCI в DSDT ни одна система нашего встроенного интернет-адаптера не увидит никогда.
|
Хорошо. Но причём тут конкретно версии Windows? Это раз. Я не зря спросил про так сказать запись по умлчанию в таблицах, к которой придёт в своих поисках система, не найдя записи именно для своей версии.
А два - это компы без ACPI. Например, на базе Intel 486 процессора. Тогда ещё ни о каком ACPI и речи не было, однако все устройства находились системой без проблем.
Сообщение от Flopix
|
IgorBaulin, а в какой момент времени ACPI решает какая ОС будет загружена и в соответствии с этим несколько настраивает конфигурацию железа? Ведь при включении ПК еще неизвестно какую ОС мы будем загружать.
|
ACPI ничего не решает. Это всего лишь таблица с данными. ОС уже сама лезет в эту таблицу, чтобы перевести устройство в тот или иной режим.
|
|
|
|
16.05.2013, 09:20
|
|
Гражданин KAZUS.RU
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: Виндовс 8
Из вики
Цитата:
|
Интерфейс ACPI организуется путём размещения в определённой области оперативной памяти нескольких таблиц, содержащих описание аппаратных ресурсов и программных методов управления ими. Каждый тип таблицы имеет определённый формат, описанный в спецификации. Кроме того, таблицы, содержащие методы управления устройствами и обработчики событий ACPI, содержат код на языке AML (ACPI Machine Language) — машинно независимый набор инструкций, представленный в компактной форме. Операционная система, поддерживающая ACPI, содержит интерпретатор AML, который транслирует инструкции AML в инструкции центрального процессора, выполняя таким образом методы или обработчики событий
|
Или я что то не понимаю или вы IgorBaulin сами заблуждаетесь.
Хотя, из той же вики
Цитата:
|
Другие таблицы хранят динамические данные, которые зависят, например, от установок BIOS и комплектации материнской платы. Такие таблицы формируются BIOS на этапе загрузки системы до передачи управления ОС.
|
В любом случае тот код что привели пару страниц назад выполняется именно под управлением операионной системы а не BIOS.
Последний раз редактировалось Flopix; 16.05.2013 в 09:25.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:25.
|
|