우선 내가 이해하고 있는 큰 그림을 적어볼게.

  1. 소스 코딩
  2. 컴파일 (전처리포함)
  3. 어셈블
  4. 링킹 (사실 어셈블~링킹 부분에 대해 명확히 알지 못함)
  5. 바이너리 생성!됨! ㅋ 
  6. -------
  7. 실행함
  8. data 영역에 binary code (기계어) 올라감
  9. ir pc 지랄하면서 알아서 섹스함. control u nit하고 alu 하고 섹스함 (몰라 책에서일케읽엇어)

다좋다 이거야.
그런데 api라는거 있잖아.
그건 어디서 해석되는거지? 

리눅스/윈도우 서로 다른 C library 를 가지고 있다고 알고있는데
2->3으로 갈때 (소스코드에서 어셈블리어될때) api를 해석해서 api를 호출하는데에다가
군데군데 알아서 assembly를 넣는건가
아니면 

3->4 로 갈때 하는건가? (윈도우 dll이 어셈블리인가 아님 기계어인가... 거기서 참조하니까.. 그 dll에 따라 달라지겠군 ?)

글이 많이 장황한가??

그래도 너무 공부하고싶었는데 이제좀알아간다...

알려주라... os의 api는 어디에서 추가됨? 어디서 추가되든 일단 컴파일은 OS에 종속적인거지? api를 쓴다면말이야