In OS development, how a program connects to its helper functions defines its portability. This process is called Linking. As an Architect, you must choose between Static and Dynamic linking based on your system goals.
Static Linking: All required library code is copied into the final binary.
Pro: Highly portable; works in any environment.
Con: Larger file size.
Dynamic (Shared) Linking: The binary only contains references to libraries (like libc.so).
Pro: Saves memory and storage.
Con: Fails to run if the library is missing.
To see what "bloodline" or dependencies a program has, we use standard Linux diagnostic tools.