[리눅스커널] 워크큐(Workqueue) - 딜레이워크(delayed_work)는 어떻게 실행하나?
By Guillermo Austin Kim | 2018년 9월 26일 |
딜레이 워크를 실행하려면 어떤 함수를 호출해야 할까요? schedule_delayed_work() 함수를 실행하면 됩니다. 먼저 딜레이 워크를 실행하는 드라이버 코드를 예제로 열어 보겠습니다.[https://elixir.bootlin.com/linux/v4.14.43/source/drivers/mmc/host/bcm2835.c#L651]1 static2 bool bcm2835_send_command(struct bcm2835_host *host, struct mmc_command *cmd)3 {...3 if (!cmd->data && cmd->busy_timeout > 9000)4 timeout = DIV_ROUND_UP(cmd->busy_timeout, 1000) *
vmalloc - overview(1)
By Guillermo Austin Kim | 2017년 12월 6일 |
vmalloc에 대해서 리뷰를 해보려고 합니다.vmalloc이라. 이 놈도 리눅스 커널 책에서 엄청나게 많이 소개가 되고 있죠. 너무나도 좋은 글들이 있지만 vmlloc을 쓸 때를 허접하게 요약하면 아래와 같아요.1> 물리적으로 연속적이지 않은 메모리를 할당하고 싶을 때.2> 큰 사이즈의 가상 메모리 공간을 확보하고 싶을 때. 흠냐. 이게 뭔 소리지? 사실 전 머리 속에 개념이 잘 안 들어오더라구요.자, 코드 좀 살펴볼께요. 우선 vmalloc을 관리하는 핵심 변수를 소개하자면 vmap_area_list 이 분들 소개 안 할 수 없네요.LIST_HEAD(vmap_area_list); vmap을 관리하는 링크드 리스트가 vmap_area_list인데요, __insert_vmap_area 함수
리눅스(Linux) 파일관리
By JH의 컴퓨터세상 | 2019년 10월 15일 |
퍼미션(Permission) 1. r(read)읽기 8진수로 4: 파일을 읽을 수 있고, 디렉토리의 내용을 볼 수 있다. 2. w(write)쓰기 8진수로 2 : 파일에 저장 및 삭제, 디렉토리에 파일저장, 디렉토리의 이름 변경, 삭제를 할 수 있다. 3. x(excute)실행 8진수로 1: 파일을 실행, 디렉토리 access 가 가능하다.[lee@river lee]$ ls -l /etc/passwd -rw-r--r-- 1 root root 3197 5월 4 12:57 /etc/passwd 여기서 첫 번째의 root 는 이 파일에 대한 소유자를 뜻한다. 두 번째 root 이 파일에 대한 소유그룹을 뜻한다..[lee@river lee]$ groups lee bin
[라즈베리파이] 시스템 콜 - 시스템 콜 핸들러는 어떤 동작을 할까?
By Guillermo Austin Kim | 2018년 11월 22일 |
유저 공간에서 시스템 콜을 발생하면 커널 공간으로 모드가 스위칭된 다음 vector_swi 이란 소프트웨어 인터럽트 벡터를 실행하는 부분까지 살펴봤습니다. vector_swi 레이블에서 시스템 콜 테이블에 접근해서 시스템 콜 핸들러를 호출합니다. 시스템 콜 핸들러에서는 어떤 동작을 수행할까요?시스템 콜 핸들러는 시스템 콜 종류에 따른 처리를 합니다. 가상 파일 시스템 계층에 접근하거나 프로세스 관리 함수를 실행하는 것입니다. 하지만 시스템 콜 핸들러에서 공통으로 처리하는 패턴이 있습니다. 그것은 시스템 콜 핸들러 함수 인자로 전달된 인자를 점검하는 예외 처리 루틴입니다. 다음 시간에서는 시스템 콜 핸들러에서 매개 인자를 점검하는 코드를 살펴보겠습니다.