[리눅스커널] Arm64: VMEMMAP_START, vmemmap, PAGE_OFFSET 위치 조정(v5.4)
By Guillermo Austin Kim | 2021년 8월 8일 |
리눅스 커널 v5.4 버전부터 가상 주소 맵이 약간 변경됐습니다.그 중 대표적인 속성은 아래 정보입니다. VMEMMAP_START: 0xfffffffeffe00000PAGE_OFFSET: 0xffffff8000000000 이 정보를 직접 어셈블리 코드로 확인해보겠습니다. 관련 코드는 참고로 다음과 같습니다. vmemmap ((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT)) 패치 코드 먼저 다음과 같은 패치 코드를 작성합시다. diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.cindex 9af647d..3000332 100644--- a/arch/arm64/mm/
[리눅스커널][가상파일시스템] 수퍼블록: 슈퍼블록 정보를 statfs 시스템 콜로 읽는 과정 살펴보기
By Guillermo Austin Kim | 2019년 5월 8일 |
슈퍼블록 각 멤버들은 파일시스템에 대한 메타 정보를 저장합니다.유저 공간에서 파일시스템 정보를 알려면 어떤 함수를 호출해야 할까요? 유저 공간에서 statfs() 함수를 호출하면 커널 공간에서 해당 시스템 콜 핸들러 함수인 sys_statfs() 함수를 실행합니다. 예제 코드는 다음과 같습니다.1 #define FILENAME_NAME "/home/pi"2 #define BUFF_SIZE 2563 int main() 4 {5 struct statfs file_sys_info;6 char fname[BUFF_SIZE] = {0,};78 strcpy(fname, FILENAME_NAME);9 12 if(statfs(fname, &file_sys_info)) {13 printf("Unable to s
[라즈베리파이] 프로세스 - 자식 프로세스 생성 실습 및 ftrace 로그 분석(2/2)
By Guillermo Austin Kim | 2018년 10월 27일 |
From: 프로세스 - 자식 프로세스 생성 실습 및 ftrace 로그 분석(1/2) 프로세스 생성과 종료 과정 메시지가 포함된 ftrace 전체 로그는 다음과 같습니다. 각 단계 별로 ftrace 로그를 분석하겠습니다.1 raspbian_fork-17120 [003] ....1318.513909: copy_process+0x14/0x17d8 <-_do_fork+0xb0/0x3ec2 raspbian_fork-17120 [003] ....1318.513921: <stack trace>3 => _do_fork+0xb04 => SyS_clone+0x305 => ret_fast_syscall+0x0...6 raspbian_fork-17120 [003] d...1318.51444
[Linux 리눅스] 터미널 단축키를 마스터 해보자 (Mac iTerm 설정법 포함)
By 양파개발자 SW의 블로그입니다^^ | 2018년 1월 29일 |
리눅스의 일반적인 터미널에서 우리는 많은 작업을 하는데.커서이동 단축키를 알아두면 쉽게 작업을 할수 있겟져..?? 자 일단 그럼~~~ 아래 그림을 보도록 하자.cp 명령어인데 커서가 저어기 한가운데 "c" 에 있다고 생각하고이동 & 삭제 에 관련된 단축키들을 쭉~ 한번 보도록하자. 자, 그런데 맥에서는 Alt 가 option 키이다. 옵션을 누른채로 저 단축키를 따라해보면 먹히질 않는데..맥에서 이미 잘 알려진 터미널 프로그램 iTerm 을 기준으로 설정법을 간단히 적어보았다. iTerm 을 켜고 상단 메뉴에서iTerm2 > Preference > Profiles > Keys 로 간다음 아래 화면을 참조하여 Left options key의 설정을 하도록하자. 그럼..