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:

Pure64 v0.7.0

Post by IanSeyler »

Pure64 is a 64-bit software loader initially created for BareMetal OS. The loader gets the computer into a full 64-bit state with no legacy compatibility layers and also enables all available CPU Cores in the computer. If you need a quick way to boot a 64-bit AMD/Intel based computer that will enable all available processors and load your software then Pure64 is ideal. Pure64 keeps an information table in memory that stores important details about the computer (Amount of RAM and memory layout, number of CPU cores and their APIC IDs, etc). The Pure64 loader has been released separately so others can use it in their own software projects.

https://github.com/ReturnInfinity/Pure64

Feedback would be appreciated.

-Ian
Last edited by IanSeyler on Thu Dec 08, 2016 8:55 am, edited 6 times in total.
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
earlz
Member
Member
Posts: 1546
Joined: Thu Jul 07, 2005 11:00 pm
Contact:

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

Post by earlz »

sounds very neat.

[edit]

so this is just a second stage bootloader? Or can I actually boot my computer into 64 bit mode using your loader? (as in, do I actually need a fat32 bootloader to start out)

Also, this initializes multi-core/processor systems and gives you information on them?

This really looks quite neat, and one of the problems I've had with making a 64bit kernel is just getting to 64bit mode. Do you plan on supporting any other file systems in near future? I think an ext file system or even just a FAT12 filesystem support would be nice..
User avatar
f2
Member
Member
Posts: 311
Joined: Mon Jun 15, 2009 10:01 am
Location: France

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

Post by f2 »

I have tested it on QEmu 0.10.6 and Bochs, it seems that there's no problem!
Good work! =D> I'll try to test it on my laptop.
"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 - Now with complete 64-bit SMP initialization

Post by IanSeyler »

Yes, Pure64 is technically the second stage. The boot sector (included in the distribution) loads Pure64 into memory. Pure64 will then get the computer into 64-bit mode and do all the "dirty work" for you. After that Pure64 will load a file called kernel64.sys from the boot disk and execute it. In the distribution I just include the BareMetal kernel as an example.

Yes, Pure64 enables all available CPU's in the system for you. Required information (APIC ID's, Local APIC Base Address) are stored in memory. http://www.returninfinity.com/pure64.html has a link to the Manual near the bottom. The manual has the layout of the information map in it.

At the moment it will just be FAT32. FAT16 and FAT12 may be in the future... I would also like to get PXE booting at some point.

-Ian
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 - Now with complete 64-bit SMP initialization

Post by quanganht »

There is no *real* source code for Pure64? There are only some basic kernels and a bootsector. :|
"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 - Now with complete 64-bit SMP initialization

Post by IanSeyler »

Pure64 is closed-source at the moment. It may be released as open-source at some point.

The boot sector source code is there because it was adapted from the FreeDOS boot sector.

The included kernel sources are templates to get you started. To see an example of a more featured OS that uses Pure64 check out BareMetal OS: http://www.returninfinity.com/baremetal.html

The BareMetal source code shows how you can read the Pure64 info map to make use of the available resources (like the other CPUs in the system).
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 - Now with complete 64-bit SMP initialization

Post by quanganht »

Yeah. I hope it will be open source'd soon. Maybe I don't like my kernel file named kernel64.sys :)
"Programmers are tools for converting caffeine into code."
User avatar
bubach
Member
Member
Posts: 1223
Joined: Sat Oct 23, 2004 11:00 pm
Location: Sweden
Contact:

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

Post by bubach »

quanganht wrote:Yeah. I hope it will be open source'd soon. Maybe I don't like my kernel file named kernel64.sys :)
HexEditor to the rescue :wink:
"Simplicity is the ultimate sophistication."
http://bos.asmhackers.net/ - GitHub
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 »

bubach wrote:
quanganht wrote:Yeah. I hope it will be open source'd soon. Maybe I don't like my kernel file named kernel64.sys :)
HexEditor to the rescue :wink:
It's not so easy to disassembly an bootloader, especially when it is mixed from 16, 32, 64 bit code, all in one place.
"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 - Now with complete 64-bit SMP initialization

Post by IanSeyler »

I think what bubach meant was to modify the hard-coded value of "kernel64.sys" in the pure64.sys binary. That is possible of course.

Pure64 currently looks for a file called pure64.cfg and loads it into memory if it is available. As of version 0.5 I intend to get Pure64 to parse the contents of that file.

pure64.cfg will be a text file that looks something like this:

Code: Select all

kernel=mykernel.sys
smp=yes
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 - Now with complete 64-bit SMP initialization

Post by quanganht »

The non-kernel64.sys is just joke. Situation may get more complicted, something like "i can't use Fat32" or so.
"Programmers are tools for converting caffeine into code."
geppyfx
Member
Member
Posts: 87
Joined: Tue Apr 28, 2009 4:58 pm

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

Post by geppyfx »

ReturnInfinity wrote:Pure64 will then get the computer into 64-bit mode and do all the "dirty work" for you. After that Pure64 will load a file called kernel64.sys from the boot disk and execute it. I
I'm afraid you didn't say if dirty work includes detecting available memory, ACPI reclaimable mem, vbe modes, vbe Protected Mode entry. Basically you need at least as good as grub but for 64bit.
If or more likely when you provided all that and maybe other info that people will want (while in RealMode with BIOS) about computer components, question arises - how well did you handle bios inconsistencies?

Just some ideas not exactly criticism.

You black site is hard to read, at least for some people; and you are a company that will surely try to appeal to as many people as possible.
And not even on your site I found what exactly gets passed into kernel, so its like - you try our product first to find out more.
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 »

quanganht: How do you mean? FAT32 was picked because it is the most compatible.

geppyfx: Detection of memory and ACPI reclaimable memory is done. In fact a copy of the E820 System Memory Map is saved to memory while still in real mode. As for VBE data that it something Pure64 does not handle. As for BIOS inconsistency I don't have to worry about that too much since Pure64 will only run on new 64-bit enabled systems. What other information from the BIOS would you find useful to have before the switch to 64-bit mode?

For the website I increased the default font size and the contrast. Is this better?
Documentation for Pure64 is here: http://www.returninfinity.com/pure64-manual.html
There is a link to it at the bottom of the main Pure64 page. Complete documentation is the goal for the next release.

I just want to state that Pure64 is an alternative. The main goal is to provide developers with an easy way to get into 64-bit mode and not worry about much of the x86 legacy world.

Thanks for the feedback! Please keep it coming as I think its good to hear from the OS Dev community.

-Ian
BareMetal OS - http://www.returninfinity.com/
Mono-tasking 64-bit OS for x86-64 based computers, written entirely in Assembly
earlz
Member
Member
Posts: 1546
Joined: Thu Jul 07, 2005 11:00 pm
Contact:

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

Post by earlz »

Ok, I have a question.

What real reason do you have for keeping this closed source? Don't you think some people would like to see how do you it and *help* you to modify and improve it?

edit:
Or maybe we would like to init VBE while still in real mode without hacking stuff around so that it goes

fat32 bootloader->our real mode code to init VBE->your boot loader->kernel

Or maybe we don't like the executable format you use. There are a lot of reasons why it would be better if we could change this to suite our needs
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 »

ReturnInfinity wrote:quanganht: How do you mean? FAT32 was picked because it is the most compatible.
Because FAT32 is not good and not fit my design
"Programmers are tools for converting caffeine into code."
Post Reply