일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 도커 #Docker #배포 #Spring #MySQL #백엔드배포
- /
- 도커 #docker #docker-compose.yml #도커컴포즈 #배포 #spring #mysql #docker-compose
- chatgpt #gpt #챗지피티 #ai
- Today
- Total
개발자 데뷔!
[Linux] 리눅스 커널 기본 본문
Linux의 중요한 세가지 개념
# 파일시스템
# 프로세스
# 스트림
운영체제 (OS : Operating System)
: HW, App을 총괄하는 소프트웨어
- 리눅스는 유닉스 계열 중 하나의 운영체제.
- 리눅스 배포판 : RedHat, CentOS, Ubuntu, SUSE, Gentoo 등이 있음
* 리눅스 배포판 : 리눅스 커널을 기반으로 한 소프트웨어 배포판
- 리눅스에 포함되는 소프트웨어 패키지는 다음과 같다.
소프트웨어 패키지 | 예시 |
셸 | bash, ash, csh, tcsh, zsh, pdksh, ... |
util-linux | init, getty, login, reset, fdisk, ... |
procps | ps, pstree, top, ... |
GNU coreutils |
ls, cat, mkdir, rmdir, cut, chmod, ... |
GNU grep, findutils, diffutils |
grep, find, diff, ... |
GNU libc | ... |
기본 라이브러리 | ncurses, zlib, GDBM, ... |
개발 환경 | gcc, binutils, make, bison, flex, 헤더파일 ... |
X Window System | ... |
GNOME or KDE | ... |
* util-linux : 리눅스 운영체제의 표준 패키지
* procps : 리눅스 시스템의 프로세스 관리 유틸리티 모음
* Gnome : GNU 프로젝트의 일환으로 개발된 데스크톱 환경 (= Linux GUI)
커널 (kernel)
: 하나의 프로그램으로 구성되어, 컴퓨터를 구성하는 모든 HW, SW 관리
- '리눅스' 단어 자체는 커널 만을 의미한다.
- 리눅스 루트경로 / 에는 vmlinuz, vmlinux, vmlinuz-X.X.X 파일 확인 가능 => 리눅스 커널의 본체
디바이스 드라이버 (Device Driver)
: 특정 HW 디바이스를 직접 조작하는 SW
디바이스 : CPU, 메모리, HDD, SSD, DVD-ROM, CD-ROM, 네트워크 어댑터, clock 등..
* HDD : Hard Disk Drive
* SSD : Solid State Drive
시스템 콜 (System call)
: 커널(system)에게 의뢰(call). 커널에 디바이스 조작을 의뢰하는 콜.
- 보통 '시스템콜 호출코드'는 '일반함수' 사용과 비슷하다.
- 리눅스에 포함되는 시스템 콜은 다음과 같다.
시스템콜 명령어 |
open |
read |
write |
fork |
exec |
stat |
unlink |
라이브러리 함수(Library function)
- printf(), exit(), strlen(), strcpy() 등의 함수
- link 하여 사용
- 라이브러리 함수는 내부적으로 시스템 콜을 사용 할수도 / 안할수도 있다.
- 시스템콜을 -> 라이브러리 함수로 구현하거나, 그 역의 경우도 생기기 때문에 의식적으로 구분하지 않기도 함. (둘다 있는 경우도 多 )
- 하지만 '시스템콜' / '라이브러리 함수'의 차이를 알면 리눅스 이해하기 쉬움
- ex_ printf() 라이브러리 함수는 내부에서 write() 시스템 콜 사용
- ex_ strlen() 라이브러리 함수는 시스템콜 사용하지 않음
C표준 라이브러리 (libc : C standard library)
- c표준 라이브러리 libc 의 위치
- ubuntu : /lib 디렉터리에 위치
- CentOS : /lib64 디렉터리에 위치
- libc.so.6 : libc의 중심파일
- 심볼릭 링크 되어있음
- 아래 ls -l 명령어로 심볼링 링크 추적 가능
- ex_ libc-2.23.so 등의 파일과 연결되어 있는 것을 확인할 수 있다.
ls -l /lib/x86_64-linux-gnu/libc.so.6
* 심볼링 링크 (Symbolic Link) : 파일 시스템에 사용되는 특별한 유형의 링크. 다른 (파일or 디렉토리)를 가리키는 (파일or디렉토리)
API (Application Programming Interface)
: 인터페이스.
- 커널에서의 API 는 시스템 콜을 가리킴.
- 하지만 경우에 따라, 설정파일, 명령어 도 API 가 될 수 있음
- 시스템콜 뿐만 아니라 더 많은 것을 포괄하는 개념
'DevOps > Linux' 카테고리의 다른 글
Linux 빌드시스템 (0) | 2024.05.03 |
---|---|
[리눅스] Linux설치3 _ VM에 ubuntu 설치 (0) | 2021.10.31 |
[리눅스] Linux설치2 _ Virtual Box 가상환경 설치 (0) | 2021.10.31 |
[리눅스] Linux설치1 _ Ubuntu 다운로드 (0) | 2021.10.28 |
[리눅스] Linux 배경 (0) | 2021.10.27 |