zettel

Solana!

eBPF instruction set architecture https://github.com/iovisor/bpf-docs/blob/master/eBPF.md rust BPF (user space, usually kernel) VM https://github.com/solana-labs/rbpf interpreter, an x86_64 JIT-compiler for eBPF programs, assembler, disassembler* verifier. problems: https://github.com/solana-labs/rbpf/pull/212 JVM verifier: https://docs.

Bitwarden

problems: copy pasting plaintext = stored in register pro: open-source, can self-host store encrypted version on cloud, decrypt on client side. Encrypt and decrypt on client side!

ELF

linux executable how to create a process, what system calls known as loading (loader) first 64 bytes header very universal and flexible format

Touch ID

Question: isn’t the fingerprint data just stored on the hardware register and equality checked anyway? No, a hashed version is stored. Input is hashed to check it against it. In a secure “sandboxed” region called the security enclave only part of fingerprint, not whole thing (a sample) How do you create a sandbox in hardware?

Firmware

soft - fluid firm - meant to be read-only, permanent. interface software and hardware. Before OS hard - physical UEFI (Unified Extensible Firmware Interface) BIOS (Basic Input Output System) At the end of the day, UEFI is a spec that needs implementation

Digital Logic

D-flip flop delay change of state until next clock up

HDL

describe hardware gate level, switch level, behavior level, register transfer level fpga multiple components parallel RTL pseudocode for hardware, some abstraction registers (sequential logic), as D flip flops, only one with memory

Turing completeness

refers to the ability to simulate any turing machine (basically perform any computation) with this power, comes great resposibility (undecidability, halting problem) When do you want and not want it?

Turing machines

mathematical abstract model of human action process (what we call computation) have program (instructions), inputs, and states enumerate an alphabet (program states) requires unlimited tape (memory)

ASCII

256 valid characters printable and non-printable ones Can you natural separators as delimiters such as \x1f the unit separator