ОС на FPC

Обсуждение идей, архитектуры и проектов (как существующих, так и разрабатываемых).

Модераторы: Рождённый_в_СССР, Модераторы

Сообщение ev » 12.08.2007 11:12:50

кто не смотрит новости - вот ссылка на проект
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение GN » 12.08.2007 14:02:53

Зачем каждый изобретает колесо? Так никогда не получится телега...
http://www.reactos.org/ru/index.html - ОС ReactOS
Аватара пользователя
GN
новенький
 
Сообщения: 67
Зарегистрирован: 29.07.2007 07:35:56
Откуда: Казахстан

Сообщение ev » 12.08.2007 14:45:22

Зачем каждый изобретает колесо? Так никогда не получится телега...

если бы так все рассуждали, то не появился бы никогда линукс и много других молодых операционок
ev
долгожитель
 
Сообщения: 1772
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Сообщение STAKANOV » 12.08.2007 15:08:09

Бегло глянул. Бинарник загрузился в QEMU выдал количество памяти и модель процессора (не правильно, но возможно все дело в эмуляции). На этом все.

Исходник пока подробно не рассматривал. Можно услышать немного теории?
1. Как осуществляются взаимодействия с ядром (системные вызовы)?
2. Какие функции уже релизованый, работают?
3. После загрузки ядра будет запускаться интерпретатор командной строки или графичекая оболочка (это вопрос о планах, идеях)?
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение Рождённый_в_СССР » 12.08.2007 19:07:39

STAKANOV писал(а):Бегло глянул. Бинарник загрузился в QEMU выдал количество памяти и модель процессора (не правильно, но возможно все дело в эмуляции). На этом все.

Дело в эмуляции... На этом собственно всё ) если поглядеть исходники, то впринципе там можно расскоментировать вараинт, где она тупо будет выводить на экран N секторов ATA винчестеров. Вообще вероятнее всего будут поддерживаться только Intel семейства P3 и выше или их клоны. Возможно некоторые AMD... это связанно с аппаратными возможностями, которые не используются практически не в каких ОС в целях совместимости, однако они таят большие потенциалы и кроме того документированны у Intel. Мне очень важны аппаратные функции.

STAKANOV писал(а):Исходник пока подробно не рассматривал. Можно услышать немного теории?
1. Как осуществляются взаимодействия с ядром (системные вызовы)?
2. Какие функции уже релизованый, работают?
3. После загрузки ядра будет запускаться интерпретатор командной строки или графичекая оболочка (это вопрос о планах, идеях)?


1. Взаимодействие планируется из двух частей:
а) СЕРВИСЫ: по средствам прерываний (IDT-таблицей). Такие программки будут называтся сервисами. У них будет самое быстрое время вызова и исполнения, работают из микроядра. На данный момент там (папочка old) было несколько сервисов (графика, файловая система, запуск/остановка программ,видеорежим,shell) но теперь они отключены, потому как я настаиваю написать их на Паскале.
б) СЕРВЕРА. Если поглядеть таблицу памяти /doc/memalloc.bmp, то видно, что выделенно (и в ядре уже резервируется) 960Кб (адреса c 510000h по 600000h) память под эти сервера. Это будет нечто между резедентными программами (с повышенным приорететом), драйверами и линуксовыми файлами потоков (т.е. то куда микроядро будет скидывать/брать сигналы для обращения с портами). По нашим представлениям такие сервера решат проблему, присущую Линуксу разделения интерфейсов и/или памяти системы и пользователя (став своеобразным буфером).

2. В связи с направлением на Паскаль сейчас отключены все старые сервисы кроме клавиатуры, вывода на экран и работы с диском ATA. Поэтому ничего весёлого пока здесь нет, только скелет. Хотя и он вызывает уважения, потому как все молодые ОСи почему то становятся ленивыми и работают вообще без чистого защищённого - линейный (256b), нереальный (reactOS), всяких ДОС-расширителей(PTS-DOS) или того хуже v86 (StormOS). Стоит ли говорить что аппаратную многозадачность из Паскаля вообще никто не использовал.

3. Исключительно шелл. Ни каких GUI пока даже не планируется, пока не будет нормального низкоуровнего взаимодействия, припартированных компиляторов ассемблера, паскаля,Си и мощной командной строки. А для того чтобы начать делать эту командную строку пока нада написать на паскале как минимум сервисы
а) файловой системы STFS
б) работы с памятью и запуска/остановки программ аппартными средствами

над чем я собственно и работаю)

