inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

virtualization 예시

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

안녕하세요, virtualization hypervisor 도 보통 context switching 기능을 탑재하고 있나요? 자동차 쪽에서 많이 사용된다고 하는데, 어떻게 전환이 되는지 잘 연상이 안 되네요 계기판, 네비게이션 예시를 드셨는데, 계기판 같은 경우 RTOS 구현이 되게 되면 Virtualization context switching 기능이 있으면 위험성이 있을 것 같습니다. 또 계기판 기능을 돌다가 네비게이션이 작동하면 계기판이 안돌아서 위험할 것 같은데요..

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
platf 댓글 2 좋아요 0 조회수 132

exception handler

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

exception handler 는 어느 공간에서 실행될까? 를 듣고 hypervisor, trusted zone 을 듣고 나니 일단 process 가 EL0 에서 실행되고 있었을 때 에는 프로세스 공간에서 스택에 쌓아 나간다는 사실(이게 프로세스 스택인가요, 커널 스택인가요?)을 알았는데요, 이 때 과연 hypervisor , trusted zone 의 level EL2, EL3 에서는 어떻게 처리가 되는지? 궁금해졌습니다. EL0 -> EL1 의 흐름에서는 유저 프로세스 스택에서 다 담을 수 있다고 해도, EL1 이나 EL2, EL3 가 관여하게 되면 프로세스라는 개념이 사실 커널(EL1) 단에서 에러 처리한다는 개념하고는 조금 달라져야 할 것 같아서요,

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
platf 댓글 1 좋아요 0 조회수 119

WFE, WFI, HVC

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

3가지 EL2 로 가는 instruction 이 있다고 했는데요, 이 세 가지는 굳이 왜 나누었고, (찾아보니 이 질문은 동 강의 "트랩 명령어 질문" 에 나와 있네요) 또 WFE, WFI 에 저전력 기능이 왜 같이 포함되어 있는지 궁금합니다. 추가로 저전력모드가 hypervisor 모드 관련해서만 있는 것 같은데 하드웨어적으로 무슨 연관이 있는 건지.. 궁금합니다 감사합니다.

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
platf 댓글 1 좋아요 0 조회수 129

virtualization

미해결

Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]

안녕하세요, 가상화에 대해서 질문이 있습니다. 가상화를 하드웨어 단에서 지원을 해준다는 것은, 여러가지 지원을 해준 다는 의미인 것 같습니다. hypervisor 에서 os 를 바꿀 때 각 os 별로 메모리 공간을 관리해주어야 하는 데, 각 os 는 다른 os 의 존재를 모를 테니 마치 context switching 하는 것 처럼 모든 os 의 정보를 백업하고 스위칭 해야 할 것 같은데요.. 이것을 hypervisor 에서 구현하고 있는지 궁금합니다.

  • 가상화
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • xen
  • hypervisor
  • armv8
platf 댓글 1 좋아요 0 조회수 81

current 매크로를 이용할때 sp_el0 를 활용하는 이유

해결됨

한국에서 제일 쉬운 리눅스 커널 강의

안녕하세요. 좋은강의 감사합니다. 설명해주신대로 코드를 보면 sp_el0 를 이용해서 current 주소를 얻어온다는것을 이해할 수 있었습니다. 그런데 문득 sp_el1 도 있을텐데 왜 sp_el0 를 활용한건지 궁금합니다. sp_el0 는 user process 들이 활용하는 sp 이고 sp_el1 은 kernel process 들이 활용하는 sp 로 알고 있는데 요, 그런용도가 아니라 그냥 sp_el0 를 모든 process 의 task_struct 의 시작주소를 저장하는 용도로 활용하는걸까요? <arch/arm64/include/asm/current.h> 15 static __always_inline struct task_struct *get_current(void) 16 { 17 unsigned long sp_el0; 18 19 asm ("mrs %0, sp_el0" : "=r" (sp_el0)); 20 21 return (struct task_struct *)sp_el0; 22 } <arch/arm64/kernel/entry.S> 829 SYM_FUNC_START(cpu_switch_to) 830 mov x10, #THREAD_CPU_CONTEXT 831 add x8, x0, x10 832 mov x9, sp 833 stp x19, x20, [x8], #16 // store callee-saved registers 834 stp x21, x22, [x8], #16 835 stp x23, x24, [x8], #16 836 stp x25, x26, [x8], #16 837 stp x27, x28, [x8], #16 838 stp x29, x9, [x8], #16 839 str lr, [x8] 840 add x8, x1, x10 841 ldp x19, x20, [x8], #16 // restore callee-saved registers 842 ldp x21, x22, [x8], #16 843 ldp x23, x24, [x8], #16 844 ldp x25, x26, [x8], #16 845 ldp x27, x28, [x8], #16 846 ldp x29, x9, [x8], #16 847 ldr lr, [x8] 848 mov sp, x9 849 msr sp_el0, x1 850 ptrauth_keys_install_kernel x1, x8, x9, x10 851 scs_save x0 852 scs_load_current 853 ret 854 SYM_FUNC_END(cpu_switch_to) 855 NOKPROBE(cpu_switch_to)

  • c
  • linux
  • Raspberry-Pi
  • 운영체제
  • arm-architecture
  • asm
