[라즈베리파이][리눅스커널]인터럽트 컨택스트란 (1) #CS
By Guillermo Austin Kim | 2018년 3월 2일 |
인터럽트 컨택스트란인터럽트 컨택스트란 용어가 좀 낯설진 않나요? 그래서 인터럽트 컨택스트를 배우기 전에 우선 컨택스트란 용어를 배울 필요가 있습니다. 혹시 컨텍스트 스위칭이란 단어 들어보신 적이 있나요? 리눅스 커널에서 많이 쓰는 용어인데요. 어렵게 설명하면 컨텍스트란 현재 실행하고 있는 레지스터 묶음을 의미합니다. ARM 프로세스에서는 15개의 레지스터(r0부터 pc)가 있다고 알고 있죠? 이 레지스터 중에 현재 실행 중인 코드 주소를 담고 있는 pc(Program Counter)란 레지스터가 있는데요. 만약 현재 커널이 start_kernel이란 함수를 실행하고 있는데 이 함수의 주소가 0xC000D000이면 pc란 레지스터는 0xC000D000 주소를 담고 있습니다. 이렇게 PC 레지스터를 포함한
[라즈베리파이] 라즈비안(Raspbian) 리눅스 커널(LinuxKernel) 빌드하기
By Guillermo Austin Kim | 2019년 5월 14일 |
이번 절에서는 라즈베리파이에서 라즈비안 리눅스 커널 소스 코드를 내려받고 빌드하는 방법을 알아보겠습니다. 필자는 라즈베리파이를 쓸 때 다음 명령어로 root로 변경해 커널 빌드를 합니다.$ sudo su 명령어 입력 과정에서 불필요한 권한 설정을 피하기 위해서입니다. 라즈비안 커널 소스 코드 내려받기 리눅스 커널 소스 코드를 다운로드 받는 방법을 소개합니다. 다음 명령어를 입력하면 라즈비안 최신 커널 소스를 내려 받을 수 있습니다.git clone --depth=3000 위 명령어를 라즈베리파이 터미널에서 입력하면 다음 화면을 볼 수 있습니다.root@raspberrypi:/home/pi/RPi_kernel_src# git clone --depth=3000 into 'linux'...remote
윈도우에 대한 이해
By JH의 컴퓨터세상 | 2019년 10월 16일 |
![윈도우에 대한 이해](https://img.zoomtrend.com/2019/10/16/b0204135_5da6e18716864.png)
윈도우의 역사 1983년 3월 MS-DOS 2.0이 발표되고, 이때부터 하드 디스크를 여러개 장착할 수 있게 되었다. 그 후 윈도우는 계속 발전해 1985년 11월처음으로 윈도우 1.0이 발표됐다. 다중 처리 환경을 갖추고 작업 절차가 단수해졌으나, 안정성과 성능 문제로 별다른 주목을 받지 못했다.1987년 윈도우 2.0이 발표되자 DOS에서 설정한 기본 메모리인 640KB 이상의 프로그램이 생겨났다.1987년에 윈도우 386 버전이 나오고, 이것이 1990년에 발표된 윈도우 3.0의 기초가 되었다.윈도우 3.0은 안정성에 조금 문제가 있었으나 많은 인기를 끌었고, 1992년에 발표된 윈도우 3.1은 대부분 PC에 윈도우를 설치하는 등 인기를 끌었다.1993년에는 DO
[리눅스커널] 스케줄링: 스케줄링/디버깅: ftrace: sched_switch와 sched_wakeup 이벤트 소개
By Guillermo Austin Kim | 2019년 9월 15일 |
리눅스 커널 ftrace 에서 sched_switch와 sched_wakeup 이벤트를 지원합니다. 각각 이벤트에 대해 소개하고 메시지를 분석하는 방법을 살펴보겠습니다. 리눅스 커널의 프로세스 동작을 처음 접하는 분들이 겪는 어려움이 있습니다. 실제 리눅스 시스템에서 얼마나 자주 프로세스가 스케줄링 되는지 확인할 수 없다는 것입니다. 그 이유는 간단합니다. 코드를 분석한 내용을 실제 리눅스 시스템에서 확인하지 않기 때문입니다. 그래서 임베디드 리눅스를 개발할 때 모듈이나 드라이버 코드가 실행할 때 어떤 프로세스가 어떻게 스케줄링 되는지 확인하기도 어렵습니다. 리눅스 커널에서는 이런 의문을 해소시킬 수 있는 디버깅 기능을 지원합니다. 바로 ftrace입니다. ftrace 에는 프로세스