Re: Эмулятор ядра OS Windows
Posted: Fri Feb 16, 2024 10:29 am
Jurgen, please try not to commit each line/several lines separately. Commit logically coherent pieces what implement smth
CleverMouse wrote: ↑Fri Jun 07, 2013 8:09 pm r3615+r3617 вносят дополнение: теперь при поступлении IRQ, отличного от таймера, также вызывается планировщик, но со специальным флагом "смотри только на потоки, которые строго более приоритетны, чем текущий". Флаг также меняет логику продвижения очереди: если пользовательский поток A упорно работал и был прерван по таймеру, то следующим пользовательским потоком будет B, следующий в кольце после A; если тот же пользовательский поток A упорно работал и был прерван по другому прерыванию, то следующим пользовательским потоком останется A - возможно, после того, как вмешавшийся ядерный поток что-нибудь сделает.
The proposed changes should not conflict with programs using other header standards. Because this handler is only fired under a few conditions:turbocat wrote: ↑Sat Feb 17, 2024 10:47 am Jurgen, hello. Changes to critical areas of code, such as the MENUET header, require additional discussion because they affect many programs. Everything after the field i_icon is not standardized and is handled differently in different places (KX extension and GCC extension).
The patch that you applied, as I understand it, is only needed by your emulator. You either need to figure out how to do it differently. Or he will try to explain why such a decision is necessary. Thank you in advance.
Okay, I will repost on thread priorities and stack exclusion in the kernel forum and in future I will post everything related to changes in the kernel on the kernel forum.dunkaist wrote: ↑Sat Feb 17, 2024 2:01 pm Jurgen,
.....
1. First a non-technical thing. Could you, please, suggest your kernel changes in the kernel forum? Some people were really surprised to see your commits to the kernel because they didn't track this programs/emulators subforum at all. For example, you linked the existing topic on thread priorities in one of your previous posts. Looks like a good place to continue discussion on properties. If there is no suitable topic for the exception stack, feel free to create one. I'm sorry to put this paperwork on you. Thank you.
.....
dunkaist wrote: ↑Sat Feb 17, 2024 2:01 pm .....
Then, in case we decide not to care about POSIX, I think the most kolibri-style way to implement the exception stack is to pass its pointer to sf68.24 in esi register. This is a very common thing for kolibri, e.g. see how esi is passed to sf4. You can then store the stack pointer to APPDATA structure, say, after pl0_stack field.
.....
Fine. I'll rework the stack exception handling mechanism by passing the address of the backup stack to esi register in function 68.24 and post this variant on the kernel forum for discussion.
I try to stick to the Kolibri OS standards. If I'm wrong somewhere, you and others will correct me.
You don't have to create a separate topic for each change. There is a topic on thread priorities already, you mentioned it. Same for exception handling: one, two. Feel free to just post links to the existing messages in this topic to the kernel forum and then continue kernel-related discussion there. Maybe moderators will move posts around then. We aren't strict about forum rules at all, but it's desirable for a significant kernel change to leave at least some trace in the kernel forum. It will be much easier later to track logic behind the changes, thank you.Jurgen wrote: ↑Sun Feb 18, 2024 7:37 am Okay, I will repost on thread priorities and stack exclusion in the kernel forum and in future I will post everything related to changes in the kernel on the kernel forum.
What complies with the forum rules - to create separate topics for individual proposals for editing the kernel, or to make one topic like “Windows OS emulator and kernel changes” and post all proposals for editing the kernel there?
I'd appreciate this, everybody should be happy then. Sorry again for my late feedback.
You're right, sizeof.TASKDATA is expected to equal 32. Unfortunately, kernel code isn't flexible about it at the moment.
I'd prefer to move 51.2 closer to sf9 or implement it as a subfunction. Up to you though.
fasm wrote:$ fasm -m 1234567 WCore.asm wcore
flat assembler version 1.73.32 (1234567 kilobytes memory, x64)
WCore.asm [16]:
include "masm.inc"
error: file not found.