본문 바로가기

분류 전체보기

(507)
[리눅스커널] 커널 타이머 관리: 주요 개념 소개 (HZ, jiffies) 커널 타이머는 리눅스 커널 핵심 기능 중 하나입니다. 커널 내부에서 배경 작업으로 다음 동작을 수행합니다. - 커널 스케줄링 함수들은 커널 타이머를 써서 프로세스를 제어합니다. - 시스템 시간은 타이머 인터럽트를 받아 주기적으로 갱신됩니다. - Soft IRQ 타이머 서비스를 주기적으로 실행해 동적 타이머를 관리합니다. 또한 리눅스 커널 세부 알고리즘과 디바이스 드라이버는 실행 시간을 기준으로 세부 제어를 합니다. 예시를 들면 다음과 같습니다. - 어떤 함수를 현재 시각 기준으로 200ms 초 후에 실행 - 어떤 함수가 500ms 내에 실행 안 하면 예외 처리 - 특정 함수를 1초 주기로 실행해서 시스템 상태를 점검 리눅스 커널이나 드라이버 코드를 분석하면 커널 타이머와 시간 흐름을 제어하는 코드를 만날..
[RISC-V] Privilege level(PL) 이란 Privilege Mode를 이해하려면 Privilege level(PL)의 개념을 먼저 알아야 합니다. Privilege Mode는 PL의 기반 위에서 정의했기 때문입니다.  Privilege level(PL) 사실 대부분 CPU 아키텍처에서 Privilege level(PL)를 정의합니다. Arm 아키텍처를 비롯한 인텔의 x86 아키텍처에서도 Privilege level이란 용어를 볼 수 있습니다. 그렇다면 Privilege level의 실체는 무엇일까요? 그 실체는 3가지로 분류할 수 있습니다:  메모리 공간 접근 권한 레지스터 접근 권한 명령어 접근 권한위에서 언급된 메모리 공간, 레지스터 및 명령어를 접근할 수 있는 권한 레벨을 부여할 수 있는데, 이것이 바로 Privilege level입니다...
[RISC-V] Privilege Mode(권한 모드)를 왜 잘 알아야 할까 RISC-V 프로세서와 관련된 세미나를 진행할 때 입문자들은 종종 다음과 같은 질문을 합니다. RISC-V 아키텍처에서 가장 중요한 기능이 무엇인가요? 이 질문에 저는 "RISC-V 아키텍처에서 정의된 권한 모드(Privilege Mode)가 가장 중요하다"라고 답합니다. 그 이유는 무엇일까요? 다음과 같이 요약할 수 있습니다.익셉션이 유발되면 권한 모드가 바뀌므로 익셉션의 동작 원리를 이해하려면 권한 모드를 알아야 한다.CSR(Control Status Regiser) 레지스터를 제대로 이해하려면 권한 모드를 알아야 한다.어셈블리 명령어의 동작 원리를 파악하려면 권한 모드를 알아야 한다.익셉션과 레지스터를 비롯한 RISC-V 아키텍처의 많은 기능은 권한 모드 기반 위에서 설계돼 있어 권한 모드를 이해하..
[리눅스커널] IRQ 스레드를 생성하는 시점 확인하기 이번 포스트에서는 IRQ 스레드를 생성하는 과정을 알아 봅시다.IRQ 스레드는 언제 생성할까?IRQ 스레드를 생성하기 위해서는 request_threaded_irq() 함수를 호출하면 됩니다.  IRQ 스레드를 생성하는 흐름도는 다음과 같습니다.   request_threaded_irq() 함수를 호출하면 다음 동작을 수행합니다.  - 전달한 IRQ 스레드 정보를 인터럽트 컨택스트에 설정  - kthread_create() 함수를 호출해서 IRQ 스레드 생성 kthread_create() 함수는 kthread_create_on_node() 함수로 치환됩니다. 위 그림에서 이해를 돕기 위해 kthread_create() 함수를 호출하면 kthread_create_on_node() 함수를 호출하는 것처럼 표..
[Arm프로세서] 트러스트존(TrustZone): 논 시큐어 월드와 시큐어 월드란 트러스트 존의 개념을 이해하려면 먼저 논시큐어 월드와 시큐어 월드의 개념을 알아야 합니다.  논 시큐어 월드란논 시큐어 월드는 무엇일까요? 일반적인 운영체제 커널이나 애플리케이션이 동작하는 실행 환경입니다.  [중요] 여기서 월드는 실행 환경 혹은 모드와 유사한 개념으로 사용됩니다. 보안 관점으로 논 시큐어 월드는 보안 수준이 낮아 해커의 공격을 당할 수 있는 실행 환경으로 볼 수 있습니다. 예를 들어 여러분이 사용하는 운영체제의 커널이나 애플리케이션은 논 시큐어 월드에서 실행됩니다. 그런데 여기까지 내용을 읽으면 논 시큐어 월드에서 실행되는 것이 구체적으로 무엇인지 감지 오지 않습니다. 이해를 돕기 위해 다음과 같은 예제 코드를 소개합니다. #include int main() { printf("h..
[Arm프로세서] 트러스트존(TrustZone)의 유래 트러스트존의 유래를 소개하려면 먼저 시스템의 공격을 방지하기 위한 시스템의 설계 과정에 대해 언급할 필요가 있습니다.  2000년 초부터 다양한 소프트웨어 기술들이 소개되고 발전되는데, 이에 비례해 해킹 기술이 업그레이드됩니다. 해커들이 다양한 소프트웨어 기법을 활용해 시스템을 공격하면서 해킹의 공격 루트가 다양해집니다. 애플리케이션에서 디바이스 드라이버 그리고 네트워트 패킷이나 서버를 통해 시스템을 침입하는 경로가 늘어난 것입니다.  많은 IT 업체들이 해킹으로 피해를 보면서 보안 수준이 높은 시스템 아키텍처의 필요성을 절감합니다.  그래서 IT업체들은 중요한 데이터를 암호화해서 저장하거나 해커의 공격으로 보호 받을 수 있게 시스템을 설계하게 됩니다. 고육지책으로 보안과 관련된 기능(Feature)를 ..
[Arm프로세서] GIC의 기본 구조 효율적으로 인터럽트를 설정 및 처리하기 위해 GIC를 사용합니다. GIC를 구성하는 하드웨어 블록을 제대로 이해하고 GIC에서 정의한 레지스터의 용도와 사용 방법만 익히면 됩니다.  GIC의 가장 중요한 기능은 무엇일까요? 이 질문에는 다음과 같이 답할 수 있습니다.    ● 인터럽트의 우선 순위를 각 I/O 장치에 적용해 설정   ● 입력으로 받은 인터럽트를 CPU에 전달 GIC는 인터럽트 콘트롤러이므로 GIC의 주된 기능은 다른 인터럽트 콘트롤러와 다르지 않습니다. 대신 GIC에서 인터럽트를 4가지로 분류해 관리합니다. 이어서 GIC에서 정의된 4가지 인터럽트 소스를 소개하고 인터럽트 상태 머신을 설명합니다.
[인프런-로드맵] '리눅스 커널의 구조와 원리' - 저자 직강 강의 그 동안 제가 쓴 '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' 책의 저자 직강 강의를 제작했는데요. 강의의 내용을 모아 로드맵으로 업로드했습니다. 현재 30% 할인 쿠폰이 적용되어 로드맵이 프로모션 중이니 참고하세요.로드맵 소개로드맵 이름과 관련 정보를 아래와 같습니다.시스템 소프트웨어 개발자를 위한 Linux kernel: basic course https://www.inflearn.com/roadmaps/1668  로드맵을 구성하고 있는 강의는 아래와 같습니다: 리눅스 소개와 리눅스 커널 Overview [저자직강 1부-1]    리눅스 커널의 구조와 원리: 디버깅 - Basic [저자 직강 1부-2] 리눅스 커널의 구조와 원리: 디버깅 - Advanced 실전 [저자 직강 1부-3] 리눅스 ..