Wonhyuk Yang2021년 12월 19일[WAIOS] dump_stack 함수 구현저번 글에서는 qemu와 gdb를 통해 발생한 원인을 추적하는 방법에 대해 배웠습니다. 하지만 정확히 어느 부분이 문제인지 확인하는 것은 수고스러운 일이였습니다. 따라서 손쉬운 디버깅을 위해 WAIOS만의 dump_stack 함수를 구현해보도록...
Wonhyuk Yang2021년 12월 18일Stack trace와 kallsyms의 구현 살펴보기OS 개발 시 가장 힘든 부분은 역시 디버깅을 하는 것인데요. 이를 위해 앞에 글에서는 gdb+qemu와 같은 방법을 살펴봤습니다. 하지만 이 방법은 원인 분석하기엔 유용하지만, 문제가 발생한 위치를 쉽게 찾지는 못합니다. Linux에서는...
Paran Lee2021년 12월 1일nolibc 최소한 구현으로 glibc 대체! 시스템 콜 정의도 엿보자nolibc.h 하나의 헤더 파일로 구성되어 있으며, v5.1-rc1 이후 tools/include/nolibc/nolibc.h 에 위치해 있습니다. 최소한의 syscall 및 main()을 호출하는 데 필요한 최소한의 시작 코드로 구성됩니다....
Wonhyuk Yang2021년 7월 21일[Practice] WAIOS 제작 (4)Intro 저번 시간에는 고수준 입출력 함수 printk를 구현했었어요. qemu를 통해 빌드된 이미지를 실행시키면 정상적인 경우라면 "Hello world!"같은 printk에 입력으로 준 문자열이 출력이 될 거에요. 하지만 아무것도 출력되지...
Wonhyuk Yang2021년 7월 20일[Practice] WAIOS 제작 (3)이번 시간에는 저번 시간에 만든 uart 드라이버를 이용하여, C 표준 입출력 스타일의 함수를 만들어보도록 할게요. print와 같이 고수준 함수들이 지원이 된다면 좀 더 쉽게 정보들을 덤프할 수 있고 여러가지 재미있는 일들을 할 수 있어요....
Wonhyuk Yang2021년 6월 20일[Arm64] KSMA attack과 init_pg_dir 도입 분석arm64 아키텍처에서는 다른 아키텍처와 다르게 부팅때 사용되는 페이지 테이블이 다른데요. init_mm의 구조체가 아래와 같이 구성되어 있어, 초기 페이지 테이블이 swapper_pg_dir인지 init_pg_dir였는지 혼동하기 쉬운 것...