일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- ssd
- Git
- rocksdb
- 시스템 소프트웨어
- performance
- core dumped
- github
- 커널 프로그래밍
- Cache
- software
- Intel
- 키워드
- overflow
- storage system
- Operating System
- 포트 번호 변경
- Machine Learning
- linux
- hardware
- deep learning
- Samsung
- framework
- USENIX
- kernel
- 시스템 프로그래밍
- memory
- Flash Memory
- FTL
- Today
- Total
목록시스템 프로그래밍 (3)
Happy to visit my research note ^^
" stdarg.h 헤더파일에 있는 기능들 " stdarg.h 헤더파일에는 va_list, va_start(), va_end()가 정의되어있는데 해당 함수와 구조체는 stdarg.h 해더 파일에서 정의되는 @가변 인자 함수를 사용하기 위한 메크로와 타입이다. @ 가변 인자 함수란 매개 변수의 개수가 정해져 있지 않고 호출될 때마다 다른 개수의 인자를 받을 수 있는 함수를 의미한다. 가변 인자 함수는 va_start, va_arg, va_copy, va_end와 같은 매크로를 사용하여 가변 인자를 처리한다. va_start 매크로는 가변 인자 목록에서 첫 번째 가변 인자를 가리키는 포인터를 초기화하고, va_arg 매크로는 다음 가변 인자를 가져온다. 예를 들어 printf 함수는 가변 인자 함수의 대표적..
kernel에 대한 간략한 소개를 하자면, kernel은 운영체제의 핵심 부분으로, 하드웨어와 소프트웨어 간의 interface 역할을 한다. kernel은 컴퓨터 resource를 관리하고 응용 프로그램이 application이 하드웨어를 직접 제어하는 것을 마고, 시스템 resource에 대한 효율적인 접근을 가능하게 한다. 또한, kernel은 사용자와 하드웨어 간의 상호작용을 처리하며, 시스템의 안정성과 보안을 유지하기 위한 여러 기능을 제공한다. 즉, 운영체제의 핵심이라고 할 수 있습니다. 이러한 kernel을 개발을 할 때 사용되는 알아두면 편리한 각 keyword에 대해 이번 글에서 알아볼까 합니다. " inline keyword " W(저자)가 사용하는 c lang에서 inline 키워드는..
상위 레이어와 하위 레이어 함수 간에 코드를 공유하는 방법으로는 공통으로 사용하는 구조체나 함수들을 헤더 파일에 정의해서 include하는 방법을 사용한다. 이것을 통해 여러 파일에서 공유하는 코드를 중복해서 작성하지 않고도 간편하게 사용할 수 있다. 또한, 공유하는 코드가 많고 복잡한 경우에는 독립적인 모듈로 작성하고 이를 다른 파일에서 include해서 사용할 수도 있다. 이렇게 모듈화된 코드는 유지 보수 및 관리가 편하고, 재사용성도 높아지는 결과를 얻을 수 있다. W(`나`)는 kernel에서 callpath를 분석하여 각 레이어간의 code execution latency를 분석하기 위해 이 방법을 사용한다. 예시 코드 틀 #ifndef SHARED_H #define SHARED_H ... ....