본문 바로가기

분류 전체보기59

Device Driver - Atomic Atomic 연산 Atomic 연산이란 연산 수행 중 다른 thread로 context 전환이 되지 않는 연산을 의미하며 task의 context switching이 일어나거나 interrupt routine에서 해당 메모리에 대해 동시 처리되지 않도록 보장하는 연산을 일컫는다. 성능이 굉장히 중요한 부분에 있어서 Lock을 사용하기에는 성능 저하가 우려되는 경우 사용 Function Description ATOMIC_INIT(int i) At declaration, initialize an atomic_t to i int atomic_read(atomic_t *v) Atomically read the integer value of v void atomic_set(atomic_t *v, int i) At.. 2022. 5. 23.
[cmd] sed Description GUI기반의 편집기인 vi처럼 CLI(Command Line Interface)기반으로 파일을 인자로 받아 명령를 통해 작업을 진행한 후, 화면에 출력하는 방식 명령어로서, 원본을 직접 수정하지 않고 수정한 결과를 출력해주는 역할의 명령어 Pattern space와 Hold space sed명령어는 동작시 내부적으로 2개의 Work Space를 사용하는데, 이 두 버퍼를 Pattern Space(Pattern Buffer)와 Hold Space(Hold Buffer)라고 함 Pattern space: 입력 스트림을 통해 읽어들인 라인 한 줄이 저장되는 공간으로서 수정, 출력 등의 명령이 적용(처리)되는 공간 Hold space: 임시 저장공간으로서 수정 명령 등의 영향을 받지 않아 .. 2022. 3. 15.
PACKAGECONFIG Description Yocto recipe상에서 해당 레시피에 대한 feature에 대하여 enable하거나 disable 또는 dependency를 설정할 수 있는 변수로서 아래와 같은 형태로 사용한다. 기본형태 PACKAGECONFIG ??= "f1" PACKAGECONFIG[f1] = "--with-f1,--without-f1,build-deps-f1,rt-deps-f1" 1. PACKAGECONFIG에 명시된 feature에 대하여 해당 feature에 대한 configure를 설정 ex) f1이 PACKAGECONFIG에 명시되어 있으므로 PACKAGECONFIG[f1]이 활성화 되어 정의된 configure 적용 2. 각 feature에 대한 configure 설정, 4 가지 config 설.. 2022. 3. 15.
Console, Terminal, TTY Console 컴퓨터를 조작할 때 사용하는 입출력 장치를 콘솔이라하며, 이에 대하여 조작이나 명령을 위한 프로그램을 콘솔프로그램이라고 하는데 대개 콘솔이라는 명칭으로 많이 사용한다. Terminal 터미널은 콘솔의 한 종류로서 UI기반으로 입출력 장치를 사용하기 위한 프로그램 TTY tty도 콘솔의 한 종류로서 OS에서 제공하는 가상의 콘솔이며, 실제 물리적으로 장치에 연결된 것이 아니기 때문에 커널에서 터미널을 emulation 함 리눅스에서는 tty명령어를 통해 현제 사용중인 터미널 정보를 출력한다. -bash-4.2$ tty /dev/pts/69 Single mode 콘솔로 접근하였을 경우 /dev/tty/으로 출력되며, X window나 ssh, telnet 등 원격으로 접속하게 되면 /dev/p.. 2022. 3. 10.
Kernel Build Kernel Configuration Kernel Config 커널을 빌드하기 전에 각 시스템에 맞게 설정을 해주어야 하는데 "CONFIG_"라는 prefix로 시작되는 설정 옵션을 조정함으로서 가능하다. 예를 들어 FrameBuffer에 대한 feature를 활성화해주기 위해서는 CONFIG_FB를 enable 시키면 된다. 이 설정 옵션은 두 가지 형태의 값을 갖는데 Boolean과 Tri-state의 형태로 값을 갖는다. Boolean 타입의 경우 커널 빌드 시 해당 feature를 활성화할 것인지(yes), 비활성화(no)할 것인지를 설정하게 되고, Tri-State의 경우 Boolean 타입에서 module이라는 값이 추가된 타입인데 module로 설정하여 빌드 시, 해당 feature 모듈을 .. 2022. 3. 3.
Kernel Source Tree 커널 소스 트리 커널 소스 트리는 아래와 같이 여러 개의 디렉토리로 구성되어 있음 Directory Description Directory Desciption arch 아키텍쳐 종속코드 mm 메모리 관리 하위시스템과 VM crypto 암호와 API net 네트워크 drivers 디바이스 드라이버 scripts 커널 빌드시 사용되는 스크립트 fs VFS와 그밖의 fs security 보안 모듈 include 커널파일 헤더들 sound 사운드 하위시스템 init 커널부트와 초기화관련 usr 초기 UserSpace 코드(initramfs) ipc 프로세스 간 통신코드 kernel 스케쥴러 등 핵심 하위시스템 lib 유틸리티 루틴 2022. 3. 3.
728x90