Kernel 타입
Kernel 타입 (raku-type-kernel)
커널(kernel) 관련 정보를 제공하는 내장 클래스예요. 보통은 동적 변수 $*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들의 목록을 돌려주는 인스턴스 메서드예요.