JH721 SW자율차 [리눅스기본및쉘] //6주차-4

JH·2021년 5월 21일
0
post-thumbnail

fork🐱‍👓

system call(syscall) : 서비스 호출 또는 시스템 툴
시스템 : 운영체제의 커널이 제공하는 서비스
운용 프로그램의 요청에 따라 커널에 접근하기 위한 인터페이스이다.

fork() : 클론을 만듦

  • 자식 프로세스가 끝나면 부모 프로세스에게 신호를 줌
  • 무조건 부모 프로세스가 있어야 됨
  • 부모가 다른 일을 계속하고 있으면 자식프로세스가 좀비프로세스가 됨

libc에 있고 fork()를 부르고 clone()을 만듦
do_fork()와 copy_process()는 커널에서 만들어짐

fork() 프로세스 생성원리 (책 P.73 참조)
stack과 data가 자식 프로세스가 만들어질 때 복사됨
BUT 텍스트는 같이 사용 (메모리를 아끼기 위해)

exec() : PID와 PPID는 같은 번호를 받지만 다른 것들은 다름
execl() : 그 프로세스에 숙주해서 자기의 함수로 돌림
exit() : 정상적인 종료 ↔ abort() : 비정상적인 종료

종료 될 때 status 값을 받아 올 수 있음
정상적으로 종료 되었을 때 하위 8비트
비정상적으로 종료 되었을 때 상위 8비트


임베디드 리눅스 개발🐱‍🏍

임베디드 리눅스 시스템 아키텍처

(책 P.76 그림 참조)
(4장의 내용은 심화과정에 다루기 때무에 있다는 것만 확인하면 됨)

부트로더와 u-boot

리눅스를 사용하기 위해서 필요한 것들이 여기에 있음
tftp -> 부트로더를 위한 명령어

u-boot
(GPL이므로 소스코드 바꾸면 공개해야됨)
(자세한 것은 다음주 리눅스 강사님에게 배워라~ 지금은 기초 강의)

리눅스 커널

kernel 압축파일 풀기
uImage 하는 방법 :
make ARCH=arm CROSS_COMPILE=arm-non-linux-gnueabi- -j4 uImage

임베디드 리눅스 설정 및 빌드

패스 책읽어

리눅스 커널 설정 및 빌드

패스 책읽어


쉘 & 쉘 명령어🐱‍🚀

쉘이 있어야 되는 이유?🤔
쉘이 명령을 받아서 커널에게 줌(커널이 bash를 숙주삼아 돌아감)
bash : 리눅스 공식 쉘

echo 명령어 -> printf 같은 것💕
echo 는 공백문자 한개만 처리 공백문자 많이 쓰고 싶은 면 ''안에 넣어서 사용
echo -n 'hello worl';echo good bye : -n을 사용하면 줄바꿈 x
-e : escape 문자로 처리
echo : ls 같이 사용됨

[..] <- 이것이 명령어🤞
ex) [ -f 'Gone With the Wind.mp3' ] : '이름'이 파일이냐? 아니냐? 물어봄
if [ -f 'Gone With the Wind.mp3' ]; then echo "this is file "; else echo "this is not file"; fi
↑ 이런 형식으로 만들어서 참/거짓을 만들 수 있음(if사용하면 끝에fi)

read👍
read num : 입력을 기다리는 상태 -> (입력한 것이) num(변수여서 아무거나 가능함)에 들어감
echo $num 으로 값을 불러오기
read -p "How old are you?" old : 프롬프트를 띄울 수 있음
-s -n 1 -p : -s 사일런스 옵션 // -t 3 -s -n 1 -p : 3초 동안 입력하지 않으면 타임 아웃 (입력하면 유효)

while..do..done(나중에 더 배움)🎶
no=1; while (( no < 10 )); do printf "%02d\n" $no; ((no++)); done : 반복문처럼 사용 가능
여러가지 문법을 사용한 것

#!/bin/hash : shebang/hashbang(#!) 스크랩트를 읽어오라는 것

실행 방법😜

  • bash myscript
  • chmod +x myscript; ./myscript
  • source myscript
  • . myscript

"asd'bbbb'asda" : ''가 ""보다 강하기 때문에 ""안에 ''가 잘 나옴
echo "\"say,say,say\"" -> "say,say,say"로 나옴
echo '"say,say,say"' -> 값은 같지만 가독성이 좋기 때문에 이렇게 사용

강한 순서 확인해봥~!💋
'currrnt path is $PWD' -> currrnt path is $PWD
"currrnt path is $PWD" -> currrnt path is $PWD

쉘 스크립트도 case switch가 있음(7주차 파일 111/112.jpg 파일 참조)

echo $RANDOM : 랜덤한 숫자 만들어냄
나머지 PDF에서 봐.... 제발


TIP!😘
뒤에 & 붙이면 백그라운드로 돌림
ps aux | grep (프로세스) : 돌아가는 확인 하는 방법

profile
JH.velog

0개의 댓글