[ESXi 6.5] Photon OS 설치하여 Docker Host로 운영하기
By 지훈현서 | 2018년 11월 22일 |
거의 지난 주말부터 ESXi 서버에 대해서 살펴보고 있습니다. ESXi 서버는 그 안에 필요한 VM을 하나 하나 설치하는 것이니,쉽게 말해 나만의 IaaS 를 구축한다고 할 수 있겠습니다.(ESXi 서버가 https 포트만 포트포워딩 시켜 놓으면 외부에서도 작업을 거의 다 할 수 있는 것이 환상입니다) 그런데 CaaS 처럼 구축하기 위해서는 역시나 ESXi 서버에 Docker Host 기능을하는 Linux를 설치하여야 합니다. 여기에서도 잠깐, 아주 오래전 (약 10년전) 우분투 설치를 하다보면"최소 가상머신 설치" 라는 것이 있었습니다.JeOS (쥬~스 라고 발음했던 기억이) 라고 Just Enough OS 라고 불려최소로 설치하는 것을 의미했습니다. 마치 Docker에서 image 를 최소화 하
[Linux][Kernel] 타이머(Timer) Overview
By Guillermo Austin Kim | 2017년 12월 9일 |
리눅스 커널에서 아주 중요한 Subsystem 중 하나인 타이머에 대해서 간단히 짚어 볼께요. init_timer아래 함수 콜로 do_init_timer() 함수에서 struct timer_list *timer 초기화를 수행해요.__init_timer((timer), 0)init_timer_key((_timer), (_flags), #_timer, &__key);do_init_timer(timer, flags, name, key); MIPS 아키텍쳐에서 아래와 같이 타이머를 세팅하는 코드가 있네요.static inline void ip32_power_button(void){// .. 생략.. blink_timer.data = POWERDOWN_FREQ; blink_timeout(POWERDOWN_
[리눅스커널] 스케줄링: __schedule() 함수와 'bool preempt' 인자
By Guillermo Austin Kim | 2020년 1월 15일 |
다음과 같이 __schedule() 함수의 구현부를 보면 'bool preempt' 인자를 전달한다. void __sched notrace __schedule(bool preempt){ struct task_struct *prev, *next; unsigned long *switch_count; struct rq_flags rf; 이번 시간에는 이 함수에 'bool preempt' 인자가 추가된 이력을 확인해보자. __schedule() 함수에 'bool preempt' 인자가 추가된 패치 출처는 다음과 같다.https://lkml.org/lkml/2015/9/30/100 패치 코드의 내용은 다음과 같다. From fc13aebab7d8f0d19d557c721a0f25cdf7ae9
[라즈베리파이] 프로세스 생성: _do_fork() copy_process() 함수 분석
By Guillermo Austin Kim | 2019년 1월 17일 |
이전 시간까지 유저 프로세스와 커널 프로세스가 어떤 흐름으로 생성되는지 살펴봤습니다.둘 다 _do_fork() 함수를 호출한다는 사실을 알 수 있습니다. 프로세스 생성 시 공통으로 실행하는 _do_fork() 함수 코드를 분석하면서 커널이 어떻게 프로세스를 생성하는지 살펴봅니다. _do_fork() 함수_do_fork() 함수을 분석하기 앞서 이 함수 동작을 분류해봅시다. 1단계: 프로세스 생성copy_process() 함수를 호출해서 프로세스를 생성합니다. 프로세스를 생성하는 세부 동작을 파악하려면 copy_process() 함수를 분석할 필요가 있습니다. 2단계: 생성한 프로세스 실행 요청copy_process() 함수를 호출해서 프로세스 생성을 마쳤으면 wake_up_new_task() 함수를