Компиляторы генерируют адреса. Линкеры генерируют адреса. Это просто адреса.
Если вы разрабатываете или работаете в системе без преобразования логических адресов, эти адреса интерпретируются как физические адреса.
Если вы разрабатываете или работаете в системе, которая использует преобразование логических адресов, эти адреса интерпретируются как логические адреса.
Какой тип адресов содержит a.out? Это виртуальный адрес?
Содержит адреса неопределенного типа.
Если нет, то на каком этапе (от создания программы до загрузки ее в память) будет задействован виртуальный адрес?
Это полностью функция того, как процессор интерпретирует эти адреса.