Pure64: a 64-bit OS loader (now with SMP initialization)
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
A new version has been posted. v0.1 is the first official release that contains cleaned up SMP code as well as processor speed detection.
Documentation is still pretty limited as I have been focusing on the development of Pure64 itself.
Now I will be working on finding an easy way to allow the kernel developer to access the other CPU's in the system. Currently the AP's just sit in a loop waiting for something to do.
See the first post for the latest info (and screenshot )
-Ian
Documentation is still pretty limited as I have been focusing on the development of Pure64 itself.
Now I will be working on finding an easy way to allow the kernel developer to access the other CPU's in the system. Currently the AP's just sit in a loop waiting for something to do.
See the first post for the latest info (and screenshot )
-Ian
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: a 64-bit OS loader (now with SMP initialization)
Just a method of passing information to the kernel from the loader. IE, to prevent it from having to go back to real mode to get a memory map.
I haven't tried your loader yet, but you say it sets up SMP and does various things like detect the processor speed. Whats the point? If your not going to pass it to the kernel, then it should be done by the kernel, not the bootloader.
I haven't tried your loader yet, but you say it sets up SMP and does various things like detect the processor speed. Whats the point? If your not going to pass it to the kernel, then it should be done by the kernel, not the bootloader.
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
I do agree with you that in its current state is is kind of useless to calculate the speed of the CPU and activate the other processors in the system without giving the kernel a way to find out what Pure64 actually did.
This is what I am working on at the moment. I have been figuring out a format for a table in memory that would contain all of this valuable information (CPU/MEM/HDD info, etc). Stay tuned for the updates!
As for multiboot I probably won't support it. Multiboot looks like it is geared for 32-bit which doesn't really apply to what I am doing here.
-Ian
This is what I am working on at the moment. I have been figuring out a format for a table in memory that would contain all of this valuable information (CPU/MEM/HDD info, etc). Stay tuned for the updates!
As for multiboot I probably won't support it. Multiboot looks like it is geared for 32-bit which doesn't really apply to what I am doing here.
-Ian
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: a 64-bit OS loader (now with SMP initialization)
The new multiboot draft is geared towards 64-bit extensions.
- Love4Boobies
- Member
- Posts: 2111
- Joined: Fri Mar 07, 2008 5:36 pm
- Location: Bucharest, Romania
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
Yeah, you can find the draft here.
"Computers in the future may weigh no more than 1.5 tons.", Popular Mechanics (1949)
[ Project UDI ]
[ Project UDI ]
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
It still mentions VSTa. How out-of-date can one be???Love4Boobies wrote:Yeah, you can find the draft here.
JAL
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
Not to mention the draft is still incomplete and rather vague in some areas. Last I checked, GRUB 2 still didn't properly implement either multiboot as it is in GRUB Legacy or as it is in this draft. However that was quite long ago, and the situation may be better now. I did read the other day a mailing list post... somewhere... that I believe said the state of GRUB2 still wasn't much better.
IMO the GRUB2 devs seem to be focusing more on value-added features like pretty menus and such than getting the real functionality a bootloader needs working correctly.
I suppose I'll take the time this weekend to look in to GRUB2 again so I can have a more informed opinion. Until then take this post with a grain of salt.
IMO the GRUB2 devs seem to be focusing more on value-added features like pretty menus and such than getting the real functionality a bootloader needs working correctly.
I suppose I'll take the time this weekend to look in to GRUB2 again so I can have a more informed opinion. Until then take this post with a grain of salt.
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
Grub2 does need to be very user-friendly (or user-dumb) not to mention the majority of their donations come from these 'user friendly' linux distrobutions.
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
I wasn't saying it shouldn't be user friendly. I was just saying that last I tried it, half the functionality a bootloader would be expected to have (like loading a binary and running it) still wasn't there. Okay, well, so it could load a binary and execute it when I last tried Grub2, but it did not properly implement any multiboot spec. And the documentation is severely lacking, although there's some docs about it in Debian that will hopefully be picked up.OrOS wrote:Grub2 does need to be very user-friendly (or user-dumb) not to mention the majority of their donations come from these 'user friendly' linux distrobutions.
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
After some code cleanup Pure64 is now working on physical hardware. (1 bit can cause so much debugging pain).
Test system is a Dual Core Celeron @ 1.6GHz with 2048MB of RAM. Booting from a 64MB Compact Flash card via a Compact Flash to IDE adapter.
Picture is here:
Picasa
Next step is finalizing the system component list so the OS can figure out what Pure64 did and what state the PC is in.
-Ian
Test system is a Dual Core Celeron @ 1.6GHz with 2048MB of RAM. Booting from a 64MB Compact Flash card via a Compact Flash to IDE adapter.
Picture is here:
Picasa
Next step is finalizing the system component list so the OS can figure out what Pure64 did and what state the PC is in.
-Ian
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
-
- Member
- Posts: 118
- Joined: Mon May 05, 2008 5:51 pm
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
Keep the good work up my good man! I have an interest in seeing this get done. You have an interest in seeing your bootloader used in my project since its going to be BIG (yes this is a revival of the commune project).
In all seriousness though what all is the bootloader going to make a list of in its system component list? I need to know so I can plan my kernel setup code.
In all seriousness though what all is the bootloader going to make a list of in its system component list? I need to know so I can plan my kernel setup code.
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
It will at the very least include information about the CPU's (Speed, amount, APIC IDs), Memory (Total available MB, a copy of the E820 map), and storage.
Anything else you would need?
Anything else you would need?
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
-
- Member
- Posts: 118
- Joined: Mon May 05, 2008 5:51 pm
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
I'm noticing one thing about this code that I would love if someone else could confirm... Does the system ever enter protected mode during this process? From what I can tell it doesn't but I may not know all the tricks.
-
- Member
- Posts: 524
- Joined: Sun Nov 09, 2008 2:55 am
- Location: Pennsylvania, USA
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
He may be using the direct to long mode trick that Brendan posted on the wiki.
Re: Pure64: a 64-bit OS loader (now with SMP initialization)
Hi chezzestix,
Can you elaborate on your question about protected mode? If you are referring to Pure64 it jumps directly from 16-bit real mode to 64-bit protected mode.
-Ian
Can you elaborate on your question about protected mode? If you are referring to Pure64 it jumps directly from 16-bit real mode to 64-bit protected mode.
-Ian
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