Welcome!
Foton/Cyjon/Fern-Night is a simple project of multitasking operating system for 64-bit processors from x86_64 family.
A system that is detached from reality. Fully resident in memory. (Yep, no installation on hard drive needed.)
A simple, clean code, multi-tasking kernel written in pure Assembly language for 64-bit processors from the AMD64 family.
Home Page: https://blackdev.org
License: GNU General Public License v3.0
I already know how to do it :)
Although I once wrote in Cyjon transparent window support (https://www.youtube.com/watch?v=cidKvpEcpH0) it was only ONE window.
Now it dawned on me how to do it for a larger quantity (windows) without losing that much in performance 馃憤
the binary memory map describes only one space, starting with the physical address 0x00100000
process the rest of the memory map entries and describe them in a binary memory map
je艣li stos kontekstu rodzica jest wi臋kszy... to jest problem....
zlokalizowa膰 pocz膮tek stosu kontekstu rodzica i poinformowa膰 procedur臋 o pomini臋ciu tej przestrzeni
When I want to flash the cyjon.img file and try it on my own computer, the screen just gets black.
By the way, I'm sorry for my english -_-
I am sure you have many valid reasons to use C, but may I suggest that you stay in asm?
So many low-level concepts are more succinctly expressed in assembly! Just look at the layers and layers of C headers required to wrap around the hardware registers alone - something which is a given in assembly.
If that does not convince you, consider that right now this is a unique and valuable project. Convert it to C and with will be just another half-baked hobby OS!
Either way, thank you for your work!
brak mo偶liwo艣ci otworzenia wi臋kszej ilo艣ci program贸w
brak obs艂ugi otrzymywanych jak i wysy艂anych danych o rozmiarze wi臋kszym ni偶 ramka Ethernet
How can I port the Doom game to CyjonOS?
occurs: spontaneously, when more than 1 cpu core is used
find why task_ap_address[ cpu_id ] doesn't contain task pointer at kernel_task
it might be race condition at AP initialization -_-
bypass created. is safe for system
kernel_task:
; [...]
; bug, AP doesn't have information about currently executed task?
test r10, r10
jnz .ok
; set initial task as closed
mov r10, qword [r8 + KERNEL_STRUCTURE.task_queue_address]
.ok:
; [...]
Hi Andrzej, do you want a GUI design?
Ok, I need some help with file fpu.asm
Procedure soler_fpu_float_to_fraction, should return INTEGER from FRACTION
eg.
in:
soler_fpu_precision dq 4 ; convert max 4 digits after "."
soler_fpu_float_result dq 5.076 ; float
out:
soler_fpu_precision dq 3 ; integer
soler_fpu_fraction dq 76 ; integer
soler_fpu_precision contains number of digits after "."
soler_fpu_fraction contains integer of 076
FPU is hard to digest for me, and Bochs doesn't help with that...
Some explanation:
; this procedure wil change X to ZERO in variable soler_fpu_float_result
call soler_fpu_float_only ; X.Y > 0.Y
Ze wzgl臋du na procedur臋 wczytywania pliku do przestrzeni pami臋ci w pliku kernel/exec.asm
system nie gwarantuje czystego stosu podczas pierwszego uruchomienia procesu, co za tym idzie - w rejestrach r8-r15 mog膮 znajdowa膰 si臋 艣mieci.
brak generatora liczb losowych
Fern-Night - arrow keys are working,
Cyjon - nope...
brak obs艂ugi wi臋cej ni偶 1 pakietu na raz przez kontroler sieciowy
Hello, I just cloned the git repo and installed nasm and qemu and qemu-system-x86-x64 (or something like that). but when I ran the
make.sh it gave me
kernel/stream.asm:80: error: symbol `kernel_stream_set.process_run_end' undefined
kernel/stream.asm:82: error: label `kernel_stream_set.process_run_no_copy_out_to_parent' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:109: error: label `kernel_stream_set.process_run_ready' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:127: error: label `kernel_stream' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:137: error: label `kernel_stream.1' changed during code generation [-w+error=label-redef-late]
kernel/macro/lock.asm:12: ... from macro `macro_lock' defined here [-w+error=label-redef-late]
kernel/stream.asm:139: error: label `kernel_stream.reload' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:143: error: label `kernel_stream.search' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:183: error: label `kernel_stream.error' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:190: error: label `kernel_stream.found' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:220: error: label `kernel_stream.end' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:235: error: label `kernel_stream_release' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:240: error: label `kernel_stream_release.1' changed during code generation [-w+error=label-redef-late]
kernel/macro/lock.asm:12: ... from macro `macro_lock' defined here [-w+error=label-redef-late]
kernel/stream.asm:265: error: label `kernel_stream_receive' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:275: error: label `kernel_stream_receive.1' changed during code generation [-w+error=label-redef-late]
kernel/macro/lock.asm:12: ... from macro `macro_lock' defined here [-w+error=label-redef-late]
kernel/stream.asm:293: error: label `kernel_stream_receive.load' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:314: error: label `kernel_stream_receive.continue' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:326: error: label `kernel_stream_receive.close' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:336: error: label `kernel_stream_receive.end' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:356: error: label `kernel_stream_insert' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:364: error: label `kernel_stream_insert.retry' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:366: error: label `kernel_stream_insert.1' changed during code generation [-w+error=label-redef-late]
kernel/macro/lock.asm:12: ... from macro `macro_lock' defined here [-w+error=label-redef-late]
kernel/stream.asm:374: error: label `kernel_stream_insert.next' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:385: error: label `kernel_stream_insert.insert' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:402: error: label `kernel_stream_insert.continue' changed during code generation [-w+error=label-redef-late]
kernel/stream.asm:417: error: label `kernel_stream_insert.end' changed during code generation [-w+error=label-redef-late]
kernel/sleep.asm:10: error: label `kernel_sleep' changed during code generation [-w+error=label-redef-late]
kernel/driver/rtc.asm:47: error: label `driver_rtc_semaphore' changed during code generation [-w+error=label-redef-late]
kernel/driver/rtc.asm:49: error: label `driver_rtc_microtime' changed during code generation [-w+error=label-redef-late]
kernel/driver/rtc.asm:51: error: label `driver_rtc_date_and_time' changed during code generation [-w+error=label-redef-late]
kernel/driver/rtc.asm:55: error: label `driver_rtc' changed during code generation [-w+error=label-redef-late]
kernel/driver/rtc.asm:78: error: label `driver_rtc_get_date_and_time' changed during code generation [-w+error=label-redef-late]
./make.sh: line 15: build/kernel: No such file or directory
zero/storage.asm:28: error: expression syntax error
./make.sh: line 18: build/zero: No such file or directory
bootsector.asm:59: error: expression syntax error
disk.asm:12: error: `incbin': unable to get length of file `build/bootsector'
disk.asm:17: error: `incbin': unable to get length of file `build/zero'
disk.asm:22: error: `incbin': unable to get length of file `build/kernel'
What does this mean, I'm not fimiliar with nasm that much.
nor with qemu. please help.
w Qemu, zamkni臋cie programu 6 razy, generuje wyj膮tek procesora
zlokalizowa艂em procedur臋:
kernel_page_map_logical podczas tworzenia procesu
wska藕nik wyj艣cia z tej procedury "ret" zosta艂 podmieniony...
right now:
0x0000000000000000 - software stack
0x0000000000100000 - kernel
0x0000800000000000 - kernel stack / context switch stack
0xFFFF800000000000 - software
to be:
0x0000000000000000 - software
0x0000400000000000 - software stack
0x0000400000000000 - open space
0x0000600000000000 - libraries
0x0000700000000000 - kernel
0x0000800000000000 - kernel stack / context switch stack
changing the space for this model will reduce the kernel code and programs by several Bytes ;)
minivac2:~/cyjon/Cyjon$ nasm -f bin kernel/library.asm -o build/library
kernel/library/bosu/header.asm:9: error: symbol LIBRARY_BOSU_WINDOW_NAME_length' redefined kernel/library/bosu/header.asm:10: error: symbol
LIBRARY_BOSU_WINDOW_BACKGROUND_color' redefined
kernel/library/bosu/header.asm:12: error: symbol LIBRARY_BOSU_WINDOW_BORDER_THICKNESS_pixel' redefined kernel/library/bosu/header.asm:13: error: symbol
LIBRARY_BOSU_WINDOW_BORDER_color' redefined
kernel/library/bosu/header.asm:16: error: symbol LIBRARY_BOSU_WINDOW_FLAG_flush' redefined kernel/library/bosu/header.asm:18: error: symbol
LIBRARY_BOSU_WINDOW_FLAG_visible' redefined
kernel/library/bosu/header.asm:19: error: symbol LIBRARY_BOSU_WINDOW_FLAG_fixed_xy' redefined kernel/library/bosu/header.asm:20: error: symbol
LIBRARY_BOSU_WINDOW_FLAG_fixed_z' redefined
kernel/library/bosu/header.asm:21: error: symbol LIBRARY_BOSU_WINDOW_FLAG_fragile' redefined kernel/library/bosu/header.asm:22: error: symbol
LIBRARY_BOSU_WINDOW_FLAG_arbiter' redefined
kernel/library/bosu/header.asm:23: error: symbol LIBRARY_BOSU_WINDOW_FLAG_transparent' redefined ...kernel/library/bosu/header.asm:171: error: symbol
LIBRARY_BOSU_STRUCTURE_ELEMENT_CHAIN_size' redefined
kernel/library/terminal/header.asm:9: error: symbol LIBRARY_TERMINAL_STRUCTURE' redefined kernel/library/terminal/header.asm:24: error: symbol
LIBRARY_TERMINAL_STRUCTURE_size' redefined
kernel/library/terminal/header.asm:26: error: symbol LIBRARY_TERMINAL_STURCTURE_CURSOR' redefined kernel/library/terminal/header.asm:29: error: symbol
LIBRARY_TERMINAL_STURCTURE_CURSOR_size' redefined
1 sekunda trwa zbyt d艂ugo ;)
prawdopodobnie z艂a konfiguracja kontrolera RTC
kernel\init\rtc.asm
zoptymalizowa膰 rozmiar przestrzeni pakiet贸w ARP i ICMP w przestrzeni j膮dra systemu
This is a pretty cool project and after playing around with it for a few minutes, I noticed that when moving a window, the entire window is redrawn until the cursor is let go of. I recommend instead for the good old windows 95 approach of only drawing the window outlines when moving them. I think this will make it faster and smoother.
otworzenie okna np. "console" i powielenie klawisza "enter" powtarza klikni臋cie myszk膮 w menu (kt贸re jest ju偶 ukryte).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
馃枛 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 馃搳馃搱馃帀
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google 鉂わ笍 Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.