2023. 3. 6. 08:56ㆍCloud Solutions Architect
1. 운영체제 (Operating System, OS)
- 시스템 하드웨어를 관리하고 응용 소프트웨어를 실행하기 위해 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다.
- 최근에는 가상화 기술의 발전과 가상 머신 위에서 실행되기도 한다.
- 입출력과 메모리 할당과 같은 하드웨어 기능의 경우 운영 체제는 응용 프로그램과 컴퓨터 하드웨어 사이의 중재 역할을 한다.
- 휴대전화, 게임기, 슈퍼컴퓨터, 웹 서버에 이르기까지 컴퓨터를 포함하는 모든 장치에서 볼 수 있다.
- 한 면으로는 소비자, 다른 한 면으로는 프로그램 개발자를 함께 하나의 시장으로 데려다 놓을 수 있는 양면 플랫폼이다.
- 현대의 PC 운영 체제에는 Window, Mac OS, 리눅스가 있다.
- 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 자원들을 사용할 수 있도록 만들어 주고 추상화하여 파일 시스템 등의 서비스를 제공한다.
- 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하는 동안 운영 체제는 모든 프로세스들을 스케줄링하여 동시에 수행되는 것처럼 보이는 효과를 낸다.
2. 운영체제 구성 요소
2-1. 커널 (Kernel)
- 운영체제에서 가장 중요한 프로그램 중 하나이며, 하드웨어를 관리하는 관리자이다.
- 어떤 프로그램이 작동할 수 있도록 CPU, 메모리, 디스크와 같은 물리적 장치들을 배분한다.
- Linux 커널은 Linux OS의 주요 구성 요소이며, 컴퓨터 하드웨어와 프로세스를 연결하는 핵심 인터페이스이다.
- 두 가지 관리 리소스 사이에서 최대한 효과적으로 통신한다.
■ 커널의 기능
1. 메모리 관리 : 메모리가 어디에서 무엇을 저장하는 데 얼마나 사용되는지를 추적한다.
2. 프로세스 관리 : 어느 프로세스가 중앙 처리 장치 (CPU)를 언제 얼마나 오랫동안 사용할지를 결정한다.
3. 장치 드라이버 : 하드웨어와 프로세스 사이에서 중재자 역할을 수행한다.
4. 시스템 호출 및 보안 : 프로세스의 서비스 요청을 수신한다.
2-2. 쉘 (Shell)
- 사람이 사용하는 명령어를 프로그램이 실행할 수 있도록 만들어주는 인터페이스이다.
- 쉘에서는 프로그램에 직접 명령어를 전달할 수도 있고, 내부에서 함수를 만들 수도 있으며 초기 환경 세팅도 가능하다.
- 명령 줄 쉘은 운영 체제 상에서 명령 줄 인터페이스 (CLI)를 제공하고, 그래픽 쉘은 그래픽 사용자 인터페이스 (GUI)를 제공한다.
2-3. 디렉터리 (Directory)
- 컴퓨팅에서 파일을 분류하기 위해 사용하는 공간이다.
- 파일 시스템 안에서 파일과 다른 하부 디렉터리들로 구성된다.
- 컴퓨터에서 디렉터리는 폴더 (folder) 또는 카탈로그 (catalog)라고도 한다.
- 같은 디렉터리에 관련 파일들이 저장되어 나열되고 관리된다.
- 다른 디렉터리 속의 디렉터리를 디렉터리의 하위 디렉터리 또는 서브 디렉터리 (Sub Directory)라고 한다.
- 디렉터리들은 트리 구조를 형성한다.
- 하위 디렉터리 및 분류되는 디렉터리 간의 관계를 기술하기 위해 부모 디렉터리와 자식 디렉터리란 용어도 사용된다.
3. 리눅스 (Linux)
- 리눅스는 컴퓨터 운영 체제이며, 운영 체제의 커널을 뜻한다.
- 자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본이다.
- 다중 사용자, 다중 작업 (멀티태스킹), 다중 스레드를 지원하는 네트워크 운영 체제 (NOS)이다.
- 리눅스는 벤더 독립성과 적은 개발비, 보안성과 안전성의 이유로 데스크톱 컴퓨터를 위한 운영 체제로서 인기가 늘어가고 있다.
- 처음에 인텔 386 마이크로프로세서를 위해 개발되었으나 현재는 다양한 컴퓨터 아키텍처를 지원한다.
- 개인용 컴퓨터에서부터 슈퍼 컴퓨터, 휴대전화, 개인용 비디오 레코더와 같은 임베디드 시스템까지 광범위하게 이용된다.
- 리누스 토발즈가 커널을 개발하고 GNU에서 개발된 나머지 명령어 프로그램들을 도입하여 현재의 리눅스로 발전했다.
4. 리눅스 파일 구조
디렉토리 명 | 설명 |
home | 사용자 홈 디렉토리가 생성되는 곳. |
media | CD_ROM이나 USB같은 외부 장치를 연결하는 디렉토리. |
opt | 추가 패키지가 설치되는 디렉토리. |
dev | 장치파일들이 저장되어 있는 디렉토리. |
root | root 계정의 홈 디렉토리. |
sys | 리눅스 커널관련 정보가 있는 디렉토리. |
usr | 기본 실행 파일과 라이브러리 파일. 헤더 파일 등의 파일이 저장되어 있는 디렉토리. |
boot | 부팅에 필요한 정보를 가진 파일들이 있는 디렉토리. |
var | 시스템 운영중에 발생한 데이터와 로그가 저장되는 디렉토리. |
tmp | 시스템 사용중에 발생한 임시데이터가 저장된다. (부팅 시 초기화) |
srv | FTP나 Web 등 시스템에서 제공하는 서비스의 데이터가 저장되는 디렉토리. |
run | 실행중인 서비스와 관련된 파일이 저장되는 디렉토리 |
proc | 프로세스 정보 등 커널 관련 정보가 저장되는 디렉토리 |
mnt | 파일 시스템을 임시로 연결하는 디렉토리 |
etc | 리눅스 설정을 위한 각종 파일들을 가지고 있는 디렉토리 |
5. Oracle VM VirtualBox 설치 및 환경 설정
5-1. 필요한 프로그램
- VirtualBox-6.1.40-154048-Win.exe
- CentOS-7-x86_64-Minimal-2009.iso
5-2. 설치 및 환경 설정
VirtualBox 설치 파일을 실행하여 설치한 후, Oracle VM VirtualBox 관리자를 실행한다.
새로 만들기 클릭 -> 이름을 CentOS7으로 입력 -> 머신 폴더를 C 드라이브 / 사용자 / VirtualBox VMs 폴더로 경로 설정한다.
메모리 크기를 1024MB로 설정하고 다음을 클릭한다.
지금 새 가상 하드 디스크 만들기를 클릭하고 만들기를 클릭한다.
하드 디스크 파일 종류를 VDI (VirtualBox 디스크 이미지)로 선택한다.
동적 할당을 선택한다.
VM 내에 CentOS7.vdi를 선택하고 크기를 8GB로 설정한 후 만들기를 클릭한다.
CentOS7 가상 머신을 만든 결과는 다음과 같다.
설정을 클릭하여 저장소에 들어간 후 IDE를 확인하면 비어 있다는 것을 확인할 수 있다.
IDE의 비어 있음을 클릭하고 속성의 광학 드라이브에 파란색 CD를 클릭하여 가상 광학 디스크 선택/만들기를 클릭한다.
만들기를 클릭한다.
CentOS-7 파일을 선택한다.
CentOS7을 선택한다.
IDE에 CentOS가 들어간 것을 확인할 수 있다.
네트워크 탭으로 가서 어댑터 사용하기를 체크하고 어댑터에 브리지를 선택한 후 확인을 클릭한다.
C드라이브에 CentOS7이 설치된 것을 확인할 수 있다.
Virtual Box 관리자에서 CentOS7 시작을 누른 후 CentOS7을 실행한다. 입력을 누르고 키보드의 키보드 설정을 클릭한다.
호스트 키 조합 단축키를 ctrl과 alt를 동시에 입력하여 단축키를 설정한 후 확인을 클릭한다.
ctrl + alt를 입력하면 VirtualBox 내에 마우스 커서를 해제할 수 있다.
언어를 English을 선택한 후 Continue를 클릭한다.
NETWORK & HOST NAME을 선택한다.
이더넷의 연결의 off를 on으로 바꾼다.
INSTALLATION DESTINATION을 선택한다.
Partitioning에 Automatically configure partitioning을 선택한다.
설정을 모두 마친 후 Begin installation을 클릭한다.
설치가 진행되는 동안 ROOT PASSWORD를 클릭하여 비밀번호를 설정한다.
root 비밀번호를 입력하고 확인하기 위한 비밀번호를 한번 더 입력한 후 Done을 클릭한다.
Reboot를 입력하여 가상 머신을 재시작한다.
localhost login에 root를 입력하고 password는 설정한 값으로 입력하여 로그인할 수 있다.