ESWay-kernel :: Улучшения в ядре / Kernel improvements

Collecting list of kernel bugs
User avatar
LightElf
Posts: 11
Joined: Thu Dec 14, 2006 17:55

Postby LightElf » Mon Dec 18, 2006 12:50

/Serg/ wrote:ËàéòÝëüô, PhysToGDTSel ìîæåò âñ¸. Ñêà÷àé FAQ ïî äðàéâåðàì è ïðî÷èòàé «QA__0071.HTM».


ß ïðåêðàñíî çíàþ, ÷òî ìîæåò (è ÷åãî íå ìîæåò) PhysToGDTSel. Òîãî, ÷òî ìíå íóæíî îíà íå ìîæåò.

/Serg/ wrote:Åñëè âûçâàòü ýòó ôóíêöèþ äâàæäû (äëÿ îäíîãî è òîãî æå àäðåñà, íî ñ ðàçíûìè ïàðàìåòðàìè), îíà ïðåîáðàçóåò ôèçè÷åñêèé àäðåñ â òàê íàçûâàåìûé «ñåëåêòîð», òî åñòü çàïèñü â òàáëèöå ïðîåîáðàçîâàíèÿ àäðåñîâ GDT. Ñåëåêòîð ñóùåñòâóåò ïîñòîÿííî (äîñòóï ê íåìó — ãäå-òî â íåäðàõ OS2Krnl), è ñ åãî ïîìîùüþ â ëþáîå âðåìÿ ôèçè÷åñêèé àäðåñ ìîæåò áûòü ïåðåñ÷èòàí âî âñ¸, ÷òî óãîäíî.


Áëèí, âñå ýòî î÷åíü êðàñèâî, íî íåïîíÿòíî ê ÷åìó ñêàçàíî. Åùå ðàç: ìíå íå íóæåí GDT ñåëåêòîð, îí è áåç ìåíÿ åñòü è íàçûâàåòñÿ DosFlatDS. Âîïðîñ (èçíà÷àëüíî) áûë íåñêîëüêî î äðóãîì. Åùå ðàç ïîâòîðÿþ èñõîäíûå õîòåëêè:

1) Âîçìîæíîñòü äåëàòü KernVMAlloc íà _óêàçàííûé_ ëèíåéíûé àäðåñ. Êëþ÷åâîå ñëîâî - "óêàçàííûé". Òî åñòü åæåëè ÿ ñêàçàë, ÷òî ìíå íóæíà ïàìÿòü ñ ëèíåéíûì àäðåñîì 0x12345000, òî ïóñòü îí ëèáî ñäåëàåò ìíå ïàìÿòü ñ ýòèì àäðåñîì, ëèáî âåðíåò îøèáêó. Âíóòðè ÿäðà (â ôóíêöèè VMAllocMem ñ ôëàãîì VMAC_LOCKSPECIFIC) òàêàÿ âîçìîæíîñòü åñòü, íàðóæó (÷åðåç äåâõåëïû èëè KEE) òàêàÿ ôè÷à íå ýêñïîðòèðóåòñÿ íèêàê.
2) Ðåàëèçîâàòü KEE-àíàëîãè äëÿ VMGlobalToProcess/VMProcessToGlobal. Ýòî êàê ìèíèìóì. À åùå õî÷åòñÿ KernSetIRQ ;)
3) SMP ðàíäåâó. Òî åñòü âîçìîæíîñòü âûïîëíèòü êóñî÷åê êîäà (ring0) íà _âñåõ_ ïðîöåññîðàõ _îäíîâðåìåííî_. Ýòî êàê ìèíèìóì. Êàê ìàêñèìóì õî÷åòñÿ íîðìàëüíûé êåðíåëüíûé ñåðâèñ äëÿ óïðàâëåíèÿ êýøàìè ïðîöåññîðîâ íà SMP.
4) Âîçìîæíîñòü óïðàâëÿòü êýøèðóåìîñòüþ ïàìÿòè íåïîñðåäñòâåííî â âûçîâå VMAlloc. Òèïà "âûäåëèòü êóñîê ïàìÿòè è ñäåëàòü åãî íåêýøèðóåìûì" èëè "íàìàïèòü êóñîê ôèçè÷åñêîé ïàìÿòè è èñïîëüçîâàòü äëÿ íåãî ñòðàòåãèþ Write-combine".

