Форт в ядре колибри.

Kernel architecture questions
  • Очередная новость по интеграции Форт языка и ядра колибри.

    текст взят по ссылке http://wiki.forth.org.ru/ForthKolibri

    Code: Select all

    Вообще Форт должен быть в каждой операционной системе. 
    ОС с добавлением Форта в ядро сохраняет все возможности, 
    но при этом приобретает новое качества. 
    
     Во первых, Форт можно использовать при инициализации ОС 
    с догрузкой дополнительных компонентов системы представленных 
    в виде исходных текстов Форта. 
    
     Во вторых, Форт в ядре может быть доступен из приложений системы. 
    
    Ядро системы волне можно открыть для чтения (передачи управления). 
    Если все подпрограммы системы представить в виде словарных статей, 
    вся система становится форт-системой. 
    
    Колибри была выбрана из-за хорошего соотношения возможностей 
    к объему исходных текстов и хорошей динамикой развития. 
    Вообще, начинать следует с небольших ОС.
    
    Последняя версия http://depositfiles.com/files/5xrfv2vit
    
    Система состоит из трех частей.
    
    1. Начальная загружаемая часть Колибри необходимая для поддержания Форта. 
    (просто закомментировал часть исходников Колибри) 
    
    2. Форт-система входящая в состав первичного ядра. (1 пункт) 
    3. Остаток Колибри догружаемый форт-системой.(то что было закомментировано)
    
    итого форт в ядре. Есть терминал к ядру.
    
    cc.bat - запуск системы с помощью qemu в bin\kolibrid.img
    с предварительной подготовкой.
    
    bin\kolibrid.img - образ загрузочной дискеты
    
    Подготовка это сборка системы и запись файлов в kolibrid.img
    
    Сборка производится по средствам следующих файлов:
    
    bld.bat - создает bin\kkernel.mnt (часть Колибри без Форта)
    
    с помощью FFASM.EXE.
    
    FFASM.EXE - FASM с встроенной форт-системой, 
    которая выполняет файл FSCRIPT.F . 
    В данном случае FSCRIPT.F содержит программу генерации листинга MAP.F.
    
    comp.bat - добавление форт-системы к kkernel.mnt и получение kernel.mnt
    
    kernel.mnt - неполное ядро КолибриОС, но содержит форт-систему с
    помощью форт-системы можно загрузить оставшуюся часть Колибри 
    представленную в форт исходниках.
    
    Специфика работы системы
    
    Система в процессе инициализации передает управление файлу autoexec.f.
    
    Там производится дозагрузка системы. 
    В sys\DRIVERS\aperture.f 
    пример добавление новой системной функции с номером 75. 
    75-я функция просто передает управление по адресу содержащемуся в регистре EBX.
    
    В INIT.F который запускается meforth демонстрируется использование этой дырки 
    в систему. Команда TOROOT открывает доступ к адресному пространству ядра ОС.
    
    Функция YY опускает курсор по средствам прямого доступа к системной переменной
    
    
    P.S. Такие вот текущие возможности:).
  • А почему не С? Не понимаю вообще идеи всего этого извращения. Или это пародия на (а может, просто своеобразная реализация) shell линуха?
  • Nable wrote:А почему не С? Не понимаю вообще идеи всего этого извращения. Или это пародия на (а может, просто своеобразная реализация) shell линуха?
    По многим причинам, все сразу и не перечислить.
    Может упомянуть стандарт OpenBios от Sun/.

    P.S. На почему не С можно возразить ( не упоминая Форт),
    а почему например не Tcl:)
    Есть? кто оценил идею данного "извращения" или все дружно считают,
    что ассемблер - это всё:) ( сам несколько лет писал на ассемблере для embedded)
    ,
  • Kopa wrote:По многим причинам, все сразу и не перечислить
    Достаточно было БЫ и одной :wink:
    Если на уровне аргументов.
    Без лозунгов (как бы "стандарт OpenBios от Sun" - странно слышать на форуме про Kolibri)

    Наблюдение: последние употребляются тем чаще, чем менее есть что сказать по делу
  • Galkov wrote:]По многим причинам, все сразу и не перечислить
    Наблюдение: последние употребляются тем чаще, чем менее есть что сказать по делу
    По делу:
    Как потенциальный разработчик программ для Колибри
    мне озвученное решение устраивает. ( как другие не знаю).

    P.S. Проект колибри, для меня, интересен пока только исследовательской
    направленностью:) и захожу на данный форум редко.
    Last edited by Kopa on Fri Jan 16, 2009 1:33 pm, edited 1 time in total.
  • "Как потенциальный разработчик программ для Колибри
    мне озвученное решение устраивает."
    - Что тебе устраивает решение?
    - Решение - потенциальный разработчик?
    И мы уже давно не пешки,
    Мы пули, мы орлы, и решки!
    Война ютит бинарный код,
    Умри, или иди вперед!
  • Gluk wrote:"Как потенциальный разработчик программ для Колибри
    мне озвученное решение устраивает."
    - Что тебе устраивает решение?
    - Решение - потенциальный разработчик?
    Устраивает возможность низкоуровнего доступа с помощью форта к функциональности ядра.
    Hапример, при создании micro-GUI оконного интерфейса средствами Форт языка.
  • Можно написать программу на Форте. Можно, в конце концов, драйвер. Но зачем встраивать Форт в ядро?
    Если хочется иметь доступ к адресному пространству ядра при помощи Форта - напиши драйвер.
  • tsdima wrote:Можно написать программу на Форте. Можно, в конце концов, драйвер. Но зачем встраивать Форт в ядро?
    Одна из причин, для лёгкой отладки функциональности ядра используя Форт
    без необходимости перекомпиляции ядра.

    В ядре можно предусмотреть резервирование векторов функций с перегрузкой их функциональности
    при работе с той или иной периферией из Форт скрипта. Пользователь
    сам может определится какая функциональность ему нужна ( какие
    диспетчеры и какие модули ). Хороший пример этому стартовый
    экран Колибри.
    Но Форт в ядре - это конечно довольно рисковано. Может лучше иметь возможность выборочно использовать эту опцию при необходимости.


    P.S. Для тех кто в танке:) и не представляет возможностей Форт языка,
    предложение ознакомится с его построением.
    Возможно тогда часть вопросов прояснится самостоятельно.

    Мihail это затеял, чтобы продвинуться в создании оси на базе Форт подхода.
    Last edited by Kopa on Fri Jan 16, 2009 2:59 pm, edited 2 times in total.
  • tsdima wrote: Если хочется иметь доступ к адресному пространству ядра при помощи Форта - напиши драйвер.
    Сначало один драйвер, потом второй потом придумываем стандарт на всё
    это и в результате система изначально построенная на простом дизайне
    превращается в "курицу".

    P.S. А если вообще не нужна файловая система на диске, тогда как?
  • Kopa wrote:Мihail это затеял, чтобы продвинуться в создании оси на базе Форт подхода.
    ось_на_базе_Форт Kolibri <> .
    -1
  • Пользователь
    сам может определится какая функциональность ему нужна ( какие
    диспетчеры и какие модули ).
    Бред, много пользователей удивляются почему win приложения не запускаются, а ты предлагаеш ещё и функциональность им самим выбирать
    P.S. А если вообще не нужна файловая система на диске, тогда как?
    Бред, Колибри система общего назначения с монолитным ядром, нужна функциональность на выбор - это к L4.
    Одна из причин, для лёгкой отладки функциональности ядра используя Форт
    без необходимости перекомпиляции ядра.
    - бля, это как? ну хоть примерно? очень интересует этот вопрос.

    Вообще ссылки на пример использования Форта, среды разработки, etc в студию!
  • Ghost wrote:Бред, Колибри система общего назначения с монолитным ядром, нужна функциональность на выбор - это к L4.!
    Возможно и бред, но пользователей имеющих возможность гибко
    настроить систему под свои потребности можно тоже поддержать.
    Ghost wrote:
    Одна из причин, для лёгкой отладки функциональности ядра используя Форт
    без необходимости перекомпиляции ядра.
    - бля, это как? ну хоть примерно? очень интересует этот вопрос.

    Вообще ссылки на пример использования Форта, среды разработки, etc в студию!
    Возможно приведение примера программы nncron что нибудь прояснит?

    P.S. Последний вопрос обозначен сильно неопределённо, просьба не ругаться,
    а спрашивать более корректно.
  • Одна из причин, для лёгкой отладки функциональности ядра используя Форт без необходимости перекомпиляции ядра.
    Что здесь неопределенного? Меня поражает идея реализовать это, но я мало могу себе представить например отладку планировщика на ходу. Да такие вещи делаются например софтайсом, но там отладчик фактически берет всё управление железом на себя, и по суте является мини ОС. Очень интересует вопрос как с этим может справится форт как язык программирования.
    Практически все матерьялы и ресурсы по форту на меня наводят ужас своим любительски-колхозным видом, и представлением информации.

    Итак, так как большинство людей на форуме мало представляют себе что такое форт и с чем его едят (кстати как я понял сред нормальных под него нет) то резонно поставить несколько вопросов к автору:
    - качественные примеры использования Форт, где он дает преимущества (ИМХО с задачами nncron LUA бы лучше справился)
    - что позволяет делать ForthKolibri, примеры, скриншоты (заинтересуй людей, что бы им захотелось попробывать)
    - ну и как отлаживать ядро?

    P.S. Разговор переходит в холивар, поэтому давайте по существу вопроса отвечать.
  • Who is online

    Users browsing this forum: No registered users and 6 guests