Копируется из .data-секции бинарника в оперативку, как и другие (проинициализированные не нулями) глобальные переменные. Сам код функции в .text-секции и не обязан копироваться в озу (на микроконтроллерах исполняется из статичной flash-памяти, например).
В файле бинарника можно найти переменную
 Павλо
                          🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Павλо
                          🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Помимо stack и heap есть нерастущая область для глобальных данных, куда копируется .data и где зануляется .bss
 Павλо
                          🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Павλо
                          🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  исходя из geeksforgeeks, эти секции хранятся как раз таки в области под хипом. Интересно, а это зависит от архитектуры процессора?
 исходя из geeksforgeeks, эти секции хранятся как р...
                      
                      исходя из geeksforgeeks, эти секции хранятся как р...
                    При чём тут вообще архитектура процессора? Это ж просто блин абстракция, условность, реализуемая осью и всё. Процессору вообще похрену что читать, что писать и что исполнять. Вон под виндой ты вообще можешь исполнять инструкции из хипа, да и под никсами, если права дать. На уровне архитектуры реализуется сама виртуальная память, она не имеет ничего общего с той моделькой, которую ты скинул.
 Павλо
                          🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Павλо
                          🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  При чём тут jit? Я тебе к тому, что это простая условность, у тебя и в дате могут храниться инструкции на исполнение и в стеке, да и вообще где угодно, хоть в аргументах командной строки. А касательно твоего вопроса... Ну это уж совсем детский сад какой-то. Компилятор, если что, компилит сишный код в язык ассемблера, ассемблер собирает секции, линкер вставляет относительные адреса на места символов и лишь при запуске ось располагает секции в памяти и не обязательно в тех сегментах на которые ты рассчитываешь, вообще сегментная память считается как бы устаревшей, в амд64 нет селектора.
 Павλо
                          🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Павλо
                          🇺🇦
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  cs, ss, ds, es, gs, fs
Ну это уже Shellcode получается 😁
Обсуждают сегодня