Åñòü è åùå õîòåëêè, íî îíè íåñêîëüêî ñëîæíåå â ðåàëèçàöèè, ïîýòîìó ÿ ïîêà íå ïîäíèìàþ ýòó òåìó. Íàïðèìåð ìíå óäèâèòåëåí PagelistToLin - ÷òî ýòî åùå çà óðîäñòâî? Ïî÷åìó ñîáñòâåííî ãîâîðÿ "The linear mapping produced by this function is valid only until the caller yields the CPU, or until it issues another call to PageListToLin or PhysToVirt" ? Ïî÷åìó íåëüçÿ ñäåëàòü åãî âàëèäíûì íàäîëãî?

Òàê âîò, ïðè ÷åì òóò GDT ñåëåêòîðû?


/Serg/ wrote:×òî æå äî áîëüøîãî êóñêà ñïëîøíîé íåñâîïèðóåìîé ïàìÿòè, òî âèäåî ðàáîòàåò òàêèì îáðàçîì ãîäà ñ ñåìüäåñÿò ÷åòâ¸ðòîãî, ñî âðåì¸í Xerox Star. È ïàìÿòè íûí÷å â êîìïàõ ìíîãî.


Áðð. "ß íè ôèãà íå ïîíÿë, ÷óâàê. Íî òû áëèçîê ìíå ïî äóõó. Òû çàãîâîðèë, è äîñòó÷àëñÿ äî ìîåãî ñåðäöà..." (Ñ) Äæåé è Ìîë÷àëèâûé Áîá íàíîñÿò îòâåòíûé óäàð.

Ïðè ÷åì òóò Xerox Star?

User avatar
Igor Vaskov
Posts: 84
Joined: Thu Jul 07, 2005 13:28
Location: Москва
Contact:

Postby Igor Vaskov » Mon Dec 18, 2006 15:41

Владимир Стрельников wrote:И чем же религия запрещает Игорю Васкову работать с другими ядрами?

Как и любая религия - запрещает догмой. Вот такой я ортадоксальный. И никуда мигрировать не хочу. Ни в сторону винды, ни в сторону линуха. Ну не нравится мне Линукс и Реактос. Кому нравится - пожалуйста, развивайте свои проекты, я ж не против, но помогать не буду. Вот такой я загадочный зверек.
А вот OSFree мне интересен.

User avatar
Igor Vaskov
Posts: 84
Joined: Thu Jul 07, 2005 13:28
Location: Москва
Contact:

Postby Igor Vaskov » Mon Dec 18, 2006 15:49

/Serg/ wrote:Игорь, ты второй раз пишешь: «может быть мне удастся». Все стратегические инфесторы давно ушли на ММВБ и в этом году вкладывают в «Ростел-ао» и «РАО ЕЭС». Весной будет раздача :)

Да не все. Тут ко мне обратились люди с деньгами и предложением открыть рискованный проект. Но, к сожалению, в виду полной неопределенности по теме OS/2 ядра мне нечего им предложить.
Так что будет проект по оптике скорее всего ;)

Âëàäèìèð Ñòðåëüíèêîâ
Posts: 26
Joined: Thu Jul 28, 2005 09:12
Location: Воронеж

Postby Âëàäèìèð Ñòðåëüíèêîâ » Mon Dec 18, 2006 15:59

Igor Vaskov wrote:
Владимир Стрельников wrote:И чем же религия запрещает Игорю Васкову работать с другими ядрами?

Как и любая религия - запрещает догмой. Вот такой я ортадоксальный. И никуда мигрировать не хочу. Ни в сторону винды, ни в сторону линуха. Ну не нравится мне Линукс и Реактос. Кому нравится - пожалуйста, развивайте свои проекты, я ж не против, но помогать не буду. Вот такой я загадочный зверек.
А вот OSFree мне интересен.

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

