Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт дек 15, 2017 23:36

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 322 ]  На страницу 1, 2, 3, 4, 5 ... 22  След.
Автор Сообщение
 Заголовок сообщения: Какие бывают ОС и что там делать Форту
СообщениеДобавлено: Сб апр 28, 2007 00:44 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6100
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
На /me напала техническая муза, и /me не смог от нее отбиться... :writer;
Итак, не пытаясь казаться умнее Танненбаума и K, попробую подумать, что вообще из ОСей можно бы написать на Форте.

Для начала, не будем путать операционную систему и набор утилит операционной системы. Минимальную ОС, умеющую передавать управление программам, написать действительно не так уж сложно. Но в стандартном PC-совместимом компьютере много периферийных устройств. Никто не считает, что процессор имеет ножки, подключенные к USB, HDD, клавиатуре? :) Нет?... Это радует. Потому что процессор как таковой может разве что писать и читать ячейки памяти, да еще выдавать некие байтики на шину. BIOS позволит ему писать и читать блоки (сектора) с дисков и проверять коды клавиш... вобщем-то все. А дальше как раз и начинается работа ОС.

Начнем с того, что если мы хотим пользоваться одним винчестером без риска запортить его содержимое так, чтобы потом и Win (Linux) не прочитал, надо поддержать стандартную файловую систему. На сегодняшний день это хотя бы FAT32. Ее организация не запредельно сложна, но она есть. Например, там есть заголовки, есть две копии собственно таблиц размещения (кстати, все в курсе, зачем две?), есть определенные правила исправления ошибок. Кроме того, хорошо бы еще уметь восстанавливаться после сбоев на поверхности (для bad-блоков есть свои пометки). Вот это все надо уметь делать. Опять же scandisk.

Идем дальше. Надо работать с сетью, USB и дисплеем. Напоминаю, драйверы потеряны. 99,9% функций, которые представляются в голове для работы с этими устройствами, существуют только в готовых ОС! Все это придется написать самостоятельно.

Наконец, самое интересное. Нам же еще надо встраиваемые системы? Они сейчас потребляют 96% выпускаемых процессоров. И вот тут мы узнаем, что большая часть таких систем вообще-то однозадачная, не имеет винчестера, сети и USB, а вывод ограничен простыми индикаторами. И все усилия по созданию ОС с вытесняющей многозадачностью, кучей периферии и умным распределением памяти пропали впустую, потому что кофеварка или "умный" двигатель просто не требуют такого. Вывод? Надо бы что-то универсальное, с настройкой на процессор, периферию и прочее. Итого: проект разрастается.

И в итоге мы приходим к старой как мир проблеме противостояния (или дополнения) универсальности и специализации. Известно, что специализированное средство гораздо эффективнее решает частные задачи. В приложении к нашим реалиям это означает, что будет большой соблазн плюнуть на медленный процесс написания "совсем универсальной поддержки", потому что есть возможность быстренько написать то же самое, но для конкретных условий. И оно будет меньше, компактнее и быстрее. Так что резон делать очень даже серьезный. С другой стороны, провели абстрагирование от аппаратной платформы, и пожалуйста - внесением некоторых несложных настроек получаем адаптацию к любой аппаратуре. Это в теории. На практике сколько-нибудь грамотное тестирование этой универсальности и ее устойчивой работы с разными настройками потребует столько человеко-часов, что к моменту завершения тестирования придется сразу же переходить к добавлению нового оборудования, процессоров и протоколов :)

Посмотрим теперь на сильные стороны Форта в существующих ОС.

