OSDev

для всех
Текущее время: 28 май 2018, 04:36

Часовой пояс: UTC + 3 часа




Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 04 июл 2012, 10:26 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 944
Откуда: Дагоба
Да уж поприличней QEMU будет...
Не хочешь - как хочешь. Твои проблемы.
Есть у меня (неоднократно проверенная практикой) теория Моськи-слона. Суть её заключается в следующем. Вот есть у нас, к примеру, ОС Windows. Её создатель - слон (MS), его все видят. Если эта ОС не заработает в Боксе, все будут говорить: "Говно ваш Бокс". Это потому что Бокс - Моська. Также эта ОС может не заработать на некоторых реальных компах. Скажем, на извращённых ноутбуках. Будут говорить: "Говно ваш комп". Хотя на самом деле, ни Бокс, ни комп вполне могут быть не говном, а нормальными продуктами и конкретная ошибка в самой ОС. Но вероятность ошибок в Боксе и компе больше, чем вероятность ошибок в винде, т.к. количество пользователей этой ОС на порядки превышает пользователей Бокса или компа какой-то там модели.
С другой стороны, если сравнивать Бокс и Малинку, то Бокс - слон, а Малинка - Моська. В Боксе сейчас идут большинство операционок и если в нём не работает Малинка, то я могу конечно предположить, что ОС крутая и работает на всех реальных компах, и только в Боксе не работает из-за его ошибки, но вероятность этого мала и, скорей всего, или ОС содержит ошибки, или мало что поддерживает, так что не будет работать не только в Боксе, но и на куче реального железа. Т.к. у меня нет практического стимула насиловать свою флешку мутными процедурами, самое лучшее, что я могу сделать - это посмотреть ОС в Боксе. Поэтому пока она в Боксе не заработает, смотреть не на что.
Вариант "ошибка на самом деле в Боксе" лечится багрепортом в поддержку Бокса.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 04 июл 2012, 13:16 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Ну это всё понятно, но о конкретном, в версии 2.5 которую я смог найти при загрузке окно с параметрами очень странными после Qemu Manager и неудобными, бинарник не грузит так как видимо требователен к образу диска, чем Qemu, причё в Qemu есть много устройств.
Сам код он либо грузится либо ни где не грузится, так как там ошибка, или третий вариант - это несовместимость(т.е. он грузится не везде). Мне достаточно загрузки на компах и в QEMU, а в других эмуляторах пока нету времяни разбираться, тем более оно мне ничего не даст и не просто там разобраться, особенно в создании самого образа диска, что является основным. Желание есть, т.к. Qemu мне реально помогло и возможно другие будут полезны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 04 июл 2012, 17:17 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 944
Откуда: Дагоба
Станислав писал(а):
бинарник не грузит так как видимо требователен к образу диска, чем Qemu

Ничего подобного! Образ диска - любой файл. В конфигурации указываешь параметры диска, больше, чем твой файл, например:
ata0-master: type=disk, path=Malina.bin, cylinders=8, heads=16, spt=63
При старте Бокс конечно скажет, что твой образ вообще не кратен размеру сектора, и потом ещё ругнётся, что размер файла не соответствует указанному в геометрии диска, но работать будет. При старте в Боксе видно, что устанавливается соответствующий видео режим, но всё остаётся на уровне чёрного экрана.

Станислав писал(а):
и не просто там разобраться, особенно в создании самого образа диска, что является основным.

У тебя УЖЕ есть образ диска. Это твой бинарный файл. В чём там разбираться-то???

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 04 июл 2012, 19:26 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Понятно, а почему там нет тогда стандартного видео режима, он же самый стандартный, и где тогда его менять, в Qemu выбор из нескольких вариантов видео и сетевых и звуковых, что вполне логично.
Теперь кратен размеру сектора мой бинарник, добавил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 04 июл 2012, 21:17 

