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

Number of participants


Price per participant

Upcoming Courses

Related Categories