Page 2 of 77
Re: Помогите новичку
Posted: Sun Jan 06, 2008 10:35 am
by <Lrz>
У меня возникла проблема. Я доделал новый "blue screen", однако если при уже загруженой Ос при нажатии ctr+alt+F12 выбрать ядро или перезагрузка, то возможно не корректное поведение "blue screen", от несохранения параметров, до отказа мышки при следующей загрузки ОС это касательно эмуляторов. На реальной машине нажате ядро приводит к перезагрузки системы. Помогите мне, в каком месте мне стоит дальше копать? Почему может такое случаться?
Re: Помогите новичку
Posted: Sun Jan 06, 2008 12:51 pm
by <Lrz>
Объясните мне наличее этой структуры в файле data16.inc
Code: Select all
kernel_restart_bootblock:
db 1 ; version
dw 1 ; floppy image is in memory
dd 0 ; cannot save parameters
при загрузке загрузчик передает следующие параметры
Code: Select all
executa_kernel:
; \begin{diamond}[02.12.2005]
mov ax, 'KL'
push 0
pop ds
mov si, loader_block+boot_program
; \end{diamond}[02.12.2005]
push word 01000h
push word 00h
retf
итого в ds=0 si указывает на структуру
Code: Select all
loader_block:
db 1
dw 0
dw write1st+boot_program
dw 0
где write1st указатель на функцию по сохраннению первых 0x200 байт ядра
Т.е. при загрузке просиходит размещение в блоке loader_block dd адреса нахождения блока
loader_block(в случае загрузки с дискеты), однако при перезагрузке мы видем что
передаются параметры на структуру kernel_restart_bootblock
Code: Select all
push 0x1000
pop ds
mov si, kernel_restart_bootblock
mov ax, 'KL'
jmp 0x1000:0000
в которой (структура показана выше)третий парметр определен как dd 0, т.е. он не указывает на код, который может сохранять параметры.
Это приводит к тому, что при выборе ядро мы не можем сохранить параметы.
Объясните мне логику работы данного участка, для каких целей понадобился блок kernel_restart_bootblock?
Re: Помогите новичку
Posted: Fri Jan 11, 2008 1:41 pm
by Dronchik
А есть ли хорошое пособие по программированию на С/С++ под КолибриОС?
Re: Помогите новичку
Posted: Fri Jan 11, 2008 6:35 pm
by vectoroc
Алгоритмы сути своей не меняют, с++ останется с++-ом, но программирование под каждую конкретную платформу предполагает какие-то специфичные для неё моменты. Отвечая на вопрос - да, отличается.
Re: Помогите новичку
Posted: Fri Jan 11, 2008 7:19 pm
by vectoroc
Вы что-то путаете. Некоторая "кросплатформенность" есть, но зачем она вам, если вы уже писали о неприемлимости использования линукса (наверно и виндовса)?
Re: Помогите новичку
Posted: Fri Jan 11, 2008 8:09 pm
by k@sTIg@r
Что ж это за требования, куда Колибри подходит а linux нет?
Видимо вы не все дистрибутивы линукса видели. Да и собрать свой для нужных целей - не проблема(если есть определенные знания в этой области).
Я ни в коем случае не хочу отговаривать вас от колибри(сообщество, не ругаться

), но может стоит копнуть в сторону линукса? Покрайней мере вы не будете привязаны к определенной архитектуре, да и программных решений найдете много, и людей подобрать сможете(свободных линуксоидов больше чем колибривцев).
Re: Помогите новичку
Posted: Fri Jan 11, 2008 8:13 pm
by Serge
path_of_mileaWindows и Linux не встанет на холодильниках из-за высоких требований к ним
К холодильникам ?

