| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- netstat
- repo
- g++
- system call
- vm
- ubuntu
- strace
- linux
- APT
- bash
- SSH 에러
- Git
- sudo
- MAN
- AZRUE
- dash
- NXP
- ssh
- ubuntu20.04
- Go
- 상대경로
- system programming
- Docker
- 소스트리
- gcc
- Parent
- 시스템콜
- 커널
- yocto
- Child
- Today
- Total
목록분류 전체보기 (14)
devsojang 님의 블로그
쉘 스크립트에서 상대경로는 항상조심해야 합니다. 문제가 없는 스크립트인데 갑자기 에러가 발생을 합니다. 대략난감이죠 ~ WHY ??? 한가지 예로 다음과 같은 경우가 있습니다. " ~ " 는 쉘에서 사용자의 홈 디렉토리를 의미합니다. 하지만 이건 쉘이 직접 해석할 때만 적용됩니다. PATH 변수에 " ~ " 사용한 경우 스크립트에서 해석하지 못하는 경우가 발생합니다. 터미널에서 분명히 잘 사용되는 명령어인데 스크립트에서는 해당 명령에 대해서 "Command not found" 메세지를 출력합니다. 스크립트 내부에서 사용한다면, 해석되지 않고 경로를 찾지 못해 오류가 발생한 것입니다. 스크립트 내부에서 제대로 사용하려면 $HOME 변수를 사용하거나 절대경로를 사용하면 됩니다. 변수를 확실하게 사..
임베디드 개발을 하다보면 실행해야 하는 script가 bash로 만들어진 것들이 많이 있습니다.메뉴얼 대로 실행을 했는데 에러가 뜨면 난감한 상황이 발생하죠.ubuntu 환경의 기본쉘은 dash !!!의외로 bash로 착각하시는 분들이 많아요 ~ bash로 변경해 보도록 해보겠습니다. 다음 명령어를 실행합니다. # ls -al /bin/sh dash -> bash 로 변경하기 위한 다음 명령을 실행합니다. # sudo dpkg-reconfigure dash No를 선택합니다. 다시 다음 명령어를 실행해 봅니다.# ls -al /bin/sh bash로 변경된 것을 확인할 수 있습니다. 그럼 즐거운 개발 하세요 !!!
Docker란 ? 컨테이너 단위로 어플케이션을 패키징하고 실행할 수 있게 해주는 오픈 소스 플랫폼입니다. 어떤 프로그램을 실행하기 위해서 필요한 서버, 라이브러리, 자원, 설정등을 하나의 독립된 환경으로 묶어주는 기술입니다. 전통적인 VM(Vmware, Virtual Machine 등) 보다 훨씬 가볍고 빠르며, 개발 환경 및 OS 환경에 영향을 거의 받지 않는 이식성을 가지고 있고 Docker 이미지로 애플리케이션을 관리하고 배포 할수 있습니다. VM은 건물로 치면 집을 하나씩 짓는 개념이고, Docker는 건물안에 사무실을 여러개 만들어서 필요한 공간을 효율적으로 사용할 수있는 개념이라고 크게 생각하면 편합니다. Docker Hub를 통해 수많은 검증된 이미지를 공유 할수도 있습니다. 여기서는..
fork 함수란? fork 함수의 원형은 다음과 같다.#include pid_t fork(void); fork 함수는 Linux man에서 다음과 같이 정의한다.fork - create a child process child process를 생성한다그렇다. Linux에서는 fork 함수를 이용해서 process를 생성한다.이때 호출을 하는 process는 parent process가 되고 , 생성된 process는 child process가 된다.이때 parent process의 메모리 이미지를 새로운 메모리 영역에 복사하여 child process에서 사용할 수 있게한다. fork를 호출한 시점 이후 부터는 parent, child 각각의 메모리 영역에서 실행된다. #include #include ..
ubuntu 20.04의 기본 gcc/g++은 9 버전입니다. 기존에 구축한 환경을 유지하기 위해 대부분 ubuntu를 업그레이드 하지 않고 쓰는 경우가 많습니다. 그러나 세월이 흘러 여러 설치 패키지들과 빌드 하는 여러가지 소스코드들도 버전 업을 하게 됩니다. 이런 과정에서 gcc/g++ 의 상위 버전을 요구하는 경우가 발생합니다. 그렇다면 gcc/g++ 10을 설치해 보도록 하겠습니다. 다음 명령어를 통해 설치합니다. $ sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa$ sudo apt update$ sudo apt install g++-10 update-alternatives를 사용해서 gcc 버전을 선택할수 있도록 설정합니다. $ sudo update-..
NXP Yocto Guide(Rev. LF6.6.52_2.2.0) pdf 문서를 참고합니다. OS : ubuntu 20.04 SSD or HDD 용량 : 최소 50GB 이상 (크면 클수록 좋음) Host Packages 설치 다음과 같이 설치합니다.$ sudo apt install curl gawk wget git diffstat unzip texinfo gcc build-essential chrpath \ socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping \ python3-git python3-jinja2 python3-subunit zstd liblz4-tool file locales libacl1 ..
Ubuntu 와 Debian 에서 openssh-server 설치하는 법은 다음과 같습니다. ssh 설치 $ sudo apt install openssh-server ssh 시작 및 활성화 $ sudo systemctl start sshd$ sudo systemctl enable sshd ssh 서비스 상태 확인$ sudo systemctl status sshd ssh 포트 (기본값 22) 확인 하는 법$ netstat -tuln | grep 22 ssh 비밀번호 인증 사용 여부 확인 하는 법 $ sudo cat /etc/ssh/sshd_config | grep PasswordAuthentication port 22: Connection refused 해결책$ sudo nano /etc/ssh..
2025.01.18 - [Linux] - System Call 이란 ? System Call 이란 ?System Call프로세스가 커널에 처리를 요청하는 방법입니다.사용자모드에서 실행중인 프로세스가 시스템 콜을 호출하면 CPU에서 예외(exception)가 발생되고 CPU 모드가 사용자 모드에서 커널모드로 devsojang.tistory.com Linux 시스템 상에서 프로세스가 어떤 System Call을 호출하는지 strace 명령어를 통해서 확인할 수 있습니다. devsojang.go 파일을 사용해서 테스트 해보도록 하겠습니다.package mainimport ( "fmt")fun main() { fmt.Println(" devsojang ~ !!")} 빌드를 합니다. $ go build de..