시스템 프로그래밍 개요

EEEFFEE·2023년 7월 30일

System Programming

목록 보기
1/19

23.07.30 최초 작성

1. Unix System Programming

시스템 콜을 이용해 System Program을 작성하는 것

  • System Program : 시스템을 구성하는 자원을 다루거나 응용 프로그램에 서비스를 제공하는 프로그램
  • System Call Interface : 시스템 프로그램이 제공하는 기능을 사용하기 위한 통로로 커널의 모듈을 직접 호출 함
  • Library Function : 미리 컴파일 된 함수로 System Call을 통해 커널을 호출 함

2. Linux 기초 명령어

2.1 Process Management

명령어기능주요 옵션예제
ps현재 실행중인 프로세스의 정보 출력-u, -efps -ef
ps -u (사용자 ID)
kill프로세스 강제 종료-9kill (pid)

2.2 Login / Logout

명령어기능주요 옵션예제
telnet유닉스시스템에 접속telnet velog.io
logout유닉스시스템에 접속해제logout
exit유닉스시스템에 접속해제exit

2.3 File / Directory

명령어기능주요 옵션예제
pwd현재 디렉토리 경로 출력pwd
ls현재 디렉토리 내용 출력- a : 숨김파일 출력ls -a/tmp
-l 파일 상세정보 출력ls - l
cd현재 디렉토리 변경cd /tmp
cd ~pigeon
cp파일 / 디렉토리 복사cp a.txt b.txt
-r : 디렉토리 복사cp -r dir1 dir2
mv파일 / 디렉토리 이름변경 & 이동mv a.txt b.txt
mv a.txt dir1
rm파일 / 디렉토리 삭제rm a.txt
-r : 디렉토리 삭제rm -r dir1
mkdir디렉토리 생성mkdir dir1
rmdir빈 디렉토리 삭제rmdir dir1
cat파일 내용 출력cat a.txt
more파일 내용 쪽단위로 출력more a.txt
chmod파일 접근권한 변경chmod +x a.exe
grep패턴 검색grep asdf a.txt

2.4 Others

명령어기능주요 옵션예제
su사용자 계정 변경su
-:변경할 사용자의 환경 초기화 파일 실행su -
su - kim
tar파일/디렉토리 묶기-cvf : tar파일 생성
-tvf : tar파일 내용 보기
-xvf : tar파일 풀기
whereis파일 위치 검색whereis ls
which파일 위치 검색which ls

3. Makefile

3.1 GNU C compiler

gcc [options] filename
-c : object file만 생성
-o : excution file name 지정

3.2 Makefile & Make

  • Makefile : 컴파일 방법을 기술하는 파일(파일 정보, 컴파일 명령, 실행 파일명 등)
  • Make : 주어진 Makefile에 따라 컴파일을 수행하고 실행파일을 생성하는 작업. 최초 컴파일 이후 변경이 있는 파일만 컴파일 함.

3.3 Rule Block

(Target) : (Dependencies)
    (Recipe)
  • Target : Build 대상 이름
  • Dependencies : Build 대상이 의존하는 Target이나 파일
  • Recipe : Build 대상을 생성하는 명령어
clean :
	rm -f *.o
    rm -f $(TARGET)
make clean

Build로 생성된 파일들 삭제하는 규칙

3.4 Variables (Macro)

CC = gcc
CFLAGS = -g -Wall
OBJS = main.o foo.o bar.o
TARGET = app.out

$(TARGET): $(OBJS)
	$(CC) -O @ $(OBJS)

main.o : foo.h bar.h main.c
foo.o : foo.h foo.c
bar.o : bar.h bar.c

1개의 댓글

comment-user-thumbnail
2023년 7월 30일

정리가 잘 된 글이네요. 도움이 됐습니다.

답글 달기