묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨한국에서 제일 쉬운 리눅스 커널 강의
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)
-
해결됨한국에서 제일 쉬운 리눅스 커널 강의
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)
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
개발자 준비중인데 괜찮을까요
퍼블리셔로 일하며 프론트개발자로 성장하고싶어서 공부중인데 아는 언어라곤 html, css, javascript인데 이 교재와 강의를 듣는게 어렵진 않을까요?!
-
미해결운영체제 공룡책 강의
운영체제 공룡책 사려고하는데 원서랑 번역본 중에 어느걸 더 추천하시나요?
운영체제 공룡책 사려고하는데 원서랑 번역본 중에 어느걸 더 추천하시나요?
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
전략 패턴과 팩토리패턴
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 소셜 로그인 기능을 구현할 때 팩토리 메서드 패턴으로도 구현이 가능한지 궁금합니다. 쿼리파라미터로 어떤 provider(kakao, naver 등)가 들어오는지에 따라 그에 맞는 서비스(KakaoLoginService, NaverLoginService)를 호출하고 싶은데 전략 패턴이 아닌 팩토리 메서드 패턴으로도 이런 형태의 구현이을 하는지 궁금합니다.
-
미해결그림으로 쉽게 배우는 운영체제
완강을 해보니 오히려 더 궁금한게 많아지네요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 커널의 실체가 뭔지, 커널모드, 유저모드, 커널스레드, 유저스레드 가 뭔가 서로 연관관계가 있어 어떻게 유기적으로 동작하는지 한 사이클이 궁금하네요 유저스레드는 시스템콜이 발생하면 블러킹이 되는데 이를 피하기 위한 방법이 여러가지가 있을 텐데 이에 대해 좀 더 알고 싶네요. 이를 따로 공부할 수 있을 만한 교재나 키워드 부탁드려요.
-
미해결그림으로 쉽게 배우는 운영체제
파일디스크립터 질문드려요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 여러 프로세스 혹은 스레드가 동일한 파일에 접근하면 같은 내용의 디스크립터가 반환되나요? 현재 다른 스레드(프로세스가) 같은 파일을 열고 있다는 메타데이터는 어디에서 관리되나요? 그리고 파일을 동시에 접근 제어 할 수 있는 방법은 유저스레드에서 뮤텍스나 세마포어나 락 설정 외에 커널에서 제공하는 방법이 있나요?
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
오퍼랜드 필드로 표현할 수 있는 데이터 크기 문의
안녕하세요강의 잘 듣고 있습니다. 좋은 강의에 감사합드립니다.9강의 듣던 중 궁금한 것이 있어 문의 드립니다.오퍼랜드에 데이터를 직접 표현 하는 것보다 주소를 명시하는 것이 더 많은 데이터를 저장할 수 있다고 설명해주셨는데화면에서는 동일한게 10번지 영역이 12~8사이로 4비트인데왜 데이터 직접표현에서는 2의4이고 데이터 주소명시에서는 2의16으로 계산하는지 이해가 안됩니다데이터 주소명시에서도 여러 데이터의 주소를 명시하는 경우라면 제한 된 데이터 공간에서 결국 주소를 명시할 수 있는 공간은 작아져서 표현할 수 있는 데이터 크기가 줄어드는 것이 같은 거 아닌지도 궁금합니다.
-
해결됨개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
RETURN 과 RET 의 차이
우선 강의 잘 듣고 있다는 말씀 드리고 싶습니다. 다름이 아니라 강의에서 나오는 RETURN 이 RET 을 의미하는것일까요? 오래되서 가물가물하긴 하지만 mov esp, ebppop ebp 로 스택 프레임을 정리하고 ret 을 호출하여 EIP 에 복귀 주소를 로딩시키는것과 동일하다는 것으로 볼 수 있는건가요? 공부하면서 어쌤블리에 따로 RETURN 이 존재하지 않았던것으로 기억해서 질문드립니다!
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
파일 시스템 관련 질문입니다.
강의에서 모든 파일 시스템의 종류들은 다 FAT형식을 기본으로 갖는다고 하셨는데 검색해보니까 FAT도 한 종류의 파일시스템일 뿐이고 NTFS나 EXT 같은 종류의 파일 시스템은 각자 다른 방식으로 파일을 관리한다고 나와서요 그냥 기본적으로 FAT형식을 기반으로 발전시킨것들이다라고 이해해야할까요?다른 종류의 파일 시스템들도 0번 트랙, 0번 섹터의 MBR을 다 가지고 있는건가요?
-
미해결FreeRTOS 프로그래밍
TaskDelay와 printf 순서
1번 실습 파일에 printf 를 찍을 때 vTaskDelay를 하고나서 왜 Printf를 찍나여? 뭔가 의미상으론 태스크가 할일(Printf 찍는 것)을 하고 Delay에 빠지는게 맞는 것 같은데 왜 TaskDelay 이후에 printf를 찍는 지 궁금합니다. vTaskDelay (pdMS_TO_TICKS (1000)); // 스스로 휴면상태에 들어감 Blocked로 다시 1000ms 후running printf("b"); fflush(stdout); // 문자 'a' 출력
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
디자인패턴 질문
안녕하세요 큰돌님!무지몽매한 질문을 드리게 안타깝습니다.혹시 프론트엔드 3년차 기반으로 디자인 패턴을 면접에서 중요하게 생각할까요?시간을 단축하고자네트워크 -> 자료구조 -> 데이터베이스 -> 운영체제 순으로 강의를 듣고 있는데 디자인패턴의 우선순위를 어디에 넣으면 될지? 궁금합니다..!
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
노션
안녕하세요 전자책 노션 보고싶어서 요청드리려 질문글 올리게 되었습니다 phm6318@sookmyung.ac.kr로 추가해주시면 감사하겠습니다!
-
미해결리눅스 커널의 구조와 원리: 디버깅 - Basic [저자 직강 1부-2]
학습 순서에 대한 질문입니다.
안녕하세요 저는 Windows x86 x64 환경에서만 리버싱을 하다 ARM 아키텍처와 리눅스에 대해서도 한번 공부를 해보고 싶은 평범한 직장인입니다. 우선 좋은 강의를 제공해주셔서 정말 감사드립니다. 제가 궁금한 점은 우선 개발자님께서 제공해주시는 커리큘럼이 총 3개가 존재하는데시스템 소프트웨어 개발자를 위한 Arm - basic course시스템 소프트웨어 개발자를 위한 Arm - advanced course시스템 소프트웨어 개발자를 위한 Linux kernel - basic course우선 제가 궁금한 점은 Linux kernel 강의가 ARMV8 아키텍처 위에서 진행되는 강의다 보니 먼저 ARM basic 과 ARM advanced 코스를 공부한 후 Linux kernel 강의를 들어야 하는지 아니면 같이 공부를 해도 수강하는데 문제가 없는지 궁금합니다. 그리고 추가적으로 궁금한 점은 개발자님께서 출간하신 Linux kernel 책 2권의 내용은 아직 강의로 제공되지 않는 것 같은데 ARM 강의와 마찬가지로 Linux kernel advanced 로 후반부의 내용을 강의로 제공하실 계획이 있으신지 궁금합니다. 감사합니다!
-
미해결개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
메모리맵 입출력과 고립형 입출력의 물리적 차이가 이게 맞나요?
"메모리 맵 입출력은 메모리에 접근하기 위한 주소공간과 입출력 장치에 접근하기 위한 주소공간을 하나의 주소공간으로 간주하는 방법입니다." 는 한마디로 같는 램 안에 섞여잇단 말씀인가요? 예시로 1024개의 주소를 나타내는 램에 반은 일반적인 메모리를 위해, 반은 입출력장치를 위해 사용된다는 말씀인가요?그렇다면 고립형 입출력에서 메모리에도 1024, 입출력장치도 1024개의 주소를 사용할수 잇다는 말씀은...램이 두배로 증가한것도 아닐테고...메모리를 위한 주소공간은 램에 표현되고 입출력장치를 위한 주소공간은 입출력장치 내의 레지스터나 입출력장치내의 램을 뜻하는게 맞을까요?좀 두서없어서 죄송합니다...정리하자면 메모리맵 입출력에서 메모리를 위한 주소공간과 입출력을 위한 주소공간은 램에 존재하는 것이고 고립형 입출력에서 메모리를 위한 주소공간은 램에, 입출력장치를 위한 주소공간은 장치 컨트롤러 내의 기억장치에 존재하는 것..이 맞을까요?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
2 정규화에 대해 질문 있습니다.
강의에서 보여주신 예제에서 2 정규형을 하게 되면 할인율은 기본키에 완전 함수 종속이 아니여서 빠져야 하는것 아닌가요?
-
미해결FreeRTOS 프로그래밍
섹션3 포팅 실습
강의와 다르게 아래와 같이 IOC와 프로젝트가 따로 되는데 이게 맞는지 궁금합니다. (강의에서는 IOC 에서 소스가 생성된 것으로 보였습니다)물론 LED 깜빡거리는 건 가능합니다.
-
미해결FreeRTOS 프로그래밍
질문있습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. TASKMAN 에서 ioc파일에서 몇개의 입출력을 건들면 바로 테스크1만 실행이 됩니다이 코드가 추가되는거 같아서 수정했는데도 이러네요 ㅜㅜ
-
해결됨실리콘밸리 엔지니어와 함께하는 리눅스 실전
Dockerfile compose build 에러
안녕하세요.ubuntu:24.10 버전으로 강의를 들었었습니다.그리고 지금 현재 ros2를 사용해야해서, 22.04버전으로 다운그레이드하려고합니다.이 것이 현제 제 Dockerfile인데, docker-compose build --no-cache를 할 때 이런 에러가 납니다.
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
자료 구조
- 선생님 수업 중에 자료구조를 꼭 공부하라 하셨는데요.선생님 수업 중에 추천할 만한 강의 있나요? 아님 책으로라도요. 자료 구조를 심도있게 공부해 보고 싶습니다.