Вопрос про то, как пишут ОС

Тема в разделе "LANGS.C", создана пользователем Antolflash, 19 янв 2010.

  1. friackazoid

    friackazoid New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2009
    Сообщения:
    102
    cupuyc
    Вообще такие вопросы уместнее задавать на osdev.org

    Но если хотите конкретики то для x86 платформы (о других точно не знаю уж извините) на C++ невозможно написать :
    1. Загрузчик ядра
    2. Обработчик гейтов, обработчик системных вызовов когда надо переключатся из пользовательского контекста в юзерский и менеджер памяти вообще без ассемблерной части не обойдется.
    3. Любые драйвера для девайсов в конце концов уйдут в ассемблер ()

    Если уж совсем в сторону x86 то

    4. Работу с аппаратными гипервизорами

    Если не понимаете почему почитайте Application Programming Guide от интел.
     
  2. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    А слабо написать ОС на почти чистом Коболе? Технически возможно, между прочим :)

    А вообще, дурацкая и тема, и спор...
     
  3. maksim_

    maksim_ New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2009
    Сообщения:
    263
    SII нет, без хекса ты ничего не напишешь!
     
  4. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
    friackazoid конкретней. что именно в звгрузчике ядра вы собрались писать на ассемблере? менеджер памяти - вообще можно сделать без единой ассемблерной строчки. единственное - переключение контекстов задач.
    с какого фига?

    вобщем всё что вы назвали на 90 процентов можно написать на СИ++.
     
  5. SII

    SII Воин против дзена

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    cupuyc
    На любом более-менее вменяемом ЯВУ (вменяемом с точки зрения функционала, а не синтаксиса) можно написать не 90, а все 99% оси. Другое дело, что можно и нужно -- разные вещи. Я бы, например, писал вещи, от которых сильно зависит производительность системы в целом, именно на асме, а вот остальное -- можно и подумать. Тут ведь сильно зависит ещё от того, для чего ось нужна, какие к ней требования и т.п. Например, если она с прикладными задачами должна помещаться в 32 килобайта памяти, тогда выбора нет -- пиши всё на асме.
     
  6. friackazoid

    friackazoid New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2009
    Сообщения:
    102
    В таком случае я уже больше ничем не могу вам помочь.
     
  7. cupuyc

    cupuyc New Member

    Публикаций:
    0
    Регистрация:
    2 апр 2009
    Сообщения:
    763
  8. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Ну так напиши что конкретно в драйвере требует ассемблера.
    Я говорю что достаточно написать функции: inport8(), inport16(), inport32(), outport8(), outport16(), outport32().
    Это будет явно меньше 10%, остальное всё спокойно пишется на HLL.
    Ты драйвера под Windows или Linux видел хоть раз?
    И что, много там ассемблера?