LINUX.ORG.RU
ФорумTalks

а bios после загрузки ОС используется?


0

1

Внезапно, прочитав лог загрузки в попытках выяснить, почему не пашет suspend, наткнулся на

[Firmware Bug]: powernow-k8: No compatible ACPI _PSS objects found.

Т.е. получается, что ОС не полностью сама все контролирует, а используются функции из прошивки. Тогда вопрос: а на каком процессоре все это работает? Есть ли к нему доступ из программ, работающих на CPU? Ведь получается, что когда компьютер включается, bios загружает на него прошивку. Значит доступ в принципе должен быть.

Есть ли какая информация по этому?

★★★★★

а на каком процессоре все это работает?
Есть ли к нему доступ из программ, работающих на CPU?
когда компьютер включается, bios загружает на него прошивку

Омг.

Deleted
()

Вроде бы используется.

XoFfiCEr ★★☆☆
()

Есть ли к нему доступ из программ, работающих на CPU?

Должен быть Imho

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от Deleted

когда компьютер включается, bios загружает на него прошивку

Омг.

И что тебя так удивило? ТС объяснил топорно, но всё же.

Lighting ★★★★★
()

Я не знаю точно как в Linux, но в винде так: библиотеки dll (winapi) используют процедуры ввода-вывода которые зашиты в bios.

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от Motif

ТС сказал, что в BIOS есть свой процессор, отдельный от CPU. Омг.

я этого не говорил

cvs-255 ★★★★★
() автор топика
Ответ на: комментарий от Motif

По-моему, ТС сказал совсем не то. Перечитай ещё раз.

Lighting ★★★★★
()
Ответ на: комментарий от Motif

Однако, прочитав про UEFI

загрузочные и runtime-сервисы, которые доступны для загрузчика операционной системы (ОС) и самой ОС

Пункт про саму ОС говорит о том, что либо

a) есть отдельный процессор, на котором и выполняется этот код

либо

б) на самом деле ОС работает под скрытым гипервизором. А этот uefi код выполняется вне его.

и да, эти варианты не исключают друг друга

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от cvs-255

BIOS - это базовая система ввода-вывода и нужна она в основном для загрузки операционной системы. А операционная система может использовать какие то свои более продвинутые модули для ввода-вывода и не использовать BIOS, а может и использовать. Не знаю точно.

XoFfiCEr ★★☆☆
()

Чего? Не распарсил сам вопрос

koirn
()

А ведь большинство ЛОРовцев искренне думают, что они знают как устроен компьютер.

Relan ★★★★★
()

что ОС не полностью сама все контролирует
Есть ли какая информация по этому?

Курс универа «Архитектура ЭВМ» же. BIOS — это набор функций-абстракций над некоторыми действиями процессоров. То есть, для того, чтобы костыль самого нижнего уровня позволял не плодить разные костыли в самой операционной системе под каждый процессор.

Говоря грубо, не умеет процессор сам делить, а в биосе уже есть готовая функция деления.

alexmaru
()
Ответ на: комментарий от alexmaru

Грубо говоря, ныншение биосы до сих пор работают в реальном режиме, тогда как ОС давно в long mode.

Artificial_Thought ★★★★
()
Ответ на: комментарий от alexmaru

не умеет процессор сам делить, а в биосе уже есть готовая функция деления

Да вы тут отжигаете один другого круче. :D

Relan ★★★★★
()
Ответ на: комментарий от alexmaru

а в биосе уже есть готовая функция деления.

Он что, отлавливает команду div, и эмулирует ее? Тогда это чистейший гипервизор.

cvs-255 ★★★★★
() автор топика

Открой уже для себя устройство компьютера и не путай бивис с наборами инструкций и подобными вещами.

Если просто и на пальцах, то то, что ты называешь бивисом, суть микроОСь, которая позволяет запустить машину и начать загрузку нормальной системы. Помимо этого существует ещё, просто говоря, набор инструкций, который позволяет пейсателям ОСей не сильно заморачиваться на конкретные особенности железной реализации, а просто дёргать нужные функции.

aleks13
()

Молодежжжжжь :)

«функции из прошивки» это прерывания ROM BIOS. Записываешь в регистры проца нужные значения, и команда «int номер». Примитивный API, короче. Активнейшим образом использовался в DOS, как в современных системах хз.

yu-boot ★★★★★
()

а bios после загрузки ОС используется?

он для загрузки используется. это старовый набор инструкций, только и всего. и действует он от момента включения машины и до начального момента загрузки с MBR.

Komintern ★★★★★
()

вопрос: а на каком процессоре все это работает? Есть ли к нему доступ из программ, работающих на CPU?

ACPI-методы реализуются AML - это что-то вроде кода виртуальной машины, который интерпретируется внутриядерным интерпретатором.

Есть ли какая информация по этому?

Есть спецификация ACPI.

tailgunner ★★★★★
()