отдельно хотелось бы программку в Lazarus'е которая бы по желанию пользователя тех или иных серверов/сервисов собирала ядро. потому как если её не начать сразу может выйти ситцация, что случайно напишут сервис/сервер не совместимой с моей идеей пересборки.
Аватара пользователя
Рождённый_в_СССР
новенький
 
Сообщения: 65
Зарегистрирован: 08.08.2007 01:03:26
Откуда: Саратов

Сообщение STAKANOV » 12.08.2007 19:45:14

Похоже сделать встраиваемую(embedded) ОС это приоритетное направление. Я прав?
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение Рождённый_в_СССР » 12.08.2007 19:58:07

STAKANOV писал(а):Похоже сделать встраиваемую(embedded) ОС это приоритетное направление. Я прав?

Абсолютно прав. Я бы скорее назвал это направление - конструктор для систем различного применения, управляемых процессором... но пока до этого далеко можно и embedded называть :)
Аватара пользователя
Рождённый_в_СССР
новенький
 
Сообщения: 65
Зарегистрирован: 08.08.2007 01:03:26
Откуда: Саратов

Сообщение bw » 12.08.2007 20:29:43

Буду с интересом наблюдать, может даже в чем-то помогу. Но по серьезному могу подключиться к разработке только после или во время появления GUI.

..bw
Аватара пользователя
bw
постоялец
 
Сообщения: 359
Зарегистрирован: 01.12.2005 11:36:23
Откуда: Усть-Илимск

Сообщение Рождённый_в_СССР » 15.08.2007 02:08:58

Мой проект перенесли http://stimul.freepascal.ru
над уродством страничек смеятся не нада ! у меня нету столько времени) другой дизайн делать не хочу, так как планирую с этого сайта тупо передрать как нить... но сейчас не об этом...

появилась новая версия - 0.1.3 )

полностью отработал алгоритм загрузки и вызова сервисов на Паскале, написал примитивный сервис (прерывание DOS INT 21h), которая в первом приближении умеет выводить на экран через функции 02,06 и 09. По ходу всего этого было исправленна куча ошибок и упрощена компиляция до двух сборочных файлов - Buid_All - собирает микроядро и всё чего с ним завязанно, build.bat - создает файлувую систему, объеденяет с ядром и выдает готовый бинарник.

Есть сомнения в том, нужно ли полностью все DOS прерывания обрабатывать... т.е. из области совместимости c DOS-системами... пока в планах только часть 21h прерывания, а именно функции файловой системы (естественно уже не фата, но программы, работая через эти функции даже и не догадаются об этом :) ) таким образом я хочу подойти в плотную к написанию шелла и хотя бы FASM припартировать без особо заумных модификаций

Хотелось бы так же выслушать все ваши вопросы и предложения, у одного дело чего-то медленно идёт

всем спасибо за понимание!
Аватара пользователя
Рождённый_в_СССР
новенький
 
Сообщения: 65
Зарегистрирован: 08.08.2007 01:03:26
Откуда: Саратов

Сообщение STAKANOV » 15.08.2007 10:26:50

Рождённый_в_СССР писал(а):Мой проект перенесли http://stimul.freepascal.ru

над уродством страничек смеятся не нада ! у меня нету столько времени) другой дизайн делать не хочу, так как планирую с этого сайта тупо передрать как нить... но сейчас не об этом...

Круто! Поздравляю! У меня сразу появилось какое-то потустороньее чувство, что именно этот паровоз полетит :D

Рождённый_в_СССР писал(а):появилась новая версия - 0.1.3 )

Будет время, посмотрю. Я, кстати, так и не понял как версию 0.1.2 надо было собирать, к тому же мне придется адаптировать сборку под FreeBSD.

Рождённый_в_СССР писал(а):Есть сомнения в том, нужно ли полностью все DOS прерывания обрабатывать... т.е. из области совместимости c DOS-системами... пока в планах только часть 21h прерывания, а именно функции файловой системы (естественно уже не фата, но программы, работая через эти функции даже и не догадаются об этом ) таким образом я хочу подойти в плотную к написанию шелла и хотя бы FASM припартировать без особо заумных модификаций

Если мне память не изменяет, то дос прерывание только 21h, остальные прервания которые использовались при программировании под дос были уже прерываниями биос. Или речь идет о функциях 21-ого прерывания?
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение GN » 15.08.2007 10:58:05

При попытке зайти на http://stimul.freepascal.ru антивирусная программа выдала предупреждение:
"Win32/Allaple.Gen"
Аватара пользователя
GN
новенький
 
