IDEOS - моя мечта разработки и отладки ОСей!

Everything you can't fit into other forums
  • Цех по штамповке ОСей, интересно... :)
    ушёл...
  • ПРЕИМУЩЕСТВА РАССЕЧЕНИЯ ОТЛАДЧИКА НА ДВЕ ЧАСТИ.

    1. Удалёнка.
    1.1 подопытный кролик может НЕ ИМЕТЬ:
    --- приводов вообще!
    ---- дисплея!
    ----- клавиатуры!
    - мыши
    - полной планируемой периферии устройств

    1.2 этот же кролик В МИНИМУМЕ ДОЛЖЕН ИМЕТЬ:
    -- BIOS возможностью LAN загрузки
    --- проц! АГАААААААА!!! :lol: :lol: :lol:
    ----минимальную ОЗУху ДЛЯ ТВОЕЙ ОСи!
    ----сетевуху для которой ТЫ можешь осилить и написать драйвер или портировать исходники из... RTL8139 - как грязи и на базарах дешевле грибов и сорцов тьма и даже QEMU его как основной вариант приняла э-э-э-э-э... с версии... ну год назад скажем.
    - ну видяху ЛЮБУЮ! лишь бы BIOS не орал бибиканьем
    - пачкорд точка-точка
    - блок питания
    Всё. Комплект!

    2. Машина разработчика.
    Никаких собственно ограничений, окромя необходимости наличия винды и иже с ней! Но, кто ныне ее проклятую не юзает? Ну так пусть послужит добру и по максимуму зараза ненасытная. :D В конце концов познаем все прелести превычной среды в деле разработки, используем оперативно ВСЕЬ арсенал и оружие ДЛЯ проекта и IDEOS и доки тут же и сниферы пакетов по сети и инет с гуглом и.... и виртуализацию!!!!
    Кто сказал, что подопытный кролик это ТОЛЬКО реальный кролик? Нет отнюдь!

    3. Общеизвестно, что существуют серьёзные отладчики если не разделенные буквально, то имеющие 2 составляющие в своём комплекте, базовую и удаленную часть(модуль). Так что это не ноу хау, а следование умным людям и изучение (повторение) подобного или приближение к сему. Существует, тем не менее, две тенденци, два варианта. Собственно отладчик на подопытном кролике, а удаленка лишь тупой терминал, причем буквенно цифровой... жуть. Другой наоборот резидентный модулек в жертве, пардон, в подопытной, а отладчик на базе так сказать. Первый реальзован в софтайсе, второй в турбодебаггере борландов, кажется так. Так вот для IDEOS, естественен выбор в пользу втрого, хотя есть проблемы по реализации модулька связи с IDEOS который по сути часть ядра или его заменитель(на время разработки), а именно обработка исключений ибо там надо реализовать собственно фактическую отладку, пошаговое выполнение, бряки на... и пр., но "с послушанием" по отношению к базовой машине разработчика.
    Короче, что получается. получается если ты уж разработчик ОС, а не ....... и собираешься заниматься ядром, будь любезен состряпай модуль отладки, на базе обработчика исключений ядра, приштопай к нему сетевуху конкретную и известную(RTL8139 считаю самое то) родив нижний слой сетевой модели OSI, а также ARP, IP, UDP, TFTP. Желательно покумекать и родить некий свой командно-сетевой протокол общения с сим модулем, еще желательно и клиент и сервер, чтобы были и там и там, т.к. обмены у них видно будут явно НЕ односторонне инициативные.

    4. Штаб разработчика на IDEOS. :D
    4.1 Почему DELPHI? Как автор могу просто сказать, я так хочу и точка. Поясню для особо плюющихся и сомневающихся в DELPHI. Тут выбор не только во владении или "рассовых принадлежностях", а и в ряде готовых и реализованных своих модулях + ЕЩЕ БОЛЕЕ ГОТОВЫХ КОМПОНЕНТ, на ВСЕ случаи жизни! Морой кажется, что некоторые люди написали все что можно ООП под делфю, честь им, слава и хвала! Можно много говорить, хаять и ругать, но когда тебе нужен результат и сейчас и сегодня и ты взял и сделал, пусть даже сляпал, мне не стыдно за это. Но оно работатет, оно выпоняет то, что тебе надо для твоего продвижения, для твоего творчества. Это здорово! Пребрав массу вариантов, я сказал себе однажды, что лучшего помошника для реализации своих идей, проб, чем DELPHI и тысячи компонент мне не сыскать и не надо более шикарных и золотых. А преданность ASMу, так умеючи, никтоне запрещает использовать, я свои поделки на делфях часто и густо усеиваю процедурами на ASMе, там он ВАSMом зовется и много там нет, ущербен весьма на сегодня, но на то и мозг дабы выходить и з ситуаций!
    Потом огромный пример для подражания и высокого мастерства и именно применения ASM(BASM) вставок для многих УВАЖАЮЩИХ ассемблер это грандиозная личность - Владимир Кладов и его библиотека(и) KOL + MCK.
    На сегодня пожалуй хватит, а то на работе - работать некогда :lol: продолжу, пожалуй завтра, но это уже не шутки ведь будут! :lol: :lol: :lol:
  • Ну что ж, сама идея верная (за исключением разве что некоторых нюансов), но вот реализовать её... Недаром IDE, подобных Дельфям по удобству, попросту нет.
  • Так делфя в данном случае лишь инструмент для разработки инструмента. О как! :D
    Дело сдвинулось с мёртвой точки и это главное, иначе я бы не стал пасать здесь. Конечно, я бы хотел поддержки от народа или вообще коллективного творчества, тогда вообще успех IDEOS это успех ели не для всех, то для многих серьёзное подспорье, в том числе и другим проектам по ОСям вообще!
    Мне хочется сказать громче: "IDEOS - проект объединяющий всех!", но реалити шоу таково, что пока не "перепрыгнул не говори гоп" и я им следую и пока "только шепчу", так сказать. Позже, собираюсь рассказать интересные вещицы и варианты по уменьшению труда вкладываемого в создание качественного IDE, конечно умело используя существующие вещи. Реальные пробы пока отложены. Текущий момент дописывание DHСP серверной части и ее отладка, завершение портации и уже ближайшие испытания FASMа в IDE...
  • Понятно, что инструмент для разработки инструмента. Просто надо б и разрабатываемый инструмент сделать столь же удобным, как сама дельфя, а не как... ну, не будем говорить во избежание холивара :)
  • Интересно, но пока сложно представить, как это все удобно , красиво и функционально сделать. Видимо автор это уже продумал раз начал реализовывать, надеюсь идея не зачахнет....
  • Alexus wrote:Интересно, но пока сложно представить, как это все удобно , красиво и функционально сделать. Видимо автор это уже продумал раз начал реализовывать, надеюсь идея не зачахнет....
    Ну, представить-то мне как раз несложно. Дельфя, но не зависящая от конкретного языка и платформы, имеющая средства как для локальной (когда возможно), так и удалённой отладки и т.п. Только вот сложность этой задачи такова, что лично я уверен в неудаче -- хотя, конечно, надеюсь на лучшее :)
  • Последнее на чем я остановился выглядело так. Модуль ОС. И модуль эмулятор он же отладчик. Единственное что к IDE прикрутить для полного счастья, а то вечно компилирую то одно то другое. А вот сетевую отладка мне не нужна не дошел я до этого уровня. Но если делать то поддержку IPv4 и IPv6 обязательна.

    Правда у меня все проще так как все на Delphi.
  • Pavia wrote:Модуль ОС. И модуль эмулятор он же отладчик.
    Очень непонятно чьи модули, что из себя представляют, эмулятор из известных или... свой. Насколько примитивен или каноничен он по отношению к известным(что может если свой). Как отлаживаешься на одной машине , я так понимаю?
    Pavia wrote:Единственное что к IDE прикрутить для полного счастья, а то вечно компилирую то одно то другое.
    Это в смысле прикрутить эти модули к IDE (скажем делфя) как плугин типа?
    Pavia wrote:Но если делать то поддержку IPv4 и IPv6 обязательна.
    чем обосновывается необходимость в IPv6? Ведь исследовательское место (лаборатория) это, в большинстве случаев это машина(ы) разработчиков и "подопытный кролик" к ним и всё. Разве в этой интимной обстановке нужены новомодные технологии (стандарты) сетей?
    Pavia wrote:Правда у меня все проще так как все на Delphi.
    Все, это в смысле и ОСь на делфях пишешь (всю?) ? Я правильно понял, что не лазарус, не кодегир, не фрипаскаль там, а именно делфю юзаеш? Выбор в плане аргументов можно послушать?
  • Продолжаю повествование, так сказать, на счёт IDEOS.
    Немного повторюсь относительно идеи и общего принципа работы, как это видится в бою.
    Итак, разработчик, ваяет свой проект в IDE среде и по готовности кода к реальной пробе (загрузке) и(или) отладке, включает подопытного (или кнопка ресет если ранее он запитан), у которого заранее в БИОСе стоит только загрузка по сети. Далее давит на GUI кнопочку «загрузка» или еще лучше «компиляция и загрузка». Далее наслаждается, процессом мониторинга на морде среды, как поэтапно происходит процесс. Рассказывать подробно про фазы загрузки системы по сети тут не буду привожу ссылки для тех, кто и не подозревал, не знал, не пробовал, не знаком, но хочет знать больше:
    http://unattendedxp.com/articles/wxpris/pxe.shtml
    http://www.wtware.ru/netman/netfast.html
    http://oszone.net/display.php?id=3530&page=2
    http://forum.oszone.net/thread-75297.html
    Конечно мой опыт работы с TFTPD32 меня впечатлил и вдохновил в IDEOS именно на это т.е. на наличие, по аналогии с ним серверных возможностей DHCP и TFTP, только без всяких муторных скриптов, файлов настроек, правил и т.д. Все должно быть просто наглядно, ясно и происходить максимально автоматически для пользователя.
    Итак ядро(хоть вся Ось, а хоть и только зародыш ядра и все, лишь бы модуль связи был готовый в нем) заползло само и запустилось, о чём свидетельствует инфа в среде и открывшийся автоматически отладочный экран. Мучаем тут все что надо, ловим характерные моменты, стопы глобальные и частичные(смотря как реализован модуль) пуски заново глобально или частично + подгрузка или перезагрузка по сетке модулей, драйверов их локальное выключение из работы ядра, работа с памятью, убивание процесса(а), реаттач, сливание логов и дампов реальных потоков с подопытного драйвера и т.д. Тут все только от реализации ядерного модуля пожалуй зависит, причем в большей степени, нежели отображающая и управляющая часть в IDEOS, которая по сути почти обыкновенный терминало-монитор с командным кодеро-декодером пакетов UDP от/в сторону (сокет) подопытной машинки.
    Итак с сеткой все ясно, как и что, как работает аналог, из чего состоит и принцип понятен + изменяем по ходу разработки. Сетевых компонентов к DELPHI по работе с сокетами, UDP, TFTP протоколами – как грязи в нете + статей море и очень даже чудесных и разжёванных. Тут только время определяет успех. С самим компилятором тоже яснее ясного от а до я, причем сегодня именно сним небольшая победа, таки успешно портанул его тело FASM листинга в BASM успешно таки скомпилилось в делфи проектике с применением KOL в объёме аж 95 кБ реального GUI приложения Win32. Слава и хвала Владимиру Кладову! Но это лишь грубый порт, надо это еще изрядно причесать и заствить корректно работать, как полный аналог FASMW…
    Остаётся решить самое наглядное и самое вкусное, самое полезное и облегчающее труд человека – вбуквальном смысле занимающимся набором и редактированием, форматированием текста шаблонного характера. Так бы я выразился, пожалуй, отвечая на вопрос, что такое редактирование листинга любой программы. Конечно изобретать велосипед групо и почти безумство, есть масса готового, для реализации в разной степени совершенства и качества задуманного, полезного и хорошего. Долго описывать не буду, кто хочет почитат, сделав свои выводы быть может. Перечислю варианты, аналоги и примеры реализаций в этой тематике.

    SynEdit
    http://sourceforge.net/projects/synedit/
    http://www.web-brodilka.ru/lesson.php?part=6&num=1
    http://forum.vingrad.ru/forum/topic-33998.html

    Delphi Scintilla Interface Components 0.50
    http://www.nelegalsoft.org/showthread.php?t=1343
    http://zh.sourceforge.jp/projects/sfnet ... /releases/
    http://www.torry.net/pages.php?id=90
    http://delphisci.sourceforge.net/

    Ну пожалуй на первое место надо ставить Scintilla - это моща, вот она:
    Scintilla - http://www.scintilla.org/
    потом она в виде DLL существует, а занчит ее отлаживать не надо, изучай да юзай собственно. Чего стоит внушительный список существующих текстовых редакторов на ней постороенных во они, если не занете, что благодаря ей:
    http://scite.ruteam.ru/
    http://notepad-plus.sourceforge.net/ru/site.htm
    Варианты привязывания или связывания ряда отдельных программ в единое целое или как наборы плугинов к какому нить IDE рассматривались как ленивые и якобы самые быстрые, но потом я от них отказался, т.к. это только кажущаяся простота, тянущая за собой ворох проблем сил по увязке и… непонятному результату.
  • Модуль ОС. И модуль эмулятор он же отладчик.

    Очень непонятно чьи модули, что из себя представляют, эмулятор из известных или... свой. Насколько примитивен или каноничен он по отношению к известным(что может если свой). Как отлаживаешься на одной машине , я так понимаю?
    Да обо мое. Примитивный только пошаговая отладка, дизасемблер хотел на скорую написать понял надо каждую инструкцию ручками по этому он у меня очень примитивный. Хотя без проблем добавляется все что нужно в процессе отладки. Эмуляция только того что мне необходимо: таймер, жесткий диск часть сервисов ядра ОС. Основная часть кода выполняется как процесс в виндах.
    чем обосновывается необходимость в IPv6? Ведь исследовательское место (лаборатория) это, в большинстве случаев это машина(ы) разработчиков и "подопытный кролик" к ним и всё. Разве в этой интимной обстановке нужены новомодные технологии (стандарты) сетей?
    Кто то Линукс рекламирует, а я IPv6. Вообще я так понял ты хочешь сделать удаленную отладку. Пишим мы ОС надо протестировать на разных компах. Кто-то у себя запускает и дает тебе удаленно покрутить отладкой за одно.
    Выбор в плане аргументов можно послушать?
    Доказать что Delphi все могуч.
    у которого заранее в БИОСе стоит только загрузка по сети
    А у меня такой опции нет. Предлагаю вшить код в MBR.
  • Вообще я так понял ты хочешь сделать удаленную отладку.
    Не совсем так, если вчитаться, это лишь часть выгодного симбиоза, это комбайн. Вот ты упомянул про дизассемблер. А в IDEOS он вообще не нужен, т.к. это же твой листинг, ты его родил и загрузил и выполняешь, пусть и удаленно, просто по удаленке можно "показывать" в твоем листинге где сейчас процессор находится, что делает и пр. Дизассемблер, как обязательная часть любых отладчиков отпадает автоматически, ведь это огромный плюс! Нет никакой неоднозначности и безликости дизассемблерного кода, мы допустим "ходим по коду ядра", которое реально выполняется, еще и на удаленке, как у себя дома, с реальными именами структур, модулей, переменных, макросов... нужно только знать IDEOS как распределена память после загрузки "там" под загруженные блоки, где проц сейчас, что делает и т.д. Если предположить, что сеть 1 гиговая, то вообще реалити-шоу реальных процессов в реальном времени, можно и так замах сделать. Широчайшие перспективки тут вижу и вместе с тем это проще чем сделать высококлассный отладчик+дизассемблер, да еще и ОСезависимый, как правило, т.к. все они реально в ядро лезут, дабы осуществлять все свои фичи.
    А у меня такой опции нет. Предлагаю вшить код в MBR.
    Это перебор, никчему. Лучше уж MBR->BPB->IO.SYS ->COMMAND.COM->AUTOEXEC->gPXE или MBR->BPB->NTLDR ->NTDETECT.COM->BOOT.INI->gPXE
    Кстати gPXE используется в QEMU как база PXE загрузчиков, загрузить ОС в QEMU по реальной (псевдореальной) сети от TFTPD32.EXE не проблема. Пробовал.
    Вот это рекомендую по сути загрузок если в бивисе его нет:
    http://etherboot.org/wiki/index.php
    http://netboot.sourceforge.net/english/index.shtml
    а тут вообще прикольно и шикарно http://rom-o-matic.net/ можно даже дискетку сделать или ISO для инициации загрузки по сети. Лишь бы твоя сетевуха была там в типах. Все реально пробовал, работает. Правла с опциями надо повозиться попробовать N раз, это да, без знаний никуда.
  • Ну что ж, несмотря на ..., :? я скажу, пусть даже единственному интересующемуся, что нашёл вчера великолепное решение, по подсветке, свертке и пр., что может быть очень хорошей базой именно части IDE. :idea:
    Минус оно платное, плюс под делфю и возможности мне больше нравятся чем в скантилле, да еще DLLку таскать не придется, т.к. "все включено" :P
    Вот вещица, видимо Россияне делают:
    http://www.econtrol.ru/syntedit_r.html
    попробовать покрутить возможности редактора можно на пробном Edite ими же скомпиленном. Он бесплатный и качается тут: http://www.econtrol.ru/download_r.html
    Нашел и варезничек в виде сорцов, бум пробовать позже.
    Ну что же, к монологам не привыкать, в одиночку в принципе делать тоже: "каждому своё". Если получится потихоньку доплыть до первых позитивных проб, компиляций и загрузок (около 6 мес), то типа Колибри\менует будет, наверное первым подопытным в плане фасмовых сорцов и реализации девиза: "от сорца до запуска - одним щелчком" дабы было что сравнить. Всем удачи!
  • VaStaNi wrote:нашёл вчера великолепное решение, по подсветке, свертке и пр., что может быть очень хорошей базой именно части IDE. :idea:
    Минус оно платное, плюс под делфю и возможности мне больше нравятся чем в скантилле, да еще DLLку таскать не придется, т.к. "все включено" :P
    Может есть желание прикрутить мой текстовый редактор http://wiki.kolibrios.org/wiki/T_edit/ru и viewtopic.php?f=9&t=1222&start=75 ? Исходники есть и на СВН, правда из-за недавних правок box_lib они не компилятся, но это можно легко исправить (вскоре я их обновлю).
  • Who is online

    Users browsing this forum: No registered users and 31 guests