묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]
virtualization 예시
안녕하세요, virtualization hypervisor 도 보통 context switching 기능을 탑재하고 있나요? 자동차 쪽에서 많이 사용된다고 하는데, 어떻게 전환이 되는지 잘 연상이 안 되네요 계기판, 네비게이션 예시를 드셨는데, 계기판 같은 경우 RTOS 구현이 되게 되면 Virtualization context switching 기능이 있으면위험성이 있을 것 같습니다. 또 계기판 기능을 돌다가 네비게이션이 작동하면 계기판이 안돌아서 위험할 것 같은데요..
-
미해결Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]
exception handler
exception handler 는 어느 공간에서 실행될까?를 듣고 hypervisor, trusted zone 을 듣고 나니일단 process 가 EL0 에서 실행되고 있었을 때 에는 프로세스 공간에서 스택에 쌓아 나간다는 사실(이게 프로세스 스택인가요, 커널 스택인가요?)을 알았는데요, 이 때 과연 hypervisor , trusted zone 의 level EL2, EL3 에서는 어떻게 처리가 되는지? 궁금해졌습니다.EL0 -> EL1 의 흐름에서는 유저 프로세스 스택에서 다 담을 수 있다고 해도, EL1 이나 EL2, EL3 가 관여하게 되면 프로세스라는 개념이 사실 커널(EL1) 단에서 에러 처리한다는 개념하고는 조금 달라져야 할 것 같아서요,
-
미해결Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]
WFE, WFI, HVC
3가지 EL2 로 가는 instruction 이 있다고 했는데요,이 세 가지는 굳이 왜 나누었고,(찾아보니 이 질문은 동 강의 "트랩 명령어 질문" 에 나와 있네요)또 WFE, WFI 에 저전력 기능이 왜 같이 포함되어 있는지 궁금합니다.추가로 저전력모드가 hypervisor 모드 관련해서만 있는 것 같은데 하드웨어적으로 무슨 연관이 있는 건지.. 궁금합니다감사합니다.
-
미해결Arm 아키텍처: 가상화(Virtualization) [저자직강 3부-2]
virtualization
안녕하세요, 가상화에 대해서 질문이 있습니다. 가상화를 하드웨어 단에서 지원을 해준다는 것은, 여러가지 지원을 해준 다는 의미인 것 같습니다. hypervisor 에서 os 를 바꿀 때 각 os 별로 메모리 공간을 관리해주어야 하는 데, 각 os 는 다른 os 의 존재를 모를 테니 마치 context switching 하는 것 처럼 모든 os 의 정보를 백업하고 스위칭 해야 할 것 같은데요.. 이것을 hypervisor 에서 구현하고 있는지 궁금합니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
LDM
안녕하세요, ldm 명령어가 수업 중 몇번 등장하는데요,본론은, ldm r13, {r4, r5, r11, r13, pc}에서 r13위치 기준으로 쭉 읽어오는 것 같은데요, (맞겠죠?)이 명령어도 stack 의 pointer 를 바꾸는 것 같은데요, 그럼 사실상 POP 과 같은 명령어라고 보면 되는 건가요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
TRACE32 debugging
안녕하세요, TRACE32 Arm aapcs v7 practice 1 에서, PC 값을 push 하는 동작이 있는데요, 분명 0xc0253988 이었는데 어째서 stack 에 들어갈때는 0x0253990 으로 들어가나요? 감사합니다
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
interrupt service
안녕하세요, ARM architecture 와 동떨어질 수 도 있는 질문입니다..interrupt service routine 나 exception handler 는 user 가 직접 구현해야 하는 데요, 만약 리눅스를 설치한다고 했을 때, 리눅스에서 어디까지 제공해 주는 것인가요? 언급해주신 카메라 센서나, 터치 센서 같은 경우..ESR 에서 EC 가 어떻게 들어오는지는 모르겠지만, 유저가 직접 EC 를 보고 해석하는 코드를 짤 것 같지는 않아서요.arm architecture 의 exception handler 분기 후 리눅스와 유저가 어떻게 처리하는지 궁금해져서 질문드립니다감사합니다
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
vbar register
안녕하세요,vbar_el1 이 random 하게 부팅 때마다 정해진다고 하셨는데,Armv8 만의 특징인가요?Armv7 은 0xFFFF0000 이런 주소였던 것 같아요보안 이슈 때문에 매번 다르게 하는 건가요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
vbar register
안녕하세요,vbar_el1 이 random 하게 부팅 때마다 정해진다고 하셨는데,Armv8 만의 특징인가요? Armv7 은 0xFFFF0000 이런 주소였던 것 같아요보안 이슈 때문에 매번 다르게 하는 건가요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
System call register
system call register 로 쓰인다는 x8 의 경우는 arm architecture 호출 규약에 나와 있는 것인가요 아니면리눅스 커널에서 임의로 그렇게 정한 것인가요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
GIC programmer model
안녕하세요,memory mapped i/o 라는 것이msr 명령어를 통해 core 에서 특정 주소 값을 변경하면해당 gic 나 interface register 값을 변경할 수 있다는 뜻인가요?그리고 memory mapped 라는 것은 hardware 적으로 메모리 스토어만 하면 알아서 주변 gic 나 cpu interface 의 레지스터가 자동으로 바뀌게 되는 회로(메모리와 연결되는)가 있는 것인가요? (그리고 바뀌는 타이밍은 즉시 바뀌나요?)감사합니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
exception handler code
안녕하세요0xffffff8008082580: d53201f nop...이런 식의 exception handler 코드는 어디서 볼 수 있나요? 코딩-> 컴파일을 해서 나온 결과 인가요 아니면 저렇게 일일이 주소: 명령어 다 넣게 된 것인가요?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
arm mode
안녕하세요ARM 에서 sys mode 나 undef 모드나 이런 것들은virtual memory 를 사용하지 못할 것 같은데, (kernel 이 virtual memory를 지원할 것 같아서요)그러면 다른 모드는 physical memory 기반 assembly code 로 작성이 되나요?감사합니다
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
exception vector table
exception vector table 에서 명시된 주소 값은실제 physical memory 주소 인가요?그런데 physical memory 주소면 커널이 그 메모리에 들어간 함수를 어떻게 구현하게 되나요..?
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
exception 문제
같은 exception level 이나, exception 종류가 계속 연속해서 들어오게 되면 어떻게 처리가 되나요? spsr_mode 가 계속 덮어 씌워질 것 같아요
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
exception handler 구현
exception handler 는 소프트웨어 적으로 어떻게 구현이 이루어 지나요? exception vector 에 써진 주소값에 handler 를 넣어 주어야 할 것 같은데, 주소를 직접 넣어서 프로그래밍 할 수 있는 것인가요?
-
미해결Arm 아키텍처: 트러스트존(TrustZone) [저자직강 3부-1]
실제 활용 예시 코드 요청 합니다
안드로이드 어플리케이션 수준에서 직접 시큐어 모니터를 활욜한 apk을 작성하여 직접 디버깅하고, 유저 권한에서 어디까지 커널에 대한 활용이나 모니터 사용, 보호수준에 대해서 활용을 확인해 보고 싶습니다. 사용가능한 코드나 링크를 제공해주시면 학습에 더 큰 도움이 될거 같은데 자료가 있으면 제공해 주시면 감사하겠습니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
Exception Level 설정 관련 질문
안녕하세요! Exception Level 관련 질문이 있습니다. 질문) Exception Level을 프로그래머가 직접 설정하는 것인가요?Exception 발생하는 경우를 예시로H/W설계자가 결정 한 것VBAR 레지스터에 설정된 주소 + Offset 위치로 분기하도록 설계Exception 유발 직전 상태의 PSTATE값 백업PSATE 값 변경 : 현재 EL0인 경우 EL1로 변경ELR, ESR 업데이트 프로그래머가 설정하는 부분VBAR 레지스터의 값은 프로그래머가 미리 초기화Exception Vector 주소로 분기 한 경우, 어떻게 동작할지 코드 작성 → Exception Handler 작성결국 프로그래머가 Exception Handler를 작성하는 것으로 이해했는데, 프로그래머가 자신이 작성하는 코드의 Exception Level을 설정할 수 있나요?프로그래머가 작성하는 코드의 Exception Level이 어떻게 결정되는지 궁금합니다.
-
미해결시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 2부 저자 직강 (2024년 버전)
Current EL 관련 질문
안녕하세요! 우선 너무 좋은 강의 잘 보고 있습니다. 질문Current Exception Level 정의를 어떻게 내리는지 질문드립니다. 제가 처음에 이해하기로는 리눅스OS 위에서 User App이 실행 중 Exception이 발생했다면 Current El = EL0 라고 생각했습니다.하지만 강의를 듣다보니 Exception handler가 어느 EL에 정의 되어있는지에 따라 Current EL을 정의해야하는 것이라고 이해했는데,위와 같이 이해하면 문제가 없을까요?
-
미해결Arm 아키텍처: 트러스트존(TrustZone) [저자직강 3부-1]
강의자료 관련 문의
안녕하세요 강사님. Arm 아키텍쳐 및 리눅스 커널 관련 로드맵을 수강 중인 학생입니다. Advanced 과정에 해당 하는 내용에 대한 강의자료 업로드를 부탁드려도 될 지 궁금해서 질문드립니다. 항상 유익한 강의 감사합니다 :)