2011-02-18 5 views
4

.NET 실행 파일을 실행할 때 정확하게 수행 할 작업을 단계별로 단계별로 수행합니다. 내 기본 이해는 실행 파일을 실행하고 CLR이 검사를 수행하고 CIL을 플랫폼 특정 코드로 컴파일하고 지정된 필수 dll (매니페스트에 지정된대로)과 함께로드 한 다음 프로그램을 실행하는 것입니다..NET 실행 파일 (프로그램이로드되어 실행되는 지점까지 단계별로 실행)을 실행하면 정확히 무엇이 발생합니까?

누군가가 "이것과 저기에 대해 메모리를 할당합니까?"수준까지 자세히 설명 할 수 있습니까? 실행 파일을 두 번 클릭 할 때부터 프로그램이 성공적으로 실행될 때까지 어떤 일이 일어나고 있는지 정말 알고 싶습니다.

P. 다이어그램, 외부 링크를 환영합니다. :-)

+0

제프리 리히터 (Jeffrey Richter)의 저서는 잘 알려져 있습니다. SO 지위에 그런 책을 집어 넣으려는 작은 점이 있습니다. –

+1

추천 할만한가요? 또한. . . 나는 전체 교과서 답을 찾고있는 것이 아니라, 근본적으로 "정신적 인 무엇인가"라는 단어가 내 정신적 다이어그램의 중간에있는 구름을 대체 할 답을 찾고있다. 일어나는 일의 과정으로 지금은 "실행 파일 클릭"과 "프로그램 실행 중"사이에 안개가 있습니다. – richard

답변

2

이 정보에 쉽게 액세스 할 수없는 이유가 있습니다. Microsoft는 게시 할 때 갑자기 모든 시간 동안 고정되어야한다는 것을 알았 기 때문에 (출처 : Raymond Chen's blog의 90 %).

ECMA 표준은 here에서 사용할 수 있지만 목차에서 볼 수있는 내용은 이후의 내용을 다루지 않을 수도 있습니다. 내부 구현 세부 사항이 아닐지라도 구조를 확실히 지정합니다. 특정 내부 자세한 내용은

, 당신은 적어도에 관심이 .NET Framework의 정확한 버전을 제공해야합니다 (그리고 우리는 Mono 다른 CLRS을 무시하는 것) 프로그램의 세부 실행중인 .

이러한 세부 정보가 필요한 실용적인 (디버깅) 이유가있는 경우 실행 파일을 windbg으로 시작하고로드 프로세스를 단계별로 수행하십시오. (이것은 즐겁지는 않을지라도, 관심사를 위해서도 효과가 있습니다.)

마지막으로 Mono은 공개 소스이므로 코드를 탐색하여 구현 방법을 확인하십시오. 분명히 그것이 마이크로 소프트가 구현 한 방식과 동일하다는 보장은 없지만 학문적 인 연습으로 충분할 것입니다.

+0

감사합니다. 이것은 단지 내 자신의 이해와 호기심 때문입니다. 가능한 한 세부적인 내용을 찾고 있습니다. – richard

2

모두를 다룰 수있는 한 권의 책 : CLR via C#.

+0

차가움. 사파리 서가에. 감사. – richard

+0

궁금한 분은 22 장에 답이 있습니다. 감사! – richard

관련 문제