Linear memory is read/write data memory. It is separate from compiled code, is not executable, and WASM cannot jump into it. Pointers are integer offsets into this buffer.
- A normal WebAssembly memory page is 64 KiB.
- Memory can grow with `memory.grow`; current standard memories do not shrink.
- JavaScript views memory through typed arrays over `memory.buffer`.
- Strings are usually UTF-8 bytes plus a pointer/length convention.
- Shared memory requires `SharedArrayBuffer`, maximum sizes, workers, and cross-origin isolation headers.