Как насчёт Minix ?
Re: Помогите новичку
Posted: Fri Jan 11, 2008 8:20 pm
by Hack_phoenix
Хм.. Если конфигурация одна, то и настроить придется один раз... А потом просто шить флэш как БИОСом?... ИМХО, зависит от конкретной реализации. Если вам нужна графическая подсистема - Колибри лучше всего подойдет, иначе - что-то другое.
Re: Помогите новичку
Posted: Fri Jan 11, 2008 10:16 pm
by Serge
path_of_mileaТам поддержка железа совсем плохая
У нас не шибко лучше. Там всё на С, исходники открыты, память ест меньше, правда своя лицензия.
Re: Помогите новичку
Posted: Sat Jan 12, 2008 12:38 am
by Serge
path_of_milea
В ядре куча дыр. Нормального планировщика нет, обработка прерываний мягко говоря странная. Драйвер клавиатуры кривоват, оконная система примитивная, файловая система без дескрипторов файлов и т.д. С одной стороны всё вроде есть и работает, а когда внимательно присмотришься увидишь что "тут надо напильником подправить, а там кувалдой подрихтовать".
Re: Помогите новичку
Posted: Sat Jan 12, 2008 8:21 am
by <Lrz>
Согласен с Serge. При детальном рассморении кода ядра приходишь к выводу, что для приведения его к "нормальному" виду нужно переписать более половины системы. Но поскольку времени и порой соответствующих знаний нет, модификация кода носит локальный характер, исправлением подвергаются только отдельные функциональные блоки, а принципы и идеи остаются еще со времен создателя менует.
Существует работа по исправлению логических ошибок, однако она проводитсья силами энтузиастов. Обычно это все затягивается или остается недоделанным. Тем не менее ядро развивается, изменятся...
На поставленный вопрос - будет ли сбоить коос, если ее поставить на холодильники точного ответа не даст ни кто. Вы можете проверить это путем проведения всесторонних тестов и сами дать ответ на этот вопрос.
Re: Помогите новичку
Posted: Sat Jan 12, 2008 10:19 am
by <Lrz>
Во первых вы не услышите от людей, которые реально пишут ядро что ОС это супер пупер или круто. Да в коде есть некоторые логические ошибки и неточности на взляд системных программеров. Однако это не мешает стабильно работать ОС и выполнять поставленные задачи. Я считаю, что при должном уровне софта Колибри ОС может успешно справляться с поставленными вами задачами. Однако код ОС будет дорабатываться и если вы примите участие в доработке кода, оч многие люди будут вам признательны.
Re: Помогите новичку
Posted: Sat Jan 12, 2008 10:53 am
by <Lrz>
Поскольку проект не коммерческий и сообщество не приследует финансовую выгоду. Тут нет рекламы и тупово восхваления продука. Если есть некоторые недостатки об этом говориться прямо. Я считаю это очень хорошей позицией т.к. именно вам или конечному пользователю предстоит принять решение о использовании данной ОС. Заинтересованность сообщества это развитее данной ОС.
---------
Все мнения субъективны если нет фактов
Re: Помогите новичку
Posted: Sat Jan 12, 2008 2:03 pm
by bw
> В ядре куча дыр. Нормального планировщика нет, обработка прерываний мягко говоря странная. Драйвер клавиатуры кривоват, оконная система примитивная, файловая система без дескрипторов файлов и т.д.
Кучи дыр я не обнаружил, хотя предполагаю что ошибки есть, как и в любой системе, но в связи с небольшим объемом кода системы найти и исправить их не сложно. "Нормальный" планировщик, драйвер клавиатуры и т.д. для холодильников не нужны. Скорее всего потребуются свои драйвера. А 90% кода это приложения или даже одно приложение, специфичные для данной задачи. От оконной системы, например, понадобится, скорее всего, создать одно окно на весь экран, без рамок и заголовка. ФС, возможно, не будеть использованна вообще, образ будет загружаться BIOS'ом или еще чем, а после старта ФС вроде как и не нужна (хотя не факт).
..bw
Re: Помогите новичку
Posted: Sat Jan 12, 2008 5:09 pm
by k@sTIg@r
Тогда возникает вопрос: "что от колибри останется?"
Планировщик не нужен, драйвера свои, свой софт, переписаный код ядра, фс не нужна, всего одно окно (да и то без свойств окна). Можно тогда и оконую систему вырезать, нифиг она нужна, просто приложению позволить рисовать на всей области экрана.
Зы. интересует, графическая система холодильнику нужна? Если да, то зачем?