20231018 Os Week2
Process Abstraction 어플리케이션이란 컴퓨터에서 어플리케이션이란 특정 기능을 수행하는 실행파일, executable 이 기능을 수행가능해진 상태를 지칭한다. 프로그래밍 언어로 작성된 코드가 컴파일, 어셈블, 링킹 과정을 통해 실행가능한 명령어의 집합으로 이루워진 실행파일을 생성한다. 컴파일은 고수준의 언어를 저수준의 언어로 변환하고, 어셈블을 저수준의 언어를 기계어로 변환한다. 이렇게 파일별로 생긴 목적 파일 (*.o) 과 스태틱 라이브러리등을 링커가 엮어서 하나의 바이너리로 가공한다. 이런 과정을 통해 생성한 바이너리를 로더가 다음과 같은 과정을 거쳐 실행을 하게 된다. 디스크에서 바이너리를 읽어온다 code, data, heap, stack 을 메모리 내 위치를 잡는다 공유 라이브러리가 필요하다면 같이 링크한다 (메모리에 같이 shared library 의 형태로 올라간다) OS 커널에게 어플리케이션의 실행을 요청한다....