본문 바로가기

반응형

VEDA 복습

(30)
VEDA 35일차 - 임베디드 리눅스 프로그래밍 시스템 콜callback 함수 : 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 의미프로그램 영역 내에서 수행되는가, 아니면 커널 영역에서 수행하는 가 => 스택은 공유하지만, 프로그램을 읽어오는 공간이 다르다!!파일 디스크립터로 관리, 시스템 콜은 일종의 인터럽트이다!! (밑의 블로그 참조)https://hasensprung.tistory.com/176 [운영체제] System Call(시스템콜)을 파보자!📣 해당 포스트는 운영체제 공룡책과 고건 교수님의 OLC 강의 등을 참고하여 작성되었습니다. 시스템콜을 한마디로 정리하면 커널에 접근하기 위한 인터페이스입니다. 하지만 시스템콜이 이 한hasensprung.tistory.com SWI 명령어 : 권한 변경 => 기존의 제한되었던 소프트웨어적인 접..
VEDA 34일차 - 임베디드 리눅스 프로그래밍(라즈베리파이) 라즈베리파이 4 세팅1) 라즈베리 공식 사이트에 들어가서 installer 다운로드2) PC에 SD 카드를 연결한 후, installer 관리자 모드로 실행3) 라즈베리파이 모델에 맞추어 OS 선택(라즈베리파이4-64bit-SD 카드)4) 필요한 경우 OS 상세 설정5) SD 카드에 OS 마운트 후 라즈베리 파이에 연결하여 확인(키보드, 마우스 , 모니터 연결 필요)6) 네트워크에 연결할 필요가 있음(그래야지 나중에 원격으로 연결 가능), ip 주소 확인7) sudo raspi-config 터미널에 입력 후, interface option -> ssh enable할 것(필수!)8) ssh 등 본 PC의 쉘을 이용하여 접속하면 ok VI 에디터 사용법 => 직접 사용해보는 편이 좋음1. Vim 에디터 개요..
VEDA 교과평가2 준비(리눅스, Make, CMake, Git etc) 리눅스(명령어 위주로 정리) 터미널 : 컴퓨터와 사용자 간에 상호작용할 수 있게 연결하는 장치Shell : 운영체제와 사용자 간 상호작용을 지원하는 소프트웨어 ex) BashShell Script : 셸에서 동작 가능한 명령어를 모아놓은 파일 #!/bin/bash : bin에 있는 bash를 쉘로 사용하겠다. (#!) 명령어manual : mansection # : 1(shell cmd), 2(system call), 3(lib function) ls : list ls -a : all file ls - l : including several characteristics(list) ls -t : from new file to old file sorting ls -R : recurs..
VEDA 33일차 - GDB, CMake, Git, Docker GDB(내용 복습)GDB 구성 core dump : fault 발생 시 당시 스택, 레지스터 값 등을 파일로 저장, 그 당시의 상황을 재현하는 것이 디버깅에 있어서 매우 중요 문제가 발생한 경우 스택(backtrace), 레지스터(info reg *)를 확인하는 것이 좋다. 시작과 종료gdb [프로그램명] : 시작q(quit) or ctrl+d : 종료소스보기(list)브레이크 포인트b func : func 함수의 시작부분에 브레이크 포인트 설정b 10 : 10행에 브레이크 포인트 설정b *0x8049000 : 특정 주소에 브레이크 포인트 설정tb : b와 같으나 1회용 브레이크 포인트. 문법은 b와 동일info b : 현재 브레이크 포인트 보기cl : 브레이크 포인트 지우기d : 모든 브레이크 포인트 ..
VEDA 32일차 - 라이브러리 제작+GDB 약간의 Makeexplicit rule과 implicit rule의 경함항상 explicit rule이 impicit rule에 우선한다. make 함수문자열 함수텍스트를 조작 (치환, 분할, 결합 등)파일 이름 함수경로, 확장자 등 파일 이름 처리조건 함수조건에 따라 값 선택반복 및 리스트 함수반복문, 리스트 처리부가 기능 함수셸 명령 실행, 오류 발생 등 subst용도: 문자열 내에서 서브스트링(substring)을 치환합니다.형식: $(subst 찾을문자열, 바꿀문자열, 대상문자열)patsubst용도: 패턴 매칭에 기반하여 치환합니다.형식: $(patsubst 패턴, 대체문자열, 대상문자열) strip용도: 문자열 양쪽 끝의 공백을 제거합니다.형식: $(strip 문자열)파일 이름 처리 함수 (Fi..
VEDA 31일차 - Makefile samba : 표준 윈도우와 상호 작동하는 리눅스, 유닉스용 프로그램 - SMB/CIFS 프로토콜을 사용하는 클라이언트들이 파일 및 인쇄 서비스를 이용할 수 있는 프로그램(서로 다른 파일 시스템을 사용하는 기기 간에 중계 역할) sudo apt-get install samba 아직 리눅스 환경에 익숙하지 않은 사람들을 위해서 사용이번 주 목표!! : 리눅스 환경에 익숙해지기 - 리눅스 구조, 명령어, vi, make, cmake, gdb 정도는 알아두기!! 1. make - 자동화 도구 helloworld: @echo HelloWorld!hello: @echo helloworld: @echo world hello가 up to date라고 나오는 이유는 이미 he..
VEDA 29일-30일차 - 임베디드 리눅스 프로그래밍 29일차 - Bash script 작성 관련 내용 실습 30일차 Package Mangement Systemrpm- redhat(system-V : UNIX by IBM)apt - ubuntu(Debian : UNIX by BSD)yum 1. list download by update - sudo apt update2. sudo apt search package3. sudo apt install package4. sudo apt remove package systemd : init(old name) == /sbin/initPID 1부팅 -> 초기화-> 서비스 시작/멈춤/관리 담당ex) openssh(ssh.service) systemctl : Query or send control commands to..
VEDA 28일차 - 임베디드 리눅스 foreground : fg, ./a.outbackground : bg, ./a.out &jobs : 현재 수행되고 있는 프로세스 상태를 확인할 수 있다. file descriptor table's index numberfd = open(); daemon : 리눅스 상에서 입력, 출력도 하지는 않지만 돌려지는 프로그램, open은 하기는 하지만 log 파일 등에 흔적을 남긴다. IPC(Inter Process Communication) : 프로세스 간 통신kernel이 제공하는 통신 수단을 이용하여 프로세스 간 통신이 이루어진다.1) unnamed pipe : 부모 프로세스와 자식 프로세스 간 통신2) named pipe : 제약없는 프로세스 간 통신3) message queue : 정해진 큐에 메시지를..

반응형