protected function getSystem(): Obj
	{
		$system = new Obj;

		$system->hostname = $this->readFile('/etc/hostname');
		$system->ip = $this->getIp();
		$system->distribution = Strings::replace($this->readCommand('lsb_release -d'), '/Description:\s/');
		$system->kernel = $this->readCommand('uname -r') . ' ' . $this->readCommand('uname -i');

		$uptime = $this->readFileAsArray('/proc/uptime', ' ');
		if ($uptime) {
			$system->uptime = new Obj;
			$system->uptime->days = (int) gmdate("d", (int) $uptime[0]) - 1;
			$system->uptime->hours = (int) gmdate("H", (int) $uptime[0]);
			$system->uptime->minutes = (int) gmdate("i", (int) $uptime[0]);
		}

		$system->users = $this->readCommandAsArray('users', ' ');

		$system->load = $this->getLoad();

		$system->processes = new Obj;
		$system->processes->total = $this->readCommand('ps axo state | wc -l');
		$system->processes->running = $this->readCommand('ps axo state | grep "R" | wc -l');
		$system->processes->sleeping = $system->processes->total - $system->processes->running;

		return $system;
	}