리눅스 시스템 프로그래밍_Ch 1

·2021년 1월 23일
1

리눅스

목록 보기
1/3
post-thumbnail

앞으로 쓸 리눅스 시스템 프로그래밍_ 글들은 'Linux System Programming' (Robert Love) 책의 내용들을 바탕으로 정리하는 글입니다. 내 마음대로 쉬운 말로 정리할거임


Ch1 핵심 개념 소개

  • system call(syscall): 사용자 영역에서 커널 내부로 들어가기 위한 함수 호출로 read()나 write() 등이 있음.

  • API와 ABI
    - API: 소프트웨어의 소스 코드 레벨에서, 즉 프로그래밍 언어 레벨에서 인터페이스 제공
    - ABI: 바이너리 레벨에서 인터페이스 제공

  • POSIX: os의 표준이라고 할 수 있음. (상식적으로) 스레드나 유틸리티 등을 정의함. 강제성은 없음.

  • 리눅스는 모든 것이 파일이므로 모든 인터렉션은 파일을 읽고 쓰는 것
    - 리눅스에서 파일이 매우 중요!!!
    - file descriptor(fd)로 컨트롤
    - 일반 파일, 디렉토리, 링크 등 모두 다 파일 형태임

  • inode: 파일 시스템 내에서만 고유한 정수값

  • 하드링크(Hard link): 동일한 inode에 대한 여러가지 파일 이름 mapping. (바로가기 느낌)

  • 심볼릭링크(Symbolic link): 여러 파일 시스템에 걸쳐 사용할 수 있도록 제공. (서로가 같은 것을 공유하는 같이 업데이트하는 느낌)

  • 스레드(Thread): 프로세스 내에서의 흐름. 코드시퀀스의 집합들. 프로세스 내부에서 실행하는 단위.
    - 각 프로세스는 스레드 하나 이상을 가짐. (하나: 싱글 스레드, 여러개: 멀티 스레드)

  • 시그널(Signal): 인터럽트(interrupt)를 갑자기 발생시켜서 어떠한 사건(Event)을 발생시킴(예를 들면 ctrl+c(복사) 같은거)

profile
문과생 컴공초보👩🏻‍💻

0개의 댓글