Linux 26

Ubuntu 메인보드 확인 명령어

개발 서버에 M.2 2TB 를 두 개를 사용하고 있는데 용량이 부족하다. 여분의 M.2 슬롯이 있는지 확인하기 위해 컴퓨터를 찾아가기가 겁나 귀찮다. 그래서 마더보드 모델을 확인한다면, 슬롯 갯수를 확인할 수 있으니까 명령어를 찾아보았다. 메인보드 제조사 sudo dmidecode -s baseboard-manufacturer 메인보드 모델명 sudo dmidecode -s baseboard-product-name

Linux/Embedded 2022.05.02

리눅스 옵션 확인 - /proc/config.gz

임베디드 리눅스를 하다보니 크로스 컴파일 환경을 사용한다. 리눅스 옵션을 설정했고, 컴파일이 되었고 타겟보드에 정상적으로 이미지를 올렸다. 하지만, 난 직관적으로 바로 확인하고 싶었다. 인터넷에 찾아보니 /proc/config.gz 파일이 있다. /proc/config.gz - 동작 중인 커널이 컴파일 되기 전 커널 컴파일 옵션으로 설정된 내용을 가진 파일이다. - 단순 cat으로 보려하면 암호화가 되어 있음. - zcat /proc/config.gz > read_option 명령어를 통해 해당 파일로 확인이 가능함. - 해당 파일이 없다면 menuconfig에서 "Kernel .config support" 로 find하면 기능을 활성화할 수 있다고 한다.

Linux/Embedded 2022.04.27

파일 입출력

리눅스 파일은 읽거나 쓰기 전에 반드시 열어야 한다. 커널은 파일 테이블이라고 하는 프로세스별로 열린 파일 목록을 관리한다. 이 테이블은 음이 아닌 정수 값인, 파일 디스크립터로 인덱싱되어 있다. 이 테이블(커널)의 각 항목은 열린 파일에 대한 정보를 담고 있으며 여기에는 메모리에 복사된 inode를 가리키는 포인터와 각종 메타데이터가 포함되어 있다. 파일 디스크립터는 사용자 영역과 커널 영역 모두에서 프로세스의 냉의 고유한 식별자로 사용된다. 파일을 열면 파일 디스크립터가 반환된고 이 파일 디스크립터를 관련 시스템 콜의 첫 번째 인자로 넘겨 다양한 연산을 수행한다. 파일 디스크립터는 C의 int형이다. 따라서 각 리눅스 프로세스가 열 수 있는 최대 파일 개수가 정해져 있다. 파일 디스크립터로 음수를 허..

소켓 버퍼 구조체 : sk_buff

struck sk_buff 패킷의 정보가 저장된다. 이 구조체는 모든 네트워크 계층에서 자신들의 헤더와 사용자 데이터 정보, 그리고 내부적 작업을 배분하기 위한 정보를 저장한다. 데이터 수신이나 송신에 사용될 데이터의 헤더 정보를 갖고 있기 때문에 리눅스 네트워킹 코드에서 가장 중요한 데이터 구조체이다. sk_buff는 란 헤더 파일 포함되어 있다. 여기에는 모든 사용자에게 필요한 모든 것이 들어 있기때문에(?) 아주 많은 변수로 구성돼 있다. ( skbuff == socket_Buffer ) 이 구조체는 크게 4 가지 기능으로 분류할 수 있다. 1) 레이아웃 2) 일반 사항 3) 특정 기능 4) 관리 기능 이 구조체는 여러 다른 네트워크 계층을 거치면서 멤버변수들이 변경된다. 그리고 헤더가 추가된다. ..

Linux/Linux Network 2022.04.18