참고 : https://ko.wikipedia.org/wiki

 

위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 위키백과 우리 모두가 만들어가는 자유 백과사전문서 634,350개와 최근 기여자 1,607명 사랑방 다른 분들과 의견을 교환해봐요! 질문방 지침으로 해소되지 않는

ko.wikipedia.org

"kernel"은 운영체제의 핵심 부분으로, 시스템의 모든 부분을 통제한다.

< 통신 조절 >

하드웨어와 소프트웨어 사이 정보 교환을 관리 한다. 

여기서 소프트웨어는 운영체제의 커널을 포함한 다양한 프로그램을 의미한다. 하드웨어는 CPU,Memory,Disk,Network 장치 등을 포함한다. 프로그램이 실행되면서 발생하는 다양한 요청을 하드웨어로 전달하고, 그에 따른 하드웨어의 반응을 다시 프로그램에 전달하는 것이 통신 조절의 핵심이다. 예를 들어, 프로그램이 파일을 저장하려고 할 때,이 요청은 커널을 통해 디스크에 전달되고, 디스크에서 쓰기 작업이 완료되면 커널이 다시 프로그램에 결과를 알려준다.


< 커널의 자원 관리 기능 >

컴퓨터 시스템의 여러 부분을 관리하고 최적화하는 역할을 한다. 이를 통해 컴퓨터가 원활하게 작동할 수 있도록 한다.
프로세스 스케줄링: 컴퓨터에서 여러 프로그램이 동시에 실행될 때, 커널은 어떤 프로그램에 CPU(중앙처리장치)의 시간을 할당할지 결정합니다. 이것을 '스케줄링'이라고 합니다. 예를 들어, 웹 브라우저를 열고 동시에 음악을 듣는다면, 커널은 CPU 시간을 두 프로그램 사이에서 공정하게 분배합니다.

                                                                                                                                              
CPU 시간은 컴퓨터에서 프로그램이 CPU(중앙 처리 장치)를 사용하여 작업을 처리하는 데 소비하는 시간을 의미한다.

컴퓨터에서 여러 프로그램이 동시에 실행되면, CPU는 이들 모든 프로그램에게 시간을 할당해야 한다. 이를 '시분할'이라고 부르며, 이것이 가능하게 해주는 것이 운영체제의 커널이다. 커널은 스케줄러를 통해 CPU의 시간을 어떤 프로그램에게 할당할지 결정한다.

예를 들어, 워드프로세서와 웹 브라우저를 동시에 실행하면 커널은 CPU의 시간을 두 프로그램 사이에서 나누어 준다. 이로 인해 사용자는 두 프로그램이 동시에 실행되는 것처럼 느끼게 된다. 이런 방식을 통해 컴퓨터는 여러 작업을 동시에 처리하는 것처럼 보이는 '멀티태스킹'을 수행한다.

< 메모리 관리 > 

커널은 컴퓨터의 메모리를 관리한다. 프로그램이 실행되면, 커널은 해당 프로그램에 필요한 메모리 공간을 할당하고, 프로그램이 종료되면 그 메모리를 회수한다. 이것은 컴퓨터의 메모리를 효율적으로 사용하도록 도와준다.

< 디바이스 드라이버와의 통신 >

커널은 하드웨어(예: 프린터, 마우스, 키보드 등)와 소프트웨어 사이에서 통신을 중개한다. 이를 위해 커널은 디바이스 드라이버라는 특별한 프로그램을 사용한다. 디바이스 드라이버는 특정 하드웨어 장치를 제어하는 방법을 알고 있는 소프트웨어이다.


따라서, 커널의 자원 관리는 컴퓨터 시스템에서 여러 작업이 원활하게 진행될 수 있도록 돕는 중요한 역할을 한다.

< 보안 >

커널은 시스템의 보안을 책임지며, 하드웨어와 프로세스 사이에서 발생할 수 있는 보안 위협을 관리한다.

< 추상화 >

커널은 운영 체제의 복잡한 내부를 감추고, 깔끔하고 일관성 있는 인터페이스를 하드웨어에 제공하기 위해 몇 가지 하드웨어 추상화를 구현한다. 이를 통해 프로그램은 복잡한 하드웨어 세부 사항을 걱정할 필요 없이 자신의 작업에 집중할 수 있다.

 



Docker 컨테이너는 이러한 커널을 호스트 운영체제와 공유한다.