ym0914 댓글 2 좋아요 0 조회수 236

context switching 을 할때 수행되는 asm 코드 관련 문의 드립니다.

해결됨

한국에서 제일 쉬운 리눅스 커널 강의

안녕하세요. 강의 잘 보고 있습니다. 어리석은 질문일수도 있습니다만 문득 든 생각이라 여쭤봅니다. X0 ~ X18 은 저장 및 복원 하지 않고, X19~X29, SP, LR 만 복원하는 이유가 있을까요? 829 SYM_FUNC_START(cpu_switch_to) 830 mov x10, #THREAD_CPU_CONTEXT 831 add x8, x0, x10 832 mov x9, sp 833 stp x19, x20, [x8], #16 // store callee-saved registers 834 stp x21, x22, [x8], #16 835 stp x23, x24, [x8], #16 836 stp x25, x26, [x8], #16 837 stp x27, x28, [x8], #16 838 stp x29, x9, [x8], #16 839 str lr, [x8] 840 add x8, x1, x10 841 ldp x19, x20, [x8], #16 // restore callee-saved registers 842 ldp x21, x22, [x8], #16 843 ldp x23, x24, [x8], #16 844 ldp x25, x26, [x8], #16 845 ldp x27, x28, [x8], #16 846 ldp x29, x9, [x8], #16 847 ldr lr, [x8] 848 mov sp, x9 849 msr sp_el0, x1 850 ptrauth_keys_install_kernel x1, x8, x9, x10 851 scs_save x0 852 scs_load_current 853 ret 854 SYM_FUNC_END(cpu_switch_to) 855 NOKPROBE(cpu_switch_to)

  • c
  • linux
  • Raspberry-Pi
  • 운영체제
  • arm-architecture
  • asm
ym0914 댓글 3 좋아요 0 조회수 200

LDM

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

안녕하세요, ldm 명령어가 수업 중 몇번 등장하는데요, 본론은, ldm r13, {r4, r5, r11, r13, pc} 에서 r13위치 기준으로 쭉 읽어오는 것 같은데요, (맞겠죠?) 이 명령어도 stack 의 pointer 를 바꾸는 것 같은데요 , 그럼 사실상 POP 과 같은 명령어라고 보면 되는 건가요?

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 1 좋아요 0 조회수 112

TRACE32 debugging

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

안녕하세요, TRACE32 Arm aapcs v7 practice 1 에서, PC 값을 push 하는 동작이 있는데요, 분명 0xc0253988 이었는데 어째서 stack 에 들어갈때는 0x0253990 으로 들어가나요? 감사합니다

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 1 좋아요 0 조회수 121

interrupt service

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

안녕하세요, ARM architecture 와 동떨어질 수 도 있는 질문입니다.. interrupt service routine 나 exception handler 는 user 가 직접 구현해야 하는 데요, 만약 리눅스를 설치한다고 했을 때, 리눅스에서 어디까지 제공해 주는 것인가요? 언급해주신 카메라 센서나, 터치 센서 같은 경우.. ESR 에서 EC 가 어떻게 들어오는지는 모르겠지만, 유저가 직접 EC 를 보고 해석하는 코드를 짤 것 같지는 않아서요. arm architecture 의 exception handler 분기 후 리눅스와 유저가 어떻게 처리하는지 궁금해져서 질문드립니다 감사합니다

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 2 좋아요 0 조회수 115

vbar register

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

안녕하세요, vbar_el1 이 random 하게 부팅 때마다 정해진다고 하셨는데, Armv8 만의 특징인가요? Armv7 은 0xFFFF0000 이런 주소였던 것 같아요 보안 이슈 때문에 매번 다르게 하는 건가요?

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 1 좋아요 0 조회수 75

vbar register

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

