I know, I know, PE isn't a great choice to begin with but it is necessary under my circumstances.

UEFI.CrypticRasta wrote:Does anyone know a 64-bit PE compliant bootloader that I could use for my project.
If you don't mind me asking, what circumstances?CrypticRasta wrote:it is necessary under my circumstances.
freeldr of ReactOS.CrypticRasta wrote: Does anyone know a 64-bit PE compliant bootloader that I could use for my project.
I am amused at such excuses people feel the need to do. why? were you bullied by some aggressive gnu/dudes, that told you everything from MS is evil and now you are afraid to ask without making such lame excuses. IMHO, PE is great! screw that dumb ELF, I hate it. see, there are not only nuxi zealots, ready to jump on you if you don't use their trash out there.I know, I know, PE isn't a great choice to begin with but it is necessary under my circumstances.![]()
Why? To my knowledge, PE is perfectly capable of encapsulating the problem of mapping a file into memory. And you don't even want to do that, you are only loading a kernel into memory, which is different, and easier. I don't see any reason to decry PE from a technical perspective at that point.CrypticRasta wrote:I know, I know, PE isn't a great choice to begin with
Thus you're making the same mistake with flipped signs. Instead of "MS is bad" it is now "ELF is bad" with exactly as much technical argumentation: none. You have become the very thing you hate. Round of applause.zaval wrote:IMHO, PE is great! screw that dumb ELF, I hate it. see, there are not only nuxi zealots, ready to jump on you if you don't use their trash out there.
I agree. Although I as well only use ELF, I've added PE support to BOOTBOOT because (as I wrote in the specification's "Introduction" section):nullplan wrote:I don't see any reason to decry PE from a technical perspective at that point.
As of writing, there is no de facto standard, but two most widely used formats: the Executable and Linkable Format, and the Portable Executableformat. It would be unfair to say one is better than the other, since they both represent the same information just in a different way.
As far as I know, you are free to use the COFF for sure (all patents if there were any expired by now). PE is just a very minor modification and extension on SysV UNIX COFF, so if you don't use any of those MS specific extensions, MS has no say in the matter, imho. For the records, PE format specification on MSDN does not mention any licensing issues nor usage restrictions, is there another source for PE spec? This is an interesting question, it would be great to sort PE licensing out once and for all.nullplan wrote:And then there's the state of intellectual property regarding these formats (weren't there usage restrictions in the license for the PE spec?)
I guess I just misremembered then. I take it back.bzt wrote:As far as I know, you are free to use the COFF for sure (all patents if there were any expired by now). PE is just a very minor modification and extension on SysV UNIX COFF, so if you don't use any of those MS specific extensions, MS has no say in the matter, imho. For the records, PE format specification on MSDN does not mention any licensing issues nor usage restrictions, is there another source for PE spec? This is an interesting question, it would be great to sort PE licensing out once and for all.
No, no, I also remember that way, some parts aren't free to use. I just don't remember where I've seen that and which parts. This is another source I've found on webarchive. It could be that terms changed and we both remember wrong and now it's free.nullplan wrote:I guess I just misremembered then. I take it back.bzt wrote:As far as I know, you are free to use the COFF for sure (all patents if there were any expired by now). PE is just a very minor modification and extension on SysV UNIX COFF, so if you don't use any of those MS specific extensions, MS has no say in the matter, imho. For the records, PE format specification on MSDN does not mention any licensing issues nor usage restrictions, is there another source for PE spec? This is an interesting question, it would be great to sort PE licensing out once and for all.
You don't care about dynamic linking, and I do. And it looks awful to me how it's done in ELF and I like how it is in PE. For example that export by ordinal thing, easy to understand, efficient and easy to achieve. This is just an example, popped up from my memory, there are a lot more. I want to have modules that would import/export from each other and that it were done an efficient and elegant way.nullplan wrote: Thus you're making the same mistake with flipped signs. Instead of "MS is bad" it is now "ELF is bad" with exactly as much technical argumentation: none. You have become the very thing you hate. Round of applause.
But from a technical point of view, both solve the same problem in a similar way, until we get to dynamic linking, which, as I wrote above, I don't care for.
sigh, bzt, as always - massive fart in the puddle. All the really used info in PE is in the Optional Header. COFF header is just a legacy relic. So, you say, that structures described in the Optional Header and it by itself are the same in COFF? Or, that it's a "just a minor modification"?bzt wrote: PE is just a very minor modification and extension on SysV UNIX COFF
ELF does not have a concept of exporting by ordinal. Symbols are only identified by their name. There is a symbol type (none, data object, function), but its utility is architecture dependent. However, you can of course implement some naming scheme for your ordinal export functions.zaval wrote:You don't care about dynamic linking, and I do. And it looks awful to me how it's done in ELF and I like how it is in PE. For example that export by ordinal thing, easy to understand, efficient and easy to achieve. This is just an example, popped up from my memory, there are a lot more. I want to have modules that would import/export from each other and that it were done an efficient and elegant way.
Oh no, if you want dynamic linking, you can have that. If you avoid symbol versioning, it can even be very modular. The problem here is already the idea of a giant executable. The UNIX model was supposed to be many tiny executables, and modularity by standardized IPC between them (which usually meant pipes transporting text streams). Having a big, complicated system, like Firefox, was not meant to be the UNIX way. But, here we are anyway.zaval wrote:ELF, it seems, basically forces you to have just one giant executable and forget about the modularity, just like you like.