50년 전 유닉스, 어떻게 메모리 할당했을까
Key Point
현재의 C/C++ 메모리 할당 방식이 왜 그렇게 설계되었는지, 그리고 더 나은 대안이 존재했음을 보여주는 컴퓨터 과학 역사의 흥미로운 사례입니다.
핵심 요약
- 1973년 유닉스 V4의 원본 소스를 분석한 고고학적 탐구로, C 언어 초기의 메모리 관리 방식을 추적한다.
- V4 컴파일러는 선형 할당(linear allocator)을 사용했는데, 메모리를 정렬한 후 충분한 공간이 있는지 확인하고 sbrk()로 힙을 확장했으며, 메모리 해제는 전혀 고려하지 않았다.
- Dennis Ritchie가 작성한 malloc.c는 흥미로운 인터페이스를 가졌는데, malloc(coremap, size)와 mfree(coremap, size, pointer) 형태로 명시적 메모리 영역을 전달받았다.