Giter Club home page Giter Club logo

cyjon's Introduction

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.)

Foton v0.243

cyjon's People

Contributors

corruptedbycpu avatar masterneko avatar phcoder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cyjon's Issues

FPU

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

duplikaty okien

otworzenie okna np. "console" i powielenie klawisza "enter" powtarza kliknięcie myszką w menu (które jest już ukryte).

Redraw window outlines when moving them

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.

make script gives me error.

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.

sieć, arp, icmp

zoptymalizować rozmiar przestrzeni pakietów ARP i ICMP w przestrzeni jądra systemu

Won't build

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

wm

odpalenie 4-go okna powoduje kaskadę

obraz

Boot Black Screen Problem

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 -_-

workspace logical address change

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 ;)

kernel_page_merge

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

zamknięcie programu

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...

clean exec

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.

race condition of APs

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:

	; [...]

floating point numbers

If window manager is using image scaling function (wallpaper) then unfortunately the application crashes.

This problem only occurs in Cyjon, although the configuration of the processor options for handling floating point registers is the same at Fern-Night.

image

binary memory map

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

Please don't give up on assembly!

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!

sieć, interfejs

brak obsługi więcej niż 1 pakietu na raz przez kontroler sieciowy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.