태그>리눅스커널(총 200개의 글)
'리눅스커널' 관련 최근글
-
- 리눅스 커널, 드디어 6.0 버전대 시대로 진입
-
파란오이의 Beautiful Life by 파란오이|2022/10/06 23:36
며칠 지난 소식이지만, 새로운 10월의 시작과 함께 하듯이 10월 2일 리눅스 커널의 6.0 릴리즈가 등장했습니다. 기존 안정 버전 5.19 버전대에서 6.0 대에서 한 번에 올라왔지만, 메이저 버전업에 기대하는 천지개벽..
- 리눅스 커널, 드디어 6.0 버전대 시대로 진입
-
- 리눅스 커널(Linux Kernel) 5.19 공개
-
케찹만땅 by 케찹만땅|2022/08/01 14:42
다음에 나오는 5.20 버전은 6.0이 될 수 있다고 합니다.
리눅스, Linux, 리눅스커널, LinuxKernel, 리누스토발즈
- 리눅스 커널(Linux Kernel) 5.19 공개
-
- [리눅스커널] ftrace: boottime-trace(부트타임 ftrace)!
-
Arm Linux Kernel Hacks by AustinKim|2022/04/21 10:07
Overview 이번 포스트에서는 커널 v5.10에 반영된 boottime-trace를 소개합니다. 관련 문서는 아래 링크에서 확인할 수 있습니다. 강의 동영상 링크는 다음과 같습니다. boottime-trace는 커멘드 라인을 통해 ftrace 설정을 해서 부팅 과정에서 ftrace의 주요 기능을 enabl..
- [리눅스커널] ftrace: boottime-trace(부트타임 ftrace)!
-
- [리눅스커널] IPI Call 요청: SGI(Software Generated Interrupt) 요..
-
Arm Linux Kernel Hacks by AustinKim|2022/03/21 09:57
저번 포스트에서는 아래 실행 흐름으로 IPI Call을 요청하는 함수를 알아봤습니다. [리눅스커널] IPI(Inter Processor Interrupt) Call 요청 루틴(하이 레벨 뷰) 이어서 Arm 아키텍처에서 제공하는 SGI를 이용해 IPI Call을 처리하는 아키텍처에 의존적인 루틴을 분석하겠습..
- [리눅스커널] IPI Call 요청: SGI(Software Generated Interrupt) 요..
-
- [리눅스커널] IPI(Inter Processor Interrupt) Call 요청 루틴(하이..
-
Arm Linux Kernel Hacks by AustinKim|2022/03/21 09:56
IPI(Inter Processor Interrupt)의 약자로 지정한 CPU 코어를 타겟으로 인터럽트(소프트웨어적)를 유발하는 매커니즘입니다. 이번 포스트에서는 리눅스 커널에서 IPI Call을 요청하는 루틴을 리뷰하겠습니다. IPI Call은 아키텍처에 의존적으로 처리되므로 하이 레벨과 로우..
- [리눅스커널] IPI(Inter Processor Interrupt) Call 요청 루틴(하이..
-
- [커널크래시] 인터럽트 컨텍스트에서 wake_up_interruptible 대신 wa..
-
Arm Linux Kernel Hacks by AustinKim|2022/01/05 16:15
인터럽트 컨텍스트에서 슬립을 지원하는 커널 함수를 호출하면 어떻게 동작할까요? 커널 패닉이 유발됩니다.이번에는 인터럽트 컨텍스트에서 발생한 커널 패닉 이슈를 소개합니다. 먼저 커널 로그를 소개합니다. [1.538173] BUG: sleeping function called from invalid contex..
리눅스커널, 크래시, linuxkernel, crash
- [커널크래시] 인터럽트 컨텍스트에서 wake_up_interruptible 대신 wa..
-
- [리눅스커널] 메모리 매니지먼트: 존(struct zone) 구조체에 접근하기
-
Arm Linux Kernel Hacks by AustinKim|2021/08/25 12:15
< v5.10: 커널 버전 > 많은 분들은 리눅스 메모리 시스템은 다음과 같은 구조로 구성돼 있다고 알고 있습니다. 메모리 뱅크 - 노드 - 존 #1 - 존 #2 존은 'struct zone' 구조체로 확인할 수 있습니다. 그런데 zone 구조체의 필드는 어떻게 접근할 수 있을까요? 이번 포스트는 ..
- [리눅스커널] 메모리 매니지먼트: 존(struct zone) 구조체에 접근하기
-
- [리눅스커널][Arm64] 유저 공간(EL0)에서 ..
-
Arm Linux Kernel Hacks by AustinKim|2021/08/21 09:43
이번에는 64비트 기반 리눅스 커널에서 구동되는 라즈비안에서 시스템 콜 번호를 확인해 보겠습니다. 이를 위해 바이너리 유틸리티를 활용해 libc 라이브러리를 어셈블리 명령어로 분석할 필요가 있습니다. root@..
- [리눅스커널][Arm64] 유저 공간(EL0)에서 ..
-
- [리눅스커널] Arm64: VMEMMAP_START, vmemmap, PAGE_OFFSE..
-
Arm Linux Kernel Hacks by AustinKim|2021/08/08 21:36
리눅스 커널 v5.4 버전부터 가상 주소 맵이 약간 변경됐습니다.그 중 대표적인 속성은 아래 정보입니다. VMEMMAP_START: 0xfffffffeffe00000PAGE_OFFSET: 0xffffff8000000000 이 정보를 직접 어셈블리 코드로 확인해보겠습니다. 관련 코드는 참고로 다음과 같습니다. vmemmap ((..
- [리눅스커널] Arm64: VMEMMAP_START, vmemmap, PAGE_OFFSE..
-
- [리눅스커널] 메모리: kcalloc() 함수와 kmalloc_array() 함수의..
-
Arm Linux Kernel Hacks by AustinKim|2021/06/09 10:27
kcalloc() 함수는 어떤 역할을 수행할까요? 구현부를 보겠습니다. inline void *kcalloc(size_t n, size_t size, gfp_t flags){ return kmalloc_array(n, size, flags | _GFP_ZERO);} kcalloc() 함수를 보니 자신에게 전달된 인자를 kmalloc_arra..
- [리눅스커널] 메모리: kcalloc() 함수와 kmalloc_array() 함수의..
-
- [리눅스커널] 슬럽 메모리: set_track() 함수에 전달되는 addr인자의..
-
ARM Linux Kernel Hacks by AustinKim|2020/12/10 16:23
리눅스 커널의 슬럽 관련 디버깅 피쳐를 켜 놓으면, struct track 구조체로 슬럽 오브젝트를 할당하거나 해제할 때의 콜 스택 정보를 저장합니다. 이를 처리하는 핵심 함수는 set_track() 함수인데, 이 함수에 마지막으로 전달되는 인자는 addr입니다. 다음은 set_track()..
리눅스커널, 슬럽, linuxkernel, slub
- [리눅스커널] 슬럽 메모리: set_track() 함수에 전달되는 addr인자의..
-
- [RISC-V] RISC-V 툴체인으로 리눅스 커널 빌드하기
-
ARM Linux Kernel Hacks by AustinKim|2020/09/28 14:20
이번 포스트에서는 RISC-V 툴체인을 설치해 리눅스 커널을 빌드하는 방법을 소개합니다. 먼저 RISC-V 툴체인을 설치하는 명령어를 입력합시다. RISC-V 툴체인 소스를 내려받기 다음 명령어를 입력해 RISC-V 툴체인 소스를 내려받습니다. $ git clone -recursive 아래는 ..
- [RISC-V] RISC-V 툴체인으로 리눅스 커널 빌드하기
-
- [RISC-V] 익셉션 벡터 핸들러 코드 산책 - 리눅스 커널
-
ARM Linux Kernel Hacks by AustinKim|2020/09/28 07:11
이번 시간에는 RISC-V 기반 리눅스 커널에 구현된 익셉션 벡터 테이블과 익셉션 벡터 핸들러를 분석하겠습니다. 익셉션 벡터 핸들러를 호출하는 코드 확인하기 다음은 익셉션 벡터 핸들러의 구현부입니다. RISCV_PTR do_trap_insn_misaligned RISCV_PTR do_trap_in..
- [RISC-V] 익셉션 벡터 핸들러 코드 산책 - 리눅스 커널
-
- [ARM] ARM 프로세서의 특징을 활용한 최적화는 왜 중요할까?
-
Linux Kernel(4.19) Hacks by AustinKim|2020/07/04 17:59
이번 포스팅에서는 'ARM 프로세서의 특징을 활용한 최적화는 왜 중요할까?'에 대해서 이야기하려고 합니다.본론에 들어가기 앞서 일반적인 SW 개발자들이 최적화에 대해 어떻게 생각하는지 짚어 보겠습니다. 생각보다 성능과 최적화는 중요하다 대부분 SW 개발자들은 주어진 스팩..
- [ARM] ARM 프로세서의 특징을 활용한 최적화는 왜 중요할까?
-
- [ARM64] GCC: 특정 함수를 최적화하지 않기 - optimize("O0") 옵션
-
Linux Kernel(4.19) Hacks by AustinKim|2020/06/30 15:57
코드를 작성한 후 실행을 하다보면 가끔 자신이 작성한 함수의 심벌이 사라지거나, 가끔 예상을 벗어나는 동작을 할 때가 있습니다.여러 가지 원인 중 하나가, 컴파일러가 최적화를 하면서 코드를 재배치를 하다가 발생합니다. 이번 포스팅에서는 GCC의 최적화 레벨을 각각의 함수..
- [ARM64] GCC: 특정 함수를 최적화하지 않기 - optimize("O0") 옵션