Оберон-клуб «ВЄДАsoft»
https://zx.oberon.org/forum/

Bare Metal BlackBox (Прототип)
https://zx.oberon.org/forum/viewtopic.php?f=34&t=387
Страница 1 из 2

Автор:  SovietPony [ 06 апр 2018, 22:04 ]
Заголовок сообщения:  Bare Metal BlackBox (Прототип)

Вот так вот упрлс. Сделал реализацю Kernel BlackBox работающего поверх голого железа без хост-системы.
В наличии всё, кроме корутин и юникода. Докучи, вместо стандартного аллокатора реализован TLSF.
Загрузчик говно, поэтому на реальной железке может не работать по причне выключенного Gate A20, неправильных параметров диска если сборка >64кб и/или не инициализированного видеорежима. В виртуалке слинкованная система может быть размером до 320 кб.

Сорцы и хеллворлд в комплекте. Для сборки требуется gnu assembler.

Вложение:
2018-04-06_21-52-19-screenshot.png
2018-04-06_21-52-19-screenshot.png [ 97.04 КБ | Просмотров: 10532 ]


ADDED: исходники грабить здесь: git

Автор:  ivan_denisov [ 08 апр 2018, 19:15 ]
Заголовок сообщения:  Re: Bare Metal BlackBox (Прототип)

Как я понял, это на виртуалке надо запускать?

Автор:  SovietPony [ 08 апр 2018, 22:06 ]
Заголовок сообщения:  Re: Bare Metal BlackBox (Прототип)

ivan_denisov писал(а):
Как я понял, это на виртуалке надо запускать?

На реальном железе тоже можно, я загружаюсь с обычной флешки и лицезрею зависание/стектрейс/хеллворлд.

Я уже починил загрузчик, и слинкованные модули загружаются полностью(вроде бы) на рельном железе, но неведомая хрень портит память неведомо как - динамическая память не работает.
И отладить никак. Com кабеля нет, a lpt никак не получается завести под мезкой вендой. На каждый чих бегать с флешкой - удовольствие сомнительное. Как отлаживать на ноутбуках - вообще не имею понятия.

EDIT: всё как обычно, обнаружил что часть памяти ядра маплю в ебе мимо.

Автор:  ivan_denisov [ 09 апр 2018, 07:40 ]
Заголовок сообщения:  Re: Bare Metal BlackBox (Прототип)

Планируете брать какие-то драйвера из Native Oberon? A2?

Есть несколько энтузиастов, которые копаются сейчас на нижнем уровне системы с Обероном. Часть обсуждений ведутся в Slack. Сейчас вот про файловые системы в том числе.
Andres Ramos опубликовал там ссылочку на свой блог, он победил USB-драйвер и FAT16.
http://www.nativeoberontutorials.de/ind ... eakthrough

Автор:  Дмитрий Дагаев [ 09 апр 2018, 10:14 ]
Заголовок сообщения:  Re: Bare Metal BlackBox (Прототип)

SovietPony писал(а):
Сделал реализацию Kernel BlackBox работающего поверх голого железа без хост-системы
Идея очень хороша и полезна, если довести до ума. Но хочется понять, что Вы собираетесь делать.
- Планируете ли Вы делать режим ядра и пользовательский режим для приложений BlackBox?
- Если да, то что будет в части реализации планировщика, сколько пользовательских процессов, какая меж ними синхронизация, включая GC (все по сравнению с реализацией в A2)?
- Если нет, то для приложений реального времени - самое оно: Init, Start и жесткий цикл от таймера. Но там не слишком много лишнего в Kernel?

Автор:  SovietPony [ 09 апр 2018, 11:38 ]
Заголовок сообщения:  Re: Bare Metal BlackBox (Прототип)

ivan_denisov:
До драйверов ещё далеко, но планов брать что-то готовое нету. Только велосипеды!

Сервисов вроде slack, телеграмов и подобных избегаю.



Дмитрий Дагаев:
Всё в режиме ядра + mmu для защиты стека и нулевой страницы.
Не исключаю поддержку многоядерных/многопроцессорных систем, если до этого вообще дойдёт.

А чего там лишнего?

Автор:  Дмитрий Дагаев [ 09 апр 2018, 12:33 ]
Заголовок сообщения:  Re: Bare Metal BlackBox (Прототип)

SovietPony писал(а):
А чего там лишнего?

Ожидал увидеть систему реального времени:
- Инициализацию (увидел), с запретом аллокирования по окончанию;
- Периодический Run , вызываемый прерыванием от системного таймера;
- Уход на перезагрузку со сбросом памяти при возникновении проблем (есть DoRestart).
IMHO, процедуры UnloadMod, Collect, FastCollect представляются лишними.

Автор:  SovietPony [ 09 апр 2018, 16:11 ]
Заголовок сообщения:  Re: Bare Metal BlackBox (Прототип)

Дмитрий Дагаев писал(а):
Ожидал увидеть систему реального времени
Данный прототип делается для обычных пк.

Дмитрий Дагаев писал(а):
- Периодический Run , вызываемый прерыванием от системного таймера;
На x86-pc штук пять таймеров с разными возможностями и точностью. Какой из них должен быть системным? А ещё существуют всякие не стандартные девайсы.
Поэтому такая функциональность должна быть в драйвере таймера, а не в ядре.
То что сейчас таймер вообще используется - это только ради Time и Beep, которые тоже неплохо бы выпилить.

Автор:  Дмитрий Дагаев [ 09 апр 2018, 16:46 ]
Заголовок сообщения:  Re: Bare Metal BlackBox (Прототип)

SovietPony писал(а):
такая функциональность должна быть в драйвере таймера, а не в ядре.
То что сейчас таймер вообще используется - это только ради Time и Beep, которые тоже неплохо бы выпилить.

Вопрос не в том, какой и в каком месте таймер. Вопрос в том, что у Вас будет делать runtime, после того, как Вы напечатаете Hello,world? И для каких целей Вы предназначаете создаваемую систему?

Автор:  SovietPony [ 09 апр 2018, 22:05 ]
Заголовок сообщения:  Re: Bare Metal BlackBox (Прототип)

Дмитрий Дагаев писал(а):
Вопрос в том, что у Вас будет делать runtime, после того, как Вы напечатаете Hello,world?

Ну название темы как бы говорит само за себя.
Дмитрий Дагаев писал(а):
И для каких целей Вы предназначаете создаваемую систему?

Всё делается just for fun %)

Страница 1 из 2 Часовой пояс: UTC + 2 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/