Pure64 v0.7.0

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
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

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

Post 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?
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
User avatar
Creature
Member
Member
Posts: 548
Joined: Sat Dec 27, 2008 2:34 pm
Location: Belgium

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

Post 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).
When the chance of succeeding is 99%, there is still a 50% chance of that success happening.
User avatar
quanganht
Member
Member
Posts: 301
Joined: Fri May 16, 2008 7:13 pm
Location: Hanoi, Vietnam

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

Post 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.
"Programmers are tools for converting caffeine into code."
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

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

Post by IanSeyler »

v0.4.7 is out now. 100% more open-source too!

Mainly bug fixes from the last release.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

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

Post 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:
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
Srowen
Member
Member
Posts: 60
Joined: Thu Feb 26, 2009 2:31 pm
Location: Genova, ITALY

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

Post 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..
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

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

Post 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.
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

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

Post 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.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Tompaliito
Posts: 1
Joined: Sat Jan 08, 2011 6:15 am

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

Post 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!!
User avatar
Darwish
Posts: 21
Joined: Sat Oct 17, 2009 4:32 am

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

Post 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.
For latest news, please check my homepage and my blog.
—Darwish
Kieran
Member
Member
Posts: 54
Joined: Mon Apr 11, 2005 11:00 pm

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

Post 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
User avatar
Darwish
Posts: 21
Joined: Sat Oct 17, 2009 4:32 am

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

Post 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 :)
For latest news, please check my homepage and my blog.
—Darwish
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: Pure64 v0.4.8

Post 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.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
User avatar
quanganht
Member
Member
Posts: 301
Joined: Fri May 16, 2008 7:13 pm
Location: Hanoi, Vietnam

Re: Pure64 v0.4.8

Post 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?
"Programmers are tools for converting caffeine into code."
User avatar
IanSeyler
Member
Member
Posts: 326
Joined: Mon Jul 28, 2008 9:46 am
Location: Ontario, Canada
Contact:

Re: Pure64 v0.4.8

Post 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.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Post Reply