Конференция "Прочее" » Написание OS на Delphi
 
  • TIF © (03.05.08 03:28) [100]
    Удалено модератором
  • Petr V. Abramov © (03.05.08 03:30) [101]
    Удалено модератором
  • Германн © (03.05.08 03:42) [102]
    Удалено модератором
  • Petr V. Abramov © (03.05.08 04:00) [103]
    Удалено модератором
  • TIF © (03.05.08 04:04) [104]
    Удалено модератором
  • Германн © (03.05.08 04:24) [105]
    Удалено модератором
  • Германн © (03.05.08 04:27) [106]
    Удалено модератором
  • Petr V. Abramov © (03.05.08 04:28) [107]
    Удалено модератором
  • Германн © (03.05.08 04:37) [108]
    Удалено модератором
  • Petr V. Abramov © (03.05.08 04:56) [109]
    Удалено модератором
  • @!!ex © (03.05.08 07:30) [110]
    Удалено модератором
  • Kostafey © (03.05.08 12:03) [111]
    Понял почему русская ОС не может быть написана.
    Избыточных ресурсов у нас нет (временных, финансовых).
    На западе они, видимо, есть.
  • Mystic © (03.05.08 12:39) [112]

    > Что касается загрузчика, то один из посетителей этого сайта
    > писал таковой, правда на паскале, а не на Delphi. MWOS это
    > называлось.
    > И впрямь загружался.


    Вот этот проект, кому интересно. Когда-то было свободное время :)
    http://mu.webest.net/prog/mwos.zip

    Проект состоит из трех частей.

    1) loader.mbr Master Boot Record для дискеты. Написан на Turbo assembler. Загружает выбранный EXE-файл в DOS формате, который должен быть расположен в корне FAT раздела. Имя файла в формате 8.3 можно указать. Также можно указать количество байт, которые необходимо пропустить в этом EXE-файле. Это связано с тем, что формируемый паскалем EXE-файл обычно вначале содержит три инструкции CALL, которые вызывают код инициализации, обращающийся в частности к INT 21h. Нам он не нужен :)

    2) loader.exe. Вторая часть загрузчика. Написан на Turbo Pascal. Основная его задача загрузить DLL, написанную на Delphi. Особенности реализации: нельзя использовать ничего из библиотечных функций, что вызывает 21h (DOS-а нет). И вначале надо проинициализировать регистр DS. Библиотека DLL должна экспортировать функцию EntryPoint, которой и передается управление (чтобы опять же исключить код загрузки, который обращается к WinAPI).

    3) loader.dll. собственно говоря, база для ядра возможной OS. Работает в защищенном режиме. Кроме того, что работает, вешается на таймер и выводит всякие символы в правом верхнем углу экрана, а также на клавиатуру и печатает Scan-коды нажатых клавиш. Delphi с большими оговорками, так как недоступны функции, которые обращаются к WinAPI. Ну и поскольку нет менеджера памяти (его то я и хотел прикрутить, но не сложилось), то недоступны динамические строки, интерфейсы и прочие типы с автоматическим управлением памятью. кроме того не проинициализирован селектор FS (у нашего потока отсутствует TEB), таким образом исключения также не используются.

    Так что чисто теоретически написать OS можно даже с текущим инструментарием. Хотя от некоторой Windows-образности (форматы файлов загрузки, обработка исключений, модель памяти) избавится сложно. Вопрос в том, кому это нужно? Я писал не потому, что лавры Линуса Торвальдса мне не дают покои, а просто был интересен сам процесс :)
  • Ketmar © (03.05.08 13:08) [113]
    Удалено модератором
  • Anatoly Podgoretsky © (03.05.08 13:18) [114]
    > Kostafey  (03.05.2008 12:03:51)  [111]

    Плохо понял, просто после написания загрузчика пропадает интерес, поскольку оказывается надо писать кроме самой ОС еще и большое количество прикладных программ, как для обслуживания самой ОС, так и пользователей, а еще после оказывается, что всего этого почему то мало, почему то никто кроме кучки энтузиастов ей никто не хочет пользоваться.
  • Kostafey © (03.05.08 13:25) [115]
    > [114] Anatoly Podgoretsky ©   (03.05.08 13:18)

    Ну... и это тоже имеет место быть :)
  • Bertran (03.05.08 13:56) [116]
    Anatoly Podgoretsky ©   (03.05.08 13:18) [114]


    > а еще после оказывается, что всего этого почему то мало,
    >  почему то никто кроме кучки энтузиастов ей никто не хочет
    > пользоваться.
    >


    Ясно дело, без CorelDRAW-а и DirectShow кто же захочет. Только фанатики какие-нибудь. Вот когда, лет через двадцать, будет создана русская ОС, на основе POSIX, а Microsoft будет куплена русскими меценатами, вот тогда начнется веселье.
  • VirEx © (03.05.08 15:41) [117]
    Anatoly Podgoretsky   ( 03.05.08 13:18)  
    ----
    это да. Достаточно взглянуть на проект колибри ос. Остаются фанатики.
  • Узурап Мамуматкулович (04.05.08 03:46) [118]
    Удалено модератором
  • Mystic © (05.05.08 11:03) [119]
    > Плохо понял, просто после написания загрузчика пропадает
    > интерес


    Окончательно интерес пропадает после того, как реализована база, подобная MINIX. Т. е. для меня написать еще планировщик задач, менеджер памяти было бы интересно. А вот дальше...
 
Конференция "Прочее" » Написание OS на Delphi
Есть новые Нет новых   [134435   +34][b:0.001][p:0.001]