리눅스
운영체제
운영체제란(OS)?
- 사용자가 컴퓨터를 사용하기 위해 필요한 SW
- 시스템 호출을 통해 태스크가 자원을 사용할 수 있게 해주는 자원 관리자
운영체제의 목적
- 컴퓨터의 하드웨어를 관리
- 사용자에게 편의를 제공
- 컴퓨터의 성능을 높임
운영체제의 위치
- 사진 추가 예정
리눅스
리눅스란?
- Linux는 os중 하나이며, 다중 사용자, 다중 작업(멀티테스킹, 다중쓰레드)를 지원하는 네트워크 운영체제(NOS)
리눅스의 장점
- 사용자 임의대로 재구성 가능
- 열악한 환경에서도 H/W 자원을 적절히 활용하여 동작
- 커널의 크기가 작음
- 완벽한 멀티유저, 멀티태스킹 시스템
- 뛰어난 안정성
- 빠른 업그레이드
- 강력한 네트워크 지원
- 풍부한 소프트웨어
- 사용자를 위한 여러 가지 공개 문서들
02. 리눅스 커널 구조
커널이란?
- 운영체제의 핵심을 이루는 부분으로, CPU나 메모리 그리고 기타 디바이스 등의 시스템 리소스를 관리하고, 사용자 프로그램이 이를 사용할 수 있도록 한다.
- 자원관리자의 역할
참고 < 자원관리자의 구체적인 역할 >
태스크 관리자
- 태스크의 생성, 실행, 상태전이, 스케쥴링, 시그널 처리, 프로세스간 통신(IPC)
메모리 관리자
- 물리 메모리 관리, 가상 메모리 관리, 세그먼테이션, 페이징, 페이지 부재 결함 처리
파일 시스템
- 파일의 생성, 접근제어, inode 관리, 디렉터리 관리, 수퍼블록 관리
네트워크 관리자
- 소켓 인터페이스 TCP/IP
디바이스 드라이버
디스크, 터미널, CD, 네트워크 카드, 주변장치 구동 드라이버
리눅스의 소스코드 구조
(사진추가예정)
디렉터리가 담당하는 역할들
kernel
- 태스크 관리자 구현, 태스크 관리자 기능 구현
arch
- CPU 타입과 같은 하드웨어 종속적인 부분 구현
fs
- 리눅스에서 지원하는 다양한 파일 시스템 (ext,nfs,VFS) 포함
mm
- 메모리 관리자 구현
driver
- 리눅스에서 지원하는 디바이스 드라이버 구현
net
- 커널 소스 중 상당히 많은 양을 차지하며 통신 프로토콜 구현
ipc
- 프로세스간 통신 기능 구현(파이프, 시그널 등등)
init
- 커널 초기화 부분으로 커널의 메인 시작 함수 구현
include
- 리눅스 커널이 사용하는 헤더 파일 구현
others
- Documentation 디렉터리에 유용한 자료 존재