Ещё об осеписании

Тема в разделе "WASM.HEAP", создана пользователем masm32, 28 май 2008.

  1. masm32

    masm32 New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2008
    Сообщения:
    147
    Почитал серию статей lonesome. В самом начале не понравилась фраза :"Мы будем писать на си, потомучто совершенно очевидно, что ось написанная на ассемблере будет работать медленнее"

    Потом началось - давайте использовать Тасм, всё запишем на дискету, с неё и будем грузиться.

    Не пашет у меня тасм. Нет у меня флоппи-дисковода, эмулятор флоппи тоже не пашет почему-то. А хотелось бы покодить немножко, в образовательных целях. И - на ассемблере.

    Что делать?

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

    буду благодарен за наставление на путь истинный...
     
  2. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    В порядке бреда:
    в почти любом комп. магазине ещё продаются такие ацкие девайсы как флоппи дисководы. Средняя цена - 200 р. Может, его просто надо купить? %)
    а вот что тасм не пашет - эт уже серьёзнее... с чего б ему, кстати, непахать?
     
  3. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    А работать на виртуальной машине не подходит? В качестве дисковода используй образ диска (я создавал образ WinHex по реальной дискете, но можно и в инете кучу образов найти).
     
  4. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Есть эмули вроде bochs-а
     
  5. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    [offtop]
    _basmp_
    И как эмулятор? А то я о нем не слышал еще, VirtualPC использую..
    [/offtop]
     
  6. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Xerx
    кличка "борщ"
    http://ru.wikipedia.org/wiki/Bochs
    http://bochs.sourceforge.net/ - дом
    ничего, нормальный. Правда я его несильно напрягаю.
     
  7. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    _basmp_
    Скачал, почитал. Потестим... Особо интересует скорость эмуляции SSE4.2 на моем Core Colo с SSE3.0. Очень хочется потестить...
     
  8. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Xerx
    скорость - незнаю, а вот будет-ли вообще эмулировать - отпишите.
     
  9. Exp10der

    Exp10der Мастер дзена

    Публикаций:
    0
    Регистрация:
    27 авг 2007
    Сообщения:
    337
    Адрес:
    Красноярск
    _basmp_
    Качнул борщ, чёт не хватает ROM'ов к нему - ругается при загрузке, где их взять то?
     
  10. masm32

    masm32 New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2008
    Сообщения:
    147
    Пробовал VirtualPC - заточен под установку гостевой винды, с другими осями проблемы, VirtualBox - под гостевой линукс, VMWare ...- полное г. Ни один из них не позволяет эмулировать флоппи - только подключить можно. Для нормальной работы им нужна ху-ва туча памяти, какие-то левые библитотеки и совершенное знание английского языка пользователем

    БИОС - это ж операционная система такая. Если писать установщик, то писать нужно в этой системе ... придётся начинать с биоса - где-то видел полное руководство - 60 метров
     
  11. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    Exp10der
    вобще-то я не спец.. Вы про образы? (образы флопов назначаются флопам, исо -> CD итд. конфа прописывается в bochsrc.bxrc . дока и примеры есть) Или я не понял?
     
  12. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    masm32

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

    Работа на виртуальной машине не является панацеей от всех бед. Да, там можно проверять, можно отлаживать (в том же Bochs есть встроенный отладчик -- в любой момент можно глянуть, например, регистры нашей программы), но они сами достаточно глючные: нередки ситуации, когда программа без проблем работает на реальном железе, однако начисто отказывается на эмуляторе.

    В общем, как мне кажется, оптимальный выбор платформы для разработки заключается в следующем. Во-первых, мы должны иметь в наличии виртуальную машину типа Bochs или там QEMU, которая обладает возможностями отладки -- на ей выполняем основную массу прогонов разрабатываемой системы. Во-вторых, надо научить свой реальный комп загружаться с флэшки. Все современные машины такой способностью обладают, но я тут не помощник -- у меня основной комп старый, с флэшек грузиться не имеет, зато есть флоповод, поэтому мне разбираться как-то незачем было :) Но на форуме я где-то встречал описание, как сделать загрузочную флэшку, так что ищите и обрящете :) В-третьих, если разработка ведётся под Винду, то можно использовать, например, не старый и давно не поддерживаемый TASM, а MASM, только с другим компоновщиком ("линкером"), поскольку имеющийся в наличии не способен, например, создавать COM-файлы и вообще жутко ограничен в возможностях (заточен исключительно под Винду). Лично я пользуюсь Unilink. Что касается использования ЯВУ -- Си или ещё какого языка, не суть важно -- ИМХО, при осеписании это не лучшее решение. Заметной выгоды в скорости разработки или количестве ошибок не будет, поскольку задачи решаем низкоуровневые, "родные" как раз для ассемблера, а не для ЯВУ. Кроме того, при использовании ЯВУ нам придётся отказаться от использования его библиотеки (во всяком случае, её значительной части), поскольку она так или иначе привязана к оси, а мы ж делаем свою ось. Наконец, надо хорошо представлять, какой код генерит компилятор, какие у него особенности и т.п. -- иначе можно поиметь трудноуловимую ошибку.

    Что же касается собственно разрабатываемой оси, то в более-менее "коммерческом" (т.е. доведённом до стадии возможности реального использования, а не только баловства) продукте он, есно, должен быть. Однако ещё раньше нужно определиться, как ось будет работать с различным железом, т.е. как конфигурировать как это железо, так и саму себя (например, поиск и настройка устройств, загрузка соответствующих драйверов и т.п.). Только "танцуя" от особенностей оси, можно думать над установщиком.
     
  13. diamond

    diamond New Member

    Публикаций:
    0
    Регистрация:
    21 май 2004
    Сообщения:
    507
    Адрес:
    Russia
    Насчёт VirtualBox не знаю, но точно знаю, что VirtualPC, VMWare, Bochs, qemu позволяют подключить именно образ дискеты (файл .img) - покопайтесь в настройках.
    Это расплата за то, что они пытаются сделать как можно выше скорость эмуляции и исполнять часть кода напрямую - вот и устанавливаются дополнительные драйвера. (Это относится к VirtualPC, VMWare; для qemu есть специальный драйвер, который можно и не устанавливать; Bochs вообще никаких дополнительных библиотек не использует). Кроме того, нужны библиотеки/драйвера, если хочется предоставить доступ к сети (а все эмуляторы это делают). Ну а насчёт знания английского языка - это фундаментально...
    А Вы качали только исходники? Если да, то скачайте ещё и бинарники (для Windows-версии есть установщик, для Linux не знаю, но вроде "Linux binary RPM" в списке присутствует).
    Во всех известных мне эмуляторах есть глюки. Но только в Bochs их постоянно исправляют :)
    Существуют внешние флоппи-контроллеры, подключающиеся по USB. Так что и в этом случае, если хочется использовать дискеты, не всё потеряно :)
     
  14. Barbos

    Barbos Slavon

    Публикаций:
    0
    Регистрация:
    13 ноя 2007
    Сообщения:
    280
    Адрес:
    Kharkov
    На тему виртуальных машин.
    Некоторое время юзал VirtualPC. Удобно было для MASM6.1, который у меня не получилось запустить под виндой. Забросил сразу же, как только потрогал контроллер прерываний. Он там либо эмулирется как то образно, либо какой то не стандартный. Пробовал VMWare - не пошел линукс, ни Red Hat, ни федора8 (причем не пошел именно на моей домашней тачке). BOCHS - написал с нуля и отладил микроядро. Такие баги как двойные эксепшены отлавливаются на ура. Полностью программный эмуль, единственный недостаток в сравнении с программно-аппаратными - низкое быстродействие.
     
  15. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    У меня на Bochs Хрюша устанавливалась часов 20, наверное, в сумме, если не больше. Быстродействие эмуль показывал в районе 20 млн. операций в секунду. Есно, это по нынешним временам жутко медленно (теоретически пиковое быстродействие любого современного проца составляет несколько миллиардов оп/с), но для отладки собственной оси -- более чем достаточно.

    Правда, по словам знакомых осеписателей, у Боша регулярно глюки возникают, но они есть и в других виртуальных машинах. Поэтому надо просто иметь возможность всё проверять и на реальном железе.

    С ностальгией вспоминаю времена, когда компьютеры были большими и у них были пульты управления с кучей кнопочек и лампочек. Всегда можно было посмотреть, где что висит, содержимое регистров и памяти, выполнить программу по командам, поставить точку останова...
     
  16. Xerx

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    Barbos
    Ну не знаю, у меня не было проблем с установкой RedHat и Slackware под VMWare. Возможно дело было в каком-либо глюке, а не в несовместимости в целом.
    Там это даже настраивается в конфиге - bochs может и не отлавливать при необходимости.
    И в этом большой плюс - работа неподдерживаемых команд, хоть и медленно. Он бы еще GPU эмулировал хорошо :)
     
  17. masm32

    masm32 New Member

    Публикаций:
    0
    Регистрация:
    26 фев 2008
    Сообщения:
    147
    Когда-то, давным-давно (2 года назад), устанавливая прогу, я нажимал кнопки, отвечал на вопросы, смотрел на .. мигающие лампочки и ДУМАЛ - " какая это трудная штука - писать программы и устанавливать их на компутер".
    Это действительно непросто, мы привыкли и относимся к этому формально...
    НО очень быстро обнаружилось - проги не нуждаются в установке. винда при их запуске автоматом регистрирует классы окон, драйвера, если они ставятся и т.д.

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

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

    Xerx Алексей

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    528
    Адрес:
    Russia
    masm32
    Ссылку-то уже и не найти, наверное? А жаль, поковырял бы... :derisive:
     
  19. Mario

    Mario New Member

    Публикаций:
    0
    Регистрация:
    29 апр 2008
    Сообщения:
    5
    masm32
    Прежде чем такое заявлять надо немного разбираться в вещах.
    Винда это не только IE и плэйер, есть куча других компонентов которые не меньше тормозят систему. А во время загрузки система выполняет кучу дополнительных действий, часть которых действительно можно отключить, но отнюдь не все!
    Реально ОС не может запускатся быстрее чем за 15 секунд, даже на самом мощном оборудовании платформы х86. Инициализация оборудования требует время - не получится все сделать мгновенно!
    Еще надо иметь ввиду что BIOS 10-15 секунд тоже затрачивает. Итого имеем около 30 секунд минимально и это если не проводится упорядочивание реестра, очистка свопа и др. полезных и бесполезных действий.
     
  20. ne_veru_averam

    ne_veru_averam New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2008
    Сообщения:
    16
    masm32
    Бред. Твикер о котором ты говоришь это vLite
    и было это для Win9x и было это твикером установоч-
    ных файлов винды. IE интегрирован в винду полностью
    и без вариантов. Весь её шел держится на общих с
    браузером дллах. Правильно настроенная и
    поддерживаемая в порядке винда грузится максимум
    за 20 секунд, минимум за 10 и здесь все упирается не в IE.
    В исходном тексте винды можно найти достаточно мест
    на инициализации выполняющих специальные задержки
    времени, но это сделано не от фонаря а исходя из
    соображений архитектуры ос.