Сообщения: 67
Зарегистрирован: 29.07.2007 07:35:56
Откуда: Казахстан

Сообщение Рождённый_в_СССР » 15.08.2007 14:02:41

Будет время, посмотрю. Я, кстати, так и не понял как версию 0.1.2 надо было собирать, к тому же мне придется адаптировать сборку под FreeBSD.

я сейчас не настолько развил ОС, чтобы адаптировать её под всячекские ОСи... если ты адаптируешь - скинь пожалуйста мне изменения :) буду признателен...

Если мне память не изменяет, то дос прерывание только 21h, остальные прервания которые использовались при программировании под дос были уже прерываниями биос. Или речь идет о функциях 21-ого прерывания?

на самом деле их дофига... биос тока до 20h, дальше там всё ДОС, точно все на спех не вспомню, но приблизительно:
25h (чтение) / 26h (запись) -низкоуровненвые дисковые функции
33h - работа с мышью
ну и прочее... в общем выше 20h

При попытке зайти на http://stimul.freepascal.ru антивирусная программа выдала предупреждение:
"Win32/Allaple.Gen"

ой как плохо... наверн дело в шаблонах... тогда пока лучше не заходите... я думаю сегодня вечером исправлю...
спасибо, что сообщили.


-------------------------------------------------------Добавленно вечером ---)

если я вообще понял природу вируса, то тогда - я его пофиксил :) для полной уверености прошу вас проверить своими антивирусными системами... кроме того перекроил дизайн +/- похожий на ваш... и залил туда свою фотографию с работы ;) чтобы вы полюбовались на мои честные глаза )
работаю над новой версией ОС, конечно не в ущерб основной работе ;)
жду вашей критики и пожеланий...
Аватара пользователя
Рождённый_в_СССР
новенький
 
Сообщения: 65
Зарегистрирован: 08.08.2007 01:03:26
Откуда: Саратов

Сообщение Рождённый_в_СССР » 20.08.2007 03:28:30

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

суть в след. :
пишу функции для работы с файловой системой в режиме чтения
однако, хочется сделать произвольное число откр. файлов и так же произвольного размера читаемого блока (а не по 64Кб как в ДОСе)
соответственно придётся подгружать динамически-выделяемую память под это дело (файловый буфер), поэтому приходится писать менеджер памяти выше 6 мегабайта (выделение/освобождение)
ОС полностью перешла из сегментной адресации (известной вам как flat-модель памяти) в страничную адресацию (аппаратную, а не то как это делается в виндах ;) )

единственное, что пока не понятно - при создании этого буфера давать ли всем программам его читать/писать, только определённым или только одной программе... есть подозрения что аппаратная защита разрешит всем процессам, у кого уровень привелегий <= создавшему буфер (пока однако создавать его ядро будет только от себя) но в будущем всё таки хотелось бы уточнить какие права лучше давать на этот буфер
Аватара пользователя
Рождённый_в_СССР
новенький
 
Сообщения: 65
Зарегистрирован: 08.08.2007 01:03:26
Откуда: Саратов

Сообщение STAKANOV » 20.08.2007 08:39:32

Рождённый_в_СССР писал(а):единственное, что пока не понятно - при создании этого буфера давать ли всем программам его читать/писать, только определённым или только одной программе... есть подозрения что аппаратная защита разрешит всем процессам, у кого уровень привелегий <= создавшему буфер (пока однако создавать его ядро будет только от себя) но в будущем всё таки хотелось бы уточнить какие права лучше давать на этот буфер


по-моему никто кроме ядра этот буфер читать не должен
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение Рождённый_в_СССР » 20.08.2007 09:12:48

STAKANOV писал(а):
по-моему никто кроме ядра этот буфер читать не должен


хм... а как же микроядерность? оно же не должно всем подряд заниматься, тем более всем рассказывать что у кого в файлах лежит... я таких примеров даже в монолитных не видел, обычно у ядра просят открыть файл - оно его связывает с буфером, если для чтения - переносит туда нужный блок и выдает приложению адрес, откуда брать содержимое, а оно там уже читает его как хочет вроде так я себе представляю, аналогичная процедура с записью... иначе будет не то что микроядро, а одно сплошное приложение ИМХО...
если есть какие другие мысли - делитесь, подумаю
Аватара пользователя
Рождённый_в_СССР
новенький
 
Сообщения: 65
Зарегистрирован: 08.08.2007 01:03:26
Откуда: Саратов

Пред.След.

Вернуться в Операционная система

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

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

Рейтинг@Mail.ru