안녕하세요, vbar_el1 이 random 하게 부팅 때마다 정해진다고 하셨는데, Armv8 만의 특징인가요? Armv7 은 0xFFFF0000 이런 주소였던 것 같아요 보안 이슈 때문에 매번 다르게 하는 건가요?

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 2 좋아요 0 조회수 83

학습 진행 시, 사용하는 Board에 대한 문의 드립니다!

미해결

ARM Cortex-M 프로세서 프로그래밍

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 선생님! 이번에 ARM Cortex-M 강의를 수강하고자 합니다. 수업에 들어가기에 앞서 한가지 궁금한 점이 있어 문의 드립니다. 제가 현재 가지고 있는 STM32 보드는, STM32F769I - Discovery Board 인데, 선생님께서 강의해서 사용하시는 보드는 STM32F429I-DISCOVERY Board와 종류가 다른데, 혹시 수업 진도를 따라가는데 큰 제약이 있을까 해서 여쭤봅니다. 제가 가지고 있는 769I Board로 그대로 진행해도 괜찮을까요?

  • 임베디드
  • arm-architecture
  • cortex
황동빈 댓글 2 좋아요 0 조회수 176

System call register

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

system call register 로 쓰인다는 x8 의 경우는 arm architecture 호출 규약에 나와 있는 것인가요 아니면 리눅스 커널에서 임의로 그렇게 정한 것인가요?

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 2 좋아요 0 조회수 94

GIC programmer model

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

안녕하세요, memory mapped i/o 라는 것이 msr 명령어를 통해 core 에서 특정 주소 값을 변경하면 해당 gic 나 interface register 값을 변경할 수 있다는 뜻인가요? 그리고 memory mapped 라는 것은 hardware 적으로 메모리 스토어만 하면 알아서 주변 gic 나 cpu interface 의 레지스터가 자동으로 바뀌게 되는 회로(메모리와 연결되는)가 있는 것인가요? (그리고 바뀌는 타이밍은 즉시 바뀌나요?) 감사합니다.

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 1 좋아요 0 조회수 128

exception handler code

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

안녕하세요 0xffffff8008082580: d53201f nop ... 이런 식의 exception handler 코드는 어디서 볼 수 있나요? 코딩-> 컴파일을 해서 나온 결과 인가요 아니면 저렇게 일일이 주소: 명령어 다 넣게 된 것인가요?

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 2 좋아요 0 조회수 110

arm mode

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

안녕하세요 ARM 에서 sys mode 나 undef 모드나 이런 것들은 virtual memory 를 사용하지 못할 것 같은데, (kernel 이 virtual memory를 지원할 것 같아서요) 그러면 다른 모드는 physical memory 기반 assembly code 로 작성이 되나요? 감사합니다

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 2 좋아요 0 조회수 141

exception vector table

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

exception vector table 에서 명시된 주소 값은 실제 physical memory 주소 인가요? 그런데 physical memory 주소면 커널이 그 메모리에 들어간 함수를 어떻게 구현하게 되나요..?

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 1 좋아요 0 조회수 100

exception 문제

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

같은 exception level 이나, exception 종류가 계속 연속해서 들어오게 되면 어떻게 처리가 되나요? spsr_mode 가 계속 덮어 씌워질 것 같아요

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 1 좋아요 0 조회수 106

리눅스 커널 동작 모드별 스택 포인터 초기화

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부 저자 직강 (2024년 버전)

동작 모드를 변경하는 어셈블리 명령어 부분에서 sp를 모드 별로 초기화 해 주는 데요, 이게 부트 로딩 과정에서 모드 별로 실제 physical memory 를 모드별 스택으로 나누는 과정인가요? 그리고 모드별로 아예 physical memory를 따로 쓰게 되는 것인가요? 그리고 모드별로 #0 #12 .. 이렇게 작게 스택을 지정하는 것 같은데.. 너무 작지 않나 하는 생각이 듭니다. 뭔가 잘못 이해하고 있는 것 같습니다. 정정 부탁드립니다

  • 임베디드
  • arm-architecture
  • microprocessors
  • cortex-a
platform01 댓글 2 좋아요 0 조회수 202

exception handler 구현

미해결

시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)

exception handler 는 소프트웨어 적으로 어떻게 구현이 이루어 지나요? exception vector 에 써진 주소값에 handler 를 넣어 주어야 할 것 같은데, 주소를 직접 넣어서 프로그래밍 할 수 있는 것인가요?

  • 임베디드
  • arm-architecture
  • 하드웨어-해킹
  • cpu-architecture
  • armv7
  • armv8
  • cortex-a
platformpjt02 댓글 2 좋아요 0 조회수 126

인기 태그

인프런 TOP Writers

주간 인기글