
[OS] Thread Local Storage (TLS)
🖥️ Computer Science/OS
2023. 4. 11. 00:16
TLS(Thread Local Storage)란? TLS는 Thread Local Storage의 약자로 thread별로 고유한 전역/정적 변수를 저장할 수 있게 하는 공간이다. 스레드는 원래 스레드 별로 고유의 스택을 가지지만, 전역/전적 변수는 프로세스의 모든 스레드가 접근 가능하다. 따라서 전역/정적 변수를 스레드 별로 할당해주고 싶을 때 TLS를 사용한다. (따라서 TLS에 들어있는 애들은 지역 변수와 다르게 함수 above에서 다 visible하다) TLS는 프로세스 실행에 필요한 여러 정보가 들어있다 fs는 TLS를 가리키는데, 예를 들어 fs:0x28에는 스택 카나리의 값으로 쓰이는 랜덤한 값이 저장된다. 대충 tls 생성하는 함수임 아래는 ㅇㅇ static void * init_tls (v..