임베디드

임베디드

  • 분류 전체보기 (1142)
    • PL (150)
      • C++ (108)
      • Python (39)
      • Java (3)
      • Kotlin (0)
    • 알고리즘 (462)
      • 암기 (91)
      • 백준 (328)
      • 삼성 (17)
      • 종만북 (4)
      • 프로그래머스 (22)
    • 임베디드 (411)
      • 하드웨어지식 (12)
      • ATmega128 (98)
      • 32F429IDISCOVERY (57)
      • 임베디드리눅스 (15)
      • 리눅스커널스터디16기 (2)
      • 리눅스시스템프로그래밍 (97)
      • 운영체제 (26)
      • 컴퓨터구조 (4)
      • dd (1)
      • ubuntu (81)
      • opencv (18)
    • 드론 (99)
    • TIP (12)
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

임베디드

컨텐츠 검색

태그

#linuxbirthday_a_message_from_Seoul_Korea !!

최근글

댓글

공지사항

아카이브

임베디드/리눅스시스템프로그래밍(97)

  • [수정 전] Makefile 작성하기

    2019.11.16
  • return 0와 exit(0)의 차이

    2019.11.08
  • copy on write의 내부 동작

    2019.11.08
  • fork와 exec로 나만의 쉘 만들기

    2019.11.08
  • exec 동작 방식

    2019.11.07
  • 프로세스 최대 생성 수

    2019.11.07
[수정 전] Makefile 작성하기

2019. 11. 16. 23:52
return 0와 exit(0)의 차이

컴파일러 동작을 살펴보면, 실제 main이 중심이긴 하지만 _start라는 커널 함수가 먼저 호출된다. _start 함수 내부를 살펴보면 _start() { main() exit() } 와 같이 구성되어 있어 마지막에 상태값이 들어간 exit를 호출하게 된다. 다만 main 안에서 exit를 바로 호출하면 프로세스가 바로 종료되기 때문에 _start 안에서의 main 아래 코드는 호출되지 않고 끝나버린다

2019. 11. 8. 21:02
copy on write의 내부 동작

리눅스에서 최근에 프로세스 생성 시 copy on write 기법을 도입해서 물리메모리를 효율적으로 관리하고 있다 1. 자식 프로세스를 생성할 때, 초기에 따로 페이지 테이블을 생성하지 않는다. 부모 프로세스의 페이지 테이블을 우선 사용한다 (포인터 참조의 개념으로 이해) 2. 부모 또는 자식 프로세스가 읽기가 아닌 쓰기를 진행할 때 페이지를 복사하고 분리하게 된다 프로세스 생성 시간과 생성되어야 하는 페이지 수도 줄어든다는 장점이 있다

2019. 11. 8. 02:27
fork와 exec로 나만의 쉘 만들기

무한루프 안에서 fork와 execlp을 통해서 나만의 쉘을 구성하는 소스코드다. exit를 입력하면 쉘을 빠져나오게 된다

2019. 11. 8. 01:38
exec 동작 방식

fork 시스템 콜은 새로운 프로세스 공간을 별도로 만들고, 호출한 프로세스는 부모 프로세스 공간을 모두 복사한다. 반면에 exec 시스템 콜은 현재 프로세스 공간의 Text, Data, Bss 영역을 새로운 프로세스의 이미지로 덮어씌운다. 따라서 exec를 실행하면 그 뒤에 있던 Text 코드는 다른 것으로 덮어씌어지게 된다 exec 계열에서 파생된 라이브러리 함수는 다양하다 execl에서 PATH는 환경변수의 경로를 의미한다. arg가 경로를 찾을 수 없을 때 path를 참조한다 #include #include #include #include int main(int argc, char **argv) { printf("execute ls\n"); execl("/bin/ls", "ls", "-al", N..

2019. 11. 7. 21:06
프로세스 최대 생성 수

프로세스가 생성할 때마다, 고유의 PID 값을 갖는다. 다만 초기에 제한되는 프로세스가 생성되는 수가 존재한다 기본적으로 signed 16비트 정수가 최대 제한된 수이다 $ sudo cat -n /proc/sys/kernel/pid_max 리눅스 배포판과 그 버전에 따라서 상이할 수 있다

2019. 11. 7. 15:27
1 2 3 4 ··· 17
티스토리
© 2018 TISTORY. All rights reserved.

티스토리툴바