BIOS мог использоваться из операционной системы (да и сейчас используется - например для некоторых вещей через SMM). Строго говоря сейчас биоса не существует, а есть UEFI, который эмулирует вызовы биос (и то лишь малую часть) в CSM модуле (прыжки 64 -> 32 -> 16 ... 16 -> 32 -> 64, существенно замедляют загрузку систем с содержанием 16битного кода > 0%). UEFI может оставлять после себя запущенные куски кода, называемые runtime-services, идея была в том, чтобы написать один раз драйвера для UEFI - и ОС не надо своих драйверов. Но на практике никто не доверит такую вещь как драйвера стороннему коду, и поэтому runtime services практически не распространены. UEFI как и почивший BIOS запускаются на главном процессоре BP (Bootstrap) потом эта зараза распространяет себя и на AP (ведомые процессорные юниты). Отдельные модули BIOS/UEFI запускаются на отдельных микроконтроллерах. Таковы, например, прошивки Intel ME/AMT исполняющиеся на встроенных в процессор/чипсет ARCtangent A4/A5, AMD IMC исполняющийся на втроенном в процессор/чипсет 8051, модули EC ( Embedded Controller - в каждом ноутбуке, управляет электропитанием, вентиляторами и т.п.) - но не всегда, иногда у них встроенная в чип прошивка. И далее по списку. По сути, каждая система PC, вплоть до контроллеров USB и т.д. - отдельный маленький компьютер. И это лишь беглый и поверхностный обзор.

P.S. А привеленное сообщение ядра лишь говорит о криво написанном ACPI, который испоняется ядром.

XVilka ★★★★★
()
Последнее исправление: XVilka (всего исправлений: 1)
Ответ на: комментарий от Relan

Да вы тут отжигаете один другого круче. :D

А как ещё проще аналогию провести, не переходя на «представьте галактику в виде яичницы»?

alexmaru
()

А BIOS после загрузки ОС используется?

Да. Больше скажу, с ним взаимодействовать из юзерспейса можно.

CYB3R ★★★★★
()
Ответ на: комментарий от XoFfiCEr

Я не знаю точно как в Linux, но в винде так: библиотеки dll (winapi) используют процедуры ввода-вывода которые зашиты в bios.

какой бред

Harald ★★★★★
()
Ответ на: комментарий от alexmaru

Говоря грубо, не умеет процессор сам делить, а в биосе уже есть готовая функция деления.

facepalm.jpg

в треде подразумевается x86, он делить точно умеет

Harald ★★★★★
()

короче, в древние и далекие времена BIOS писюка задумывался как набор функций и драйверов, предоставляемых операционной системе, чтобы ОС не нужно было иметь свои драйверы клавиатуры, дисков, видеокарты и т.д. Это всё работало в реальном режиме.

Но вместе с новыми процессорами x86 появился защищённый режим, а нового биоса для защищенного режима не возникло. По крайней мере стандартного и получившего распространение. Так попытки вроде были

В итоге сейчас BIOS (или его эмуляция) используется только загрузчиком ОС на начальном этапе для считывания данных с дисков и вывода текста на экран. Дальше ОС загружает свои драйверы для всех устройств, и функции биоса уже не нужны

Но в современных процессорах кроме защищённого режима есть ещё дополнительный режим (SMM, ACPI или ещё как-то), при входе в который выполняется код из микросхемы, в которой также хранится BIOS. За подробностями, зачем оно нужно и как это всё работает - обращаться в Intel Architecture Manual

Упрощённо будет так :)

Harald ★★★★★
()
Ответ на: комментарий от Relan

Я знаю как устроен прибитый к стене 486й. Как устроен мой нынешний i7 - для меня тайна за 7 печатями. И это есть плохо. Хотя несмотря на открытие Ниагары2 (UltraSPARC T2) под GPL - желающих её клепать тоннами пока не наблюдается.

svr4
()
Ответ на: комментарий от aleks13

которая позволяет запустить машину и начать загрузку нормальной системы.

а также инициализация перефирии

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)

ACPI - програмный интерфейс, конечно OC из пзу таблицы в память подгружает

биос сам по себе не используется уже давно, все его инициализации итп итд современным осям не нужны, другое дело - из него соорудили «костыль для ACPI»

PSS - это P(power) System State, множитель в ОС работает ? (гуляет частота под нагрузкой и без ?)

штеудская материнка поди?

/вытаскивай таблицы/исправляй косяки

uin ★★★
()
Ответ на: комментарий от cvs-255

Он что, отлавливает команду div, и эмулирует ее?

Зачем? Деление будет скажем int 0fch.

yu-boot ★★★★★
()
Ответ на: комментарий от cvs-255

б) на самом деле ОС работает под скрытым гипервизором. А этот uefi код выполняется вне его.

Не знаю, как в UEFI, но начиная с i486 появился SMM, который работает в специальном привилегированном режиме с большими привилегиями чем у ядра ОС.

Xenius ★★★★★
()
Ответ на: комментарий от cvs-255

Он что, отлавливает команду div, и эмулирует ее? Тогда это чистейший гипервизор.

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

Xenius ★★★★★
()

Внезапно, прочитав лог загрузки в попытках выяснить, почему не пашет suspend, наткнулся на

А с чего ты решил, что именно из-за этого?

Тогда вопрос: а на каком процессоре все это работает?

Срочно читать что такое процессор!

Есть ли к нему доступ из программ, работающих на CPU?

Срочно читать что такое процессор!!!! http://ru.wikipedia.org/wiki/Процессор

Ведь получается, что когда компьютер включается, bios загружает на него прошивку.

Срочно читать что такое процессор!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Kroz ★★★★★
()
Ответ на: комментарий от yu-boot

как в современных системах хз.

Если говорить об embedded приборах, то еще используют.

AlexCones ★★★
()

Прочитал тред, разбил себе рукой лицо.

Pavval ★★★★★
()

1)Биос копируется в ОЗУ при загрузке ЛЮБОЙ ОС. Но по определенному адресу. Везде по разному. Это нужно для того чтобы использовать прерывания. к примеру прерывание вроде 15h используется для отключения и перезагрузки.
2)Делай багрепорт. Может быть тебе дадут буказоидов т.к. это Firmware Bug. :)

havelite
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.