[리눅스커널][스케줄링] 컨택스트 스위칭: context_switch() 세부 코드 분석
By Guillermo Austin Kim | 2019년 3월 6일 |
컨택스트 스위칭 세부 코드 분석이전 소절에서 다룬 컨택스트 스위칭이란 다음과 같은 문장으로 정리할 수 있습니다.CPU에서 실행 중인 프로세스 정보로 채워진 CPU 레지스터 세트를 프로세스 스택 공간에 저장하고 다음에 실행할 프로세스의 레지스터 세트를 스택 공간에서 로딩해 CPU 레지스터 세트에 채우는 동작입니다. 이번에는 context_switch() 함수 분석으로 컨택스트 스위칭 코드 동작을 알아보겠습니다. 먼저 context_switch() 함수에 전달하는 인자를 확인합시다.[https://elixir.bootlin.com/linux/v4.14.70/source/kernel/sched/core.c]static __always_inline struct rq *context_switch(struct rq
[리눅스커널][가상파일시스템] open(): 파일 객체를 오픈할 때 세부 동작
By Guillermo Austin Kim | 2019년 3월 18일 |
open(): 파일 객체를 오픈할 때 세부 동작 유저 공간에서 open() 함수를 실행하면 커널 공간에서 다음 그림과 같은 함수 흐름을 확인할 수 있습니다. 위 그림은 유저 공간에서 함수 오픈 오퍼레이션을 실행할 때 함수 실행 흐름입니다. 유저 공간에서 open() 함수를 호출하면 시스템 콜을 발생시켜 실행 흐름이 커널 공간으로 바뀝니다. 이후 open() 함수에 해당하는 시스템 콜 핸들러 함수인 sys_open() 함수가 실행 한 후 ext4 파일시스템에서 관리하는 파일 오픈 함수인 ext4_file_open() 함수를 호출합니다. 이전 절에서 유저 공간에서 read() 혹은 write() 함수를 실행할 때도 위와 비슷한 함수 실행 흐름을 확인했습니다. 파일을 오픈할 때는 read()나 write(
리눅스(데비안/우분투 계열)에서 VNC 원격접속 사용 (x11vnc, remmina)
By 반달가면 | 2021년 4월 15일 |
리눅스에서 원격 VNC서버에 접속해서 화면을 가져와 작업하는 방법이다. 클라이언트, 서버 모두 데비안/우분투 계열 배포판인 리눅스 민트(Linux Mint) 19.3 XFCE에서 작업했다. 원격 장비의 데스크탑 화면을 그대로 가져오는 VNC 프로토콜은 암호화되지 않는 방식이므로, ssh 터널링을 이용해서 암호화를 해 주는 것이 좋겠다. 우선 서버쪽에서 데스크탑 화면을 제공하기 위하여 x11vnc와 ssh서버 패키지(openssh-server)를 설치해 준다. # S/W 저장소 정보 갱신 sudo apt-get update # x11vnc, openssh-server 패키지 설치 sudo apt-get install x11vnc openssh-server 서버쪽의 작업은 이것으로
[라즈베리파이] 가상 파일시스템이란?
By Guillermo Austin Kim | 2019년 1월 2일 |
가상 파일시스템이란 무엇일까요? ext4나 proc과 같은 파일시스템일까요? 가상 파일시스템은 ext4나 proc과 같은 파일시스템은 아닙니다. 리눅스 커널에서 다양한 파일시스템이 공존하며 동적으로 실행할 수 있는 가상 소프트웨어 계층입니다. 참고로, ext4는 Extended File System 4 약자로 리눅스 저널링 파일시스템입니다.라즈베리파이에서 특정 파일을 생성해서 쓰고 저장할 때 ext4 파일시스템이 해당 파일을 관리합니다. 가상 파일시스템이란 용어 자체가 리눅스 커널을 처음 접하는 분에게 혼돈을 줄 수 있으니 이 용어에 대해 조금 더 짚어 봅시다. 가상이란 용어는 객체 지향에서 말하는 추상화와 유사한 개념입니다. 추상화 계층(Abstraction Layer)은 소프트웨어를 전체 구조를 설