아직은 따로 정리할 만큼 많은 것을 배우지는 않았지만, 그래도 매일 조금씩이라도 이렇게 정리를 해두어야 나중에 편하고, 또 혹시나 모를 인터뷰에서 쓰일 가능성도 있기 때문에 포스팅을 올려본다.
OS를 배우면서 아직은 왜 리눅스에 대해서 배우는지 그 이유에 대해서는 잘 몰랐는데, 이번에 조사하면서 알게된 내용을 기록해본다.
리눅스는 운영 체제 (OS)에 대한 학습에 중요한 역할을 한다. 다음은 리눅스를 OS 과목에서 배우는 이유이다:
-
오픈 소스 운영 체제: 리눅스는 오픈 소스 운영 체제로 무료로 사용할 수 있으며, 학습 목적으로 쉽게 액세스할 수 있다. 이것은 학생들이 실제로 운영 체제의 동작을 이해하고 실험할 수 있는 기회를 제공한다.
-
다중 사용자 및 다중 작업 환경: 리눅스는 다중 사용자 및 다중 작업 환경을 지원하며, 학생들은 여러 사용자가 동시에 시스템을 사용하고 다양한 프로세스를 관리하는 방법을 배울 수 있다.
-
커널 이해: 리눅스 커널은 운영 체제의 핵심 부분이며, 운영 체제의 기능을 제어한다. 리눅스를 학습하면 커널의 작동 방식과 구조에 대한 이해를 개발할 수 있다.
-
명령 줄 인터페이스 (CLI): 리눅스는 강력한 명령 줄 인터페이스를 제공하며, 학생들은 명령어를 사용하여 시스템을 관리하고 프로세스를 제어하는 방법을 배울 수 있다.
-
서버 운영체제: 리눅스는 많은 서버 환경에서 사용된다. 서버 운영체제를 이해하고 다룰 수 있는 기술은 많은 IT 직무에서 필수적이다.
-
개발 환경: 많은 개발자들이 리눅스 환경에서 소프트웨어를 개발하고 테스트한다. 따라서 프로그래밍 및 소프트웨어 개발에 관심이 있는 학생들에게도 유용하다.
요약하면, 리눅스는 실제 세계 환경에서 사용되는 운영 체제로서, 운영 체제와 컴퓨터 시스템의 동작 및 관리에 대한 기본 개념을 배우는 데 매우 유용한 플랫폼이다. 따라서 OS 과목에서 리눅스를 배우는 것은 학생들에게 중요한 지식과 경험을 제공한다.
오늘 배웠던 명령어들은 대부분 단순하다. 설명이 필요없는 것들은 그냥 단순 나열만 해보겠다.
pwd
man
clear (ctrl + l)
ls -a -l
cd
alias
touch
rm
cat
pstree
kill
gcc
history
fg
온라인 Tool
이번 학기에 사용하는 online tool은 이와 같다.
https://www.onlinegdb.com/online_c_compiler
온라인 C컴파일러이다. 굳이 IDE를 돌리지 않고, 바로 실행하고 결과를 볼 수 있어서 편하다.
리눅스 온라인 버젼이다. 여기서 C, Python, Java도 바로 컴파일이 되며, 리눅스의 모든 명령어가 전부 호환이 되기 때문에 리눅스를 익히기가 편하다.
Background 실행
"&" 기호를 명령어 뒤에 붙이면 해당 명령어가 백그라운드(background)에서 실행된다. 백그라운드에서 실행되는 명령어는 현재 터미널을 차지하지 않고 다른 작업을 수행할 수 있도록 한다. 여기에 관한 설명은 다음과 같다:
-
Foreground vs. Background: 명령어를 실행할 때 "&"를 사용하면 해당 명령어는 백그라운드에서 실행되며 현재 터미널 창은 즉시 다른 명령어를 입력하거나 사용할 수 있다. 이것은 명령어가 끝날 때까지 기다리지 않고 다른 작업을 할 수 있게 해준다.
-
예시: 예를 들어, "ls" 명령어를 백그라운드에서 실행하려면 다음과 같이 입력한다.
ls &
이 명령어를 실행하면 파일 및 디렉토리 목록이 백그라운드에서 표시되며, 동시에 다른 명령어를 입력할 수 있다.
-
백그라운드 작업 관리: "백그라운드(background)"에서 실행되는 작업은 터미널 세션을 종료하거나 로그아웃해도 계속 실행된다. 따라서 장기간 실행되는 작업이나 원격 서버에서 실행되는 작업을 백그라운드에서 실행할 때 유용하다.
-
작업 제어: "jobs" 명령어를 사용하여 현재 백그라운드에서 실행 중인 작업을 확인하고, "fg" 또는 "bg"를 사용하여 백그라운드 작업을 다시 포그라운드 또는 백그라운드로 이동시킬 수 있다.
요약하면, "&"를 명령어 뒤에 붙이면 해당 명령어는 백그라운드에서 실행되며 현재 터미널 창을 차지하지 않고 다른 작업을 수행할 수 있게 해준다.
Process ID
프로세스 ID (Process ID 또는 PID)는 컴퓨터 운영 체제에서 각 프로세스에 할당된 고유한 식별자이다. 프로세스는 운영 체제에서 실행 중인 프로그램 또는 작업을 나타냅니다. 프로세스 ID는 다음과 같이 중요한 역할을 한다.
-
프로세스 식별: 프로세스 ID는 각 프로세스를 고유하게 식별한다. 따라서 운영 체제는 어떤 프로세스가 실행 중인지 파악하고 각각의 프로세스를 구별할 수 있다.
-
프로세스 관리: 운영 체제는 프로세스 ID를 사용하여 프로세스를 관리한다. 프로세스를 생성, 중지, 일시 중단 및 재개하는 데 PID가 사용된다.
-
자원 할당 및 감시: 각 프로세스는 운영 체제로부터 시스템 자원(메모리, CPU 시간 등)을 할당받는다. 프로세스 ID를 통해 운영 체제는 어떤 프로세스가 어떤 자원을 사용하고 있는지 추적하고 감시할 수 있다.
-
프로세스 간 통신: 프로세스 간 통신 (Inter-Process Communication, IPC)에서 PID는 프로세스 간 메시지 전달 및 데이터 교환에 사용된다.
-
디버깅: 프로세스 디버깅 도구는 PID를 사용하여 특정 프로세스를 식별하고 디버깅 작업을 수행한다.
프로세스 ID는 일반적으로 정수로 표현되며, 보통 1부터 시작하여 증가하는 순서로 할당되는데, 시스템에 따라 특정 범위에서 PID를 할당하거나 다른 방식으로 관리할 수 있다. PID는 시스템 전체에서 고유해야 하므로 중복되지 않도록 주의해야 한다.
백그라운드에서 실행 중인 프로그램은 해당 터미널 세션 내에서는 동일한 PID로 나타날 수 있고, 이는 일반적인 시나리오이며, 터미널 세션에 따라 다른 PID가 부여되는 경우가 아닌 한 PID가 동일하게 나타날 것이다.
pstree -p -T
"pstree -p -T" 명령어는 Unix 및 Unix 계열 운영 체제에서 사용되는 명령어로, 실행 중인 프로세스들을 트리 구조로 표시할 때 사용된다. 이 명령어는 프로세스 트리를 자세하게 나열하며 다음과 같은 옵션들을 사용한다:
-
pstree: "pstree" 명령어는 프로세스 트리를 보여주는 데 사용된다.
-
-p: "-p" 옵션은 각 프로세스의 프로세스 ID (PID)를 표시한다. PID는 각 프로세스를 고유하게 식별하는 데 사용된다.
-
-T: "-T" 옵션은 각 프로세스의 이름 대신에 해당 프로세스에서 사용된 명령어 라인을 표시한다. 이것은 프로세스의 실행에 사용된 명령어나 프로그램의 이름을 보여준다.
따라서 "pstree -p -T" 명령어를 실행하면 현재 시스템에서 실행 중인 프로세스들의 트리 구조가 표시된다. 각 프로세스는 해당 PID와 실행 명령어 라인과 함께 나열되므로, 프로세스 간의 계층적인 관계와 프로세스의 동작을 이해하는 데 유용하다.
댓글 없음:
댓글 쓰기