전체 보기
[v5.17] The kernel radar: folios, multi-generational LRU, and Rust
혹시나 틀린 번역 혹은 틀린 내용이 있다면 언제든지 말씀해주세요. 또 알고 계신 자세한 내용이나 위 글과 관련된 좋은 정보가 있다면, 공유해주시면 감사하겠습니다! Introduction lwn.net에서 발간하는 기사 중 현재 개발 중인 커널에 관련된 여러 주제들 중 주목되고 있는 주제들에 대해 짤막하게 소개해주는 게 있어서 간단한 번역과 함께 살펴보려 한다. 이번 5.17 버전 개발 주기에서는 무엇이 화두가 되고 있는지 살펴보자. https://lwn.net/Articles/881675/ (2022.01.20 published by Jonathan Corbet) The kernel radar: folios, multi-generational LRU, and Rust [LWN.net] This artic..
[To-Do List] 2021
2021.08.22 - [잡담] - [Look-Back] 2021 [Look-Back] 2021 세 줄 요약 1. 입대 후 pwn을 시작해 열심히 노력했지만 부족함을 느낌. 2. 모호했던 미래 직업을 고민하다 kernel과 관련된 일을 하고 싶다고 구체적으로 정함. 2. 모의해킹 전문가를 위한 길을 선택 karatus.tistory.com ◇ For Future ✅ inflean에 있는 「운영체제 공룡책 강의」 수강 완료하기 ❗ fuzzing 사용해보기 - 보안에서 개발로 전환. 하여 더 이상 공부 필요성 못 느낌. ✅ 「디버깅을 통해 배우는 리눅스 커널의 구조와 원리」 1권 다 읽기 ◇ Development ✅ OS clone 다 만들기 2022.02.11 수정
[LKM] procfs & seq_file
Kernel version: 5.14.17 procfs이란? procfs는 proc + fs = process file system의 약자다. 모든 것을 파일로 취급하는 유닉스 사상에 따라 이 특별한 파일 시스템은 시스템 내의 정보를 제공하기 위해 존재한다. 실제로 존재하는 하드웨어에 대한 파일 시스템이 아닌 메모리 상에서만 존재하고, 가상 파일 시스템(VFS)의 인터페이스의 형태이며 /proc 경로에 마운트 되어 사용된다. 예전에 정리했던 포스팅에서도 아주 잠깐 다룬 적이 있다. [wikipedia] "ls /proc" 명령어를 사용해보면 뭔가 많이 있는 것을 확인할 수 있다. 숫자로 된 디렉터리들은 현재 올라가 있는 프로세스들의 PID를 나타내고, 나머지들도 각자의 결과를 반환하는 역할을 하는 함수들..
[Network Programming with Rust] Week 6
Assigned Pages: 236 ~ 240p / 117 ~ 126p Appendix - Awaiting the future 해당 책으로는 더 이상 나가지 않고 추가적으로 공부를 더 하기 위해 스터디원끼리 토의를 통해 「Rust for Rustaceans」 책의 비동기 부분을 더 공부하기로 했다. Chap 8. ASYNCHRONOUS PROGRAMMING The contents I wrote with markdown are in github repository. Here is the link.
[LKM] Character Device Driver
Kernel version: 5.14.17 What is a device driver? device driver는 하나의 컴퓨터 프로그램이다. 컴퓨터나 오토마톤에 접목되어 특정 타입의 device를 동작시키거나 조종한다. device는 우리가 생각하는 여러 주변 하드웨어 기기들을 일컫는 말이다. 키보드, 마우스, 모니터, USB,... 등등 많은 종류의 하드웨어가 컴퓨터와 통신하는데 주로 sequential bytes의 형태로 이루어진다. 이 말은 즉 linux에서는 모든 devices가 file이라고 본다. ([Kernel of Linux] 강의 정리 내용을 참고하자.) 결국 우리가 만들게 될 device driver는 device라는 하나의 파일을 컨트롤하기 위한 프로그램을 만드는 것이다. devic..
[Network Programming with Rust] Week 5
Assigned Pages: 183~190p Chapter 7. Asynchronous Network Programming Using Tokio [Part] Heading to tokio - Socket multiplexing in tokio The contents I wrote with markdown are in github repository. Here is the link.
[Network Programming with Rust] Week 4
Assigned Pages: 155~159p Chapter 6. Taking HTTP in the Internet [Part] Introducing reqwest The contents I wrote with markdown are in github repository. Here is the link.
[Network Programming with Rust] Week 3
Assigned Pages: 95~101p Chapter 4. Data Serialization, Deserialization, and Parsing [Part] Custom serialization and deserialization The contents I wrote with markdown are in github repository. Here is the link.
[Kernel of Linux] 14. Memory Management
지난 강의 요약 - File System (3) Linux는 Unix와는 달리 많은 종류의 FS을 커버할 수 있도록 만들어졌다. 그래서 실제 physical FS layer 위에 유저를 위한 standard를 제공하기 위한 VFS(Virtual FS) layer를 얹어놨다. VFS는 standard objects 4가지를 통해 어떤 FS든지 정의할 수 있도록 했다. superblock object / inode object / file object / dentry object. dentry를 제외한 나머지 object들은 이전에도 많이 했으니 넘어가고 dentry에 대해 알아보자. dentry는 directory entry로 단순히 말해 path(name) components의 inode를 저장하는 것을..