User avatar
/Serg/
Posts: 57
Joined: Thu Sep 01, 2005 22:34
Contact:

Postby /Serg/ » Mon Dec 18, 2006 23:55

Посмотри FAQ, что я присылал, там есть ответ на вопрос, как вызывать VMAlloc (но не KernVMAlloc), чтобы он создал виртуальный адрес, связанный с указанным линейным адресом.

Больше я ничего сказать сейчас не могу, после тренировки пришёл.

User avatar
LightElf
Posts: 11
Joined: Thu Dec 14, 2006 17:55

Postby LightElf » Tue Dec 19, 2006 12:48

/Serg/ wrote:Ïîñìîòðè FAQ, ÷òî ÿ ïðèñûëàë, òàì åñòü îòâåò íà âîïðîñ, êàê âûçûâàòü VMAlloc (íî íå KernVMAlloc), ÷òîáû îí ñîçäàë âèðòóàëüíûé àäðåñ, ñâÿçàííûé ñ óêàçàííûì ëèíåéíûì àäðåñîì.
Áîëüøå ÿ íè÷åãî ñêàçàòü ñåé÷àñ íå ìîãó, ïîñëå òðåíèðîâêè ïðèø¸ë.


KernVMAlloc ïîëíîñòüþ ñîîòâåòñòâóåò VMAlloc (îíè âûçûâàþò îäíè è òå æå ôóíêöèè).
 ôàêå íè÷åãî îòíîñèòåëüíî íàìàïëèâàíèÿ íà óêàçàííûé ëèíåéíûé àäðåñ íå íàøåë (÷òî è íå óäèâèòåëüíî, èáî faq îò ëîõìàòîãî ãîäà). Òû íè÷åãî íå ïóòàåøü? Ìíå íå íóæíî íàìàïëèâàòü ïî îäèíàêîâîìó àäðåñó âî âñåõ ïðîöåññàõ (÷òî ïðåêðàñíî äåëàåò êîìáèíàöèÿ VMAlloc + VMGlobalToProcess), êàê ýòî äåëàþò GRADD-äðàéâåðà äëÿ âèäåîïàìÿòè.

Åùå ðàç ïîâòîðÿþ çàäà÷ó: åñòü íåêèé óêàçàòåëü (ëèíåéíûé 0:32 â ïðîñòðàíñòâå ïðîöåññà), ïåðåäàííûé íàïðèìåð èç ïðèëîæåíèÿ â äðàéâåð (â ïðîñòåéøåì ñëó÷àå - ÷åðåç IOCTL). Äðàéâåðó íóæíî ñäåëàòü òàê, ÷òîáû ýòîò ñàìûé óêàçàòåëü óêàçûâàë â äðóãîå ìåñòî. Äëÿ ÷åãî ýòî íóæíî: âèäåîïàìÿòü - îãðàíè÷åííûé ðåñóðñ. Äëÿ ñêîðîñòè ïîëåçíî, ÷òîáû âñÿêèå òàì EnDIVE áóôåðû, òåêñòóðû, etc ëåæàëè â âèäåîïàìÿòè. Íî, èíîãäà ïðèõîäèòñÿ íåêîòîðûå (íàèìåíåå âàæíûå) áóôåðû èç âèäåîïàìÿòè âûêèäûâàòü â ñèñòåìíóþ ïàìÿòü, ÷òîáû îñâîáîäèòü ìåñòî äëÿ áîëåå âàæíûõ âåùåé. Æåëàòåëüíî, ÷òîáû ýòîò ïðîöåññ áûë ïðîçðà÷åí äëÿ ïðèëîæåíèé. Òàêèì îáðàçîì íóæíû ñëåäóþùèå äåéñòâèÿ: 1) îòìàïèòü óêàçàòåëü îò âèäåîïàìÿòè 2) íà íåãî æå íàìàïèòü ñèñòåìíóþ ïàìÿòü. È â îáðàòíóþ ñòîðîíó. Ïóíêò 1) òðèâèàëåí (VMFree). Ïóíêò 2) â íàñòîÿùèé ìîìåíò íå ðåøàåì. Õîòÿ, åùå ðàç ïîâòîðþ, âíóòðè êåðíåëà òàêàÿ âîçìîæíîñòü åñòü.

