문의를 보내주셔서 감사합니다! 팀원이 곧 연락드리겠습니다.
예약을 보내주셔서 감사합니다! 저희 팀 멤버 중 한 분이 곧 연락드리겠습니다.
코스 개요
소개
- 목표
- 당신에 대해
- 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 메시지 큐 **
- 실습
요건
본 과정은 숙련된 개발자를 대상으로 합니다. 학생들은 C 프로그래밍에 능숙해야 하며 기본 Linux 유틸리티 및 텍스트 편집기에 익숙해야 합니다.
청중
본 과정은 숙련된 개발자를 대상으로 합니다. 학생들은 C 프로그래밍에 능숙해야 하며 기본 Linux 유틸리티 및 텍스트 편집기에 익숙해야 합니다.
경험 수준: 중급
28 시간