Thank you for sending your enquiry! One of our team members will contact you shortly.
Thank you for sending your booking! One of our team members will contact you shortly.
Course Outline
소개
- 목표
- 당신에 대해
- The Linux Foundation
- Linux Foundation Training
- 인증 프로그램 및 디지털 배지
- Linux 배포판
- 플랫폼
- 시스템 준비
- 가상 머신 사용 및 다운로드
- Linux에서 변하는 사항
사전 준비
- 절차
- 표준 및 LSB
OSS 프로젝트에서 작업하는 방법 **
- 적절히 기여하는 방법 개요
- 보안과 품질을 위해 메인라인에 가까운 상태 유지
- 프로젝트 DNA 연구 및 이해
- 해결하고자 하는 문제를 파악
- 유지보수자와 작업 흐름 및 방법 식별
- 초기 피드백을 얻고 공개적으로 작업
- 큰 코드 덤프 대신 점진적인 부분을 기여
- 이기심은 문 앞에 두기: 민감하지 않기
- 참을성 있게 행동하고, 장기적인 관계를 개발하며, 도움이 되기
컴파일러
- GCC
- 기타 컴파일러
- 주요 gcc 옵션
- 전처리기
- 통합 개발 환경(IDE)
- 실습
라이브러리
- 정적 라이브러리
- 공유 라이브러리
- 라이브러리에 링크
- 동적 링크 로더
- 실습
메이크
- make와 Makefiles 사용
- 대형 프로젝트 빌드
- 더 복잡한 규칙
- 내장 규칙
- 실습
소스 관리
- 소스 관리
- RCS 및 CVS
- Subversion
- git
- 실습
디버깅 및 코어 덤프
- gdb
- 코어 덤프 파일은 무엇인가요?
- 코어 덤프 생성
- 코어 덤프 검사
- 실습
디버깅 도구
- 시간 얻기
- 프로파일링 및 성능
- valgrind
- 실습
시스템 호출
- 시스템 호출 대 라이브러리 함수
- 시스템 호출 방식
- 반환 값 및 오류 번호
- 실습
메모리 관리 및 할당
- 메모리 관리
- 동적 할당
- malloc() 튜닝
- 페이지 잠금
- 실습
Linux의 파일 및 파일 시스템 **
- 파일, 디렉토리 및 장치
- 가상 파일 시스템
- ext2/ext3 파일 시스템
- 저널링 파일 시스템
- ext4/ 파일 시스템
- 실습
파일 I/O
- UNIX 파일 I/O
- 열기 및 닫기
- 읽기, 쓰기 및 검색
- 위치 기반 및 벡터 I/O
- 표준 I/O 라이브러리
- 대용량 파일 지원(LFS)
- 실습
고급 파일 작업
- stat 함수
- 디렉토리 함수
- inotify
- 메모리 매핑
- flock() 및 fcntl()
- 임시 파일 생성
- 기타 시스템 호출
- 실습
프로세스 I
- 프로세스는 무엇인가요?
- 프로세스 제한
- 프로세스 그룹
- proc 파일 시스템
- 프로세스 간 통신 방법
- 실습
프로세스 II
- system()을 사용하여 프로세스 생성
- fork()을 사용하여 프로세스 생성
- exec()을 사용하여 프로세스 생성
- clone() 사용
- 종료
- 생성자 및 소멸자
- 대기
- 데몬 프로세스
- 실습
파이프 및 FIFO
- 파이프 및 프로세스 간 통신
- popen() 및 pclose()
- pipe()
- 이름 있는 파이프(FIFOs)
- splice(), vmsplice() 및 tee()
- 실습
비동기 I/O **
- 비동기 I/O란 무엇인가요?
- POSIX 비동기 I/O API
- Linux 구현
- 실습
신호 I
- 신호는 무엇인가요?
- 사용 가능한 신호
- 신호 디스패치
- 알람, 일시 중지 및 수면
- 신호 처리기 설정
- 신호 집합
- sigaction()
- 실습
신호 II
- 재진입성과 신호 처리기
- 점프 및 비지역 반환
- siginfo 및 sigqueue()
- 실시간 신호
- 실습
POSIX 스레드 I
- Linux에서 멀티스레딩
- 기본 프로그램 구조
- 스레드 생성 및 파괴
- 신호 및 스레드
- forking 대 스레딩
- 실습
POSIX 스레드 II
- 데드락 및 경쟁 상태
- 뮤텍스 작업
- 세마포어
- 퓨텍스
- 조건 작업
- 실습
네트워킹 및 소켓
- 네트워킹 계층
- 소켓은 무엇인가요?
- 스트림 소켓
- 데이터그램 소켓
- 원시 소켓
- 바이트 순서
- 실습
소켓 주소 및 호스트
- 소켓 주소 구조
- IP 주소 변환
- 호스트 정보
- 실습
소켓 포트 및 프로토콜
- 서비스 포트 정보
- 프로토콜 정보
- 실습
소켓 클라이언트
- 기본 클라이언트 순서
- socket()
- connect()
- close() 및 shutdown()
- UNIX 클라이언트
- 인터넷 클라이언트
- 실습
소켓 서버
- 기본 서버 순서
- bind()
- listen()
- accept()
- UNIX 서버
- 인터넷 서버
- 실습
소켓 입력/출력 작업
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- 실습
소켓 옵션
- 소켓 옵션 가져오기 및 설정
- fcntl()
- ioctl()
- getsockopt() 및 setsockopt()
- 실습
네트링크 소켓 **
- 네트링크 소켓은 무엇인가요?
- 네트링크 소켓 열기
- 네트링크 메시지
- 실습
소켓 다중화 및 동시 서버
- 다중화 및 비동기 소켓 I/O
- select()
- poll()
- pselect() 및 ppoll()
- epoll
- 신호 주도 및 비동기 I/O
- 동시 서버
- 실습
프로세스 간 통신
- IPC 방법
- POSIX IPC
- System V IPC **
- 실습
공유 메모리
- 공유 메모리는 무엇인가요?
- POSIX 공유 메모리
- System V 공유 메모리 **
- 실습
세마포어
- 세마포어는 무엇인가요?
- POSIX 세마포어
- System V 세마포어 **
- 실습
메시지 큐
- 메시지 큐는 무엇인가요?
- POSIX 메시지 큐
- System V 메시지 큐 **
- 실습
Requirements
본 과정은 숙련된 개발자를 대상으로 합니다. 학생들은 C 프로그래밍에 능숙해야 하며 기본 Linux 유틸리티 및 텍스트 편집기에 익숙해야 합니다.
청중
본 과정은 숙련된 개발자를 대상으로 합니다. 학생들은 C 프로그래밍에 능숙해야 하며 기본 Linux 유틸리티 및 텍스트 편집기에 익숙해야 합니다.
경험 수준: 중급
28 Hours