Guillermo Austin Kim
Posts
998 posts![[리눅스커널] 메모리관리: 가상 주소를 물리 주소 변환하는 세부 원리 알아보기](https://img.zoomtrend.com/2019/07/25/c0246238_5d2b11370e6c7.png)
[리눅스커널] 메모리관리: 가상 주소를 물리 주소 변환하는 세부 원리 알아보기
가상 주소를 물리 주소 변환하는 세부 원리 알아보기이번에는 가상 주소를 물리 주소로 변환하는 과정을 살펴보겠습니다. 다음 그림을 같이 보겠습니다. [그림 14.18] 가상 주소를 물리 주소로 변환하는 과정 전체 흐름도 가상 주소를 물리 주소로 변환하는 과정은 크게 2 단계로 나눌 수 있습니다. [그림 14.19] 가상 주소를 물리 주소로 변환하는 단계 1단계[그림 14.18] 가장 위쪽에 있는 주소는 TTBR(Translation Table Base Register)에 저장된 변환 테이블 시작 주소입니다. 페이지 테이블의 베이스 주소입니다. 변환 베이스 주소와 SBZ로 구분할 수 있는데 SBZ는 항상 0라는 의미입니다. 커널에서는 swapper_pg_dir 전역 변수가 이 주소를 저장합니다. 다음 ‘가
[리눅스커널] 파일시스템: 분석할 함수 목록
namespace와 struct path 관련 커널 코드[https://elixir.bootlin.com/linux/v4.19.30/source/fs/namei.c]static int filename_lookup(int dfd, struct filename *name, unsigned flags, struct path *path, struct path *root){ int retval; struct nameidata nd; if (IS_ERR(name)) return PTR_ERR(name); [https://elixir.bootlin.com/linux/v4.19.30/source/fs/d_path.c]char *d_absolute_path(const struct path *path,
[리눅스커널] 리눅스소개: 리눅스와 리눅스커널은 왜 배워야 할까?
이번 시간에는 리눅스를 왜 배워야 하는지 생각해보는 시간을 갖겠습니다. 저는 리눅스 세미나에서 다음 질문을 종종 받곤 합니다. 리눅스를 배워야 하는 이유가 무엇인가요? 특히 리눅스를 처음 접하는 분들이 많이 던지는 질문이었습니다. 이런 질문을 받고는 리눅스를 과연 왜 배워야 할까 곰곰히 생각해봤습니다. 여러 생각 끝에 내린 필자인 저는 다음과 같은 결론을 내리게 됐습니다. 여러분들이 소프트웨어 개발을 하려고 한다면 리눅스는 반드시 알아야 합니다. 이번에 먼저 리눅스를 왜 배워야 하는지 설명하는 시간을 갖겠습니다. 리눅스는 왜 배워야 할까? 요즘에 학부 과정에서 리눅스 시스템 프로그램을 배울 수 있습니다. 또한 대학원 프로젝트 과제도 리눅스 환경에서 수행하고 있습니다. 이번에는
[IT] 리눅스를 익히는 2가지 방법
리눅스를 익히는 방법은 크게 2가지로 나눌 수 있습니다.리눅스 프로그램을 써본다.리눅스 소스 코드를 작성하고 다른 코드를 직접 분석해본다. 누구가 처음 리눅스를 접할 때는 리눅스 유틸리티와 같은 프로그램을 사용할 것입니다. 셸 프로그램을 하거나 리눅스 명령어를 써서 프로그램을 실행하곤 합니다. 하지만 리눅스 프로그램만 사용하다보면 개발자로써 실력을 키우는데 한계가 있습니다. 소스 코드를 입력하고 분석하는 과정이 필요합니다.
[리눅스커널] 시스템 콜: ARMv8 아키텍처에서 본 시스템 콜 테이블
ARMv8 아키텍처에서 본 시스템 콜 테이블은 다음과 같습니다. ________________address||value_____________|symbol NSD:FFFFFF9D4D200798| 0xFFFFFF9D4BF3F240 \\vmlinux\aio\__arm64_sys_io_setup NSD:FFFFFF9D4D2007A0| 0xFFFFFF9D4BF3F680 \\vmlinux\aio\__arm64_sys_io_destroy NSD:FFFFFF9D4D2007A8| 0xFFFFFF9D4BF3F818 \\vmlinux\aio\__arm64_sys_io_submit NSD:FFFFFF9D4D2007B0| 0xFFFFFF9D4BF3FCB0 \\vmlinux\aio\__arm64_sys_io



