О BIOS, прерываниях и т.п.

Свернуть
X
 
  • Время
  • Показать
Очистить всё
новые сообщения
  • Полковник
    Ветеран

    • 14 September 2005
    • 18241

    #1

    О BIOS, прерываниях и т.п.

    ВЫДЕЛЕНО ИЗ ТЕМЫ ПРО WINDOWS 8

    Вы про Win95, Win98??? Ну дак там главное отличие в поддержке 32 разрядной шины. Всё остальное - чистый дос. И нет там реальной многозадачности - там процессорное время делится между задачами - какая же это многозадачность???
    Это псевдомногозадачность.
    Факт - в ассемблере нет команд для реализации многозадачности. А вот приоритеты и стеки есть - вот это оно...

    ПС:
    Кста - ща глянул ДОС 6.22 тоже юзает 32 разрядную. Так что никакой разницы.

    ПС2:
    Зайдите в панель управления В95 или В98 и сделайте загрузочную дискету. Что вы видите на дискете? Правильно - чистый ДОС!

    .
    Последний раз редактировалось Павел_17; 05 May 2012, 05:28 AM.
    "Давайте учиться иметь свое мнение, давайте не будем повторять чужое."
    Виктор Суворов
  • Bandarlog
    Участник с неподтвержденным email

    • 09 May 2010
    • 629

    #2
    Сообщение от Полковник
    Именно это и хотел сказать. Приведённый вами пример работы браузера - это именно псевдомногопоточность. Она работает только если времена выполнения всех потоков вместе не превышают быстродействие процессора. То есть на медленных каналах связи ОС может реализовать многопоточную работу браузера.
    Т.е. даже псевдомногопоточность может быть полезна.
    Сообщение от Полковник
    Попробуйте ту же машину с той же 98-й подключить к оптоволокну - никакой многопоточности не будет - сразу заметите тормоза.
    Следует различать "не будет" и "будет, но с тормозами".

    Сообщение от Полковник
    Ну и псевдомного***ность реализуется и в ДОС-е. Так что винда - это всего лишь оболочка с примочками.
    "Ну новости я могу и в газете почитать. Так что интернет - это всего лишь газета с примочками."
    Для бабушки на лавочке сойдет, но здесь все-таки технический раздел...

    Сообщение от Полковник
    Ядро-то у неё досовское
    У 1.0-3.1. Не дальше.

    Комментарий

    • Okarin
      Ветеран

      • 09 December 2011
      • 1930

      #3
      Сообщение от Полковник
      Вы про Win95, Win98???
      Win95\98\Me все на одном ядре, которое был своеобразной надстройкой над досом.
      Ну дак там главное отличие в поддержке 32 разрядной шины. Всё остальное - чистый дос.
      Там была куча отличий, главным образом в доступе к железу. Хоть он был и прямой как в досе, более-менее стандартизированный интерфейс они таки сделали. Ну и плаг-энд-плей, конечно же.
      И нет там реальной многозадачности - там процессорное время делится между задачами - какая же это многозадачность???
      Это нормальная, вытесняющая многозадачность. В досе только одно загруженное приложение получало процессорное время, это невытесняющая многозадачность. Правда win3.11 и в последних версиях доса впилили кооператиную многозадачность, но это все не труъ.
      Это псевдомногозадачность.
      В NT и никсах сейчас обычно именно такая.
      Факт - в ассемблере нет команд для реализации многозадачности. А вот приоритеты и стеки есть - вот это оно...
      Чего? На ассамблере прекрасно пишут многозадачные оси.
      ПС2:
      Зайдите в панель управления В95 или В98 и сделайте загрузочную дискету. Что вы видите на дискете? Правильно - чистый ДОС!
      И? win9x работал над ядром доса.
      Есть две бесконечные вещи Вселенная и человеческая глупость. Впрочем, насчёт Вселенной я не уверен.©

      Комментарий

      • Bandarlog
        Участник с неподтвержденным email

        • 09 May 2010
        • 629

        #4
        Сообщение от Okarin
        Win95\98\Me все на одном ядре, которое был своеобразной надстройкой над досом.
        Я бы сказал, что ДОС там где-то сбоку был. Помочь запуститься да приложения свои запускать (в VDM).
        Короче говоря, MS DOS используется в ядре Win 95, но ее ядро != MS DOS.

        Комментарий

        • Okarin
          Ветеран

          • 09 December 2011
          • 1930

          #5
          Сообщение от Bandarlog
          Я бы сказал, что ДОС там где-то сбоку был. Помочь запуститься да приложения свои запускать (в VDM).
          Короче говоря, MS DOS используется в ядре Win 95, но ее ядро != MS DOS.
          Строго говоря, у ядра у доса в современном понимании вообще не было, был IO.SYS который общался с биосом, да обработчик прерываний в виде MSDOS.SYS. Оный в win95 перекачал в IO.SYS. Ну и плюс комплект всяких драйверов, вроде незабвенного HIMEM.SYS.
          В win95 уже было своё ядро в виде VMM, но оно самостоятельно работать не умело, работа с фс - была вынесена в отдельный досовский драйвер. Собственно, все win 9x продолжали использовать досовский обработчик прерываний и общалку с биосом. Как-то так.
          Есть две бесконечные вещи Вселенная и человеческая глупость. Впрочем, насчёт Вселенной я не уверен.©

          Комментарий

          • Okarin
            Ветеран

            • 09 December 2011
            • 1930

            #6
            Вообще у 9x чудовищная архитектура. Читать сюда: http://ru.wikipedia.org/wiki/VMM
            Есть две бесконечные вещи Вселенная и человеческая глупость. Впрочем, насчёт Вселенной я не уверен.©

            Комментарий

            • Полковник
              Ветеран

              • 14 September 2005
              • 18241

              #7
              Ой ужас то какой!!!

              И чо такого - не пойму. Конечно винда имеет отличия от доса, а чо хотели-то - это дальнейшее развитие системы.

              Весь вопрос в том, насколько оно далеко от доса уехало. 9х мизерно = как было оно оболочкой/надстройкой над досом, так ею и осталось.. Нынешние винды - да, далеко. Но если бы продолжала дос развиваться, то была бы она нечтом аналогичным ... фигня это всё...

              Сообщение от Okarin
              Вообще у 9x чудовищная архитектура. Читать сюда: VMM Википедия
              А ещё она собак ботся...



              ПС:
              И вообще любая ось это надстройка над биосом.

              .
              "Давайте учиться иметь свое мнение, давайте не будем повторять чужое."
              Виктор Суворов

              Комментарий

              • Bandarlog
                Участник с неподтвержденным email

                • 09 May 2010
                • 629

                #8
                Сообщение от Okarin
                был IO.SYS который общался с биосом, да обработчик прерываний в виде MSDOS.SYS. Оный в win95 перекачал в IO.SYS.
                Еще и обозвали это дело WINBOOT.SYS для отвода глаз.

                Вообще у 9x чудовищная архитектура. Читать сюда: VMM Википедия
                И померла вместе с Me. Земля ей пухом.

                Комментарий

                • Bandarlog
                  Участник с неподтвержденным email

                  • 09 May 2010
                  • 629

                  #9
                  Сообщение от Полковник
                  И чо такого - не пойму. Конечно винда имеет отличия от доса, а чо хотели-то - это дальнейшее развитие системы.
                  А я все-таки надеюсь, что поймете. Некоторый прогресс наблюдается.

                  Сообщение от Полковник
                  Весь вопрос в том, насколько оно далеко от доса уехало. 9х мизерно = как было оно оболочкой/надстройкой над досом, так ею и осталось.. Нынешние винды - да, далеко. Но если бы продолжала дос развиваться, то была бы она нечтом аналогичным ... фигня это всё...
                  Точно, фигня. Особенно про "9x мизерно".

                  Сообщение от Полковник
                  И вообще любая ось это надстройка над биосом.
                  Нет.

                  Комментарий

                  • Okarin
                    Ветеран

                    • 09 December 2011
                    • 1930

                    #10
                    Сообщение от Полковник
                    Весь вопрос в том, насколько оно далеко от доса уехало. 9х мизерно = как было оно оболочкой/надстройкой над досом, так ею и осталось.. Нынешние винды - да, далеко. Но если бы продолжала дос развиваться, то была бы она нечтом аналогичным ... фигня это всё...
                    Дос просто слишком убог. А 9x от него таки далеко ушёл. А нышение ведны ближе к OS/2 и VAX/VMS.
                    ПС:
                    И вообще любая ось это надстройка над биосом.
                    Нет. Практически все современные оси общаются с железом напрямую, из биоса их интересуют разве что таблицы ACPI и прочий подобный стафф.
                    Есть две бесконечные вещи Вселенная и человеческая глупость. Впрочем, насчёт Вселенной я не уверен.©

                    Комментарий

                    • Полковник
                      Ветеран

                      • 14 September 2005
                      • 18241

                      #11
                      Сообщение от Okarin
                      Нет. Практически все современные оси общаются с железом напрямую,
                      Ну выбросьте из виндей все дрова, и посмотрим чо она напрямую наобщается...
                      Вот в линуксе, да. Никаких дров не надо, ядро на железо компилячится и напрямик с ним работает.
                      Так что про ВСЕ, это перегиб...

                      Сообщение от Okarin
                      из биоса их интересуют разве что таблицы ACPI и прочий подобный стафф.
                      Окарин - а в биосе разве есть что-то ещё? Биос - это вообще-то и есть "железные" микропрограммы. Там больше нифига нету... ну загрузчик ещё, ну и всё...
                      И ни одна ось без этой инфы работать не будет, поскольку инфа - базовая...

                      А ещё нескромный вопрос: А что вы имели в виду под "таблицей ACPI"? Может вы имели в виду API? Описка?

                      .
                      "Давайте учиться иметь свое мнение, давайте не будем повторять чужое."
                      Виктор Суворов

                      Комментарий

                      • Okarin
                        Ветеран

                        • 09 December 2011
                        • 1930

                        #12
                        Сообщение от Полковник
                        Ну выбросьте из виндей все дрова, и посмотрим чо она напрямую наобщается...
                        Вот в линуксе, да. Никаких дров не надо, ядро на железо компилячится и напрямик с ним работает.
                        Так что про ВСЕ, это перегиб...
                        Есть в линуксе драйвера. И ядро винды точно так же на железо компилячится и напрямик с ним работает(ядро nt, конечно же.)
                        Окарин - а в биосе разве есть что-то ещё? Биос - это вообще-то и есть "железные" микропрограммы. Там больше нифига нету... ну загрузчик ещё, ну и всё...
                        И ни одна ось без этой инфы работать не будет, поскольку инфа - базовая...
                        Там много чего есть. Биос, очевидно, умеет сам работать с оборудованием. Ну там время узнать, в оперативку или на диск что-нибудь считать\записать. Т.е. драйвера как бы находятся в биосе, а дос их дергает.
                        Современные операционки с железом работают сами. Правда такой подход чреват - нам пришлось бы ковырять ядро под каждую материнку. И собирать отдельно. Вот на arm'ах сейчас такая ситуация. Вот распаян на плате звуковой чип, и драйвер для него в ядре есть. А не работает. Потому что ядро просто о существовании этого чипа не знает и не знает где он вообще висит. И приходится ковырять ядро.
                        А на x86 все куда проще - у нас есть биос, который расскажет(если умеет PNP, и желательно, но не обязательно ACPI), что где висит. Ну, и конечно же, многие базовые вещи стандартизированы.
                        А ещё нескромный вопрос: А что вы имели в виду под "таблицей ACPI"? Может вы имели в виду API? Описка?
                        Нет, я не описАлся. ACPI Википедия
                        Есть две бесконечные вещи Вселенная и человеческая глупость. Впрочем, насчёт Вселенной я не уверен.©

                        Комментарий

                        • Полковник
                          Ветеран

                          • 14 September 2005
                          • 18241

                          #13
                          Сообщение от Okarin
                          ...Ну, и конечно же, многие базовые вещи стандартизированы.
                          Ну это дело вкуса и определений... имхо
                          Что касается стандартизации - а как же без этого? Например драйвера для работы с мышью и клавой были интегрированы вообще в самых первых биосах айбиэмок... а как же иначе-то?

                          Сообщение от Okarin
                          Нет, я не описАлся. ACPI Википедия
                          На мой взгляд нет ничего безполезнее. Я всегда ACPI вырубаю и в биосе и в виндях...
                          Главное в биосе не ACPI а API. Т.н. микропрограммы работы с шинами и устройствами. Не будет биоса - ни одна ось не сможет работать на этом железе. Потому что она эти микропроги по любому использует...

                          .
                          "Давайте учиться иметь свое мнение, давайте не будем повторять чужое."
                          Виктор Суворов

                          Комментарий

                          • Okarin
                            Ветеран

                            • 09 December 2011
                            • 1930

                            #14
                            На мой взгляд нет ничего безполезнее. Я всегда ACPI вырубаю и в биосе и в виндях...
                            Сильно сомневаюсь. Современные биосы не содержат такой опции. Максимум отключение S1/S3. И я слабо себе представляю как отключить ACPI в виндах. Сдается мне, что это весьма нетривиальная задача. Да и смысл? Помимо всего прочего, ACPI позволяет следить за темпратурой проца и скоростью вращения кулера и в случае перегрева штатно, со сбросом дисковых кешей(а то и с сохранением открытых документов) завершить работу. Ну а ноутбуках это вообще вещь незаменима.
                            Кроме того, в ACPI входит APIC, а без него не повесить больше одного устройства на прерывание.
                            Главное в биосе не ACPI а API.
                            Какие, блин, API в биосе? Там все просто и по-спортански. Вы вообще представляете, как происходит загрузка на x86?
                            Т.н. микропрограммы работы с шинами и устройствами.
                            Там все прямо в биосе захардкожено. Ну, если на матери есть RAID-контроллер или видеочип, это ихние биосы конечно будут вшиты в основной. Но в большинстве случаев например видеокарты используются дискретные, и биосу ничего не остается, как грузить с видюхи vgabios в оперативку.
                            Не будет биоса - ни одна ось не сможет работать на этом железе. Потому что она эти микропроги по любому использует....
                            Биос нужен только для инициализации и передачи управления загрузчику. дальше ОСь вертится сама(пусть и с небольшой помощью вроде PnP и ACPI).
                            Последний раз редактировалось Okarin; 28 April 2012, 06:38 PM.
                            Есть две бесконечные вещи Вселенная и человеческая глупость. Впрочем, насчёт Вселенной я не уверен.©

                            Комментарий

                            • Полковник
                              Ветеран

                              • 14 September 2005
                              • 18241

                              #15
                              Сообщение от Okarin
                              Сильно сомневаюсь. Современные биосы не содержат такой опции. Максимум отключение S1/S3. И я слабо себе представляю как отключить ACPI в виндах. Сдается мне, что это весьма нетривиальная задача. Да и смысл? Помимо всего прочего, ACPI позволяет следить за темпратурой проца и скоростью вращения кулера и в случае перегрева штатно, со сбросом дисковых кешей(а то и с сохранением открытых документов) завершить работу. Ну а ноутбуках это вообще вещь незаменима.
                              Кроме того, в ACPI входит APIC, а без него не повесить больше одного устройства на прерывание.
                              Содержат, содержат. Правда всё вырубить не получается, но зато в самой оси можно задать не использовать эту шнягу.
                              Видите ли, ACPI не только ведь BIOSе, там ведь только сама табличка с микропрограммами/обработчиками. Основная часть - это интерфейс встроенный в ось.

                              Температурный режим - да. Его не вырубить. Тем более на буках. Но для этого ACPI не нужна - это было встроено ещё в х386-х машинах, когда про ACPI никто ещё и не слыхивал. (Ну по крайней мере на 486-х было точно. У меня такая есть, и там температурный мониторинг в БИОСе идёт.)

                              Вот приведите хоть одну полезную и нужную функцию ACPI, которая реально сказывается на быстродействии системы...

                              Сообщение от Okarin
                              Какие, блин, API в биосе? Там все просто и по-спортански. Вы вообще представляете, как происходит загрузка на x86?
                              Такое впечатление что вы не представляете. Это ведь не просто программный интерфейс для ЯВУ - это интерфейс, посредник между железом и осью. И его большая часть не что иное как микропрограммы ПЗУ.

                              Сообщение от Okarin
                              Там все прямо в биосе захардкожено. Ну, если на матери есть RAID-контроллер или видеочип, это ихние биосы конечно будут вшиты в основной. Но в большинстве случаев например видеокарты используются дискретные, и биосу ничего не остается, как грузить с видюхи vgabios в оперативку.
                              Причём любому БИОСу.
                              Вот смотрите, берём к примеру, такую простейшую операцию, как чтение с диска. Как это происходит?
                              Во-первых ось должна знать прерывание, на котором диск сидит, логично? Оно где? Правильно в БИОСе...
                              Во-вторых ость должна знать порты/диапазон адресов в памяти, через которые она будет брать с винта данные. Где порты прописаны? Правильно - в БИОСе...
                              В-третьих ось должна знать параметры устройства - куда подвести головку, на какое время, с какого места на цилинде начать читать... и пр... и пр... И где это всё хранится? Правильно - всё там же...
                              Куда ни кинь - мы везде упираемся в БИОС, без которого ни одна ось на железе не сможет работать. Ну за исключением очень специфичных осей, заточенных под конкретное железо... Но я таковых ни разу не видел... Ну разве что только на заре ПЭВМ...

                              Сообщение от Okarin
                              Биос нужен только для инициализации и передачи управления загрузчику. дальше ОСь вертится сама(пусть и с небольшой помощью вроде PnP и ACPI).
                              ГЫ!
                              И нафиг он такой нужен???
                              Нафиг нужен БИОС, в котором нету POST-а или он не работает? Ну, допустим отдаст БИОС управление на загрузчик оси и чо дальше-то? Как она загрузится, если БИОС ей больше ничего не даст?

                              Не, Окарин... сперва отрабатывает POST, опрашивает периферию, подгружает биосы контроллеров, создаёт таблицы с портами, вешает всё на прерывания, .... и уже только после этого ищет загрузчики оси... и только если находит - передаёт управление им... (а если не находит - начинает "материться")
                              И это всё вы назвали коротеньким словом - "инициализация"? Ну и? Да, БИОС для этого нужна - не будет инициализации - ничо не будет работать, а если вы данные, полученные в ходе этой инициализации не отдадите оси, то тоже ничо работать не будет... а если вы не отдадите микропрограммы для работы с устройствами(которое и есть, кстати, часть API) - то опять же нифига ничо не заработает - ось просто не загрузится и всё.

                              Вот где-то так! И ACPI тут всего лишь дальнейшее наворочание функционала по управлению питанием устройств - не более того. Оно даже в винде98 можно было обрубать устройства, если они не использовались...
                              Фигня это ваше ACPI...

                              .
                              "Давайте учиться иметь свое мнение, давайте не будем повторять чужое."
                              Виктор Суворов

                              Комментарий

                              Обработка...