Low level I/O with C

Posted by Ho95

저수준의 파일 입출력 with C 리눅스는 모든 것을 File로 관리 하는데, 장치들도 File로 관리합니다. 그리고 리눅스는 대부분 C로 구성되어 있습니다. 이번학기 Device Driver(이하 DD) 수업을 들으면서 C로 짜여진 소스를 보게 되는데, 이때 저수준의 파일 입출력 함수가 쓰이고, 주로 Block DD가 아닌 Character DD의 소스를 봅니다. 이 글에는 문자 DD에 쓰이는 C언어의 저수준 파일 입출력 함수들을 정리 해보고자 합니다. C언어의 파일 입출력의 종류 C의 파일 입출력은 2가지 종류가 있습

Read More

커널에서 무엇을 배우나요?~

Posted by Ho95

잡담 18년 1학기에 배웠던 커널 과목에 대해 설명한 것입니다. 컴퓨터를 공부하는 사람이라면 리눅스(Linux)에 대해 한번쯤은 들어보거나 경험해 봤으리라 생각합니다. 컴퓨터 운영체제(OS, Operating System)중 하나입니다. 물론 윈도우만 사용하다가 설치하면, 처음에는 사용하기 조금 어렵겠지만 금방 익숙해 질 수 있습니다. 컴퓨터를 배우는 사람이 리눅스에 익숙 해지면 매우 매우 좋다고 생각해요! 많은 개발 도구들과 응용들!!! 운영체제 비용도 안들고… 그런 리눅스의 핵심이 되는 부분이 커널 입니다. 커

Read More

GNU Assembler 메모.

Posted by Ho95

Assembly language 종류 1.GAS(GNU Assembler) -GNU 프로젝트에서 사용된다.(Linux) ,AT&T 스타일 2.NASM(NetWide Assembler) -인텔 x86용 어셈블러(Windows) ,intel 스타일 문법 1)레지스터(피연산자)는 %로 시작한다. 인텔스타일은 붙이지 않는다. 2)명령어 형식은 Source(출처) Destination(목적지)순으로 온다. 인텔 스타일은 목적지, 출처 순으로 온다. 1 ex) movl $4, %eax, 인텔은 movl eax, 4 3)명

Read More

IA-32 레지스터 메모.

Posted by Ho95

General Purpose Register (범용 레지스터 ,x86 cpu) 1 2 3 4 5 6 7 8 -상수, 주소값을 저장시 사용된다. -16비트의 크기를 가진다.(과거에는 16비트를 한번에 쓸일이 없음) -32비트 이상에서는 레지스터 앞에 확장이라는 뜻의 Extended(E)가 붙고 크기는 0~31비트를 차지하는 32비트이다. (EAX,EBX,ECX,EDX) -ABCDX는 H,L로 나뉜다. 예를 들면 AX는 0~15, AH는 15~8, AL은 7~0 범용 레지스터의 종류(범용이기 때문에 다른 용도로 사용가능

Read More

얼굴 검출의 맛

Posted by doomsheart

OpenCV는 Open Source Computer Vision Library의 약자로 이미지/영상 처리 라이브러리입니다. 언어는 C++, Java, Python등을 지원하고 있으며, 컴퓨터 비전에선 굉장히 유명한 라이브러리입니다. 이를 이용하여 파이썬으로 영상에서 얼굴을 검출하는 코드를 짜보도록 해보겠습니다. 전체적인 흐름은 다음과 같습니다. 1. 동영상 로드 2. 로드된 동영상에서 프레임 추출 3. 얼굴범위 추출 4. 범위 표시 1. 동영상 로드 우선 첫번째로 OpenCV를 import하고 동영상을 불러오는 코드를 짜

Read More

파일 hash 체크하기

Posted by

이따금 공식 웹사이트에서 내려받은 파일이라고 하더라도 해시값을 체크해볼 필요성이 생길 때가 있습니다. 특히 서버가 한 번 털렸던 전적이 있는 Transmission 같은 페이지라면 말이죠. 다행히도 macOS에는 해시값을 확인할 수 있는 도구가 기본으로 탑재되어 있습니다. 기본적인 사용법은 shasum [filename] 과 같이 사용하면 됩니다. 기본적으로는 sha1 알고리즘으로 읽도록 되어 있으나 -a 플래그를 사용해서 224, 256, 384, 512, 512224, 512256 알고리즘을 지원합니다. Transmis

Read More

한글자모분리 현상

Posted by

mastodon을 사용하다보니 유독 제 툿만 한글이 자모가 분리되어서 나타나는 경우를 발견했습니다. commandline에서 작성하면 안 그런데 [^commandline] alfred를 통해서 툿을 날리면 유독 이런 경우가 발생하더군요. [^commandline]: 이건 macOS의 파일 시스템이 10.13부터 HFS+ 가 아닌 APFS 로 바뀐 것과 연관이 있어보입니다. (참조) 사실 mastodon 만이 아니라 iOS 폰트를 변경한 이후부터 몇몇 앱에서도 글자 자모가 분리돼서 나타나는 현상을 발견해서 이리저리 구글링을 해보았

Read More

enumerate()

Posted by

파이선을 쓰다보면 종종 만나게 되는 기본 함수 중에 하나가 enumerate() 입니다. 그럼에도 불구하고 다른 언어에서는 자주 보이지 않아서 낯선 함수이기도 하죠. 코드 1 2 3 4 5 def enumerate(sequence, start=0) n = start for elem in sequence: yield n, elem n += 1 enumerate() 함수는 sequence 안의 element를 받아서 각 인자의 인덱스 값과 내용을 튜플 값으로 내보내도록 되어 있는 것을 알 수 있습니다. 용례 튜플

Read More

iterable

Posted by

enumerate()를 쓰다보면 어쩔 수 없이 iterable과 iterator라는 개념을 학습해야 합니다. iterable이 내용물을 차례대로 반환할 수 있는 객체라면 iterator는 next()로 데이터를 순차적으로 호출할 수 있는 객체를 가리킵니다. 생긴 건 비슷하지만 둘은 완전히 별개의 대상으로 생각하는 게 차라리 속 편합니다. iterable Iterable An object capable of returning its members one at a time. Examples of iterables include al

Read More

Vim 검색 기초

Posted by Canor

일전에도 언급했듯이 요즘 맥북에서는 에디터로 Vim을 쓰고 있습니다. 일장일단이라고 가볍고 리소스를 많이 안 먹는 게 장점이라면 다른 부가 기능들이 (상대적으로) 부족하다는 게 흠이라면 흠이죠. 여러가지 추가 패키지가 많이 있어서 (아마?) 잘만 세팅하면 여타 코드 에디터와도 맞먹을 수 있을 것 같다는 생각은 듭니다만 하여튼 그 일환으로 검색 기능을 적어둘까 합니다. 기본 검색 기본 모드에서 / 키를 눌러서 패턴 검색을 시작할 수 있습니다. n 키를 눌러서 일치하는 다음 패턴을 찾고 N 키를 눌러서 이전 패턴을 검색할 수 있죠

Read More