Page 1 of 2

xOS v0.07 -- testing needed!

Posted: Sat Jan 28, 2017 11:39 am
by BrightLight
Hey guys!
After more than 5 months since my last release, I finally make another alpha release of xOS. A lot can happen in 5 months, and a lot has happened. New things:
  • Rewrote AHCI driver - boots from SATA on QEMU, VirtualBox and real HW.
  • Reworked GUI - wallpaper, transparency, and shell.
  • Graphical toolkit and applications to demonstrate, including calculator.
  • Loading programs from disk.
  • Performance improvements everywhere.
  • (Incomplete) ACPI AML interpreter.
  • Other small things I can't think of now.
I've also moved to the MIT license instead of the GPL. Here's the GitHub release. Your feedback is greatly appreciated!

Re: xOS v0.07 -- testing needed!

Posted: Sat Jan 28, 2017 12:08 pm
by stevej150
It reminds me of KolibriOS. Great operating system! I would love to see you have a file manager and to be able to install it on hard disk with ISO. Did you use jmp word 0xffff:0000 for reboot? By the way, where's the shell?

Re: xOS v0.07 -- testing needed!

Posted: Sat Jan 28, 2017 12:22 pm
by BrightLight
stevej150 wrote:It reminds me of KolibriOS. Great operating system! I would love to see you have a file manager and to be able to install it on hard disk with ISO. Did you use jmp word 0xffff:0000 for reboot? By the way, where's the shell?
Thanks! A file manager is coming soon, but ISO and CD/DVD support is rather far down in my to-do list. For reboot, I use the PS/2 controller (writing 0xFE to port 0x64) but ACPI reset will be implemented in the coming time, for better real hardware compatibility. The shell doesn't mean a traditional "terminal"; I have a graphical shell. The start menu and taskbar are parts of the graphical shell.

Re: xOS v0.07 -- testing needed!

Posted: Sat Jan 28, 2017 1:27 pm
by pdurlej
A neat GUI.

However, mouse behavior is weird while dragging.

It does not seem to track the active window properly when a mouse button is depressed. When a window is dragged too fast, or the mouse pointer is too close to the title bar border, the GUI tends to stop updating the window position (and mouse input is delivered to the window under the mouse pointer instead).

Also, it's possible do move a window when the mouse pointer is completely outside that window. To reproduce: open a window. Start moving the window by dragging it's title bar. Rapidly move the mouse pointer upwards. The GUI stops updating the window position despite the mouse button is not released. Move the mouse pointer to the left or right of the window. The GUI suddenly resumes to update the window position even though the mouse pointer is outside the window.

Finally, when the left mouse button is depressed and the mouse pointer is moved over a button in the calculator app, the app responds as if the button was clicked each time the mouse pointer is moved inside a button. This leads to inadvertent entry of digits when trying to quickly enter numbers into the calculator.

Re: xOS v0.07 -- testing needed!

Posted: Sat Jan 28, 2017 1:49 pm
by sleephacker
I noticed the same things in the GUI, and also crashed the graphical shell by opening many applications, I left the serial outputs in an issue on your github release.

Re: xOS v0.07 -- testing needed!

Posted: Sat Jan 28, 2017 2:06 pm
by stevej150
omarrx024 wrote:
stevej150 wrote:It reminds me of KolibriOS. Great operating system! I would love to see you have a file manager and to be able to install it on hard disk with ISO. Did you use jmp word 0xffff:0000 for reboot? By the way, where's the shell?
Thanks! A file manager is coming soon, but ISO and CD/DVD support is rather far down in my to-do list. For reboot, I use the PS/2 controller (writing 0xFE to port 0x64) but ACPI reset will be implemented in the coming time, for better real hardware compatibility. The shell doesn't mean a traditional "terminal"; I have a graphical shell. The start menu and taskbar are parts of the graphical shell.
You mean - in 0x64, 0xFE?!
How did you learn to do all this OS development? Where did you learn? It's amazing.

Re: xOS v0.07 -- testing needed!

Posted: Sat Jan 28, 2017 2:08 pm
by BrightLight
Thanks for testing!
pdurlej: I know about the window manager problems. I'm going to rewrite the window manager event handler soon, and these issues should be gone.
sleephacker: I've commented on your GitHub issue, explaining why the problems you mentioned happened. I'll be sure to fix that soon, too.

Re: xOS v0.07 -- testing needed!

Posted: Sat Jan 28, 2017 2:10 pm
by BrightLight
stevej150 wrote:You mean - in 0x64, 0xFE?!
To reset the PC:

Code: Select all

outb(0x64, 0xFE);
stevej150 wrote:By the way, I will make applications for you, ok?
Feel free to experiment as you like; however, there is still no real documentation for the kernel API, and the source code is as close as you can get to documentation. I wouldn't encourage you to write actual applications yet, though, as the APIs are still under early development and change often and other things are just plain missing (e.g. textbox component, hierarchy support, etc...)

Re: xOS v0.07 -- testing needed!

Posted: Sat Jan 28, 2017 2:11 pm
by stevej150
I might make applications. By the way, how did you learn all the OS development? I might join you and help you develop! We can work on parts.

Re: xOS v0.07 -- testing needed!

Posted: Sat Jan 28, 2017 2:22 pm
by f2
I noticed the same bugs too. However, the GUI is pretty fast, at least on VirtualBox.
One suggestion: you should add a border around your windows :)

Re: xOS v0.07 -- testing needed!

Posted: Sat Jan 28, 2017 2:58 pm
by BrightLight
stevej150 wrote:I might make applications. By the way, how did you learn all the OS development? I might join you and help you develop! We can work on parts.
I learnt mostly from the OSDev Wiki, and reading documentation when the OSDev Wiki was insufficient, and posting here as a final resort.
f2 wrote:I noticed the same bugs too. However, the GUI is pretty fast, at least on VirtualBox.
One suggestion: you should add a border around your windows :)
Thanks! The window theme can be configured. At the moment, the OS doesn't load a configuration file from the disk, but you can change the values at the top of kernel/gui/wm.asm to suit your liking and add a border. Most of them are self-explanatory.

Code: Select all

; Window Theme!
; TO-DO: Set these values from a theme file from the disk (i.e. make the gui customizable)
align 4
wm_color			dd 0x808080
;wm_color			dd 0x004288
window_title			dd 0xFFFFFF
window_inactive_title		dd 0xC0C0C0
window_border			dd 0x383838
window_active_border		dd 0x383838
window_active_outline		dd 0x00A2E8
window_close_color		dd 0xD80000
window_background		dd 0xD0D0D0
window_opacity			db 1		; valid values are 0 to 4, 0 = opaque, 1 = less transparent, 4 = most transparent.

align 4
window_border_x_min		dw 0		; min x pos for a 0 width window
window_border_y_min		dw 24		; min y pos for a 0 height window
window_close_position		db 0		; 0 = left, 1 = right, for now this has no effect

align 4
window_close_x			dw 4
window_close_y			dw 4
window_close_width		dw 16
window_close_height		dw 16

window_title_x			dw 24
window_title_y			dw 4
window_canvas_x			dw 0
window_canvas_y			dw 24

Re: xOS v0.07 -- testing needed!

Posted: Sun Jan 29, 2017 12:35 pm
by nielsd
Works great, aside from the issue with fast window dragging (which was mentioned earlier), works neat.
An issue I experienced in the calculator is when dividing with zero, it just closes instead of giving an error.
I see you currently have a bitmap font, are you planning on implementing TTF font rendering or something along those lines later?
Also, I suggest you to not include binary files in your github repository (disk.hdd).
Great work, keep going :)

Re: xOS v0.07 -- testing needed!

Posted: Sun Jan 29, 2017 1:11 pm
by BrightLight
ndke wrote:Works great, aside from the issue with fast window dragging (which was mentioned earlier), works neat.
An issue I experienced in the calculator is when dividing with zero, it just closes instead of giving an error.
I see you currently have a bitmap font, are you planning on implementing TTF font rendering or something along those lines later?
Also, I suggest you to not include binary files in your github repository (disk.hdd).
Great work, keep going :)
Thanks for your feedback!
The issue with window dragging will be fixed soon; some other WM bugfixes have been done today. The calculator issue is also fixed now; it didn't use to check for divide by zero, and so it would cause an exception and the kernel would terminate the faulting application. :)
About TTF, I would probably implement this later in userspace, but it's far down in my to-do list.
The disk image in my GitHub repository is there to be the "latest nightly build." or the binary of each commit I push because I don't really commit every night. :)

Re: xOS v0.07 -- testing needed!

Posted: Sun Jan 29, 2017 1:14 pm
by monobogdan
Looks nice :)

Is checkbox/combobox/multiline textbox controls implemented, or it's only showcase?

Re: xOS v0.07 -- testing needed!

Posted: Sun Jan 29, 2017 1:32 pm
by BrightLight
monobogdan wrote:Looks nice :)

Is checkbox/combobox/multiline textbox controls implemented, or it's only showcase?
Thanks!
No, the only components implemented at the moment are label, button and gbutton (which is basically a button whose look can be enhanced). The text box is my next coming priority, and then the list box, as both are needed for the file manager I have in mind, and the text box is the main thing in a text editor as well. :)