User avatar
/Serg/
Posts: 57
Joined: Thu Sep 01, 2005 22:34
Contact:

Postby /Serg/ » Wed Dec 20, 2006 23:30

Значит, хочешь подменить процессу адресное пространство?
А молнией по башке?

User avatar
LightElf
Posts: 11
Joined: Thu Dec 14, 2006 17:55

Postby LightElf » Thu Dec 21, 2006 09:32

/Serg/ wrote:Çíà÷èò, õî÷åøü ïîäìåíèòü ïðîöåññó àäðåñíîå ïðîñòðàíñòâî?
À ìîëíèåé ïî áàøêå?


Íåò, ÿ õî÷ó ïîäìåíèòü ôèçè÷åñêîå õðàíèëèùå ïîä ñóùåñòâóþùèì àäðåñíûì ïðîñòðàíñòâîì.

User avatar
LightElf
Posts: 11
Joined: Thu Dec 14, 2006 17:55

Áàãè â êåðíåëå

Postby LightElf » Thu Mar 01, 2007 21:45

1) Áàãà â DevHelp_OpenFile (à êîíêðåòíî - â ôóíêöèè dh_SYIOpenFile), çàêëþ÷àþùàÿñÿ â òîì, ÷òî îò äëèíû ôàéëà (32-áèòíîå ÷èñëî) âîçâðàùàþòñÿ òîëüêî ìëàäøèå 16 áèò. Áàãà äîâîëüíî ïðîñòàÿ, ïîñëå ñîáñòâåííî îòêðûòèÿ ôàéëà èäåò òàêîé êîä:

mov ax, 0
mov es:[di+6], bx
mov es:[di+8], ax

ïîíÿòíîå äåëî, ÷òî íà ñàìîì äåëå äîëæíî áûòü

mov es:[di+6], bx
mov es:[di+8], ax
mov ax, 0

òîãäà âñå áóäåò íîðìàëüíî.

User avatar
LightElf
Posts: 11
Joined: Thu Dec 14, 2006 17:55

Áàãè â êåðíåëå

Postby LightElf » Thu Mar 01, 2007 21:56

2) Áàãà â ôóíêöèÿõ KernSerialize16bitDD è KernUnserialize16bitDD. Ïðè÷åì òîëüêî â SMP êåðíåëå. Âûãëÿäèò ýòî òàê:

cmp ds:_fInit, 2
jnz @end

î÷åâèäíî, ÷òî ñëó÷àé áîëåå äâóõ ïðîöåññîðîâ íå ðàññìàòðèâàåòñÿ (òî÷íåå ðàññìàòðèâàåòñÿ êàê UNI). Ïîñêîëüêó 4-õ ïðîöåññîðíàÿ ñèñòåìà íûíå ñîâñåì íå ýêçîòèêà, áûëî áû ëîãè÷íî ýòîò êîä èñïðàâèòü íà ÷òî-òî âðîäå

cmp ds:_fInit, 2
jb @end

èëè (åñëè áîëüøå íðàâèòñÿ)

cmp ds:_fInit, 1
je @end

User avatar
Eugene Gorbunoff
Site Admin
Posts: 685
Joined: Sat Apr 09, 2005 11:18
Location: St.Petersburg, Russia

Итак, задача # 1

Postby Eugene Gorbunoff » Thu May 31, 2007 13:55

LightElf пишет:
Первая задача - реализовать фичастый редактор LX файлов,
чтобы всякие хитрые патчи накладывать, свой код в LX файлы внедрять и т.д.

User avatar
Pasha
Posts: 82
Joined: Fri Apr 21, 2006 14:17

