본문 바로가기

운영체제49

Linux ] gcc -O 최적화 옵션 플래그 컴파일러의 최적화 수준을 설정 옵션 최적화수준 -O0 최적화를 수행하지 않는다. (기본값) -O1 또는 -O 코드 크기와 실행 시간을 줄이는 것을 제외한 최적화는 실행하지 않는다 -O2 메모리 공간과 속도를 희생하지 않는 범위내의 모든 최적화를 수행한다 loop unrolling과 function inlining에 대한 최적화를 수행하지 않는다 -O3 O2 최적화에 인라인 함수와 레지스터에 대한 최적화를 추가로 수행한다. -Os O2 최적화를 수행하지만 코드 크기를 증가시키는 최적화는 생략한다. -Ofast 사용이 권장되지 않는 최적화 옵션 ※ 커널 컴파일 시 최적화 옵션 -O2만 사용하는 이유 커널은 최적화된 수행 속도를 위해 의도적으로 인라인 함수를 사용하고 있다. -O3 최적화는 컴파일러가 판단해서.. 2022. 10. 9.
Linux ] gdb 디버거 사용법 -g 옵션을 넣고 컴파일 한다. gcc main.c -g -o main 컴파일 최적화 옵션은 사용하지 않는 것이 좋다. gdb 실행파일명으로 실행한다. gdb ./main 또는 gdb로 실행중인 프로세스의 식별자인 PID를 load 하는 것도 가능하다. 소스코드 보기 l : main 심볼부터 소스코드 출력 l 10: 10행을 기준으로 소스코드 출력 l - : 이전행의 소스 출력 l func: 해당 함수의 소스 출력 l file.c:func: 해당 파일의 해당 함수 부분을 출력 l file.c:10 : file.c 파일의 line 10을 기준으로 출력 set listsize 20 : l 명령의 기본 출력 코드 수를 20라인으로 설정 어셈블리 코드 보기 disas 라인/함수명 분기 jump 행번호/함수명 엔.. 2022. 10. 9.
Linux ] rm 명령어 rm (옵션) 삭제할 파일 또는 디렉토리 명 옵션 -r : 일반 파일은 그냥 지우고 디렉토리는 리렉토리 포함 하위 경로의 파일을 모두 지운다. -i : 지우기 전에 사용자의 확인을 받는다. (y/n) -f : 확인하지 않고 지운다. ex. rm -rf * 현재 디렉토리에 속한 모든 파일과 디렉토리를 물어보지 않고 삭제한다. 2022. 10. 9.
Linux ] 연속으로 명령 실행시키기 ; & && || pipe a; b : 앞의 명령어가 실패해도 다음 명령어 실행 a && b : 앞의 명령어가 성공했을 때 다음 명령어가 실행 a & b : 앞의 명령어를 백그라운드로 돌리고 동시에 뒤의 명령어를 실행 a || b : 앞의 명령어가 성공했을 때 다음 명령어 미수행, 앞의 명령어 실패 시 다음 명령어 실행 그 외 a | b : pipe, a의 수행 결과를 b가 받아서 수행 ex. cat /etc/passwd | grep mail 시스템의 계정정보가 들어있는 /etc/passwd 파일을 출력하는데 mail 이란 문자열이 들어간 라인만 필터링 tail -20 /etc/passwd | cat -n /etc/passwd 파일을 뒤에서 20줄 출력하는데 cat -n 옵션인 줄번호를 붙여 출력 2022. 10. 9.
Linux ] mv, rename 명령어 사용법, 파일명 변경, 파일 이동, 확장자 일괄 변경 📝 mv 명령어 사용 파일명 변경 mv 기존파일명 변경파일명 📝 mv 명령어 사용 파일 이동 mv 기존파일경로/기존파일명 옮길경로/변경파일명 파일이 위치를 이동하면서 파일명을 변경하는 것도 가능 📝 rename 명령어를 사용하기 위해 설치 sudo apt install rename 📝 테스트용 빈 파일 만들기 touch test1.c && touch test2.c 📝 rename 명령어 사용하여 확장자 또는 파일명 일괄 변경하기 rename 's/변경전문자열/변경후문자열/' 변경대상 rename 's/.c/.txt/' *.c rename 's/.txt/.c/' *.txt rename 's/test/TEST/' *.c 2022. 10. 9.
WSL2 설치하기 (Windows Subsystem for Linux) https://learn.microsoft.com/ko-kr/windows/wsl/install-manual 이전 버전 WSL의 수동 설치 단계 wsl install 명령을 사용하지 않고 이전 버전의 Windows에 WSL을 수동으로 설치하는 방법에 대한 단계별 지침입니다. learn.microsoft.com 1. PowerShell을 관리자 권한(시작 메뉴 > PowerShell >에서 관리자 권한으로 실행 >을 마우스 오른쪽 단추로 클릭)으로 열고 다음 명령을 입력한다. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 2. Windows 10 x64 시스템의 경우 버전 1903 .. 2022. 10. 1.
윈도우에서 리눅스 개발환경 구축하기 WSL2 + VSCode 먼저 윈도우 PC에 WSL이 깔려있어야 한다. WSL 설치는 공식 문서에서 자세하게 설명하고 있다. https://learn.microsoft.com/en-us/windows/wsl/install Install WSL Install Windows Subsystem for Linux with the command, wsl --install. Use a Bash terminal on your Windows machine run by your preferred Linux distribution - Ubuntu, Debian, SUSE, Kali, Fedora, Pengwin, Alpine, and more are available. learn.microsoft.com VSCode 에서 WSL extension.. 2022. 9. 30.
Windows ] 방화벽 포트 열기 윈도우10에서 방화벽 포트 열기 2022. 9. 25.
C ] Windows 에서 PThread 사용하기 (Visual Studio 사용) PThread (Posix Thread)는 유닉스계열의 표준 스레드 라이브러리로 비록 유닉스 계열 라이브러리지만 win32에서도 사용할 수 있는 방법이 있다. 1. 아래 홈페이지 가서 라이브러리를 다운 받는다. https://www.sourceware.org/pthreads-win32/ POSIX Threads (pthreads) for Win32 Open SourcePOSIX Threads for Win32 Current release: 2.9.1 (2012-05-27)See the ANNOUNCEMENT and NEWS for details.Pthreads-w32 release 1.11.0 (2005-06-04) was the last series 1.x.x version! (Version 1.11... 2022. 8. 24.
VMware ] Linux Ubuntu 에서 한영키 사용하기 root 권한으로 로그인 쉘 스크립트 파일을 만든다. vi hangul.sh 아래와 같이 입력 후 저장하고 닫기 #!/bin/bash setkeycodes 72 122 setkeycodes 71 123 스크립트 파일 실행하기 chmod +x hangul.sh ./hangul.sh 한영키가 잘 먹히는것을 확인할 수 있다. 이제 systemctl 을 통해 부팅시마다 변경한 설정이 적용될 수 있도록 설정한다 아래 경로로 가서 서비스 새로 등록 cd /etc/systemd/system vi hangul.service 아래와 같이 입력 후 저장하고 닫기 [Unit] Description=Change Hangul keycode [Service] ExecStart=/[스크립트 파일이 있는 경로]/hangul.sh [.. 2022. 8. 14.
Linux Ubuntu ] Waiting for cache lock : Could not get lock /var/lib/dpkg/lock-fro 오류 해결 apt update 또는 apt install 시 아래 문구가 무한 반복되는 오류 잠긴 캐시 파일을 다음 명령어로 삭제 sudo rm /var/lib/dpkg/lock* 2022. 8. 14.
Linux ] Vim 에디터 단축키 이동gg : 맨 위로 커서 이동shift + g : 맨 아래로 커서 이동[Home] : 현재 줄의 맨 앞으로 커서 이동[End] : 현재 줄의 맨 뒤로 커서 이동[Page Up] / [Page Down] : 페이지 단위 이동shift + h : 현재 보이는 페이지 기준으로 맨 위로 커서 이동shift + m : 현재 보이는 페이지 기준으로 중간 위치로 커서 이동shift + l : 현재 보이는 페이지 기준으로 맨 아래로 커서 이동d : 현재 단어의 맨 앞으로 커서 이동 원하는 줄번호로 이동:줄번호    복사/붙여넣기/잘라내기현재 행 복사하기y 현재 행에 붙여넣기p 현재 행 잘라내기 (단순 행 삭제가 아니라 잘라내기로 동작한다.)dd 특정 줄부터 특정 줄까지 복사하기:5,15y (5번째 줄부터 15번째 줄.. 2022. 8. 14.
VMware 에 Linux Ubuntu 설치하기 VMware 다운로드 경로 : https://www.vmware.com/kr/products/workstation-player/workstation-player-evaluation.html 설치 우분투 iso 이미지 다운받기 최신 버전은 공식 홈페이지에서 다운받고 예전 버전은 아래 사이트에서 다운 받는다. http://old-releases.ubuntu.com/releases/ Ubuntu 20.04.3 LTS 데스크탑버전으로 다운받았다. 여유 공간이 있는 드라이브에 원하는 이름으로 폴더 생성 나중에 설치 선택 아까 만들어둔 폴더 경로 선택 디스크 용량을 지정하고 가상 머신의 내용을 하나의 파일에 저장할 것인지, 여러 파일에 나눠 저장할 것인지를 선택 생성후 edit 가상 머신에 설치된 리눅스의 동작에 .. 2022. 8. 13.
Windows ] USB 시리얼 포트 변경하는 법 장치관리자 - 포트 - 오른쪽클릭 - 속성 포트설정 - 고급 - COM 포트번호 변경 2022. 7. 12.
[ VMware ] 에서 USB 인식이 안될 때 문제 해결 윈도우키+R키로 실행창을 열고 services.msc 를 입력 VMware USB Arbitration Service 를 찾아서 시작유형은 자동으로 하고 시작을 눌러 상태를 실행중으로 바꿔줌 VMware 세팅창을 열어 Hardware 부분에 USB Controller가 add되어 있고 Connections에는 show all USB input devices 가 체크되어 있는지 확인 이제 가상환경에서 usb를 꽂으면 게스트os에 연결할지 묻는 창이 뜨고 확인을 누르면 된다. lsusb 명령어로 확인해 보니 잘 인식 됨. 2022. 4. 5.
[ Mediapipe ] Ubuntu Linux에 설치하고 실행해보기 with python on VirtualBox 실행환경 Virtual Box Ubuntu 20.04.4 LTS desktop ver Python 3.8.10 OpenCV 4.5.5 0. 파이썬 설치되어있는지 확인하고 안되어있으면 설치하기 Ubuntu 20.04버전을 깔았다면 Python 3.x 버전이 이미 설치되어있다. dpkg -l 명령어로 현재 깔려있는지 알 수 있으며 안깔려 있는 경우 다음 명령어로 설치가능 sudo apt-get install python3 1. pip 설치하기 sudo apt-get update sudo apt-get install python3-pip 2. pip로 OpenCV 라이브러리 설치 pip3 install opencv-python 잘 설치가 됐다 warning이 떴으니 ~/.bashrc 를 열어 PATH 추가도 .. 2022. 4. 4.
Mediapipe ] Windows에 Mediapipe 설치하고 실행해보기 with python 0. 준비사항 : Python을 설치한다. 파이썬 패키지 매니저인 pip도 같이 설치되었을 것이다. 1. cmd창을 열고 다음과 같이 친다 pip install mediapipe opencv-python 2. mediapipe 공식사이트에서 hand 예제를 긁어와 hand.py 로 저장한다. import cv2 import mediapipe as mp mp_drawing = mp.solutions.drawing_utils mp_drawing_styles = mp.solutions.drawing_styles mp_hands = mp.solutions.hands # For static images: IMAGE_FILES = [] with mp_hands.Hands( static_image_mode=True,.. 2022. 4. 4.
[ Cygwin ] 설치 및 패키지 설치 Cygwin 은 윈도우에서 여러 리눅스 프로그램과 명령어 배쉬셸을 사용할 수 있게 해주는 프로그램이다. 시그윈 설치 https://www.cygwin.com/install.html 빠른속도를 위해 kr이 붙은 미러사이트 선택 중간에 Select Packages 화면에서 유용한 패키지 들을 같이 설치해 줄 수 있는데 All-catecory를 열고 devel 카테고리에서 gcc-core, make나 cmake 등 editor 카테고리에서 vim 등을 같이 설치해주자. 드롭다운을 열고 버전 선택 추후 apt-cyg 명령어를 사용해 필요한 패키지를 Cygwin 콘솔에서 설치할 수 있게 하기 위해 wget도 같이 설치해준다. 아니면 나중에 설치파일을 다시 실행해서 패키지를 추가 설치해줄 수 도 있다. 참고로 Cy.. 2022. 4. 4.
[ Cygwin ] home directory 바꾸는 법 Cygwin을 설치한뒤 cd ~ pwd 를 치면 현재 홈디렉터리를 알 수 있는데 초기 홈디렉토리는 /home/user name 으로 설정되어있다 만약 다른 드라이브로 가고 싶다면 cd /cygdrive/d or e 등을 터미널에 입력하면 된다. 그럼 사용상 편리함을 위해 홈디렉터리를 바꿔보자 cygwin이 설치된 폴더를 찾아가 cygwin64\etc\nsswitch.conf 파일을 에디터로 연다 다음과 같이 db_home: 부분을 주석처리 해제하고 원하는 경로로 수정해준뒤 껐다 키면 적용이 된다. 바꾼 후 echo $HOME 을 입력하여 잘 바뀌었는지 확인해보자 2022. 3. 31.