안녕하세요? 허니데이즈입니다. 오늘은 지르콘 커널에서 중요한 역할을 하는 프로세스에 대해서 준비해 봤습니다.



지르콘 프로세스는 전통적 의미에서 프로그램의 인스턴스라고 보면 된다. 리소스 모음과 함께 하나 이상의 스레드에서 실행되는 명령 집합이다. 프로세스 개체는 다음 리소스의 컨테이너로 운영된다.

 Handles
 Virtual Memory Address Regions
 Threads

일반적으로 프로세스는 강제 종료되거나 프로그램이 종료 될 때까지 실행중인 코드와 관련된다. 또한 프로세스는 작업에 의해 소유되며 하나 이상의 프로세스로 구성된 어플리케이션을 리소스, 사용 권한 한도, 수명 제어의 관점에서 단일 엔터티로 처리 할 수 ​​있다.

 

 Lifetime은 어떻게 되나요?
zx_process_create()를 통해 프로세스가 생성되고 실행은 zx_process_start()로 시작된다. 다음과 같은 경우에는 프로세스가 실행을 중지한다.

1. 마지막 스레드가 종료
2. 프로세스 호출 zx_process_exit()
3. 상위 작업이 프로세스를 종료
4. 상위 작업이 삭제
zx_process_start()에 대한 호출을 두 번 실행할 수 없다. 새 스레드는 시작된 프로세스에 추가될 수 없으며 마지막 스레드가 종료된다.

 

 SYSCALLS은 어떤 것이 있나요?
process_create - 작업 내에서 새 프로세스 만들기
process_read_memory - 프로세스의 주소 공간에서 읽기
process_start - 새 프로세스가 실행을 시작하기.
process_write_memory - 프로세스의 주소 공간에 쓰기
process_exit - 현재 프로세스 종료하기
job_create - 상위 작업 내에서 새 작업 만들기
vmar_map - 메모리를 주소 공간 범위에 매핑하기
vmar_protect - 주소 공간 범위의 권한 변경하기
vmar_unmap - 주소 공간 범위에서 메모리 맵 해제하기


출처: https://fuchsia.googlesource.com/zircon/+/master/docs/objects/process.md



 

지르콘 커널에 대해 더 알고 싶으시다면 아래 목차에서 클릭! 

지르콘 커널이란?

Zircon

지르콘 커널 개발 환경 구축하기

Getting Started

지르콘 커널 개발에 기여하는 방법

Contributing Patches

지르콘 커널의 개념 알기

Concepts Overview

지르콘 커널 구성요소(Kernel Objects)는?

Kernel Objects

지르콘 커널에서 사용되는 프로세스(Process)란?

Process Objects

지르콘 커널에서 사용되는 쓰레드(Thread)란?

Thread Objects

지르콘 커널에서 사용되는 핸들(Handles)이란?

Handles

지르콘 커널의 시스템콜하는 방식은?

System Calls

지르콘 커널의 드라이버 개발 키트 사용하는 방법 - 장치 모델

Driver Development Kit

지르콘 커널의 드라이버 개발 키트 사용하는 방법 - 장치 프로토콜

지르콘 커널의 드라이버 개발 키트 사용하는 방법 - 지르콘 드라이버 개발

지르콘 커널의 드라이버 개발 키트 사용하는 방법 - 플랫폼 버스

지르콘 커널의 드라이버 개발 키트 사용하는 방법 - 장치 펌웨어

지르콘 커널을 시험하는 방법은?

Testing

지르콘 커널의 취약점은 무엇일까?

Hacking notes

지르콘 커널의 메모리와 자원 사용은 어떻게 할까?

Memory usage analysis tools

지르콘 커널과 LK(Little Kernel)의 관계는?

Relationship with LK

지르콘 커널을 위한 마이크로 벤츠마크는?

Micro-benchmarks


+ Recent posts