1) Windows/*nix. Вобщем, персональные компьютеры разных типов. Форт сделан в виде shell, компактен, имеет возможность быстро оттранслировать и подключить различные файлы. Вобщем, мощный и очень хорошо расширяемый скриптовй язык, при этом обладающий производительностью скомпилированного кода (собственно, он же и есть компилятор). Опять же JIT, что позволяет не запускать сложные оболочки для написания простых программ. Интерпретатор позволяет быстро проверить написанный код (хорошо для приложений класса "Автоматизированное рабочее место"). Быстрое перемещение между уровнями - сейчас работаем с портами и файлами, а потом вызвали MS Excel... Настраиваемый синтаксис дает возможность создавать Domain-Specific Languages (Форт тут вообще неузнаваем - просто какая-то компактная программа). Все эти преимущества позволяют смириться с чуть меньшей производительностью и отсутствием возможности нарисовать мышью форму.
2) Встраиваемые системы начального-среднего уровня (уже не датчик освещенности, включающий настольную лампу, но еще и не роутер с Linux-ом внутри). Огромная проблема - широчайший спектр процессоров, периферии для них и режимов ее работы. Файлы настроек? Да как-то не вполне логично писать
Код:
КОЛИЧЕСТВО_USB 0
, если USB и в помине нет. Кстати, каждый лишний байт здесь будет служить основанием для отказа от такой системы - память не всегда измеряется в 256-Мб линейках. Дешевые системы могут иметь мало памяти, и тем они часто и ценны. Здесь опять Сцилла и Харибда: сделаем слишком много - будет громоздко, сложно в настройке и тестировании. Сделаем слишком мало - а что, собственно, сделано-то и как этим вообще пользоваться? Что же тут хорошего от Форта? А например, то, что он "с колес" готов работать, и часто никакой ОС вообще не требует. Записать в ПЗУ образ памяти форт-транслятора и при старте передать на него управление часто бывает достаточно. От ОС остаются, собственно, утилиты ОС, т.е. библиотеки поддержки аппаратуры, которые настолько же разнообразны, насколько разнообразна аппаратура. Вытесняющая многозадачность? Это кнопка "стрелка влево" будет вытеснять кнопку "стрелка вправо"? :) Поллинг+прерывания.

Вообще, всегда логично и резонно активно использовать сильные стороны и всемерно устранять слабые. В чем сейчас слабая сторона Форта с организационной точки зрения? Малое community, невозможность организовать масштабный проект и тем самым пойти по проверенному пути, необходимость выполнения рутинных действий по повторению функциональности уже готовых решений. В чем сильная сторона? Быстрая разработка интерпретирующих надстроек, модификация правил интерпретации и компиляции. А в чем теперь сильная сторона mainstream? Готовые отлаженные библиотеки, масса кода, возможность найти "предельные" решения (максимально производительные, максимально универсальные, максимально совместимые со стандартом). В чем их слабость? Для эффективного использования требуется работать в том же стиле - загружать системы разработки, разрабатывать интерфейсы, связывать интерфейсные компоненты с кодом и компилировать. "Аморфность" и слабая формализуемость правил организации интерфейса для конкретного приложения (ну откуда же я знаю, что и в каком порядке захочу вызывать?) в сочетании с постоянным возрастанием объема полезного кода делают в последнее время популярными языки типа tcl - он как язык программирования может не так чтобы очень много, но вот организовать взаимодействие кнопок на экране с другим кодом может вполне. Объединяем сильные стороны Форта и сильные стороны ЯВУ... и получаем то, что есть. Форт может запускать код как оттранслированный им же, так и разнообразные dll. Есть готовое стандартное решение - пишем WINAPI. Нет - делаем его на Форте, или склеиваем из готовых кусочков с помощью Форта же. Задача заключается в том, чтобы еще больше усилить эту эффективность. Не надо пытаться сделать "такое же, только на Форте". Оно в лучшем случае получится такое же (а в "нормальном" будет упражнением по освоению какого-то алгоритма). В худшем же будет бесцельно потраченное время и разочарование.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 28, 2007 08:18 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Ух, спешу на работу, нет времени понять... А если проще? Вывод? Встроить Форт (ФортОС?) в BSD ?

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 28, 2007 09:21 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Вывод, имхо, простой - Не тыкать голиафа иголкой в пятку, а искать пращу :)

Написание ForthOS, в первую очередь, будет Школой для программистов. (не спорю, что кто-то в этой школе способен лекции читать)

Собственно, для начала, надо именно начать.
И идти стандартным путем. Делать, ошибаться, переделывать, разочаровываться, находить смысл и т.д. и т.п.

вопрос писал(а):
Встроить Форт (ФортОС?) в BSD ?


почему именно в BSD? (не знаю, даже, что это такое) ;)

Возможно, имеет смысл, начать с того, что каждому участнику найти свое применение этой ФортОС у себя. И рассказать о нем здесь, после чего из кусочков (чего хотим!) можно будет составить хоть какой план действий.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 28, 2007 12:32 
Не в сети

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
Начать со своего загрузчика, затем перейти на создание минимального ядра, постепенно расширяя его.

_________________
Меня нет, не будет и не было.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 28, 2007 13:38 
Не в сети

Зарегистрирован: Сб май 06, 2006 12:01
Сообщения: 959
Откуда: Украина, Харьков
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.
WingLion писал(а):
почему именно в BSD? (не знаю, даже, что это такое)

Один из клонов Unix
Pretorian писал(а):
Начать со своего загрузчика, затем перейти на создание минимального ядра, постепенно расширяя его.

А лучше с эмулятора, недоотлаженный нативный код имеет свойство падать... ;)

_________________
With best wishes, in4.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 28, 2007 18:30 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
in4 писал(а):
А лучше с эмулятора, недоотлаженный нативный код имеет свойство падать... ;)

часто падать,


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 28, 2007 21:39 
Не в сети
Аватара пользователя

Зарегистрирован: Ср мар 21, 2007 00:16
Сообщения: 154
Благодарил (а): 2 раз.
Поблагодарили: 2 раз.
План действий:
1) Определится, где это будет работать.
2) Исходя из п.1[/b]


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 28, 2007 21:47 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
white_Rabbit писал(а):
1) Определится, где это будет работать.
2) Исходя из п.1

Будем считать, что каждый решает за себя, где он будет делать ОС...
Заставлять кого-то делать мне ОС для моего Форт-процессора я не собираюсь.
А вот, скоординироваться так, чтобы она работала и там-и-тут-и-здесь-и-еще-где-то, я полагаю, надо!

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 28, 2007 23:14 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6100
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
Кстати говоря, можно посмотреть в сторону клиент-серверной модели :) То, что Мур назвал фортлетами (forthlets)... и то, про что я говорил в СПб еще ~5 лет назад ;)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 29, 2007 08:56 
Не в сети
Аватара пользователя

Зарегистрирован: Пт май 05, 2006 06:19
Сообщения: 192
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
не боясь сказать глупость я выскажу свою мысль,
а то вы тут вон сколько на флудили и мне вставить ахота :)
мне вот видится такая штука:
среда исполняемый файл для которой будет зазипованый исходник (а ля джава)
ну а для начала и решения концептуальных вопросов наличия менеджеров памяти типа многозадачности и наличия графической оболочки такая среда может быть просто приложением для доса (а ля Win 3.1)

_________________
SPF


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср май 02, 2007 06:16 
Не в сети

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
mrack писал(а):
среда исполняемый файл для которой будет зазипованый исходник (а ля джава)
ну а для начала и решения концептуальных вопросов наличия менеджеров памяти типа многозадачности и наличия графической оболочки такая среда может быть просто приложением для доса (а ля Win 3.1)

Нам нужен защищенный режим.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср май 02, 2007 14:12 
Не в сети
Аватара пользователя

Зарегистрирован: Вс май 07, 2006 11:38
Сообщения: 279
Откуда: Slavyansk, Ukraine
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ФортОС с нуля? Многовато, однако!
А возможно ли в принципе портирование готового кода-наработок извне?

_________________
Банзай!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн май 12, 2008 08:05 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Проект Оси

Cy/VOS has been through several incarnations, with widely different concepts. Cy/VOS kernel 2, written entirely in assembly and FORTH, is being slowly retooled into a 16-bit OS called Cy/VOS embedded.
The main tree is now kernel 3. It's been entirely rewritten in C. The kernel is a hard realtime OS, internally multithreaded. There are no busywaits anywhere in the kernel. Memory management is complete, and a basic VFS exists with support for FAT12 on floppy drives.

A mod player of my creation (xmod2) has been successfully ported to Cy/VOS. When sound support is a bit more stable, I'll probably post it.

http://caladan.nanosoft.ca/cyvos.php

P.S. Дальше не разбирался.
Ссылка попалась на странице http://tunes.org/wiki/forth_20oses.html


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн май 12, 2008 10:12 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 6100
Благодарил (а): 14 раз.
Поблагодарили: 96 раз.
Так и будем перебегать от ОСи к ОСи? :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн май 12, 2008 20:50 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
На сегодняшний день это хотя бы FAT32. Ее организация не запредельно сложна, но она есть. Например, там есть заголовки, есть две копии собственно таблиц размещения (кстати, все в курсе, зачем две?), есть определенные правила исправления ошибок.
Вот я, кстати, не в курсе, зачем две ... (полагаю, на случай непредвиденных обстоятельств - они, видимо, не меняются одновременно и ошибки могут быть только в одной :D )

Цитата:
Так и будем перебегать от ОСи к ОСи?

По-моему, уже определился круг трудностей (или задач - как кому) -
1. нужно решить, что добиваться и что нет от фортового ядра
2. нужно решить, как воспользоваться чужими наработками (тех же открытых ОСей - Линух, BSD) , т.е. как портировать драйверы

И этого уже достаточно, чтобы планировать работу.
Пункт 2 подвигает нас к
а) или встраиванию Форта в готовую Ось-проект (Minix?)
б) или портирования (а то и просто подключения - как-то же это возможно) драйверов наработанных для продвинутых осей

_________________
понимаю некоторую бестолковость некоторых вопросов


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 322 ]  На страницу 1, 2, 3, 4, 5 ... 22  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB