xOS

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
User avatar
BrightLight
Member
Member
Posts: 901
Joined: Sat Dec 27, 2014 9:11 am
Location: Maadi, Cairo, Egypt
Contact:

xOS

Post by BrightLight »

Here's the second public release I ever make in my life (the first being ZeroOS 0.1 in late 2014 or early 2015, I think.)
This release boots to graphics mode, and launches two programs at the same time to demonstrate multitasking and userspace (make a register dump at any moment ;)) Each program creates a window, on which the user can use the mouse to draw on the window, to demonstrate window manager events as well.
YouTube video to demonstrate.

New stuff in this release:
  • Window event support.
  • Demo programs to demonstrate multitasking with ring 3 protection.
  • Major bugfix in memory manager.
  • Minor performance tweaks in mouse driver.
  • First release that boots on real hardware without page faulting.
Missing stuff in this release:
  • Unstable release; source code will be distributed with stable releases only.
  • MTRR configuration crashes some HW; so this release does not configure MTRR.
  • The graphics library is heavily optimized for 32-bit video modes, and 24-bit modes will suffer just from moving the mouse.
  • Overall performance may be low.
Disk image download, both raw and VMDK.

I welcome all your feedback, both good and bad.

EDIT: I have released the source code.
Last edited by BrightLight on Fri Aug 26, 2016 10:49 pm, edited 2 times in total.
You know your OS is advanced when you stop using the Intel programming guide as a reference.
User avatar
max
Member
Member
Posts: 616
Joined: Mon Mar 05, 2012 11:23 am
Libera.chat IRC: maxdev
Location: Germany
Contact:

Re: xOS 0.04 -- first public release

Post by max »

Hey omar!

Nice work, congrats on the release, will try it out.

Would take a closer look, but why do you not provide the sources? Saying that it's GPLv3 but not providing the source violates GPL :P

Greets
onlyonemac
Member
Member
Posts: 1146
Joined: Sat Mar 01, 2014 2:59 pm

Re: xOS 0.04 -- first public release

Post by onlyonemac »

max wrote:Hey omar!

Nice work, congrats on the release, will try it out.

Would take a closer look, but why do you not provide the sources? Saying that it's GPLv3 but not providing the source violates GPL :P

Greets
He said he will release the source code soon.
When you start writing an OS you do the minimum possible to get the x86 processor in a usable state, then you try to get as far away from it as possible.

Syntax checkup:
Wrong: OS's, IRQ's, zero'ing
Right: OSes, IRQs, zeroing
User avatar
max
Member
Member
Posts: 616
Joined: Mon Mar 05, 2012 11:23 am
Libera.chat IRC: maxdev
Location: Germany
Contact:

Re: xOS 0.04 -- first public release

Post by max »

onlyonemac wrote:He said he will release the source code soon.
No, he didn't. At least not in this post.
User avatar
BrightLight
Member
Member
Posts: 901
Joined: Sat Dec 27, 2014 9:11 am
Location: Maadi, Cairo, Egypt
Contact:

Re: xOS 0.04 -- first public release

Post by BrightLight »

max wrote:
onlyonemac wrote:He said he will release the source code soon.
No, he didn't. At least not in this post.
Yes, I did.
omarrx024 wrote:Unstable release; source code will be distributed with stable releases only.
You know your OS is advanced when you stop using the Intel programming guide as a reference.
User avatar
iansjack
Member
Member
Posts: 4686
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: xOS 0.04 -- first public release

Post by iansjack »

I think your logic is faulty.

You are saying that you won't release the source of this (unstable) release. Which is exactly what Max said. And, as he said in an earlier post, that means that you can't claim the GPL for it as people can't "modify the code".

That you are going to release the source of a future release is irrelevant.
User avatar
BrightLight
Member
Member
Posts: 901
Joined: Sat Dec 27, 2014 9:11 am
Location: Maadi, Cairo, Egypt
Contact:

Re: xOS 0.04 -- first public release

Post by BrightLight »

Oh well. I made some fixes and put the source code on GitHub.
You know your OS is advanced when you stop using the Intel programming guide as a reference.
User avatar
Rusky
Member
Member
Posts: 792
Joined: Wed Jan 06, 2010 7:07 pm

Re: xOS 0.04 -- first public release

Post by Rusky »

Technically you only have to provide the source if the source was provided to you under the GPL. That is not the case here, as omarrx024 wrote the source code rather than receive it from someone else. :P
User avatar
iansjack
Member
Member
Posts: 4686
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: xOS 0.04 -- first public release

Post by iansjack »

Rusky wrote:Technically you only have to provide the source if the source was provided to you under the GPL. That is not the case here, as omarrx024 wrote the source code rather than receive it from someone else. :P
I believe that to be incorrect:
If you make object code available on a network server, you have to provide the Corresponding Source on a network server as well.
User avatar
BrightLight
Member
Member
Posts: 901
Joined: Sat Dec 27, 2014 9:11 am
Location: Maadi, Cairo, Egypt
Contact:

Re: xOS 0.04 -- first public release

Post by BrightLight »

I know that I should provide the sources if my project is GPL, and I did. Just 2 days later after doing some fixes. :P
You know your OS is advanced when you stop using the Intel programming guide as a reference.
User avatar
Rusky
Member
Member
Posts: 792
Joined: Wed Jan 06, 2010 7:07 pm

Re: xOS 0.04 -- first public release

Post by Rusky »

iansjack wrote:I believe that to be incorrect:
If you make object code available on a network server, you have to provide the Corresponding Source on a network server as well.
That only applies to those who received the project under the GPL. The original author is not bound by the license in that way- that is what makes it possible to dual-license, or to sell license exemptions, for example.

But not to derail this! Nice work getting everything working together at this scale- a few hardware devices and simple userspace working. What are your goals moving forward? Do you have a target audience? Do you plan to support long mode? What pieces do you want to move into userspace, with what sort of syscall API? What design decisions can we already see that we might not have noticed?
User avatar
BrightLight
Member
Member
Posts: 901
Joined: Sat Dec 27, 2014 9:11 am
Location: Maadi, Cairo, Egypt
Contact:

Re: xOS 0.04 -- first public release

Post by BrightLight »

Rusky wrote:But not to derail this! Nice work getting everything working together at this scale- a few hardware devices and simple userspace working. What are your goals moving forward? Do you have a target audience? Do you plan to support long mode? What pieces do you want to move into userspace, with what sort of syscall API? What design decisions can we already see that we might not have noticed?
Thanks! First, I plan to make this OS self-hosting with an installer (i.e. it can boot from a generic "installer CD" and install itself to a hard disk). I also want to add more hardware support: AHCI, HPET and USB are in my list, although USB is rather far. I really do this just for learning and for passing time; I don't expect an audience to ever use it. I do plan to support long mode, but not any time soon. 3rd party drivers will run in userspace; native graphics drivers, sound drivers and network drivers will all run in ring 3 and not be built-in to the kernel.
You know your OS is advanced when you stop using the Intel programming guide as a reference.
User avatar
~
Member
Member
Posts: 1226
Joined: Tue Mar 06, 2007 11:17 am
Libera.chat IRC: ArcheFire

Re: xOS 0.04 -- first public release

Post by ~ »

omarrx024 wrote:
Rusky wrote:But not to derail this! Nice work getting everything working together at this scale- a few hardware devices and simple userspace working. What are your goals moving forward? Do you have a target audience? Do you plan to support long mode? What pieces do you want to move into userspace, with what sort of syscall API? What design decisions can we already see that we might not have noticed?
Thanks! First, I plan to make this OS self-hosting with an installer (i.e. it can boot from a generic "installer CD" and install itself to a hard disk). I also want to add more hardware support: AHCI, HPET and USB are in my list, although USB is rather far. I really do this just for learning and for passing time; I don't expect an audience to ever use it. I do plan to support long mode, but not any time soon. 3rd party drivers will run in userspace; native graphics drivers, sound drivers and network drivers will all run in ring 3 and not be built-in to the kernel.
A smaller OS would be much more usable if it could be simply installed into a subfolder of the root directory (like "OS_Name_Folder") inside an already-existing partition (FAT, NTFS, Ext...) and if all installs of that OS could be searched and selected from a bootloader in all existing partitions from external media (avoiding installing or altering the most used booting configuration of the machine).

It all would be much easier if the bootloader was on a removable media like USB, floppy or CD/DVD, and if it just passed control to the OS on an existing formatted internal hard disk.

In this way the OS could be installed like any other regular application and then booted with, say, a configured USB stick to boot into it. Then nothing would need to be altered from the existing user OS and it would avoid keeping an exclusive hold on the machine against the rest of OSes and bootable system executive code applications/tests/demos.

It could well be a matter of creating a simple bootloader program based on FreeDOS installed into an external device or into the hard drive if we really need to make it our native OS.
Last edited by ~ on Mon Aug 01, 2016 2:20 pm, edited 2 times in total.
YouTube:
http://youtube.com/@AltComp126

My x86 emulator/kernel project and software tools/documentation:
http://master.dl.sourceforge.net/projec ... 7z?viasf=1
User avatar
BrightLight
Member
Member
Posts: 901
Joined: Sat Dec 27, 2014 9:11 am
Location: Maadi, Cairo, Egypt
Contact:

Re: xOS 0.04 -- first public release

Post by BrightLight »

~ wrote:A smaller OS would be much more usable if it could be simply installed into a subfolder of the root directory (like "OS_Name_Folder") inside an already-existing partition (FAT, NTFS, Ext...) and if all installs of that OS could be searched and selected from a bootloader in all existing partitions from external media (avoiding installing or altering the most used booting configuration of the machine).

It all would be much easier if the bootloader was on a removable media like USB, floppy or CD/DVD, and if it just passed control to the OS on an existing formatted internal hard disk.

In this way the OS could be installed like any other regular application and then booted with, say, a configured USB stick to boot into it. Then nothing would need to be altered from the existing user OS and it would avoid keeping an exclusive hold on the machine against the rest of OSes and bootable system executive code applications/tests/demos.
This is planned! I do plan to support ISO9660 and FAT32. NTFS and Ext2/3/4 are too complex and a waste of time for the early stages I'm in. I also will add support for running the entire OS from a ramdisk (e.g. you could boot the OS with MEMDISK, etc...) and wouldn't require any changes in the host system except changes in the GRUB configuration file. I've done this before.
You know your OS is advanced when you stop using the Intel programming guide as a reference.
User avatar
BrightLight
Member
Member
Posts: 901
Joined: Sat Dec 27, 2014 9:11 am
Location: Maadi, Cairo, Egypt
Contact:

xOS 0.06 alpha release

Post by BrightLight »

Hello.
I'm happy to announce the third public release of xOS, version 0.06. New things in this release include:
  • AHCI SATA read-only access; now boots from a SATA hard disk.
  • ATA improvements.
  • PCI improvements.
  • Major memory manager bugfix.
  • New default window theme.
  • SSE memcpy and some other performance improvements.
Known issues:
  • On VirtualBox, the AHCI controller doesn't respond to commands.
Things to expect in the next release:
  • File system driver.
  • Loading programs from disk.
  • Using a picture file as the background.
  • (Hopefully) fix the AHCI driver on VirtualBox.
For testing purposes, this release has a script called qemu.sh, which runs QEMU using SATA instead of ATA, just for demonstration.
Download Link
GitHub Release

I look forward to hearing all feedback, both good and bad.
Cheers.
You know your OS is advanced when you stop using the Intel programming guide as a reference.
Post Reply