stem/CS/ABI.md
andy 33ac3007bc vault backup: 2023-05-27 22:17:56
Affected files:
.obsidian/graph.json
.obsidian/workspace-mobile.json
.obsidian/workspace.json
STEM/AI/Neural Networks/Activation Functions.md
STEM/AI/Neural Networks/CNN/FCN/FlowNet.md
STEM/AI/Neural Networks/CNN/FCN/ResNet.md
STEM/AI/Neural Networks/CNN/FCN/Skip Connections.md
STEM/AI/Neural Networks/CNN/GAN/DC-GAN.md
STEM/AI/Neural Networks/CNN/GAN/GAN.md
STEM/AI/Neural Networks/CNN/Interpretation.md
STEM/AI/Neural Networks/Deep Learning.md
STEM/AI/Neural Networks/MLP/Back-Propagation.md
STEM/AI/Neural Networks/MLP/MLP.md
STEM/AI/Neural Networks/Transformers/Attention.md
STEM/CS/ABI.md
STEM/CS/Calling Conventions.md
STEM/CS/Code Types.md
STEM/CS/Language Binding.md
STEM/img/am-regulariser.png
STEM/img/skip-connections.png
2023-05-27 22:17:56 +01:00

35 lines
1.2 KiB
Markdown

- How data structures & computational routines are accessed in machine code ([[Code Types]])
- Machine code therefore hardware-dependent
- API defines this structure in source code
- Adherence usually responsibility of
- [[Compilers]]
- OS
- Library author
# Components
- Processor instruction set
- Register file structure
- Stack organisation
- Memory access types
- Size, layouts and alignments of basic data types
- [[Calling Conventions]]
- How function arguments are passed
- Stack or register
- Which registers for which function param
- Parameter order
- Return values retrieved
- How app makes sys calls to OS
- If ABI specifies direct sys calls over procedure calls to sys call stubs then sys call numbers
- Binary format of object files, program files
- For complete OS ABIs
# Complete ABI
- Allows program from one OS to run on any other without change
- Provided all shared libraries and prerequisites etc
# Embedded ABI
- File format, data types, register usage, stack frame organisation, function parameter passing conventions
- For embedded OS
- [[Compilers]] create object code compatible with code from other [[compilers]]
- Link libraries from different [[compilers]]