Зарегистрирован: 12 май 2012, 14:02
Сообщения: 18
Дело не в видеорежиме. Графическая карточка в Bochs и QEMU одинаковая эмулируется, даже Video BIOS в QEMU из Bochs взят.

Проблема в имидже диска, то есть в самом бинарнике.

Вот так выглядит в логах Bochs нормльная загрузка с нормального имиджа (WinXP):

Код:
00003183277i[BIOS ] ata0-0: PCHS=3120/16/63 translation=large LCHS=780/64/63
00007063412i[BIOS ] IDE time out
00020000005i[WGUI ] dimension update x=720 y=400 fontheight=16 fontwidth=9 bpp=8
00307613255i[BIOS ] Booting from 0000:7c00
00319357171i[BIOS ] int13_harddisk: function 15, unmapped device for ELDL=81
00319703796i[BIOS ] *** int 15h function AX=e980, BX=007d not yet supported!


А вот так malina.bin:

Код:
00000000000p[IMG  ] >>PANIC<< size of disk image must be multiple of 512 bytes
00000000000i[HD   ] ata0-0: autodetect geometry: CHS=7/16/63
00000000000i[HD   ] ata0-0: extra data outside of CHS address range
...
00004000000i[WGUI ] dimension update x=720 y=400 fontheight=16 fontwidth=9 bpp=8
00311891862e[HD   ] calc_log_addr: out of bounds (7778/7778)
00311891862e[HD   ] ide_read_sector() reached invalid sector 0, aborting


вот собственно и все. после последнего "reached invalid sector 0, aborting" загрузка уже не продолжается.

Ты когда бинарник делал, что имел в виду ? Что это диск ? Если да - то с какой геометрией ?
Если нет - то что это тогда ?

Станислав

ЗЫ: Кстати, Qemu Manager никакого отношения к QEMU не имеет. Это стороннее приложение, которое делает конфиг для запуска QEMU.
Никто не мешает тем же авторам сделать такое же приложение, которое будет делать .bocshrc - конфиг файл для Bochs.
К сожалению пока никто не сделал :(

Да, кстати, настроить .bocshrc с нуля ничуть не сложенее чем пройти Wizard в Qemu Manager, там все очень подробно в примерах расписано.
Сразу видно, что ты FIDO софт в детстве не настраивал. Вспомнил бы конфиги T-mail и Golded с ностальгией :)

Сообщения про образы дисков в Bochs отделены сюда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 05 июл 2012, 04:17 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Перед стартом Bosh тоже открывается какойто менеджер в 2.5. В MBR после 440 байта переписывал разметку флешки

Код:
times 440 - ($-$$) db 1

dd 0
dw 0
db 00h          ;Признак активности раздела
db 31           ;Начало раздела - головка
db 16            ;Начало раздела - сектор
db 2           ;Начало раздела - дорожка

db 06h           ;Код типа раздела  fat 16
db 63           ;Конец раздела - головка
db 255            ;Конец раздела - сектор
db 202          ;Конец раздела - дорожка

dd 6000          ;Смещение первого сектора
dd 2005968       ;Количество секторов раздела
db 48 dup(0)
db 0x55, 0xAA


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 06 июл 2012, 23:05 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1196
У меня ничего не открывается. Это видимо зависит от настроек.

Структура образа с MBR-разметкой и одним разделом:
Код:
PART_STATE = 80h
PART_TYPE = 0Eh
HEADS = 16
SPT = 63

file "../bootcode/disk/mbr/jumbo-3/jumbo-3.bin",440
dd ?
db 0,0
db PART_STATE,1,1,0
db PART_TYPE,HEADS-1,(CYLINDERS-1) and 300h shr 2 + SPT,(CYLINDERS-1) and 0FFh
dd SPT,(CYLINDERS*HEADS-1)*SPT
db 3*16 dup 0
dw 0AA55h
rb SPT*512-$ ; резерв до конца нулевой дорожки
; том (может быть меньше раздела)
db HEADS*SPT*512-1 - ($+HEADS*SPT*512-1) mod (HEADS*SPT*512) dup 0
CYLINDERS = $/(HEADS*SPT*512)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 08 июл 2012, 07:17 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Начинаю создавать кодеки для jpg png в этих форматах блоки с данными по которым можно прыгать и брать нужные, для начала просто сделаю перебор блоков.
Задача графического кодка перевести данные из своего формата в обычный для системы н*м с цветом пикселя, это может быть и векторный формат в котором храняться точки и системными функциями нарисовать линии соединяющие эти точки, линии есть и обычные и бизье с сглаженными краями.
Несколько лет назад на дельфи читал уже блоки для jpeg.
Если ктонибудь знает какой нить формат файла и желает написать кодек, то пишите в лс дам ссылку на доку с объектами и вообще если ктото хочет стать разработчиком ОС Малинка и есть что добавить, то такая возможность есть.
Разработчик ОС Малинка должен будет писать либо кодеки либо дрова, либо ещё чтонибудь и заниматься её продвижением в массы.
Чем больше полезного кода разработчик напишет тем больше будет у него и прав и прибыли.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 10 июл 2012, 04:19 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
При запуске файла jpg, png теперь у меня список блоков с их размером, правда в jpg не полный, после блока SOS они прерываются, ктонить вкурсе, или все на пляж пошли?
В моей ОСи теперь есть возможность запускать проги без переделки адресов, а просто передавать адрес загрузки в ebp, причём это будет адрес на первый объект - главную форму, в её обработчик с номером вызываемой команды 7 в dl - запуск формы. Из ОС я вызываю после загрузки файла модуя с диска как jmp dword[ebp+12]. В ebp адрес загрузки модуля, сам модуль соответственно начинается с данных объекта

Код:
frm_dev   dd   cur1

   db   255      ;синий
   db   0      ;зелёный
   db   0      ;красный
   db   1      ;тип

   dd   0      ;адрес отрисовки   8
   dd   device_events   ;адрес сообшений   12
   dd   0      ;адрес формы      16
   db   220      ;синий         20
   db   220      ;зелёный
   db   220      ;красный
   db   0      ;флаг
   dw   390      ;w  для формы      24
   dw   430      ;h  для формы      26
   dw   50      ;x  для формы      28
   dw   50      ;y  для формы      30

   dd   sys_0      ;вверх к хозяину   32
   dd   frm_tx1      ;вниз         36
   dd   0      ;след         40
   dd   0      ;пред         44
   dd   0      ;         48
   dd   0      ;         52
   dd   0      ;         56
   dd   0      ;         60
   dd   0      ;         64
   dd   0      ;         68

device_events:cmp dl,0
            jnz @f

            ret
@@:         cmp dl,1
            jnz @f
   cmp byte[def0],1
   jnz .1
   jmp dword[ebp+52]
.1:   jmp dword[sys_0+60]
@@:         cmp dl,2
            jnz @f
;   mov ebp,sys_0      ;вверх
;   jmp dword[ebp+8]   ;нарисовать
@@:         cmp dl,3
            jnz @f
   jmp dword[ebp+60]
@@:         cmp dl,4
            jnz @f
   jmp dword[ebp+64]
@@:         cmp dl,5
            jnz @f
            ret
@@:         cmp dl,7            ;откроем форму
            jnz @f


Кстати у меня много кода которого я перевёл в бинарник и он нормально работает, так как это функции которые просто считают а данные берут только из ebp.
Те же функции рисования шрифтов линий у меня цепляются как бинарники linea file '8\line1.bin' и вызываются как call linea. Можно сделать как jmp dword[ebp+80] если в объекте на память 80-83 записать linea. В самом ebp как вы догадались данные для этой функции все есть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 10 июл 2012, 22:14 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
Станислав писал(а):
В самом ebp как вы догадались данные для этой функции все есть.

Странное соглашение о вызовах.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 42 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB