Page 2 of 4

Re: Pure64 v0.4 - Now with complete 64-bit SMP initialization

Posted: Thu Sep 24, 2009 12:11 pm
by IanSeyler
earlz: A lot of time and work went into Pure64. At some point it will most likely be open sourced but for now I'm just releasing it in binary form.

quanganht: What file system would you like it to support? I mentioned earlier about the possibility of FAT12 but that was a mistake on my part. Pure64 will not work with floppy disks. ext2/3/4? Or something more custom?

Re: Pure64 v0.4 - Now with complete 64-bit SMP initialization

Posted: Thu Sep 24, 2009 3:02 pm
by Creature
ReturnInfinity wrote:earlz: A lot of time and work went into Pure64. At some point it will most likely be open sourced but for now I'm just releasing it in binary form.

quanganht: What file system would you like it to support? I mentioned earlier about the possibility of FAT12 but that was a mistake on my part. Pure64 will not work with floppy disks. ext2/3/4? Or something more custom?
Just dropping idea's here but ISO9660 might be a good idea for another file system; most people that have moved on from floppies are either using CD-Roms/DVD-Roms (Blu-Rays?) or hard drives (AFAIK at least).

Re: Pure64 v0.4 - Now with complete 64-bit SMP initialization

Posted: Thu Sep 24, 2009 5:50 pm
by quanganht
Creature wrote:Just dropping idea's here but ISO9660 might be a good idea for another file system; most people that have moved on from floppies are either using CD-Roms/DVD-Roms (Blu-Rays?) or hard drives (AFAIK at least).
That's one of the FSes need to be supported. About HDD, I'm planing to make my own file system, which should increase my control and have less overhead.

Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat

Posted: Fri Nov 19, 2010 1:31 pm
by IanSeyler
v0.4.7 is out now. 100% more open-source too!

Mainly bug fixes from the last release.

Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat

Posted: Sun Nov 21, 2010 12:30 pm
by f2
Ooh! What a good news! The code is very well commented. It is an excellent tutorial for anyone
who wants to write a 64-bit operating system. Maybe in next days, we will see some new OS projects
which use Pure64 as a bootloader, or an improved version of it. Or why not some forks of BareMetal... :D

Keep up the good work! :wink:

Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat

Posted: Wed Nov 24, 2010 4:38 pm
by Srowen
Superb!!! It is exactly what i want! I hope that the support for iso9660 will come with the next release!

I've tried to load the example image in qemu using the -hdd argument but it doesn't work. If i use the -hda argument it works.. The screen say: "Initializing the system..." but nothing more. In the right corner there is the number 26 if it can help..

Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat

Posted: Thu Nov 25, 2010 12:22 am
by f2
Srowen wrote: I've tried to load the example image in qemu using the -hdd argument but it doesn't work. If i use the -hda argument it works.. The screen say: "Initializing the system..." but nothing more. In the right corner there is the number 26 if it can help..
Works on my qemu (it is the one provided in the BareMetalOS distribution). For information, that number '26' is displayed before 'call hdd_setup'. So, it is possible that the OS hangs here.

Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat

Posted: Thu Nov 25, 2010 11:33 am
by IanSeyler
I use the following command to simulate a 16-core machine under Windows:

Code: Select all

qemu-system-x86_64.exe -L . -m 512 -hda ../32_MiB.img -soundhw pcspk -localtime -M pc -smp 16 -name BareMetal
Make sure the path (if required) and image name are correct after the "-hda" option.

Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat

Posted: Sat Jan 08, 2011 6:26 am
by Tompaliito
I literally cried when I found the Return Infinity website. I have been looking for 64-bit OS resources for what seems like an eternity, so finding complete source code is like being touched by the noodly appendage of the flying spaghetti monster :D. I LOVE YOU!!

Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat

Posted: Thu Jan 13, 2011 12:19 am
by Darwish
Tompaliito wrote:I have been looking for 64-bit OS resources for what seems like an eternity, so finding complete source code ...
You may like to check Cute! ‒ the 64-bit SMP kernel. Per-CPU areas and SMP scheduling are to be committed soon.

Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat

Posted: Mon Jan 17, 2011 7:44 am
by Kieran
Darwish, I think I have spotted a small error in your boot code:

You seem to be setting es twice

Code: Select all

real_start:
	movw   %cs, %ax
	movw   %ax, %es ; <--
	movw   %ax, %ds
	movw   %ax, %es ; <--
	movw   %ax, %ss
	movw   $STACK_OFFSET, %sp

Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat

Posted: Mon Jan 17, 2011 6:57 pm
by Darwish
Kieran wrote:Darwish, I think I have spotted a small error in your boot code: You seem to be setting es twice
Thanks; added it to my TODO file :)

Re: Pure64 v0.4.8

Posted: Thu Feb 10, 2011 12:16 pm
by IanSeyler
Version 0.4.8 was released today. SMP initialization has been completely re-worked (mainly from Brendan's suggestions) and well as general bug fixes.

There is also code for slip-streaming your kernel into the pure64.sys binary (as long as your kernel binary is 22,528 bytes or less). This way you don't need to worry about the file system on the disk.

Code: Select all

; =============================================================================
; Chainload the kernel attached to the end of the pure64.sys binary
; Windows - copy /b pure64.sys + kernel64.sys
; Unix - cat pure64.sys kernel64.sys > pure64.sys
; Max size of the resulting pure64.sys is 32,768 bytes
; Uncomment the following 5 lines if you are chainloading
;	mov rsi, 0x8000+10240	; Memory offset to end of pure64.sys
;	mov rdi, 0x100000	; Destination address at the 1MiB mark
;	mov rcx, 0x800		; For a 16KiB kernel (2048 x 8)
;	rep movsq		; Copy 8 bytes at a time
;	jmp fini		; Print starting message and jump to kernel
; =============================================================================
Testing and comments would be appreciated.

Re: Pure64 v0.4.8

Posted: Sat Feb 12, 2011 11:36 pm
by quanganht
ReturnInfinity wrote: There is also code for slip-streaming your kernel into the pure64.sys binary (as long as your kernel binary is 22,528 bytes or less). This way you don't need to worry about the file system on the disk.
Why 22,528?

Edit: I see, it's 32768 - 10240. Now the question is why does it have a 32kb limit?

Re: Pure64 v0.4.8

Posted: Mon Feb 14, 2011 8:35 am
by IanSeyler
Currently pure64.sys is limited to 32KiB since it is loaded at 0x8000 in the first segment.

In the next version it is planned that the boot sector will switch to "unreal" mode before loading pure64.sys into memory.

If "unreal" mode doesn't work out then we could switch to loading pure64.sys into a different segment which would result in a max size of 64KiB.

Either way 22KiB should be enough to add your own file system code if FAT16 is not ideal for your project.