Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Technical references #2

Open
Soveu opened this issue Mar 9, 2021 · 8 comments
Open

Technical references #2

Soveu opened this issue Mar 9, 2021 · 8 comments

Comments

@Soveu
Copy link
Member

Soveu commented Mar 9, 2021

AMD64 Programmer's Manual, Volume 2: System Programming
Intel 64 and IA-32 Software Developer's Manual, Volume 3: System Programming Guide
RISC-V ISA Specification, Volume 2: Priviliged Specification
UEFI Specification
ACPI Specification (I haven't used it yet)

@repnop
Copy link

repnop commented Mar 11, 2021

I'd also include the unprivileged RISC-V spec since that contains the Zicsr extension, as well as other important info, such as the memory model.

@Soveu
Copy link
Member Author

Soveu commented Mar 11, 2021

I'd also include the unprivileged RISC-V spec since that contains the Zicsr extension, as well as other important info, such as the memory model.

If we want to link whole specs, for consistency we should do it for all architectures

@repnop
Copy link

repnop commented Mar 11, 2021

I don't think I'm particularly opposed but perhaps should find a set of commonly-used architectures (e.g. probably also include recent ARM manuals as well, cc @Evrey) so we don't have an ocean of them :D I think x86{_64}, RISC-V, ARM, and maybe one or two others like MIPS or PowerPC?

@Soveu
Copy link
Member Author

Soveu commented Mar 11, 2021

  • x86_64 - I think everyone with a pc from last decade has it, the same should be true for UEFI
  • RISC-V - nice
  • ARM - <insert any fruit> pi, maybe the newest macs, idk if mobile cpus support virtualization
    v7 is the most popular, is there any reason to go lower?

maybe one or two others like MIPS or PowerPC?

I would choose PowerPC, because some people can actually have some hardware with it: older macs and consoles, some servers
MIPS - idk, never heard about it besides embedded stuff

As a bonus I think we should have some references to "forgotten" architectures like sparc or itanium, it is just an interesting piece of history

@HeroicKatora
Copy link

HeroicKatora commented Mar 11, 2021

Regarding ARM:

For reasons unknown there are no direct PDF links that I can find. So instead I'll link to some SoCs that I've encountered at least once, though not always hands-on, which might be interesting for barebones kernel dev :)

@Evrey
Copy link

Evrey commented Mar 12, 2021

I'd not filter by CPU ISA and just include any manuals for devices on which modern OSdev can be done. Be it ARMv7+, MIPS, PowerPC, RISC-V, some thing i never heard of, or x86_64.

ARM's tricky. I'll crawl something together, but the RasPi docs are scattered all around and strangely ordered and at times surprisingly lacking. And let's not even get started on the utter undocumented mess that is phones.

@Evrey
Copy link

Evrey commented Mar 19, 2021

@Soveu
Copy link
Member Author

Soveu commented Mar 20, 2021

Apparently there's gonna be new interrupt/supervisor call stuff for x86_64.

Accidental gold mine of Torvalds ranting about microkernels :D

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants