[라즈베리파이] 시스템 콜 - 소프트웨어 인터럽트란
By Guillermo Austin Kim | 2018년 11월 8일 |
소프트웨어 인터럽트를 한 문장으로 정의해 봅시다. 소프트웨어 인터럽트는 인터럽트가 아닙니다. 인터럽트는 하드웨어서 올려주는 전기 신호로 언제 발생할지 모르는 비동기적인 이벤트이나 통지입니다. 그런데 소프트웨어 인터럽트는 ARM 프로세서에서 제공하는 “svc” 어셈블리 명령어를 실행하면 동작합니다. 소프트웨어 인터럽트를 발생하는 주체는 소프트웨어 관점으로 프로세스입니다. 소프트웨어 인터럽트란 용어의 인터럽트는 하드웨어 디바이스에서 비동기적으로 전달하는 신호는 아닙니다. 실제 인터럽트가 발생하면 ARM 프로세서는 인터럽트를 익셉션의 한 종류로 처리합니다. 리눅스 커널에서 다음은 같이 동작합니다.1. 익셉션 발생(인터럽트는 비동기적인 신호)2. 익셉션 벡터로 ARM 프로그램 카운터를 이동3. 익셉션 벡터에서
[ARM] ARM 프로세서의 역사
By Guillermo Austin Kim | 2020년 9월 17일 |
ARM은 회사 이름이기도 하고 x86와 같은 CPU 아키텍처의 이름입니다. 이번 절에서는 ARM의 역사에 대해 소개합니다. ARM사는 에이콘에서 유래됐는데요. 아래 순서로 ARM의 역사에 대해서 살펴보겠습니다. ● 에이콘의 설립 ● 조인트 벤처로 ARM사의 탄생 ● 2010년 모바일 시장 석권 에이콘의 설립 1978년 영국 캠브리지에서 크리스 커리와 헤르만 하우저가 에이콘 컴퓨터라는 회사를 세웁니다. 마이크로프로세서 기반의 시스템을 개발하는 것이 주된 미션인데 6502 프로세서를 탑재해 컴퓨터 시스템을 개발합니다. '에이콘'사는 컴퓨터 제품을 꾸준히 개발했는데, 1983년 'BBC 마이크로'란 프로젝트로 '에이콘'은 입지를 다지게 됩니다. 'BBC 마이크
[리눅스커널] 인터럽트: ftrace와 커널 로그로 인터럽트 컨텍스트 확인해보기
By Guillermo Austin Kim | 2020년 3월 2일 |
이번 절에서는 ftrace 로그를 분석하면서 커널이 인터럽트를 어떻게 처리하는지 알아봅시다. 리눅스 커널에서 커널 동작을 가장 정밀하게 담고 있는 로그는 뭘까요? 아마 많은 리눅스 전문가들은 ftrace라고 대답할 겁니다. ftrace는 리눅스 커널에서 제공하는 가장 강력한 디버그 로그입니다. 리눅스 커널의 공식 트레이서이기도 합니다. 여러분도 ftrace 로그를 자주 활용해서 리눅스 커널을 익히기를 바랍니다. ftrace로 인터럽트를 처리하는 인터럽트 핸들러 함수에 필터를 걸고 콜 스택 로그를 받아 보겠습니다. 인터럽트 동작을 확인하기 위한 ftrace 설정 ftrace로 인터럽트의 동작 방식을 분석하기 전에 ftrace를 설정하는 방법을 소개합니다. 먼저 다음 명령어를 입력해 봅시다. #!/
2020년에 거치형 네비를 새로 사다
By eggry.lab | 2020년 10월 17일 |
10월 말 쯤 자칭 그랜드투어를 계획하고 있습니다. 혹시나 해외여행이 가능하진 않을까 아껴뒀던 연차도 슬슬 포기하고 써야할 때가 되서, 겸사겸사 부모님도 뵙고 로드트립이나 할 생각입니다. 계획은 경기도에서 출발해 속초를 최북단으로 부산까지 남하, 그리고 다시 목포를 거쳐서 올라오는 것입니다. 물론 중간중간 들를 곳들도 있긴 하죠. 그래서 자동차 쪽으로 이것저것 살펴보고 있는데, 출고하고 한번도 건드리지 않았던 부분들도 좀 손을 봤습니다. 엔진오일 뭐 이런 거야 꾸준히 하고 있었지만... 작년에 타이어를 한짝 바꿨는데, 이번에 한짝 추가로 해서 대충 1년 터울로 모든 타이어가 9년만에(!) 교체됐습니다. 생각해보면 좀 심하긴 하네요;; 관심사가 관심사인지라 타이어의 중요성은 익히 아는데 그