Pure64 v0.7.0
Re: Pure64 v0.4 - Now with complete 64-bit SMP initialization
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?
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
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: Pure64 v0.4 - Now with complete 64-bit SMP initialization
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).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?
When the chance of succeeding is 99%, there is still a 50% chance of that success happening.
Re: Pure64 v0.4 - Now with complete 64-bit SMP initialization
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.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).
"Programmers are tools for converting caffeine into code."
Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat
v0.4.7 is out now. 100% more open-source too!
Mainly bug fixes from the last release.
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
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat
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...
Keep up the good work!
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...
Keep up the good work!
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat
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..
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
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.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..
"Open source seems to embrace the dark side of human nature." - Ville Turjanmaa
Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat
I use the following command to simulate a 16-core machine under Windows:
Make sure the path (if required) and image name are correct after the "-hda" option.
Code: Select all
qemu-system-x86_64.exe -L . -m 512 -hda ../32_MiB.img -soundhw pcspk -localtime -M pc -smp 16 -name BareMetal
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
-
- Posts: 1
- Joined: Sat Jan 08, 2011 6:15 am
Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat
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 . I LOVE YOU!!
Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat
You may like to check Cute! ‒ the 64-bit SMP kernel. Per-CPU areas and SMP scheduling are to be committed soon.Tompaliito wrote:I have been looking for 64-bit OS resources for what seems like an eternity, so finding complete source code ...
Re: Pure64 v0.4.7 - Now with complete 64-bit SMP initializat
Darwish, I think I have spotted a small error in your boot code:
You seem to be setting es twice
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
Thanks; added it to my TODO fileKieran wrote:Darwish, I think I have spotted a small error in your boot code: You seem to be setting es twice
Re: Pure64 v0.4.8
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.
Testing and comments would be appreciated.
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
; =============================================================================
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
Re: Pure64 v0.4.8
Why 22,528?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.
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."
Re: Pure64 v0.4.8
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.
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
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly