본문 바로가기

운영체제57

커널 소스 분석을 위한 ctags 사용법 1. ctags란? ctags는 소스 코드 파일을 분석하여 함수, 변수, 매크로 등과 같은 기호의 정의와 선언 위치를 저장한 태그 파일(tags)을 생성하는 명령어이다. 생성된 태그 파일을 Vim과 같은 에디터과 같이 사용하면 소스 코드 내에서 함수나 변수가 정의된 위치로 빠르게 이동할 수 있다.    2. ctags 설치 $sudo apt-get install exuberant-ctags     3. tags(태그 파일) 생성 리눅스 커널의 Makefile에는 tags를 생성하는 타겟 명령이 포함되어 있기 때문에 커널 소스가 위치한 디렉토리로 이동한 후 아래 명령어를 입력하면 tags를 생성할 수 있다. 커널 소스의 규모가 방대해서 이 과정은 몇시간 걸리니 할일 없을 때 실행시켜 놓으면 된다. $mak.. 2024. 9. 22.
Windows ] IP가 169.254.x.x로 설정되어 바뀌지 않을 때 해결 방법 169.254.x.x로 시작하는 IP는 PC에서 DHCP 서버에 IP 할당을 요청했지만 받지 못했을 때 윈도우에서 임의로 부여하는 IP이다. 만약 유동 IP를 사용하는 경우 DHCP 서버(가정집에서는 공유기)를 껐다 키거나 초기화하여 해결 시도해볼 수 있다. 아래에선 고정 IP를 사용하는 경우 윈도우의 IP 임의 부여 기능을 비활성화하는 방법이다.  1. ipconfig 명령을 통해 169.254.x.x로 설정된 인터페이스 명을 확인한다.ipconfig  2. 아래 명령으로 해당 인터페이스의 색인 번호를 확인한다.netsh interface ipv4 show inter     3. 확인한 색인번호를 사용해 아래 명령을 실행한다.netsh interface ipv4 set interface [색인번호] d.. 2024. 9. 20.
Ubuntu 16.04 ] 고정 IP 설정 + 디폴트 게이트웨이 우선순위 변경 1. ifconfig 명령어를 사용해 이더넷 인터페이스 명 확인$ifconfig   2. 네트워크 설정 파일 수정에디터를 사용해 설정 파일을 연다.$sudo vim /etc/network/interfaces 만약 lo 설정이 있다면 루프백 인터페이스니 그냥 두면된다. 그리고 설정하려는 인터페이스가 dhcp로 설정되어있으면 주석처리 해주고 아래와 같이 고정 IP 설정을 한다.auto eth0iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 :wq로 파일 저장 후 빠져나온다.  3. 네트워크를 재시작한다.$sudo systemctl restart networking.service   고정.. 2024. 9. 18.
Minicom 사용법 1. Minicom이란?미니컴은 리눅스 환경에서 사용되는 터미널 에뮬레이터이다.  2. Minicom 설치하기# Debian/Ubuntu 계열$sudo apt-get install minicom 3. 디바이스 인식 확인디바이스를 연결한 후 dmesg 명령어로 시스템로그를 확인해 디바이스가 올바르게 인식되었나 확인해보자. USB 시리얼 통신 장치의 경우 보통 /dev/ttyUSBx와 같은 이름으로 나타난다. 만약 올바르게 인식되지 않았다면 디바이스 드라이버를 설치해야 할 수도 있다.dmesg  4. Minicom 설정하기Minicom을 처음 실행하기 전에 통신 설정을 구성해야 한다. 이를 위해 -s 옵션을 사용해 설정 메뉴를 열고 설정한다.sudo minicom -sSerial port setup: 직렬 .. 2024. 9. 16.
Ubuntu ] 터미널 관련 단축키 Ctrl + Alt + T : 새로운 터미널 창 열기Ctrl + Shift + T : 현재 터미널 창에서 새로운 탭 열기Ctrl + Shift + N : 새로운 터미널 창 열기Ctrl + D : 현재 터미널 탭이나 창을 종료Ctrl + Page Up/Page Down : 터미널 탭 간 이동Alt + 숫자키 : 해당 번째 터미널 탭으로 이동 exit : 터미널 세션 종료clear : 터미널 화면 지우기reset : 터미널 리셋 Ctrl + C : 현재 명령어 중지Ctrl + Z : 현재 작업을 백그라운드로 일시 중지, fg 명령어로 다시 실행 가능 Ctrl + Shift + C : 터미널에서 텍스트 복사Ctrl + Shift + V : 터미널에 텍스트 붙여넣기 2024. 9. 14.
Ubuntu ] 화면 캡쳐(스크린샷) 단축키 전체 화면 캡쳐 : PrtScPrint Screen 키를 누르면 현재 화면 전체가 캡쳐 된다. 캡쳐된 이미지는 ~/Pictures 폴더에 저장된다.현재 활성창 캡쳐 : Alt + PrtSc현재 활성화된 창만 캡쳐된다.선택 영역 캡쳐 : Shift + PrtSc마우스로 캡쳐할 영역을 선택할 수 있다.선택 영역 캡쳐 + 캡쳐한 사진 클립보드에 복사 : Ctrl + Shift + PrtSc선택 영역 캡쳐 이후 Ctrl + V 로 붙여넣기 가능하다. 2024. 9. 12.
Ubuntu ] Num lock 키 자동 활성화 하기 Ubuntu에서 부팅 시 Num lock 키가 비활성화 되어 있어 매번 눌러줘야 하는 불편함이 있다. 이를 해결하기 위한 방법을 소개한다.    1. numlockx 설치$ sudo apt install numlockx  2. LightDM 디스플레이 매니저 구성 파일을 에디터로 열기sudo vim /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf  3. 맨 아래 문구 추가하기greeter-setup-script = / usr / bin / numlockx on   이렇게 하면 로그인 화면에서 Num lock 키가 자동 활성화 된다. 2024. 9. 10.
배치 파일 활용하여 윈도우 명령 프롬프트에서 사용할 커스텀 명령어 만들기 1. 커스텀 명령어로 사용할 배치파일들을 모아둘 폴더를 만든다.  2. 해당 폴더를 환경 변수 path에 등록한다.내 PC > 속성 > 고급 시스템 설정 > 환경 변수 > 사용자 변수 > path에 값 추가 3. 이제 해당 폴더에 .bat 파일을 만들어 두면 을 커스텀 명령어로 쓸 수 있다.해당 명령과 일치하는 프로그램이 있는지 path에 등록된 디렉터리를 탐색할거기 때문이다.     사용예시  배치파일을 사용해 정말 다양한 기능의 커스텀 명령어를 만들 수 있지만 여기선 한가지 예시를 들어보도록 하겠다. 다음 명령들은 특정 장비와 연동 테스트 목적으로 IP를 계속 바꿨다 돌렸다할 때 유용하게 쓸 수 있다.  1. 고정 IP로 설정하는 명령 ip-static.bat@echo offREM 코드페이지를 UTF.. 2024. 8. 2.
윈도우11 ] 파일탐색기 우클릭시 추가옵션표시 없애기 '추가 옵션 표시' 없이 윈도우10처럼 모든 옵션을 표시하는 법        관리자 모드로 명령프롬프트 실행하여 다음 명령어 입력 후 재부팅하면 모든 옵션이 바로 표시된다.reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve     만약 다시 원래 윈도우11의 표시방식으로 돌아가고 싶다면 아래 명령을 입력하면 된다.reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f 2024. 6. 15.
Ubuntu ] 한영전환키 설정 설정 > 지역 및 언어 > 설치된 언어 관리를 눌러 language support가 완전히 설치되지 않았다는 안내 창이 뜨면 설치 후 재부팅한다. 입력 소스에서 한국어(101/104키 호환)은 삭제해준다.   만약 입력 소스에서 Hangul이 안보이면 다시 설치된 언어 관리를 눌러 키보드 입력기가 IBus로 선택되어 있는지 확인한다.   터미널에서 다음 명령어를 치고 입력기 > 추가를 눌러 Hangul을 추가한다.ibus-setup   다시 설정 > 지역 및 언어 > 입력 소스에서 Hangul의 톱니바퀴 버튼을 클릭하고 한영전환키 옆의 추가 버튼을 누른상태에서 한영 키를 누르고 확인을 누른다.  이후 한영전환키를 눌러 한글을 입력할 수 있다. 2024. 6. 5.
Ubuntu ] Some index files failed to download. 에러 해결 아래와 같은 문구가 뜨면서 sudo apt update가 안되는 현상이다. E: Some index files failed to download. They have been ignored, or old ones used instead.   링크 :https://www.tecmint.com/some-index-files-failed-to-download/ How to Fix “W: Some index files failed to download.” Error In UbuntuSometimes you might encounter the error “W: Some index files failed to download.” on Ubuntu when updating the system.www.tecmint.co.. 2024. 5. 28.
Ubuntu ] 시스템 복원 도구 timeshift 설치 우분투에서는 이것저것 설치하다가 의존성 문제로 도중에 망하고 첨부터 다시 시작하고 싶어지는게 한두번이 아니기 때문에 시스템 restore를 위한 timeshift 부터 설치해줬다. sudo apt-get install timeshift   우분투 버전이 20.04 미만이면 먼저 timeshift PPA repository를 추가해야한다. lsb_release -a 명령으로 우분투 버전을 확인할 수 있다.sudo add-apt-repository ppa:teejee2008/timeshift   GUI timeshift 앱을 실행한다. ext4 파일시스템을 사용하는 경우 스냅샷 타입 RSYNC를 선택한다. 파일시스템 타입은 cat /etc/fstab 명령으로 볼 수 있다.   그 다음 스냅샷을 저장할 디스크.. 2024. 5. 27.
Ubuntu ] 안쓰는 ssd 사용하여 우분투 멀티부팅가능하게 설치하기 1. Rufus 다운로드 https://rufus.ie/ko/    2. Ubuntu 이미지 다운로드 Ubuntu 18.04 : https://releases.ubuntu.com/18.04/    3. Rufus로 Ubuntu 부팅 USB 만들기 부팅이미지를 선택하고 USB 장치가 올바르게 선택됐는지 확인한 후 설정값을 아래와 같이 하고 시작을 누른다. 경고문구가 뜨면 디폴트값 또는 예를 선택해주면 된다.     4. 안쓰는 ssd 메인보드에 장착 내 데스크탑 메인보드는 ASUS EX-A320M Gaming인데 m.2 슬롯이 하나 있다. 그래픽카드 아래 위치한 형태라 ssd 방열판이 있으면 더 좋았을뻔했지만 일단 장착해줬다.    5. ssd 디스크 정리 diskpartlist disksel disk c.. 2024. 5. 25.
윈도우 11 ] 한글 입력 도중 마지막 문자 지워지는 문제 해결 방법 Win + I 키로 윈도우 설정 켬 > 시간 및 언어  언어 및 지역     언어 > 한국어 > ... > 언어 옵션     키보드 > Microsoft 입력기 > ... > 키보드 옵션      호환성 > 이전 버전의 Microsoft IME > 켬 2024. 5. 16.
Windows 명령 프롬프트에서 리다이렉션과 파이프 사용 리다이렉션 리다이렉션이란 표준입력과 표준출력의 방향을 키보드와 모니터가 아닌 다른곳으로 바꾸어주는 것을 말한다. 주로 명령어의 출력을 터미널 창이 아닌 파일로 보내거나, 파일의 내용을 명령어의 입력으로 사용할 때 쓰인다. 기본적인 리다이렉션 심볼에는 (출력 리다이렉션), >> (출력을 파일에 추가)가 있다. sort명령어를 사용해 직접 테스트해보자. 윈도우의 sort 명령은 텍스트를 행단위로 정렬할 때 사용하는 명령어이다. 다음과 같은 테스트 파일을 만든다. beforeSort.txt 123 456 789 123 456 789 - 입력 리다이렉션 sort < beforeSort.txt beforeSort.txt 파일의 내용을 sort 명령어의 입력으로 사용한다. 즉, 파일을 .. 2024. 4. 4.
Windows ] 오래된 파일을 삭제하는 배치 스크립트 오래된 파일을 삭제하는 배치 스크립트 아래는 "logs" 디렉토리에서 최근 30일 동안 수정되지 않은 파일을 모두 삭제하는 목적의 스크립트이다. @echo off cd /d "%~dp0" setlocal enabledelayedexpansion set "target_folder=logs" set "cutoff_date=30" forfiles /p "%target_folder%" /s /d -%cutoff_date% /c "cmd /c if @isdir==FALSE del @file" @echo off : 콘솔에 현재 실행중인 명령을 표시하지 않도록 설정한다. cd /d "%~dp0" : 현재 스크립트가 위치한 디렉토리로 작업 디렉토리를 변경한다. %~dp0가 현재 스크립트 파일의 경로를 나타낸다. set.. 2024. 1. 2.
nssm 사용해서 배치파일을 Windows 서비스로 등록하기 nssm 다운로드 후 압축 해제 https://nssm.cc/download NSSM - the Non-Sucking Service Manager NSSM - the Non-Sucking Service Manager Windows 10, Server 2016 and newer 2017-04-26: Users of Windows 10 Creators Update or newer should use prelease build 2.24-101 or any newer build to avoid an issue with services failing to start. If for some reason you nssm.cc 관리자 권한으로 명령 프롬프트 실행한 뒤 다운로드 받은 nssm.exe 파일이 있는 경로로 .. 2023. 12. 27.
Windows 작업 스케줄러 사용하여 배치파일 자동 실행하기 Windows 작업 스케줄러 사용하여 배치파일 자동 실행하기 작업 만들기 작업 '이름'을 지정하고 '설명'을 추가한다. '사용자의 로그온 여부에 관계없이 실행'에 체크하고 암호를 사용하지 않는다. 권한문제로 실행되지 않을 경우를 대비하여 '가장 높은 수준의 권한으로 실행'에 체크한다. '숨김'에 체크를 하면 배치파일의 콘솔창을 숨긴채 실행할 수 있다. 트리거는 '시스템 시작 시'로 하였다. 동작은 '프로그램 시작'으로 하고 배치파일의 경로를 등록한다. 기타 옵션은 '조건', '설정' 탭에서 설정할 수 있다. 시스템 재시작 후 작업 스케줄러의 작업 목록에서 '마지막 실행 시간'과 '마지막 실행 결과'를 확인할 수 있다. 2023. 12. 26.
리눅스 커널 Kernel 커널 Kernel 커널은 운영체제의 가장 핵심적인 역할을 하는 부분으로 하드웨어와 응용 프로그램 간의 인터페이스 역할을 한다. CPU, 메모리, 프로세스, 파일시스템, 입출력 등 주요 하드웨어 자원을 관리한다.부팅 시 메모리에 로드된다.항상 메모리에 올라가 있으며 하드웨어와 프로세스를 관리하는 소프트웨어이다.  커널의 주요 기능 커널의 주요 기능은 컴퓨터의 하드웨어 자원을 추상화하여 관리하고, 시스템 콜을 통해 사용자 및 응용 프로그램이 하드웨어 자원에 접근할 수 있도록 하는 것이다. 프로세스 관리 : 물리적 자원인 CPU를 추상적 자원인 Task로 제공메모리 관리 : 물리적 자원인 메모리를 추상적 자원인 Page 또는 Segment로 제공파일 시스템 : 물리적 자원인 디스크를 추상적 자원인 파일로 제공.. 2023. 12. 17.
Windows 10 ] 네트워크 브리지 설정 네트워크 브리지 네트워크 브리지(Network Bridge) 기능은 두 개 이상의 네트워크 어댑터(랜카드)를 결합하여 하나의 논리적 네트워크로 통합하는 기능을 제공한다. 브리지된 네트워크에서는 모든 연결된 장치가 동일한 IP 서브넷 내에 있으므로, 하나의 IP 주소를 할당받고 통신한다. 또한 네트워크 브리지를 설정하여 두 랜카드가 하나의 논리적 네트워크로 결합했을 때, IP 주소는 하나지만 물리적인 랜포트는 여전히 두 개가 존재하므로 두 랜포트를 각각 다른 장치에 연결하여 독립적으로 각기 다른 통신을 할 수 있다. 네트워크 브리지 연결 방법 제어판 - 네트워크 및 인터넷 - 네트워크 연결 네트워크 브리지 설정할 이더넷 인스턴스를 드래그 하여 선택 후 우클릭 - 네트워크 브리지 연결을 선택하거나 하나씩 선.. 2023. 11. 22.
Windows ] 원격 데스크톱 연결 시 파일 전송하기 원격 데스크톱 연결에서 옵션 표시 클릭 로컬 리소스 - 로컬 장치 및 리소소스 - 자세히... 클릭 드라이브 - 연결할 드라이브 체크 이렇게 설정한뒤 원격 데스크톱 연결한다. 원격지 Host PC의 파일 탐색기 - 내 PC에 접근하면 Guest PC의 드라이브에 접근할 수 있다. 이후 파일 복사 붙여넣기를 통해 서로 전송하면 된다. 2023. 11. 17.
윈도우에서 문자열 표현 형식, LPSTR, LPCSTR, LPWSTR, LPCWSTR, LPTSRT, LPCTSTR 윈도우에서는 문자열 처리를 위해 char*, wchar_t*, TCHAR*를 쓰기보다 다음과 같은 표현을 사용하고 있다. LP : Long Pointer의 약자 C : const의 약자 STR : string의 약자로 null terminated 된 캐릭터 배열을 의미한다. W : wide char의 약자로 유니코드를 의미한다. T : TCHAR의 약자로 프리컴파일 옵션에 따라 유니코드 문자(wchar_t) 또는 ANSI 문자(char)로 형변환되는 자료형을 의미한다. LPSTR : char* LPCSTR : const char* LPWSTR : wchar_t* LPCWSTR: const wchar_t* LPTSTR : TCHAR* LPCTSTR : const TCHAR* 2023. 11. 3.
Windows ] 계정 비밀번호 없이 원격 데스크톱 연결 사용하기 1. 먼저 Windows 키 + I 로 설정 - 계정 - 로그인 옵션 - 비밀번호 - 변경 을 눌러 현재 설정된 비밀번호 삭제 현재 암호를 입력하고 다음창에서 아무것도 누르지 않은채 다음을 누르면 비밀번호를 삭제할 수 있다. 2. Windows 키 + R - "secpol.msc" 입력 - 로컬 보안 정책 실행 3. 로컬정책 - 보안 옵션 - "계정: 콘솔 로그온 시 로컬 계정에서 빈 암호 사용 제한" 정책 더블 클릭 후 사용 안함으로 변경함 4. 이후 원격 데스크톱 연결에서 컴퓨터와 계정명을 입력하여 연결하고 비밀번호 없이 확인을 누르면 접속가능하다 참고로 연결설정 - 다른 이름으로 저장을 누르면 현재 로그온 설정을 .rdp 파일로 저장할 수 있는데 나중에 이 파일을 더블클릭해 쉽게 연결할 수 있다. .. 2023. 10. 12.
파일 디스크립터 파일 디스크립터(File Descriptor, FD)란 Linux 혹은 Unix 계열 운영체제에서 프로세스가 파일 또는 네트워크 소켓과 같은 입출력 리소스에 대해 접근할 때 사용하는 추상적인 식별자이다. 윈도우에선 HANDLE이라고 부른다. 파일 디스크립터는 0이 아닌 정수값을 가지며 C언어에서는 int 형식으로 표현된다. 유효하지 않거나 오류인 경우를 나타내는 음수값과 다른 목적으로 고정된 0부터 2를 제외하고, 프로세스가 파일을 열거나 소켓을 생성할 때 일반적으로 3부터 시작해 파일 디스크립터 숫자 중 사용하지 않는 가장 작은 값을 할당한다. 이렇게 할당된 파일 디스크립터를 사용하여 프로세스가 열려있는 파일에 시스템 콜을 사용하여 접근할 수 있다. Reference: https://en.wikiped.. 2023. 9. 28.
Windows Command Prompt 배경색, 글자색, 글꼴 바꾸기 명령 프롬프트 제목표시줄에서 우클릭 - 속성 에 들어가 화면 배경과 화면 텍스트 색, 그리고 글꼴을 바꿀 수 있다. 이렇게 GUI로 설정한 내용은 명령 프롬프트 창이 실행될 때마다 적용되며, 사용자가 다른 설정으로 변경하지 않는 한 계속 유지된다. 단, 색의 경우 시스템명령어를 통해 현재 실행중인 프롬프트의 색만 설정을 바꿀 수 있다. color /? 명령어를 입력하면 도움말을 볼 수 있다. 2023. 9. 15.
윈도우10 탐색기에서 최근에 사용한 파일 / 폴더 목록 지우기 탐색기 - 옵션 - '폴더 및 검색 옵션 변경' '최근에 사용된 파일 / 폴더 표시' 체크 해제 후 지우기 클릭 2023. 7. 11.
Windows ] TFTP Client 기능 켜기 제어판 - Windows 기능 켜기/끄기 - TFTP 클라이언트 체크 명령 프롬프트에서 tftp 명령어를 통해 사용 가능하다. 바이너리 파일을 송신하는 경우엔 -i 옵션을 써야 whole 파일이 문제없이 전송이 되었다. 2023. 7. 11.
Windows ] 윈도우에서 파일 Hex dump 하는 방법 파워쉘을 열고 아래 명령어 뒤에 hex dump할 파일 경로를 입력하면 된다. format-hex Format-Hex C:\Users\Username\Documents\example.bin Format-Hex 명령어는 내부적으로 아래의 과정으로 처리된다. Get-Content -Path [파일 경로] -Encoding Byte | Format-Hex 2023. 5. 14.
인터넷 익스플로러 엣지로 자동전환 안되게 하는 법 아래 경로로 이동한다. C:\Program Files (x86)\Microsoft\Edge\Application\112.0.1722.39[버전]\BHO 폴더 안에 다음과 같은 파일이 있는데 IE에서 Edge로 자동전환하게 하는 프로그램이다. 삭제하는 것은 찜찜하니 다음과 같이 폴더명을 바꿔주면 된다. 2023. 4. 13.
Windows ] dism 운영체제 이미지 손상 복원, sfc 시스템 파일 무결성 검사 및 복원 Windows 이미지 손상 복원 dism /online /cleanup-image /restorehealth Windows 시스템 파일의 무결성을 검사하고 손상된 파일을 복원 sfc /scaannow 디스크 검사하고 파일 시스템 오류 수정 chkdsk c: /f 2023. 4. 9.