protected function distro()
    {
        $this->sys->setDistributionIcon('Darwin.png');
        if (!CommonFunctions::executeProgram('system_profiler', 'SPSoftwareDataType', $buffer, PSI_DEBUG)) {
            parent::distro();
        } else {
            $arrBuff = preg_split("/\n/", $buffer, -1, PREG_SPLIT_NO_EMPTY);
            foreach ($arrBuff as $line) {
                $arrLine = preg_split("/:/", $line, -1, PREG_SPLIT_NO_EMPTY);
                if (trim($arrLine[0]) === "System Version") {
                    $distro = trim($arrLine[1]);

                    if (preg_match('/^Mac OS|^OS X|^macOS/', $distro)) {
                        $this->sys->setDistributionIcon('Apple.png');
                        if (preg_match('/(^Mac OS X Server|^Mac OS X|^OS X Server|^OS X|^macOS Server|^macOS) (\d+\.\d+)/', $distro, $ver)
                            && ($list = @parse_ini_file(PSI_APP_ROOT."/data/osnames.ini", true))
                            && isset($list['OS X'][$ver[2]])) {
                            $distro.=' '.$list['OS X'][$ver[2]];
                        }
                    }

                    $this->sys->setDistribution($distro);

                    return;
                }
            }
        }
    }