본 글에서는 윈도우즈의 "명령 프롬프트" 창에서 사용되는 폰트를 변경하는 방법에 대해 소개한다. 사용된 환경은 다음과 같다. 윈도우즈 10 프로 명령 프롬프트 창의 기본 폰트는 다음과 같이 "MS Gothic"으로 설정되어 있다. 취향에 따라 다르겠지만, 개인적으로는 이 폰트가 맘에 들지 않아 항상 변경하여 사용한다. 명령 프롬프트 창의 좌측 상단의 아이콘을 마우스 우클릭한다. 메뉴 창이 뜨면 "속성" 메뉴를 선택한다. "속성" 창이 팝업되면, "글꼴" 탭의 "글꼴" 영역에서 원하는 폰트를 선택하고 "확인" 버튼을 클릭한다. 여기서는 "나눔고딕코딩"을 선택하였다. 참고로 "나눔고딕코딩" 폰트는 윈도우즈에 기본적으로 포함된 폰트가 아니며, 별도로 설치한 폰트이다. 다음과 같이 "명령 프롬프트" 창에 "나눔..
본 글에서는 리눅스 상에서 텍스트 파일이나 바이너리 파일 등의 내용을 16진수 형식으로 확인(hex dump)할 수 있는 xxd 라는 유틸리티에 대해 소개한다. 본 글에서 사용된 환경은 다음과 같다. 우분투 리눅스 18.04 우분투 리눅스 18.04 에 xxd 는 기본 설치되어 있지 않으며, 터미널 상에서 다음 명령을 통해 설치할 수 있다. $ sudo apt update -y $ sudo apt install xxd xxd 의 설치가 완료되면 다음과 같은 기본 명령으로 원하는 파일의 내용을 hex dump 할 수 있다. $ xxd 좌측에는 파일 내 데이터의 오프셋(몇번째 바이트인지)이 출력되며, 중앙에는 파일의 내용이 16진수 형식으로 출력된다. 우측에는 파일의 내용이 ASCII 코드 형식으로 출력된다.
본 글에서는 윈도우즈 10 프로 운영체제에서 Hyper-V 기능을 활성화하는 방법을 소개한다. 개요 Hyper-V 는 마이크로소프트 윈도우즈 운영체제에서 동작하는, x64 시스템을 위한 하이퍼바이저 기반 가상화 시스템이다. 하이퍼바이저란 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼을 의미한다. 예를 들어, 윈도우즈 상에서 도커(Docker)를 실행하여 별도의 운영체제(윈도우즈, 리눅스 등)를 실행하는 경우에 사용된다. 윈도우즈 10 프로 상에 도커 데스크탑(Docker Desktop)을 설치한 후, 실행하면 다음과 같이 Hyper-V 를 활성화하라는 에러 팝업창이 뜨는 경우가 있다. 도커는 윈도우즈의 Hyper-V 기능을 사용하므로, 도커를 사용하기 위해서는 Hyper-V 기..
본 글에서는 배열에 담긴 바이트열 데이터를 16진수 형식으로 출력(Hex dump)하는 함수를 소개한다. 본 함수는 다양한 형태의 바이트열 데이터(예: 네트워크 패킷 데이터)에 담긴 내부 정보를 로그로 출력하여 디버깅하는 용도로 많이 활용된다. 본 함수를 실행하면, 다음 그림처럼 리눅스에서 xxd 명령을 통해 출력되는 형태와 유사하게 출력된다. 좌측에는 오프셋 값, 중앙에는 Hex dump 값, 우측에는 ASCII 코드 값이 출력된다. 다음은 Hex dump 출력 함수 전문이다. #include #include /** * 버퍼에 담긴 데이터에 대한 Hex dump 를 출력한다. 우측에 아스키 값도 함께 출력한다. * * @param[in] data 출력할 데이터가 담긴 배열 * @param[in] len..
본 글에서는 리눅스 시스템의 각 네트워크 인터페이스에 IPv6 주소를 할당(추가)하거나 제거하는 프로그램을 작성하는 방법에 대해 설명한다. 본 글에서 다루는 IPv6 주소 할당 관련 기능은 다음과 같으며, 각 기능 별 예제 프로그램은 C 언어로 작성되었다. 네트워크 인터페이스에 IPv6 주소 할당(추가)하기 MAC 주소로부터 EUI-64 형식 Interface ID 생성하기 링크-로컬 IPv6 주소 할당하기 글로벌 IPv6 주소 할당하기 (Stateless Address Autoconfiguration) 네트워크 인터페이스에 할당된 IPv6 주소 제거하기 네트워크 인터페이스에 할당된 IPv6 주소(들)을 확인하는 방법은 아래 글에 설명되어 있다. 2020/02/08 - [프로그래밍/리눅스 프로그래밍] -..
본 글에서는 리눅스 시스템의 각 네트워크 인터페이스에 할당되어 있는 IPv6 주소(들)을 확인하는 프로그램을 작성하는 법에 대해 설명한다. 본 글에서 다루는 IPv6 주소 확인 관련 기능은 다음과 같으며, 각 기능 별 예제 프로그램은 C 언어로 작성되었다. 네트워크 인터페이스에 할당된 모든 IPv6 주소 확인하기 네트워크 인터페이스에 할당된 링크-로컬 IPv6 주소 확인하기 네트워크 인터페이스에 할당된 사이트-로컬 IPv6 주소 확인하기 네트워크 인터페이스에 할당된 글로벌 IPv6 주소 확인하기 네트워크 인터페이스에 할당된 루프백 IPv6 주소 확인하기 네트워크 인터페이스에 IPv6 주소를 할당(추기)하거나 제거하는 방법은 아래 글에 설명되어 있다. 2020/02/08 - [프로그래밍/리눅스 프로그래밍]..
본 글에서는 16진수 문자열을 바이트열로 변환하는 함수를 소개한다. 예를 들어, "FE303321" 과 같이 16진수를 표현하는 8바이트 길이의 문자열을 array[4] = { 0xFE, 0x30, 0x33, 0x21 } 과 같은 4바이트 배열로 변환하는 함수이다. #include #include #include /** * 16진수 문자열을 바이트열로 변환한다. * @param[in] hex_str 16진수 문자열 (예: fe80000000000000024954fffe454b01) * @param[out] array 변환된 바이트열이 저장될 버퍼 * @return 변환된 바이트열의 길이 */ size_t ConvertHexStrToArray(const char *hex_str, uint8_t *array..
본 글에서는 PC에 설치된 아웃룩과 네이버 메일을 연동하여, 네이버 메일로 수신된 메일들을 아웃룩 프로그램으로 받아보거나 아웃룩 프로그램 상에서 네이버 메일을 통해 메일을 전송할 수 있는 방법에 대해 설명한다. 본 글에서 사용된 환경은 다음과 같다. 윈도우즈 10 프로 마이크로소프트 아웃룩 2016 본 글의 설정에 따라 아웃룩은 네이버 메일과 IMAP 프로토콜이라는 규약을 통해 메일을 주고 받게 된다. 네이버(Naver) 설정 먼저 웹브라우저로 네이버(https://www.naver.com/)에 로그인하여 아웃룩 연동을 위한 항목을 설정한다. IMAP 프로토콜 기반 메일 전달 기능을 활성화해야 한다. 네이버 메일의 IMAP 프로토콜 기반 메일 전달 기능 활성화 네이버 메일에 로그인한 후, 화면 좌측 하단..
본 글에서는 PC에 설치된 아웃룩과 구글 지메일을 연동하여, 지메일로 수신된 메일들을 아웃룩 프로그램으로 받아보거나 아웃룩 프로그램 상에서 지메일을 통해 메일을 전송할 수 있는 방법에 대해 설명한다. 본 글에서 사용된 환경은 다음과 같다. 윈도우즈 10 프로 마이크로소프트 아웃룩 2016 본 글의 설정에 따라 아웃룩은 구글 지메일과 IMAP 프로토콜이라는 규약을 통해 메일을 주고 받게 된다. 지메일(Gmail) 설정 먼저 웹브라우저로 지메일(http://www.gmail.com)에 로그인하여 아웃룩 연동을 위한 항목을 설정한다. 다음 두 가지를 설정해 주어야 한다. IMAP 프로토콜 기반 메일 전달 기능 활성화 아웃룩에서 로그온할 수 있도록 지메일(구글) 계정의 보안 설정 지메일의 IMAP 프로토콜 기반..
본 글에서는 일반 PC(x64/x86)에 설치된 리눅스 상에서 OpenSSL 을 다운로드하고 빌드하는 법을 설명한다. 본 글에서 사용된 환경은 다음과 같다. OpenSSL 1.1.1d 버전 운영체제 : 우분투 리눅스 (14.04 이후 버전) 사전 필요 사항 gcc 컴파일러를 설치한다. HOST$ sudo apt update -y && sudo apt upgrade -y HOST$ sudo apt install build-essential OpenSSL 다운로드 웹 브라우저를 통해 openssl 홈페이지에서 OpenSSL-1.1.1 버전을 다운로드한다. /index.html OpenSSL is a robust, commercial-grade, and full-featured toolkit for the T..
본 글에서는 오픈소스인 OpenSSL을 임베디드 리눅스용으로 크로스 컴파일하는 방법을 설명한다. 본 글에 사용된 크로스 컴파일 환경은 다음과 같다. OpenSSL 1.1.1d 버전 호스트 PC : 우분투 리눅스 (14.04 이후 버전) 타겟 장치 : ARM 기반 하드웨어 플랫폼, PPC 기반 하드웨어 플랫폼 크로스 컴파일러 ARM : arm-linux-gnueabihf- PPC : powerpc-linux-gnu- 사전 필요 사항 호스트 PC에 각각의 크로스 컴파일러를 설치한다. $ sudo apt update -y && sudo apt upgrade -y $ sudo apt install build-essential gcc-arm-linux-gnueabihf libstdc++6-armhf-cross l..
본 글에서는 유블럭스의 EVK-M8T를 u-center를 이용해 사용하는 방법을 설명한다. 이를 위해 다음 항목들이 필요하다. EVK-M8T 제품 https://www.u-blox.com/en/product/evk-8evk-m8 EVK-8/EVK-M8 u-blox 8/M8 concurrent GNSS evaluation kits www.u-blox.com u-center 프로그램 https://www.u-blox.com/en/product/u-center u-center GNSS evaluation software for Windows www.u-blox.com u-center 프로그램 설치 다운로드한 u-center 설치 프로그램을 실행하여 u-center를 설치한다. 설치마법사에서 EVK을 위한 드라..