exec are both built-ins.
source evaluates or runs the content of a file. For example, if you
source ~/.zshrc you
apply the content of the file to the currently running Zsh process. You can
source and valid Zsh code.
exec replaces the current shell process with another process. Your terminal
tty) session is running a shell. Replace it with another shell without
launching another tty. It could be
the same shell with different settings or flags.
tty (teletypewriter) command prints the name of the terminal you’re using.