https://github.com/seongwonp/c_linuxsysprog
C 언어 기반의 시스템 프로그래밍 강의를 수강하며 리눅스 환경에서 파일, 프로세스, 메모리, 시그널, 소켓 등 핵심 시스템 기능을 실습한 내용을 정리한 공간입니다.
https://github.com/seongwonp/c_linuxsysprog
c gcc linux system-programming vim
Last synced: about 2 months ago
JSON representation
C 언어 기반의 시스템 프로그래밍 강의를 수강하며 리눅스 환경에서 파일, 프로세스, 메모리, 시그널, 소켓 등 핵심 시스템 기능을 실습한 내용을 정리한 공간입니다.
- Host: GitHub
- URL: https://github.com/seongwonp/c_linuxsysprog
- Owner: Seongwonp
- License: mit
- Created: 2024-09-26T01:11:31.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-09-12T13:41:51.000Z (10 months ago)
- Last Synced: 2025-10-11T00:54:15.258Z (9 months ago)
- Topics: c, gcc, linux, system-programming, vim
- Language: C
- Homepage:
- Size: 521 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🖥️ C 시스템 프로그래밍 실습 저장소
이 저장소는 C 언어 기반의 시스템 프로그래밍 강의를 수강하며
리눅스 환경에서 파일, 프로세스, 메모리, 시그널, 소켓 등 핵심 시스템 기능을 실습한 내용을 정리한 공간입니다.
---
## 📁 실습 파일 구조
| 폴더명 | 내용 |
|------------|------|
| `chap2.pdf` | 리눅스 기본 사용법 및 명령어 실습 내용을 정리한 PDF 문서
| `chap3` | C 프로그래밍 환경 설정 및 컴파일러 사용
| `chap4` | 시스템 호출을 통한 파일 입출력
| `chap5` | 리눅스 파일 시스템 구조 및 디렉터리 처리
| `chap6` | 파일 및 레코드 잠금 구현
| `chap7` | C 표준 파일 입출력 함수 실습
| `chap8` | 프로세스 개념 및 프로그램 실행 흐름
| `chap9` | 프로세스 제어 및 입출력 재지정
| `chap10` | 메모리 관리 및 동적 할당
| `chap11` | 시그널 처리 및 비지역 점프
| `chap12` | 파이프 구현 및 통신 함수 실습
| `midterm` | 중간고사 관련 자료
| `시스템프로그래밍 함수 정리.pdf` | 주요 시스템 함수 및 호출 정리 문서
| `LICENSE` | 라이선스 정보
---
## 🧑💻 실습 환경
- **운영체제**: Ubuntu Linux (학교 가상서버)
- **접속 방식**: PuTTY를 이용한 SSH 원격 접속
- **에디터**: Vim
- **컴파일러**: GCC
- **실행 환경**: 리눅스 콘솔 기반
---
## 💭 회고
이번 시스템 프로그래밍 실습은 단순히 코드를 작성하는 수준을 넘어
운영체제의 내부 동작을 직접 체험해보는 경험이었습니다.
처음에는 파일 입출력이나 프로세스 제어 같은 기능들이 낯설게 느껴졌지만,
한 주 한 주 실습을 따라가면서 점점 **리눅스 시스템이 어떻게 구성되고 움직이는지**에 대한 감이 잡히기 시작했습니다.
특히 시스템 호출을 직접 사용해보고, 프로세스를 생성하고 제어하는 흐름을 구현하면서
운영체제가 단순한 배경이 아니라 **개발자가 직접 다룰 수 있는 대상**이라는 점이 인상 깊었습니다.
Vim으로 코드를 작성하고, PuTTY로 서버에 접속해 실습을 진행하는 과정도 처음엔 불편했지만
오히려 그 덕분에 **터미널 환경에 대한 적응력과 집중력**이 많이 길러졌습니다.
파일 시스템 구조, 메모리 관리, 시그널 처리 등은 단순한 문법이 아니라
**운영체제와 프로그램 사이의 연결 고리를 이해하는 핵심 개념**이라는 걸 실감했습니다.
무엇보다도, 각 장별 실습을 통해 기능을 하나씩 구현해보면서
“왜 이런 구조가 필요할까?”, “어떻게 더 안정적으로 만들 수 있을까?” 같은 질문을 자연스럽게 떠올리게 되었고
그 과정에서 **시스템 프로그래밍의 사고방식**을 조금씩 익혀갈 수 있었습니다.
다음에는 소켓 통신이나 멀티 프로세스 기반의 간단한 서버 프로그램을 직접 만들어보면서
이번 실습에서 배운 개념들을 더 확장해보고 싶습니다.
단순한 기능 구현을 넘어서, **운영체제와 협력하는 프로그램을 설계하는 경험**을 계속 이어가고 싶습니다.
---
## 🙋♂️ 작성자
**박성원 (Seongwon Park)**
- C 시스템 프로그래밍 강의 수강 및 실습
- 리눅스 기반 시스템 호출 및 프로세스 제어 학습
- 파일, 메모리, 시그널, 소켓 등 핵심 기능 구현 경험
- 가상서버 환경에서 Vim + GCC로 실습 진행
---