리눅스

포스트: 554|조회수: 0|TERM
Items

Posts

554 posts

임베디드 리눅스 개발자 양극화를 극복하는 방법: 리눅스 커널 메일링 리스트 활용

Guillermo Austin Kim|2019년 9월 21일

제가 올린 포스팅 중 생각지도 않게 조회수가 높은 글이 종종 있습니다. 그 중 하나는 다음 포스팅입니다.임베디드 개발자 양극화는 얼마나 심각할까? 댓글을 보면 알 수 있듯 많은 분들이 공감해주셨습니다. * 맞다! 임베디드 개발의 양극화는 정말 심하다! 이글을 올린 후 리눅스 세미나에서 다음과 같은 질문을 받았습니다. * 임베디드 개발의 양극화가 심하다는 것은 알겠다. * 그런데 그 해결책은 무엇이냐? 이 질문을 받고 바로 전 다음과 같이 대답을 했습니다. * 출간될 제 책을 사보세요. * 제 책이 임베디드 양극화의 Gap을 줄여 줄 수 있을 것이라 생각합니다. 농담 반, 진담 반으로 드렸던 대답이었습니다. 다시 생각을 해보니 정말 *헛소리*를 했단 생각이 듭니다.그래

[리눅스커널] 워크큐(workqueue): __queue_work() 함수 분석하기

Guillermo Austin Kim|2019년 9월 16일

워크를 워크큐에 큐잉하는 핵심 동작은 __queue_work() 함수에서 수행합니다. 코드 분석을 통해 워크를 워크큐에 어떤 방식으로 큐잉하는지 살펴보겠습니다. 코드 분석에 앞서 __queue_work() 함수 선언부와 인자를 점검합시다.static void __queue_work(int cpu, struct workqueue_struct *wq, struct work_struct *work); queue_work() 함수에서 첫 번째 인자로 WORK_CPU_UNBOUND, 두 번째 인자로 system_wq 를 전달했으니 cpu는 WORK_CPU_UNBOUND, wq는 system_wq 시스템 워크큐 전역 변수 주소입니다. 함수 인자 목록을 정리하면 다음과 같습니다. int cpu: WORK_CP

[리눅스커널] 워크큐(workqueue): 워크를 워크큐에 큐잉하는 인터페이스 함수 분석하기

Guillermo Austin Kim|2019년 9월 16일

커널은 디바이스 드라이버 레벨에서 워크큐를 큐잉할 수 있는 여러 가지 함수를 지원합니다.이번 시간에는 워크를 워크큐에 큐잉할 때 사용하는 함수를 소개하고 코드를 분석합니다.  schedule_work() queue_work() queue_work_on() 먼저 schedule_work() 함수를 분석해볼까요? schedule_work() 함수 분석하기 schedule_work() 함수 구현부 코드는 다음과 같습니다.[https://github.com/raspberrypi/linux/blob/rpi-4.19.y/include/linux/workqueue.h]1 static inline bool schedule_work(struct work_struct *work)2 {3 return queue_wo

blkid - 리눅스에서 연결(마운트)된 저장장치(파티션) 정보 표시

반달가면|2019년 9월 16일

blkid 명령으로 리눅스에서 현재 연결(마운트)된 저장장치(파티션, partition)에 관한 정보를 확인할 수 있다. 장치이름, 파일시스템 종류(type), 고유식별자(UUID) 등이 출력된다. 배포판에 따라서 해당 정보를 열람하려면 루트(root) 권한을 요구할 수도 있다. 일반 사용자 권한으로 실행했을 때 아무런 출력도 없다면 루트 권한으로 실행해 보자. # blkid 실행 sudo blkid /dev/sda1: LABEL="rootMX18.1" UUID="ef8a7380-6cc0-4bbd-aef2-b2617588e528" TYPE="ext4" PARTUUID="abb0a64f-01" 위의 예시를 보면, 장치는 /dev/sda1, 레이블(lable)은 "rootMX18.1", 고유