Kernel 타입

Kernel 타입 (raku-type-kernel)

커널(kernel) 관련 정보를 제공하는 내장 클래스예요. 보통은 동적 변수 $*KERNEL을 통해 접근해요.

출처: Raku Docs - Kernel

정의

class Kernel does Systemic { }

운영체제 커널이 어떤 아키텍처인지, CPU 코어가 몇 개인지, 메모리가 얼마나 남았는지 같은 시스템 정보를 얻을 때 이 클래스의 메서드들을 써요. $*KERNEL이 이 클래스의 인스턴스를 담고 있죠.

say $*KERNEL.hardware; # OUTPUT: «x86_64␤»
say $*KERNEL.cpu-cores; # OUTPUT: «8␤»

메서드

method arch

method arch

arch(아키텍처) 정보를 돌려주는 인스턴스 메서드예요. 아키텍처를 알아낼 수 없으면 죽어요.

method archname

method archname

하드웨어(hardware)와 이름(name)을 이어 붙인 값을 돌려주는 인스턴스 메서드예요.

method bits

method bits

프로세서 아키텍처가 사용하는 비트 수를 돌려주는 인스턴스 메서드예요. 보통 32 또는 64예요.

method cpu-cores

method cpu-cores(--> Int)

사용 가능한 CPU 코어 수를 돌려주는 인스턴스/클래스 메서드예요.

say $*KERNEL.cpu-cores; # OUTPUT: «8␤»

method cpu-usage

method cpu-usage(--> Int)

프로그램 시작 이후 사용된 CPU 사용량(마이크로초 단위)을 돌려주는 인스턴스/클래스 메서드예요.

method free-memory

method free-memory(--> Int)

시스템의 사용 가능한 메모리를 돌려주는 인스턴스/클래스 메서드예요. JVM을 쓸 때는 JVM이 사용할 수 있는 메모리를 돌려줘요. 이 메서드는 v2019.06 이후 릴리스에서만 사용할 수 있어요.

method total-memory

method total-memory(--> Int)

시스템이 사용할 수 있는 전체 메모리를 돌려주는 인스턴스/클래스 메서드예요. JVM 사용 시에는 JVM의 전체 메모리를 돌려줘요. 역시 v2019.06 이후 릴리스에서만 쓸 수 있어요.

method endian

method endian(--> Endian:D)

커널 아키텍처와 연결된 Endian 객체(LittleEndian 또는 BigEndian)를 돌려주는 클래스 메서드예요.

method hardware

method hardware

Kernel 객체의 하드웨어 정보를 돌려주는 인스턴스 메서드예요. 하드웨어 정보를 알아낼 수 없으면 죽어요.

say $*KERNEL.hardware; # OUTPUT: «x86_64␤»

method hostname

method hostname

Kernel 객체의 호스트 이름을 돌려주는 인스턴스 메서드예요.

method release

method release

Kernel 객체의 릴리스 정보를 돌려주는 인스턴스 메서드예요. 릴리스 정보를 얻지 못하면 죽어요.

method signal

multi method signal(Kernel:D: Str:D $signal --> Int:D)
multi method signal(Kernel:D: Signal:D \signal --> Int:D)
multi method signal(Kernel:D: Int:D \signal --> Int:D)

주어진 신호 이름에 해당하는 Signal 숫자 코드를 돌려주는 인스턴스 메서드예요.

say $*KERNEL.signal("INT"); # OUTPUT: «2␤»

method signals

Kernel 객체가 나타내는 커널이 지원하는 Signal들의 목록을 돌려주는 인스턴스 메서드예요.