bzt wrote:Yes there is a reason to discuss them, because you must use the UEFI provided paging tables in your loader before you call ExitBootServices.
Why? How exactly will that do you any good? Like I said, your going to replace them anyway, so there's no point. I strongly doubt that you'd need to know where your kernel is loaded. Because you really don't... And if yo usay that you do for APs, that's nonsense because you can literally create a static volatile global variable and, in your assembly routine, add a parameter to pass a pointer to that variable. Knowing where yoru kernel is loaded is only a luxury; you don't need to know where it is.
bzt wrote:Incorrect! UEFI can boot up the APs into long mode, but you have to stop the APs before you call ExitBootServices. So what's the point of having MP Services? And what do you mean by "likely break all the OSes"? Explain! For existing OSes MP Services not needed, not initialized, no compatibility issues. New OSes could rely on MP Services if it weren't a boot service, again, no compatibility issues here either.
Now this is funny. What do you think I mean by "all existing OSes"? I mean just what I say! If UEFI booted all the APs into long mode, it would need to then return them to real mode when you called ExitBootServices(). And that just doesn't make much sense! (To be honest, I don't really see why you even have SMP in UEFI -- I can't really imagine where that would be useful unless you decided to write a web browser for it.)
bzt wrote:Sorry, and no offense, but after it happened third time in a row, I must ask: is comprehending what you read really beyond your capabilities? Do you have some issues with reading? The only other explanation is that you're trolling, but let's not assume the worst.
Okay, this was just hilarious. You say that Gigasoft is trolling yet its you who's trolling. In case you've forgotten, to troll is to "make a deliberately offensive or provocative online post with the aim of upsetting someone or eliciting an angry response from them." Very, very few posts you've made on this thread don't fall under that heading. Judging by how you write, I imagine that English is not your native language, and that's okay; I don't judge yo ufor that. But you came in here and, as you do in every topic where UEFI is mensioned, started your little campaign to discredit it as much as possible and throwing out all sorts of misinformation, and when asked to prove it, you either acted as though the rest of us were idiots or little schoolchildren, and you talked down to us as though you were somehow our better, or you posted supposed "evidence" that wasn't actually evidence at all. And when that was pointed out to you, you deflected the question. So its no surprise that the majority of us are irritated with you, and that's all on you. Every time we try to explain something to you, you troll or you deflect our explanation and come up with more fud or tripe to justify your reaction. I'm no religious individual or anything, but by God, please, please either take your pointless campaign elsewhere, or provide us
actual proof to your claims and
actually contribute to the discussion at hand. And if your so much smarter than us, how about you go write your own firmware and sell it to us.
@rdos: What do you mean by separating parts of the kernel from one another? Do you mean something like separating kernel modules from one another? If so, you can technically do that by giving each module its own address space (or, if you want to do something unique, you could always write your kernel mods in a scripting language or web assembly and then execute them that way.) Yes, paging is different from segmentation, but there's a good reason its not used anymore. Its not just C compiler mis-design; I don't think blaming it on that makes any sense because the compiler isn't normally ever going to write to the segment registers (at least, I've never seen one do so). You'd need to blame every compiler for that. Segmentation is nice if it weren't for the fact that (1) it only works in PM and RM and (2) PM and RM can only address 4 GiB and 1 MiB of RAM, respectively. Memory addresses might be 32-bit for the majority of the time, but if you boot an OS on a computer with more tahn 4 GiB of RAM (like my laptop) your going to have larger addresses (for example, my computer can use up to about 35 bits). Plus, paging does have the advantage of not only allowing you to maintain multiple page tables if you want to, but isolating processes from one another. I imagine that would be harder in segmentation.