본문 바로가기

전체 글143

패킷 교환 네트워크에서의 지연 패킷 교환 네트워크에서의 지연 예전에 웹 서핑하다 발견한 게시글이었는데 내용이 너무 좋아서 스크랩해서 두고두고 보던 내용이다. 원문은 아래의 출처를 참고. 1. 지연 - 일반적으로, 송신측 신호가 수신 측까지 도달하는데 걸린 시간 또는 지체된 시간 2. 지연을 발생시키는 주요 요인 1) 매체접근지연 (Media Access Delay) - 전송할 패킷이 있을 때 매체가 사용 중(busy)이면 비어(idle) 있기를 기다리는 시간 2) 전송지연 (Transmission Delay) - 하나의 프레임을 완전히 송출 전송하기까지 걸리는 시간 3) 전달지연 (Propagation Deley) - 데이터 프레임이 전송로(매체)를 통해 전달되어 지나가는데 소요되는 지연 4) 처리지연 (Processing Delay.. 2021. 12. 29.
시스템 로그(syslog) 종류, 비활성화 방법과 예제 시스템 로그(syslog) 종류, 비활성화 방법과 예제 임베디드 시스템에서 개발 및 운영을 하다 보면 맞닥뜨리는 문제 중 하나인 디스크 용량 관리에 대한 이야기다. 본인도 그렇고 다른 개발자도 마찬가지겠지만 로그 관리를 위해서 circular queue 형태의 로그 파일을 생성한다던가(e.g. 하나의 프로그램 당 10mb 용량의 순환 바이너리 로그를 사용함) 디버그 메시지를 화면에 현시하는 정도로 쓸 것이다. 하지만 시스템 애플리케이션은 어떨까. 시스템, 로그인, 웹서버 데이터 베이스 등등 /var/log 에 acceess/fail/auth 관련 로그를 마구 찍어내다 보면 디스크 용량이 얼마 되지도 않는 임베디드 시스템 환경에선 그런 로그들이 금세 쌓여 치명적인 문제로 다가온다. 그러한 문제를 시스템 로.. 2021. 12. 29.
[C/C++] ALSA PCM capture(recoding) 소스 코드 공유 ALSA PCM capture, ALSA recoding https://github.com/muabow/home/tree/main/src/cpp/pcm_capture GitHub - muabow/home: C/C++, PHP, GO source/library C/C++, PHP, GO source/library. Contribute to muabow/home development by creating an account on GitHub. github.com Linux ALSA driver를 이용한 audio capture 프로그램 샘플을 작성하였다. 코드 내에 주어진 파라미터 대로 오디오를 읽어 capture event handler를 통해 pcm raw 파일로 저장한다. 동작을 위한 내용은 READM.. 2021. 12. 28.
포트 보안을 위한 서비스 중지 목록 및 방법 포트 보안을 위한 서비스 중지 목록 및 방법 포트 보안을 위한 서비스 제어의 목적은 외부로 노출된 포트와 잘 알려진 포트들의 서비스를 중지 또는 포트의 변경을 목적으로 한다. 아래의 몇 가지 검사/정지 패턴을 상황에 맞게 사용하면 된다. 1. rpcbind, 서비스 중지 * 상태 확인, 1인 경우 활성 및 동작 중 - systemctl status rpcbind | grep Active | grep running | wc -l * 중지 및 비활성화 - systemctl stop rpcbind - systemctl disable rpcbind * 활성 및 시작 - systemctl enable rpcbind - systemctl start rpcbind 2. mosquitto, 서비스 중지 * 상태 확인,.. 2021. 12. 28.
rufus / 부팅 USB 제작 포터블 rufus freedos 또는 linux grub 등 부팅 디스크를 만들 때 쓰는 부팅 USB 제작 프로그램이다. 2021. 12. 28.
vimrc 공유 / linux vi, vim vimrc 공유 본인이 오랫동안 사용하고 있는 vimrc 파일을 공유한다. 뭐 특별한 게 있는 건 아니고 vim을 처음 사용하면 너무 메모장 같은 화면에 당황하시는 분들이 있어서 이런 패턴으로 사용한다라고 알려주고 싶었다. 우선 vim 은 linux의 편집기이다. 텍스트 외에 코드, 바이너리까지 모두 편집할 수 있는 강력한 도구이다. vimrc 파일은 사용자 계정의 home 디렉터리에 위치하고 숨김 파일로. vimrc로 작성한다. (e.g. /home/muabow/.vimrc) vi와 vim은 다르니 vim 이 없다면 apt 등을 통해 설치해야 한다. vimrc의 구성은 다음과 같다. set noshowcmd set showmode set wrap set laststatus=2 set autoindent.. 2021. 12. 28.
sshpass 를 이용한 ssh 접속 방법 설명 sshpass 를 이용한 ssh 접속 방법 sshpass는 비대화형으로 ssh 비밀번호를 입력해주는 명령어이다. 우선 sshpass 가 설치되었는지 확인한다. dpkg -l | grep sshpass iisshpass1.05-1amd64Non-interactivessh 설치가 안되어있다면 apt-get 을 이용하여 설치하자. sudo apt-get install sshpass [sudo] password for muabow: 패키지 목록을 읽는 중입니다... 완료 의존성 트리를 만드는 중입니다 상태 정보를 읽는 중입니다... 완료 sshpass is already the newest version (1.05-1). 다음 패키지가 자동으로 설치되었지만 더 이상 필요하지 않습니다: libexpat1:i386.. 2021. 12. 28.
[PHP] array_walk_recursive와 배열 순회 탐색 소스코드 공유 array_walk_recursive, 배열 순회 탐색, 전체 경로 찾기 array_walk_recursive - 전체 배열을 포인터 위치와 상관없이 탐색한다. - 모든 요소에 콜백 함수를 사용할 수 있다. - 사용자가 정의한 함수를 재귀적 사용이 가능하다. 쉽게 얘기하면 인자로 주어진 배열을 구성하는 모든 요소의 마지막 key/value를 찾아내 준다. 그리고 각 요소에 대한 함수를 정의할 수 있다. nested json format처럼 구조적으로 단순 패턴화 할 수 없는 경우 사용된다. array_walk_recursive 포맷 array_walk_recursive(array|object &$array, callable $callback, mixed $arg = null): bool array_wal.. 2021. 12. 28.