운영체제(OS)는 하드웨어와 소프트웨어를 관리하는 시스템 소프트웨어로, 주요 구성 요소는 다음과 같다.
1. 커널(Kernel): 운영체제의 핵심으로, 프로세스 관리, 메모리 관리, 디바이스 제어 등을 수행한다.
2. 파일 관리(File Manager): 파일 시스템을 관리하며, 데이터 저장과 접근을 조정한다.
3. 셸(Shell): 사용자와 커널 사이의 인터페이스 역할을 하며, 명령어를 해석하고 실행한다.
리눅스에서 파일과 디렉토리를 삭제할 때 rm 명령어를 사용한다.
rm -r: 디렉토리와 그 내부의 모든 파일 및 하위 디렉토리를 재귀적으로 삭제한다.rm -f: 강제 삭제 옵션으로, 사용자 확인 없이 파일을 삭제한다.rm -i: 삭제 전에 사용자에게 확인을 요청한다.rm -v: 삭제되는 항목을 상세하게 출력한다.Soft Link(심볼릭 링크)는 원본 파일을 가리키는 별도의 파일로, 원본 파일이 삭제되면 링크가 깨진다.
리눅스에서 실행 중인 프로세스는 다양한 단축키로 제어할 수 있다.
CTRL + Z: 현재 실행 중인 foreground 프로세스를 일시 정지(Suspend)한다.CTRL + C: 현재 실행 중인 foreground 프로세스를 강제 종료(Terminate)한다.CTRL + X, CTRL + V: 일반적으로 프로세스 제어와 관련이 없다.소프트웨어 인터럽트는 프로그램이 CPU에 특정 작업을 요청할 때 사용된다.
INT 0x80 명령어는 리눅스 시스템 콜을 호출할 때 사용된다.시스템 콜은 운영체제 커널이 사용자 프로그램의 요청을 처리하는 인터페이스다.
INT 0x80 또는 syscall 명령을 사용하여 시스템 콜을 호출한다.system_call() 함수는 레지스터(예: eax)를 통해 전달된 시스템 콜 번호를 확인하고, 해당하는 시스템 콜을 실행한다.리눅스에서 C 코드를 실행 파일로 만들려면 GCC(GNU Compiler Collection)을 사용한다.
gcc test.c → a.out 실행 파일 생성gcc -o [출력파일명] [소스파일]gcc -c [소스파일] → .o(오브젝트 파일)만 생성