[Linux][Kernel] irq - in_interrupt irq context
By Guillermo Austin Kim | 2017년 12월 3일 |
커널이나 드라이버 코드 리뷰를 하는 도중에 preempt_add, preempt_sub 그리고 in_interrupt 함수를 자주 마주칩니다. 이 함수들의 사용 예와 구현부에 대해서 좀 더 짚어 볼까요? 리눅스 커널에서 보는 모든 코드는 두 가지 모드에서 돌고 있어요.process context: 우리가 보는 대부분의 코드라고 할 수 있는데, 커널 쓰레드로 돌고 있는 상태죠.IRQ context: 어떤 디바이스던 인터럽트 전기 신호로 IRQ가 Trigger될 수 있어요. 그래서 해당 IRQ에 매핑되는 Interrupt Subroutine(ISR) 핸들러나 이 서브 루틴에서 돌고 있는 상태죠. 그럼 어떤 함수가 IRQ/process context인지는 어떻게 알 수 있을까요? 스스로 참 알기 어렵죠.이를
도커(Docker) 이미지를 다른 PC에 옮기기
By 반달가면 | 2020년 5월 12일 |
현재 PC에서 사용중인 도커(Docker) 이미지를 tar 파일로 저장해서 다른 PC로 옮길 수 있다. docker save 명령을 사용하면 된다. 예를 들어 도커 이미지 "ubuntu"를 ubuntu.docker_img.tar 파일로 저장하려면 터미널창에서 아래와 같이 작업할 수 있다. # 도커 이미지 목록 확인 sudo docker images # "ubuntu" 이미지를 ubuntu.docker_img.tar 파일로 저장 (docker save) sudo docker save -o ubuntu.docker_img.tar ubuntu 해당 tar 파일을 다른 PC로 옮긴 후, docker load 명령으로 tar 파일에 저장된 이미지를 추가하면 된다. # tar 파일에 저장된
운영체제의 개념 & 기능
By JH의 컴퓨터세상 | 2019년 10월 16일 |
운영체제의 개념 운영체제란 사용자가 컴퓨터 시스템을 손쉽게 사용할수있게 하고, 시스템자원을 효율적으로 관리할 수 있도록 하는 프로그램 집합 이다.운영체제에는 윈도우,리눅스,유닉스 등을 대표적으로 꼽을수 있다. 운영체제를 엄마라고 하고, 운영체제에서 실행되는 프로그램들을 자식이라고 하면, 아이는 배가 고프면 배가고프다, 더우면 덥다 이런식으로 표현한다. 운영체제는 아이를 돌보는 엄마처럼 프로그램들의 프로세스 생성과 메모리 접근 등에 대한 요구가 서로 충돌 없이 잘 실행되도록 곁에서 도와주는 역할을 한다. 운영체제의 기능일반 PC에는 사용자 명령 인터페이스를 기반으로 하여 메모리관리자, 프로세서관리자, 장치관리자, 파일관리자 등 4가지 서브 시스템관리자로 구성되어 있다. 그리고
리눅스 bash 스크립트에서 텍스트 파일을 읽어서 한 줄씩 배열(array) 원소로 할당하기 - 2 (readarray)
By 반달가면 | 2018년 10월 25일 |
bash 스크립트에서 텍스트 파일의 각 행을 배열(array)에 할당하는 방법을 예전에 기록해 두었었는데(여기에), 훨씬 더 간단하고 편리한 방법을 발견했다. 예전에 적었던 방법은 한줄씩 구분해서 할당하기 위해 내부 필드 구분자(internal field separator) 설정(변수 IFS)을 바꿔야 해서 귀찮았는데, readarray라는 명령을 이용하면 이런 과정이 필요 없다. # test.txt 파일을 읽어서 각 행을 배열 arr에 할당 readarray arr < test.txt # 첫번째 행 출력 echo "${arr[0]}" 리눅스 bash 스크립트의 배열에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로