LINUX

포스트: 487|아이템:LINUX(477)
Tags

Posts

487 posts

[리눅스커널] 메모리 관리: kmalloc 캐시 슬럽 오브젝트 할당 커널 함수 분석하기

Guillermo Austin Kim|2019년 9월 1일

우리는 'kmalloc() 함수를 호출하면 동적 메모리를 할당할 수 있다.'란 사실을 알고 있습니다. 하지만 kmalloc() 함수에서 호출하는 커널 내부 함수는 거의 분석하지는 않는 듯 합니다. 이번 시간에는 kmalloc() 함수와 이 함수에서 호출하는 다음 함수를 분석합니다.kmalloc_index()kmem_cache_alloc_trace()slab_alloc()slab_alloc_node() kmalloc() 함수 분석하기 우리가 드라이버 드라이버에서 동적 메모리를 할당할 때 주로 사용하는 함수는 kmalloc()입니다. 그런데 kmalloc() 함수는 생각보다 분석하기 어렵습니다.  슬랩 캐시와 슬럽 오브젝트의 개념을 알고 있어야 분석이 가능하기 때문입니다. 이어서

[리눅스커널] 스핀락 플러그인 함수: spin_lock_irq()/spin_unlock_irq()

Guillermo Austin Kim|2019년 8월 21일

리눅스 커널 코드를 조금만 분석하면 spin_lock() 함수뿐만 아니라 spin_lock_irq() 함수를 써서 임계 영역을 보호하는 코드를 많이 볼 수 있습니다. 이렇게 커널은 스핀락 기능을 확장한 플러그인 형태 스핀락 함수들을 제공합니다. 이번 소절에서는 spin_lock() 함수 기능을 확장한 스핀락 플러그인 함수를 소개합니다. spin_lock_irq()/spin_unlock_irq() 먼저 spin_lock_irq()/spin_unlock_irq() 함수를 리눅스 커널에서 지원하는 이유를 알아보고 세부 코드를 분석하겠습니다. spin_lock_irq()/spin_unlock_irq() 함수가 생겨난 이유는 무엇일까? spin_lock_irq()/spin_unlock_irq() 함수 코드

gImageReader - 리눅스용 광학문자인식(OCR) GUI S/W

반달가면|2019년 8월 12일

gImageReader는 광학문자인식(OCR)을 위한 GUI S/W이다. 테서랙트(tesseract) OCR 엔진과 연동하여 이미지 파일로부터 문자를 추출해 준다. 테서렉트에 대한 내용은 이전 게시물을 참고하자. 여기로 우분투/데비안 기반 배포판을 기준으로 아래와 같이 설치하면 되겠다. 테서랙트가 이미 설치되어 있다는 것을 전제로 한다. gImageReader는 GUI 기반의 사용자 인터페이스가 중심이고 실제 문자인식은 테서랙트에 의해 이루어진다. # S/W 저장소 갱신 sudo apt-get update # gImageReader 설치 sudo apt-get install gimagereader # gImageReader 실행 gimagereader-gtk GUI 기반이라

테서랙트(tesseract) - 리눅스에서 광학문자인식(OCR)

반달가면|2019년 8월 5일

테서랙트(tesseract)는 리눅스용 오픈소스 광학문자인식(OCR) S/W이다. 오픈소스이므로 무료로 사용할 수 있다. 테서랙트의 깃허브(github) 페이지는 아래의 링크로 가면 된다. 100개 이상의 언어를 지원하며, 데비안/우분투 기반 배포판의 경우 공식 S/W 저장소에 이미 포함되어 있으므로 apt-get 명령어로 설치하면 된다. # S/W 저장소 갱신 sudo apt-get update # tesseract-ocr 설치 sudo apt-get install tesseract-ocr # 영어(eng), 한국어(kor, hang), 일본어용(jpn, jpan) 파일 설치 sudo apt-get install tesseract-ocr-eng tesseract-ocr-ko