리눅스 컴퓨터에서 프로세스를로드 할 때 로더의 역할은 무엇입니까? 그것은 단지 가상 주소 공간을 만들거나 스택 포인터를 설정하고, BSS 세그먼트를 0으로 초기화하는 등의 다른 작업도 수행합니까? 아니면 C 런타임 라이브러리가 그 작업과 관련이 있습니까?로더의 역할
로더의 역할
답변
주소 공간을 생성하지 않습니다. 그것이 커널의 일입니다. 커널은 또한 스택을 설정합니다. 로더는 BSS 세그먼트에 0을 매핑하는 것을 포함하여 프로그램과 라이브러리를 주소 공간에로드합니다. 대부분의 Linux 시스템/프로그램은 GNU C 라이브러리 glibc와 함께 제공되는 로더를 사용합니다.
그러면 런타임 초기화는 무엇을합니까? – tapananand
@TapanAnand : 무엇이든지해야합니다. 로더는 실행 파일과 라이브러리를 주소 공간에로드하고 수행해야 할 재배치를 처리합니다. libc를 포함한 다른 라이브러리는 적절하게 초기화되도록 남아 있습니다. – SamB
누가 bss를 0으로 초기화하고 스택을 누가 설정합니까? – tapananand
- 1. AS3 - 로더의 애니메이션 재설정
- 2. 프리 로더의 이상한 문제
- 3. Webpack 로더의 출력 위치
- 4. SQL 로더의 절
- 5. 부트 로더의 메모리 위치
- 6. 이미지 로더의 메모리 누수
- 7. 시스템 클래스 로더의 이름
- 8. Json 로더의 스키마?
- 9. 부트 로더의 그래픽
- 10. ActionScript 로더의 너비/높이 검색
- 11. 디폴트의 클래스 로더의 아이덴티티는 Serializable입니다.
- 12. 유니버설 이미지 로더의 올바른 사용
- 13. SQL * Plus와 SQL 로더의 차이점
- 14. varchar를 SQL 로더의 날짜로 변환하십시오.
- 15. 유니버설 이미지 로더의 TextView 갤러리
- 16. 로더의 이미지에 내재 된 속성
- 17. 순차 로더의 Event.COMPLETE 또는 Event.INIT
- 18. 파일 업 로더의 스타일 문제
- 19. 역할
- 20. 책임있는 역할 : 역할에 역할 포함?
- 21. 역할 인터페이스 및 역할 관리
- 22. 코드에서 프리 로더의 애플리케이션에서 함수 호출하기
- 23. 로더의 sourceComponent에서 QML 객체에 액세스하는 방법은 무엇입니까?
- 24. personaly 클래스 로더의 최대 절전로드 매핑
- 25. 리소스 번들을로드 할 때 클래스 로더의 중요성
- 26. Seam 앱과 플래시 파일 업 로더의 통합
- 27. 시스템 클래스 로더의 리소스 검색 알고리즘
- 28. Android의 Asynctask에 비해 로더의 장점은 무엇입니까?
- 29. 비동기 자바 스크립트 로더의 권장 사용법
- 30. 플렉스 : 프리 로더의 데이터를 앱으로 전달 하시겠습니까?
다른 초기화 된 전역 변수뿐만 아니라 BSS가 프로세스의 메모리 공간에로드 된 실행 가능 이미지의 일부가 될 것으로 기대합니다. 따라서 이러한 변수에 런타임 초기화가 필요하지 않습니다. 그런데 스택 포인터는 하나뿐입니다. 실행 가능한 이미지가 잘 정의 된 세그먼트에서 프로그램의 초기 실행과 관련된 값을 포함하므로 OS가 레지스터를 올바르게 설정할 수 있습니다 (예 : SP = 스택 기본 주소, PC = 'main'의 주소 등). –
@barakmanos : 단일 스레드 프로세스는 단일 스택 포인터 만 갖기 때문에 (시작 프로세스는 단일 스택 포인터 만 갖습니다), 다중 스레드 프로세스는 각 스레드에 대해 별도의 스택 포인터를 갖습니다. –
@barakmanos : ELF 실행 파일에는 BSS 세그먼트가 없습니다. BSS 세그먼트는 로더 또는 런타임 초기화에 의해 설정됩니다. - 제 질문입니다. 스택이 고려되는 한, 주소 공간은 랜덤 화되므로 스택에는 컴파일러가 알고있는 고정 주소가 없습니다. – tapananand