본문 바로가기

분류 전체보기46

블루투스 송신기 : 아반트리 프리바2(Priva2) 리뷰 아이가 자는 시간에 TV를 시청하다 보면, TV 소리에 아이가 깰까봐 편안하게 TV를 보는 것이 힘들다. 그래서 TV의 음성을 블루투스 이어폰으로 전송할 수 있는 블루투스 송신기를 검색하였다. 불루투스 송신기(Booltooth Transmitter)란?블루투스송신기란 블루투스 기능을 지원하지 않는 기기(TV,스마트빔,노트북,컴퓨터 등)음원을 블루투스 이어폰,헤드폰,스피커로 전송해주는 역할을 하는 기기로서, 3.5mm AUX단자나 RCA 케이블을 연결하는 것만으로 그 즉시 사용 가능한 것이 특징이다. (출처 : http://www.datanews.co.kr/news/article.html?no=89103) 그렇다면 많고 많은 송신기 중에서 현재 나에게 필요한 블루투스 송신기란 무엇일까~? 그 대상을 한정 .. 2018. 1. 12.
iSCSI Target 스레드 구조 Open Source iSCSI target의 비교 자료의 기술에 의하면, IET의 architecture는 이하와 같이 도시할 수 있습니다. IET는, kernel내에서 패킷 수신을 전문으로 수행하는 Receive thread와 송신을 수행하는 Send thread, File I/O를 수행하는 I/O thread의 3 종류의 thread로부터 구성되어 있습니다.iSCSI protocol로 요구된 READ/WRITE request를, Receive thread→Receive queue→I/O thread→Send queue→Send thread의 순서에 처리해, reply를 돌려준다고 하는 단순한 architecture입니다.이 구성의 이점은, iSCSI target의 실제 장점은 cache를 관리하지 .. 2018. 1. 12.
리눅스 커널의 네트워크 패킷 처리 방법 다른 장치도 마찬 가지지만, 네트워크 인터페이스가 패킷을 수신 하였을 때 커널에게 알려 주는 방법은 크게 폴링과 인터럽트 방식이 있습니다. 오늘은 두 가지 방식과 새로운 기술에 대해서 짚고 넘어가도록 하겠습니다. 1. Polling 방식 이 방식은 커널이 주기적으로 장치의 상태를 체크 하는 방식 입니다. 쉽게 말해, 장치의 레지스터를 읽어서 패킷의 수신 여부를 확인 하고, 장치가 새로운 패킷을 가지고 있을 경우 이를 처리 하는 방식 입니다. 패킷이 언제 올 줄 모르기 때문에 커널은 주기적으로(예를 들어, 0.0001초 마다) 장치가 패킷을 받았는지 검사 하는 것이지요. 이 방식은 패킷이 없을 경우에도, 커널이 계속 해서 패킷의 수신 여부를 검사 하기 때문에 CPU 자원의 낭비를 발생 시킨다고 할 수 있습.. 2018. 1. 12.
container_of 매크로 이해하기 kobject는 그 자체만으로는 쓰임새가 없고 주로 다른 객체 안에 포함되서 사용된다. 대부분의 sysfs 관련 함수나 디바이스 드라이버 등에서 kobject의 포인터를 인자로 전달받아서 사용한다. 그래야 드라이버 작성자가 어떤 데이터 구조를 만들어서 사용해도 인터페이스는 통일될 수 있다. 그래서 kobject의 포인터에서 kobject가 속한 객체의 포인터를 계산하는 일이 많아지고 이를 위한 container_of 매크로가 만들어졌다. 예를 들어 커널 2.6.23에서 include/linux/cdev.h에는 다음과 같이 문자 장치를 표현하는 cdev 구조체가 선언되어 있다. 13 struct cdev { 14 struct kobject kobj; 15 struct module *owner; 16 con.. 2018. 1. 12.