Re:

Postby Pasha » Wed Jul 09, 2008 08:19

Âëàäèìèð Ñòðåëüíèêîâ wrote:
пожелание wrote:а объединить ядра в просто ядро (не смп/uni/ws)...
ведь различие в планировщике.
в лине как я с удивлением узнал (случайно обнаружил в 6 шапке - гдето с 2.6.??) что ядро само автоматически или принудительно может переключаться в какой-либо режим.

все же проще.
И чем же религия запрещает Игорю Васкову работать с другими ядрами?
если ядро есть и оно в начале оъявлялось как микроядро и оверлей для перетрансляции написать в данном случае не сильно трудно чем на недокументированную, и не тратить силы на написание еще одного ядра, работая на энтропию, а работать в сообществе где уже маломальчески сделано. это про реактос (m$ объявляло ядро системы микроядром).
то-что получилось монолит с модулями (линукс ядра такой-же) - ничего плохого в этом нет.


А то что все вышеприведеные ядра работают малость по другому в голову не приходит? ;-) С другими ядрами уже будет совсем другая ос. Совсем другие драйвера, программы и подходы. Насчет написания еще одного... У IBM документации по ядру валом, более того рабочее компилируемое ядро уже есть, даже может через пару месяцев будет в публичном доступе. Замечу, пока ядро _полностью_ совместимо с IBM. То есть пока даже можно использовать os2ldr от IBM (но это наверное не надолго) и ессено полностью совместимо с имеющимися драйверами и программами. То есть к чему я это. Смысла напрягатся и скрещивать ужа с ежом никакого смысла нет, есть уже полностью соместимое ядро, выложить для публичного доступа это тока дело времени.

User avatar
Pasha
Posts: 82
Joined: Fri Apr 21, 2006 14:17

Re:

Postby Pasha » Wed Jul 09, 2008 08:26

Igor Vaskov wrote:
/Serg/ wrote:Игорь, ты второй раз пишешь: «может быть мне удастся». Все стратегические инфесторы давно ушли на ММВБ и в этом году вкладывают в «Ростел-ао» и «РАО ЕЭС». Весной будет раздача :)

Да не все. Тут ко мне обратились люди с деньгами и предложением открыть рискованный проект. Но, к сожалению, в виду полной неопределенности по теме OS/2 ядра мне нечего им предложить.
Так что будет проект по оптике скорее всего ;)


Ядро, SMP, уже есть, идет чистка кода, внутренний тестинг, Правка багов и добавка мелких фичей. Uni ядра не будет, отдельного NonDebug/Debug/FullDebug тоже. По планам в сентябре отдать в публичный тестинг. Лично я уже второй месяц сижу на новом ядре ;-)

User avatar
Pasha
Posts: 82
Joined: Fri Apr 21, 2006 14:17

Re: Áàãè â êåðíåëå

Postby Pasha » Wed Jul 09, 2008 08:30

LightElf wrote:1) Áàãà â DevHelp_OpenFile (à êîíêðåòíî - â ôóíêöèè dh_SYIOpenFile), çàêëþ÷àþùàÿñÿ â òîì, ÷òî îò äëèíû ôàéëà (32-áèòíîå ÷èñëî) âîçâðàùàþòñÿ òîëüêî ìëàäøèå 16 áèò. Áàãà äîâîëüíî ïðîñòàÿ, ïîñëå ñîáñòâåííî îòêðûòèÿ ôàéëà èäåò òàêîé êîä:

mov ax, 0
mov es:[di+6], bx
mov es:[di+8], ax

ïîíÿòíîå äåëî, ÷òî íà ñàìîì äåëå äîëæíî áûòü

mov es:[di+6], bx
mov es:[di+8], ax
mov ax, 0

òîãäà âñå áóäåò íîðìàëüíî.


Уже исправлено ;-) Правда проверить на большие файлы поленился ;-)


Return to “Kernel”

Who is online

Users browsing this forum: No registered users and 1 guest

cron