Added KERNEL process

git-svn-id: svn://kolibrios.org@7321 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
pavelyakov 2018-08-25 13:22:48 +00:00
parent 343e87c60f
commit 3c1445e6c6
6 changed files with 80 additions and 19 deletions

View File

@ -588,6 +588,7 @@ tup.append_table(img_files, {
{"MOUSECFG", PROGS .. "/cmm/mousecfg/mousecfg.com"}, {"MOUSECFG", PROGS .. "/cmm/mousecfg/mousecfg.com"},
{"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"}, {"NETWORK/WEBVIEW", PROGS .. "/cmm/browser/WebView.com"},
{"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"}, {"PANELS_CFG", PROGS .. "/cmm/panels_cfg/panels_cfg.com"},
{"@KERNEL", PROGS .. "/cmm/KERNEL/kernel.com"},
}) })
tup.append_table(extra_files, { tup.append_table(extra_files, {
{"kolibrios/drivers/DRVINST.KEX", PROGS .. "/cmm/drvinst/drvinst.com"}, {"kolibrios/drivers/DRVINST.KEX", PROGS .. "/cmm/drvinst/drvinst.com"},

View File

@ -8,6 +8,7 @@
#/SYS/DEVELOP/BOARD "" 0 # Load DEBUG board #/SYS/DEVELOP/BOARD "" 0 # Load DEBUG board
/SYS/SETUP BOOT 0 # Load device settings /SYS/SETUP BOOT 0 # Load device settings
/SYS/LOADDRV RDC 0 # videodriver for RDC M2010/M2012 /SYS/LOADDRV RDC 0 # videodriver for RDC M2010/M2012
/SYS/@KERNEL "" 0 # Start modify KERNEL
/SYS/@TASKBAR "" 0 # Start taskbar /SYS/@TASKBAR "" 0 # Start taskbar
/SYS/@ICON "" 0 # Multithread icon /SYS/@ICON "" 0 # Multithread icon
/SYS/ESKIN "" 0 # Set style /SYS/ESKIN "" 0 # Set style

View File

@ -191,70 +191,70 @@ endg
; Return Else EAX > 0 success set function ; Return Else EAX > 0 success set function
align 32 align 32
setInt0x40: setInt0x40:
; !!! kernel security !!! ; !!! kernel security !!!
and ebx, 0FFh and ebx, 0FFh
mov eax, dword [servetable2 + ebx * 4] mov eax, dword [servetable2 + ebx * 4]
cmp eax, undefined_syscall ; cmp eax, undefined_syscall
jne errorSet0x40 ; jne errorSet0x40
; ----------------------- ; -----------------------
pushad pushad
add edx, 16 add edx, 16
stdcall kernel_alloc, edx stdcall kernel_alloc, edx
push eax push eax
pop dword[tempPointerAlloc] pop dword[tempPointerAlloc]
popad popad
push ebx push ebx
push dword[tempPointerAlloc] push dword[tempPointerAlloc]
pop eax pop eax
mov ebx, eax mov ebx, eax
add eax, edx add eax, edx
push 0 push 0
pop dword[hashDataFunction1] pop dword[hashDataFunction1]
push 1 push 1
pop dword[hashDataFunction2] pop dword[hashDataFunction2]
loopCopyMemory: loopCopyMemory:
xor edx, edx xor edx, edx
mov dl, byte[ecx] mov dl, byte[ecx]
mov byte[ebx], dl mov byte[ebx], dl
; hash security function ; hash security function
add dword[hashDataFunction1], edx add dword[hashDataFunction1], edx
mov edx, dword[hashDataFunction1] mov edx, dword[hashDataFunction1]
add dword[hashDataFunction2], edx add dword[hashDataFunction2], edx
;----------------------------- ;-----------------------------
inc ebx inc ebx
inc ecx inc ecx
cmp ebx, eax cmp ebx, eax
jne loopCopyMemory jne loopCopyMemory
pop ebx pop ebx
; check hash security data ; check hash security data
; cmp edi, dword[hashDataFunction1] ; cmp edi, dword[hashDataFunction1]
; jne errorSet0x40 ; jne errorSet0x40
; cmp esi, dword[hashDataFunction2] ; cmp esi, dword[hashDataFunction2]
; jne errorSet0x40 ; jne errorSet0x40
;------------------------------- ;-------------------------------
mov eax, dword[tempPointerAlloc] mov eax, dword[tempPointerAlloc]
mov dword [servetable2 + ebx * 4], eax mov dword [servetable2 + ebx * 4], eax
jmp successSet0x40 jmp successSet0x40
errorSet0x40: errorSet0x40:
xor eax, eax xor eax, eax
successSet0x40: successSet0x40:
ret ret
tempPointerAlloc dd ? tempPointerAlloc dd ?
hashDataFunction1 dd ? ;hashDataFunction1 dd ?
hashDataFunction2 dd ? ;hashDataFunction2 dd ?
;------------------- ;-------------------

View File

@ -0,0 +1,6 @@
if tup.getconfig("NO_CMM") ~= "" then return end
if tup.getconfig("LANG") == "ru"
then C_LANG = "LANG_RUS"
else C_LANG = "LANG_ENG" -- this includes default case without config
end
tup.rule("kernel.c", "c-- /D=AUTOBUILD /D=$(C_LANG) %f" .. tup.getconfig("KPACK_CMD"), "kernel.com")

View File

@ -0,0 +1,5 @@
C-- kernel.c
del @KERNEL
rename kernel.com @KERNEL
pause

View File

@ -0,0 +1,48 @@
#pragma option OST
#pragma option ON
#pragma option cri-
#pragma option -CPA
#initallvar 0
#jumptomain FALSE
#startaddress 0x0000
char os_name[8] = {'M','E','N','U','E','T','0','1'};
dword os_version = 0x00000001;
dword start_addr = #____INIT____;
dword final_addr = #____STOP____+32;
dword alloc_mem = 4*1024*1024;
dword x86esp_reg = 4*1024*1024;
dword I_Param = #param;
dword I_Path = #program_path;
char param[4096];
char program_path[4096];
void ExitProcess()
{
EAX = -1;
$int 0x40
}
dword eaxFunctionDestroy(){RETURN 0;}
eaxFunctionDestroyEnd:
void ____INIT____()
{
// Disable door kernel
EAX = 81;
EBX = 81;
ECX = #eaxFunctionDestroy;
EDX = #eaxFunctionDestroyEnd-#eaxFunctionDestroy;
$int 0x40
ExitProcess();
}
void ____STOP____()
{
ExitProcess();
}