리눅스커널

포스트: 154|조회수: 0|TERM
Items

Posts

154 posts

[리눅스커널] 리눅스소개: 리눅스와 리눅스커널은 왜 배워야 할까?

Guillermo Austin Kim|2019년 7월 22일

이번 시간에는 리눅스를 왜 배워야 하는지 생각해보는 시간을 갖겠습니다. 저는 리눅스 세미나에서 다음 질문을 종종 받곤 합니다. 리눅스를 배워야 하는 이유가 무엇인가요? 특히 리눅스를 처음 접하는 분들이 많이 던지는 질문이었습니다. 이런 질문을 받고는 리눅스를 과연 왜 배워야 할까 곰곰히 생각해봤습니다. 여러 생각 끝에 내린 필자인 저는 다음과 같은 결론을 내리게 됐습니다. 여러분들이 소프트웨어 개발을 하려고 한다면 리눅스는 반드시 알아야 합니다. 이번에 먼저 리눅스를 왜 배워야 하는지 설명하는 시간을 갖겠습니다. 리눅스는 왜 배워야 할까? 요즘에 학부 과정에서 리눅스 시스템 프로그램을 배울 수 있습니다. 또한 대학원 프로젝트 과제도 리눅스 환경에서 수행하고 있습니다. 이번에는

[리눅스커널] 메모리관리: 가상 주소를 물리 주소 변환하는 세부 원리 알아보기

Guillermo Austin Kim|2019년 7월 17일

가상 주소를 물리 주소 변환하는 세부 원리 알아보기이번에는 가상 주소를 물리 주소로 변환하는 과정을 살펴보겠습니다. 다음 그림을 같이 보겠습니다. [그림 14.18] 가상 주소를 물리 주소로 변환하는 과정 전체 흐름도 가상 주소를 물리 주소로 변환하는 과정은 크게 2 단계로 나눌 수 있습니다. [그림 14.19] 가상 주소를 물리 주소로 변환하는 단계 1단계[그림 14.18] 가장 위쪽에 있는 주소는 TTBR(Translation Table Base Register)에 저장된 변환 테이블 시작 주소입니다. 페이지 테이블의 베이스 주소입니다. 변환 베이스 주소와 SBZ로 구분할 수 있는데 SBZ는 항상 0라는 의미입니다. 커널에서는 swapper_pg_dir 전역 변수가 이 주소를 저장합니다. 다음 ‘가

[리눅스커널] 메모리관리: 페이지 테이블에 대해 알아보기

Guillermo Austin Kim|2019년 7월 17일

페이지 테이블로 가상 주소를 물리 주소로 변환하는 흐름을 살펴봤습니다. 이 과정에서 알아야 하는 주요 개념을 소개합니다. - 페이지 테이블 엔트리 - 페이지 테이블 엔트리 주소 페이지 테이블 엔트리페이지 테이블 엔트리(Page Table Entry, 줄여서 PTE)는 페이지 테이블의 정보이며 레코드라고도 부릅니다. 페이지 테이블 엔트리 주소말 그대로 페이지 테이블 엔트리가 있는 주소를 의미합니다. 이해를 돕기 위해 다음 주소 테이블을 보겠습니다. 주소 | 값 1 NSD:80004000 | 0x02 NSD:80004004 | 0x03 NSD:80004008 | 0x04 NSD:8000400C | 0x0...5 NSD:80006018 | 0x0061941E6 NSD:8000

[리눅스커널] 프로세스: 유저 프로그램 실행 흐름 추적하기

Guillermo Austin Kim|2019년 7월 14일

리눅스 시스템에서는 빌트인으로 제공하는 프로그램이 있습니다. 이를 명령어 형태로 쓰고 있는데 이 프로그램은 실행할 때 프로세스 포멧으로 구동합니다. ftrace 로그로 각 프로그램(프로세스)이 어떻게 생성, 실행 및 종료하는지 확인합시다. ftrace 로그 설정하기ftrace 로그 설정 코드는 다음과 같습니다.1 "echo 1 > /sys/kernel/debug/tracing/events/sched/sched_process_exec/enable"2 "echo 1 > /sys/kernel/debug/tracing/events/sched/sched_process_exit/enable"3 "echo 1 > /sys/kernel/debug/tracing/events/sched/sched_proc