FUNDAMENTAL | 02. Linux 운영체제
20210908 😂
1. OS
커널: CPU, Memory, SDD 등 각종 디바이스를 통합관리하며, 연산 자원을 어플리케이션들에게 분배하는 역할.
우리는 쉘을 통해 커넬과 소통
GUI(Graphical User Interface) shell
:
Windows shell, Aqua(MacOS), GNOME, Unity(Linux)
CLI(Command Line Interface) shell
:
cmd.exe, PowerShell, sh, bash
프로세스
운영체제는 프로세스 단위로 메모리와 CPU연산 등 컴퓨팅 자원 분배
메모리 관리
프로세스 격리(process isolation)
:
OS는 프로세스가 가상메모리(virtual memory)로써 일부만 떼어서 제공도록 하여 다른 프로세스의 메모리나 커널 메모리를 볼 수 없도록 함.
IPC 기법(Inter-Process Communication)
: 프로세스들간 소통하기 위해 별도로 허용된 프로세스간 통신 기법
CPU 자원 관리
메모리
는 주소로 프로세스에 제공
CPU 연산
의 경우 코어 단위로 프로세스에 제공
스레드(thread)
: 프로세스가 코어를 사용할 때 사용하는 단위
프로세스와 스레드
프로세스: 운영체제가 메모리를 할당하는 작업단위
스레드: 프로세스가할당받은 메모리를 활용하는 실행 단위
2. Linux OS
환경변수(environment variable)
환경변수는 운영체제가 프로세스 단위로 사용하는 변수.
셸이 프로그램을 실행할 때 참조할 경로들을 나타냄.
셸에서 단어 앞에$
를 붙여 나타냄.
export
: 셸 변수나 함수를 현재 환경으로 내보낸다.
$ echo $PATH
$ export PATH=/aiffel:$PATH
$ echo $PATH
패키지 관리자(package manager)
공인 저장소에서 프로그램과 라이브러리를 패키지 단위로 설치하고 관리할 수 있도록 하는 프로그램
우분투 패키지 관리자: APT(Advanced Package Tool)
cf. 파이썬은 PIP(Python Package Installer)
사용자와 권한
모든 권한은 사용자를 기준으로 인증.
최고 관리자(superuser)
: 보안 및 시스템 안정성을 위해 완전한 권한을 가짐
(윈도우: administrator / 유닉스 계열: root)
sudo
: Switch User Do. 관리자의 권한으로 실행
chmod
: 대상 파일의 권한을 변경
3. 하드웨어
기계어 & 컴파일
CPU는 기계어를 통해 명령 처리.
기계어는 비효율적이고 복잡함.
컴파일: 프로그래밍 언어를 기계어로 번역하고 최적화 하는 과정
CPU, 메모리
CPU 32bit ? 64bit?
→ CPU가 한번에 읽고 쓸 수 있는 데이터의 크기
→ 사용 가능한 메모리 주소의 범위에 영향
클럭(clock)
: 초당 처리 속도 기준
GPU(Graphical Processing Unit)
- 상대적으로 이해할 수 있는 명령어는 적음
- 코어수를 늘려 다차원 행렬 연산에 특화
- 그래픽 연산, 딥러닝에 많이 사용
TPU(Tensor Processing Unit)
: 구글에서 만든 딥러닝 전용 칩
ASIC
:작업에 맞게 직접 설계하여 생산하는 어플리케이션 특화 집적회로.
FPGA
: 필요할 때 회로를 직접 프로그래밍해서 사용
저장 장치
RAM
: 주 저장장치. 용량을 쉽게 늘리기 어렵고 전원이 꺼지면 데이터가 사라지는 특징
HDD
, SDD
: 보조 저장장치. 가격이 저렴하고 전원이 꺼져도 데이터는 그대로 보존되는 특징
데이터를 읽어오는 데에 시간이 많이 소요된다면 저장장치를 보조 저장장치로 변경하는 방법을 사용해볼 수 있음.
클라우드 가상화
가상화(virtualization)
: 하나의 컴퓨터를 나눠 여러 대의 컴퓨터가 있는 것처럼 사용하는 기술
호스트(host)
: 가상화에서 실제 물리적인 서버
게스트(guest)
: 가상 서버
가상머신(Virtual Machine) 가상화
: 게스트 자체에 운영체제 실행
컨테이너(Container) 가상화
: 게스트들이 호스트의 운영체제 커널을 공유(커널 기능 공유. 프로세스나 자원 등은 분리)
도커(Docker)
: 컨테이너 가상화를 손쉽게 제공하는 프로그램.
여러 개의 독립된 작업 환경을 구분하는 데에 사용.
4. shell
편리한 기능
Ctrl+Shift+C
, Ctrl+Shift+V
: 복사, 붙여넣기
history
: 기존에 실행한 명령 표시
!번호
: 해당 번호의 명령이 다시 실행
Ctrl+A
, Ctrl+E
: 커서 이동
clear
, Ctrl+L
: 출력 기록 삭제
Ctrl+z
: 프로세스 중지
fg
:프로세스 재개
vi 편집기
에서 나올 때는 Ctrl+C
나 Esc
누른 후:q!
입력
sudo apt install curl
, curl parrot.live
: 춤추는 앵무새 🐦
Author And Source
이 문제에 관하여(FUNDAMENTAL | 02. Linux 운영체제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tjddus0302/FUNDAMENTAL-02.-Linux저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)