Archieve/Linux OS(2)
-
Makefile cheatsheet
foo = "bar" bar = $(foo) foo # dynamic (renewing) assignment foo := "boo" # one time assignment, $(bar) now is "boo foo" foo ?= /usr/local # safe assignment, $(foo) and $(bar) still the same bar += world # append, "boo foo world" foo != echo fooo # exec shell command and assign to foo # $(bar) now is "fooo foo world" Magic variables ut.o: src.c src.h $@ # "out.o" (target) $< # "src.c" (first pre..
2022.11.30 -
malloc 처음부터 작성해보기
해당 글은 malloc을 실제로 작성해보고 실제 할당이 이뤄지는 원리에 대해서 더욱 깊은 이해를 해보고자 하는 목적으로 작성되었습니다. 바로 본론으로 들어가봅시다. malloc의 함수 프로토타입은 다음과 같습니다. void *malloc(size_t size); 입력으로 바이트 수를 요구하고, 해당 크기의 메모리 블록에 대한 포인터를 반환합니다. 이를 구현할 수 있는 방법에는 여러가지가 있는데 해당 글에서는 sbrk를 사용하도록 하겠습니다. OS는 프로세스를 위한 스택 및 힙 공간을 예약하고, 이후 sbrk를 사용함으로써 유저는 힙을 조작할 수 있게 됩니다. malloc을 가장 단순하게 구현한다면 다음과 같은 코드가 가능할 것입니다. #include #include #include #include voi..
2022.11.29