즉, 컨테이너 내에서 실행되는 프로그램이 하드웨어와의 통신을 요구하면, 이 요구는 호스트 운영체제의 커널을 통해 처리된다. 이로 인해 Docker 컨테이너는 가상 머신과는 달리, 각각의 컨테이너에 별도의 운영체제를 설치할 필요가 없게 되어 자원을 훨씬 더 효율적으로 활용할 수 있다. 결국 Docker 컨테이너는 호스트 운영체제의 커널을 공유함으로써, 각 컨테이너가 독립적인 환경을 유지하면서도 필요한 자원을 최소화하는 데 도움을 준다. 이러한 특성은 Docker 컨테이너가 높은 성능과 효율성을 가질 수 있게 된다.

'Docker' 카테고리의 다른 글

01.Docker Image와 Container  (0) 2023.05.12
Docker란?  (0) 2023.05.12
Devops가 걸어온 길  (0) 2023.05.11
기존 인프라와 차이점/글로벌 인프라/AWS 리전  (0) 2023.05.11

Devops가 걸어온 길

Devops => Developer + Operation 합성어

개발과 운영의 경계를 허물고 통합하고자 하는 문화 또는 철학

소프트웨어 개발 프로세스와 운영의 모든 단계의 통합과 자동화를 목표로 한다.

분리된 형태의 운영진영,개발진영의 요구에 따라 벽이 높아져 갔는데

Agile이 등장 함으로써 짧은 주기로 개발 하고 빠른 피드백을 통해 하나의 큰 프로젝트를 만드는 개발 방법론 으로, 지속적인 협력과 피드백을 할려는 노력이 지속 되고,

2009년 공식적으로 Devops라는 용어가 쓰이기 시작했다.

현재는 Public Cloud의 서비스의 발전과 함께 문화나 기술이 진화를 거듭하고 있고,

개발과 운영이 하나로 되어 있는 뫼비우스 띠 형태를 하고 있다.

그리고 그 진화 속에 DevSecOps라는 용어가 탄생했다.

DevSecOps란 Developer + Security + Operation의 합성어 이며,

소프트웨어 개발 프로세스의 모든 단계를 통합하고 보안까지 포함하도록 확장한 개념이다.

소프트웨어 배포에 관여하는 모든 사람들이 보안을 최우선으로 하는 문화 이다.

DevSecOps는 하나의 문화 이기 때문에, 이를 수용하기 위해 개발팀과 운영팀을 대상으로 보안 교육,보안 문제를 신속히 공유할 수 있는 채널을 구축 및 보안 사고 대응 플레이 북, 배포 프로세스에 보안감사/규정준수를 포함시킬 수 있어야 한다.

지금까지 알려진 기업 중 Devops 적용 사례 중 가장 잘 알려진 기업은 넷플릭스 이다.

넷플릭스는 2016년부터 Cloud Native 방식으로 시스템을 재구축하며 Devops 환경을 구축 하였다. 기존의 Netfilx의 생명 주기는

이렇게 각 단계 별로 구분이 되어 있었고, 이 단계는 소통과 협업의 어려움이 있었고 이 단계를 모두 통합 해서 Full-Cycle-Developer-model을 제시 했다.

이를 구현하기 위해 Netflix는 CI/CD,MSA,IAC,Monitoring,Communication을 강조하고 이를 실행 했다. 여기까지 Dev 적용 사례를 살펴 보았으며

Dev의 역사와 정의를 알아보았다.

 

출처: FastCampus

'Docker' 카테고리의 다른 글

01.Docker Image와 Container  (0) 2023.05.12
Docker란?  (0) 2023.05.12
커널(kernel)  (0) 2023.05.12
기존 인프라와 차이점/글로벌 인프라/AWS 리전  (0) 2023.05.11

기존 인프라와 차이점/글로벌 인프라

 

 

출처: FastCampus

'Docker' 카테고리의 다른 글

01.Docker Image와 Container  (0) 2023.05.12
Docker란?  (0) 2023.05.12
커널(kernel)  (0) 2023.05.12
Devops가 걸어온 길  (0) 2023.05.11

< Windows11 Terraform 설치 >

 

①. https://developer.hashicorp.com/terraform/downloads  링크 접속.

②.Windows  클릭 후 386 version  Download

③.설치된 File을 압축 해제 한다. 

④.압축 해제 된 파일에 terraform.exe이 있다. 복사 한다. 

 

⑤.해당 경로에 terraform.exe을 붙여넣기 한다.


< 환경 변수 편집 >

⑥.시작 -> 환경 변수 편집

 

Path에 편집을 누른다. 

 

C:\Windows\System32\terraform 입력 후 확인

 


< Version Check >

⑦. cmd 혹은 Powershell 실행 후, "terraform --version" 입력 한다. 

위와 같이, Version check가 가능하다.

+ Recent posts