Инструменты для создания ОС

Тема в разделе "WASM.PROJECTS", создана пользователем dbss, 30 мар 2005.

  1. dbss

    dbss New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2005
    Сообщения:
    13
    Уважаемые разработчики, подскажите пожалуйста какие инструменты выбрать для написании ОС? Я раньше никогда не сталкивался с этой проблемой, и вот наконецто пришлось...



    Что нужно:



    - Виртуальная машина(ну тут выбор маленький,VMWare,

    VirtualPC, Boch). Хотелось бы найти что-то с встроенным дебаггером, с возможностью просматривать регистры и режимом пошаговго выполнения....



    - Асм транслятор - ну тут вопрос не стоит, FASM - вполне подходит.



    - Теперь нужен ЯВУ - честно, не знаю ... требования - чистный 32-64 bit бинари на выходе, язык С++ или Pascal, удобный IDE





    Если кто знает что лучше выбрать, подскажите, буду очень блогадарен.
     
  2. ava

    ava New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2003
    Сообщения:
    169
    dbss, извиняюсь за грубость, но, по-моему, не стоит тебе ОСь писать. Ты слишком ценишь комфорт.



    Зачем, например, встроенный пошаговый отладчик в виртуальной машине? Если ты понимаешь, как должна работать программа, то пошаговая отладка не нужна, а если не понимаешь, то все равно ничего хорошего у тебя не выйдет. Если же нужно выловить какой-нибудь экзотический глюк, то можно встроить простенький отладчик (с предустановленными брекпойнтами и дампом регистров на экран) прямо в ОСь. Так будет гораздо полезнее и универсальнее - ОСь надо будет время от времени запускать на реальном железе (не стоит целиком полагаться на эмуляторы).



    Или вот ЯВУ - зачем они нужны? На первых порах лучше писать ОСь на чистом ассемблере, а потом, если проект будет успешно развиваться, ты сам сможешь написать для своей ОСи и компилятор (например, на основе gcc), и IDE.



    Насчет "FASM - вполне подходит". Писать нужно на том ассемблере, которым ты уже давно пользуешься и который тебе хорошо знаком. А то пересядешь с TASM-а на FASM (или наоборот), напишешь по старой памяти mov eax,SomeVar и будешь долго гадать, почему программа глючит (в большом проекте такая ошибка непременно появится).



    P. S. И на всякий случай: если ты пишешь на ассемблере всего пару месяцев, то тебе рано браться за ОСь. Потерпи еще несколько лет...
     
  3. dbss

    dbss New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2005
    Сообщения:
    13
    ava, ну тут все не совсем так. На ассемблере я действительно не долго и не много пишу, ответ прост: время создания проэкта очень важный параметр, поэтому я использую мощьные и удобные инструменты для создания своих проэктов (я занимаюсь разработкой бизнесс-приложений) а ассемблер использую в узких местах как вставки, не более; но тут другая проблема: я хочу написать ось, свою и пока чисто для себя, и я считаю что если я ее начну писать исключительно на асме то это гиблое дло, слишком долго. Мне не нужна скорость выполнения, я отталкиваюсь от того что мощьность моего процессора стремиться в бесконечность, но вот мое время исключительно стремиться к нулю, поэтому ЯВУ - для меня единственный выход. Конечно, само ядро (менеджер памяти, планировщик и т.д ) я буду писать на асме, тут просто по другому не катит. Но ведь нужно ж еще написать пару-тройку сервисов, командный процессор... это я не собираюсь писать на асме - слишком не долго и себя не оправдывает. А вот на счет виртуальной машины, ты не прав,

    это очень оправданное средство, а если в нем будет мощьный дебаггер - то тогда ему вообще цены не сложишь!
     
  4. ava

    ava New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2003
    Сообщения:
    169
    dbss, а с чего это тебе вдруг захотелось написать ОСь? Какую цель ты преследуешь и что хочешь получить в итоге?

    "Научиться программировать на ассемблере" и подобные цели не подходят. Это все равно, что с головой нырнуть в прорубь, чтобы научиться плавать и заодно закалить организм. Ничего хорошего из этого не выйдет.
     
  5. dbss

    dbss New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2005
    Сообщения:
    13
    ava, все просто:

    1. Дипломная работа

    2. Попытка создать свой мир. Разве этого мало?

    И не надо говорить что это скоро попустит.... :)
     
  6. johnfound

    johnfound New Member

    Публикаций:
    0
    Регистрация:
    12 фев 2003
    Сообщения:
    74
    Адрес:
    Bulgaria
    Можно попробовать Fresh.

    Ето IDE с FASM внутри, которое можно настроить чтобы работало директно с Bosch. Я так его изпользовал чтобы компилировать и изполнять в Bosch ОСи из конкурса на flatassembler.net (512bytes OS).

    Конечно визуальные возможности IDE изпользовать нельзя, но и редактор не плох, а есть и управление проектов, автоматическое завершение и другие удобные функции.
     
  7. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Попытка создать свой мир. Разве этого мало?



    Для этого есть 3D StudioMAX6
     
  8. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.734
    Если смотреть на твой подход мало времени и т.д.

    То я тебе посоветую даже и не начинать писать ОС !



    Т.к. - это по определению займет МНОГО времени и сил.

    А так же кучу нервов.

    А если учесть изначально некомфортную среду и сложность отладки ...



    то ...
     
  9. dbss

    dbss New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2005
    Сообщения:
    13
    asmlamo, Хлопцы да не переживайте ж так за меня :)

    Иногда правельность выбора проверяеться тем чтобы сделать его еще раз... [color=]<this is matrix>[/color]
     
  10. ava

    ava New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2003
    Сообщения:
    169
    dbss, я никак не пойму: если ты витаешь в облаках бизнес-приложений, то с какого бодуна ты решил спуститься на землю системного программирования, да еще в такой сложной области, как создание ОС???

    И насчет попытки создать свой мир. К чему плодить уродцев? Их уже и так слишком много.
     
  11. dbss

    dbss New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2005
    Сообщения:
    13
    ava....есть работа, а есть хобби, так вот ОС это хобби...+диплом, а работа останеться работой.



    ... а я ведь просто, спросил про инструменты...
     
  12. Narkomanius

    Narkomanius New Member

    Публикаций:
    0
    Регистрация:
    14 апр 2003
    Сообщения:
    144
    диплом напесать ось? не легче ли содрать?



    если писать как хобби так уж лучше сперва заботать теорию?



    мне например для того чтоб с 0 разработать орхетектуру оси пришлось читать умные книжки и дамать башкой около 2х лет. у вас я так понял столько времени нету. потому стоит заюзать готовые кусманы из oskit

    есть такое в инете - типа готовый код для ядра. бери и прилепляй что хошь
     
  13. vito

    vito New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2004
    Сообщения:
    177
    C++ ЯВУ- ООП вещь конечно замечательная(вопрос вкуса) но почему забыли про С (без +). А ведь он специально создавался для написания операционки. Результат все можем лицезреть и это не только Windows.



    Кстати, С часто называют ассемблером высокого уровня(с чем я полностью согласен).
     
  14. CodeWorld

    CodeWorld New Member

    Публикаций:
    0
    Регистрация:
    14 фев 2005
    Сообщения:
    46
    Narkomanius

    привет, как ось? че к нам не заходишь? (board.sysbin.com) =)
     
  15. Mescalito

    Mescalito New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2005
    Сообщения:
    78
    Адрес:
    Харьков
    Возникла проблема. Хочу писать собственную Ось. Со своим форматом экзешников. После некоторых обдумываний меня заломало писать сначала собственный ассемблер, а потом и линкер. Короче, постановка задачи: как без особого напряга получить бинарники секций, причём без всяких там таблиц перемещений, а с уже откорректироваными адресами, причём не так, как положено по PE-формату (выравнивание, заголовки и т. п.), а так как мне надо. Что-то очень не хочется ковырять coff .obj файлы и делать всё ручками (либо писать прогу для этого)
     
  16. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    Mescalito

    Если есть желание "писать собственную Ось" да ещё "Со своим форматом экзешников" то собственноручная реализация программной их поддержки - неотъемлемая часть этой деятельности. Никуда от неё не деться. Разве что взять другую готовую ось. Или вообще не писать ось. Или писать ось без экзешников. Других вариантов не знаю.
     
  17. Mescalito

    Mescalito New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2005
    Сообщения:
    78
    Адрес:
    Харьков
    А смысл мне писать собственный компилятор? Или копировать чужой код? Если у меня всё получится - тогда напишу ассемблер (благо исходники некоторых можно достать) под свою систему. А сейчас мне просто хочется не особо напрягая себя левой работой приступить к написанию ядра/загрузчика и т. п. Всё равно, пока у меня нет ни строчки кода новой системы (кроме чужих ядер из которых кое-что может быть можно будет поаимствовать) мне не нужен собственный компилятор.

    Я всё-таки не совсем программист и асм - это хобби, а не хлеб.

    Эх... Скорее всего прийдётся писать линкер пересобирающий PE так, как мне надо. Ещё фигня - что-то не могу найти нормального описания coff .obj. Везде только coff pe.
     
  18. ava

    ava New Member

    Публикаций:
    0
    Регистрация:
    11 окт 2003
    Сообщения:
    169
    Вот описание форматов .OBJ и .LIB, не помню, где взял:

    [​IMG] 843690061__SS0288.zip
     
  19. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    Если речь об ассемблере - то самый сподручный способ - вручную описывать заголовки с помощью db.
     
  20. Mescalito

    Mescalito New Member

    Публикаций:
    0
    Регистрация:
    31 мар 2005
    Сообщения:
    78
    Адрес:
    Харьков
    За описаловку спасибо, правда это вообще-то omf, а мне бы coff, но всё равно спасибо.



    Пожалуй, прийдётся забыть синтаксис masm (знакомый ещё по Z-80) :dntknw: и приняться за fasm, делать бинарники им. А db - это само собой разумеется.



    P.S.: как среда разработки похоже что fasm+notepad+hiew рулят :)