private static int GetNumberOfCores()
        {
            if (_OS.Platform == PlatformID.Unix)
            {
                return(DULutil.ExecuteShellCommand("cat /proc/cpuinfo | grep 'model name'").Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).Count());
            }

            return(Environment.ProcessorCount);
        }
        public static string[] GetUSBports()
        {
            if (_OS.Platform == PlatformID.Unix)
            {
                return(DULutil.ExecuteShellCommand("ls -1a /dev/USB*").Split("\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(x => x.Replace("\r", "").Trim()).ToArray());
            }

            return(SerialPort.GetPortNames());
        }
        private static string GetCPU()
        {
            if (_OS.Platform == PlatformID.Unix)
            {
                return(DULutil.ExecuteShellCommand("cat /proc/cpuinfo | grep 'model name'").Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries).First().Substring(18).Trim());
            }

            return(System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE"));
        }
        private static string GetKernelVersion()
        {
            if (_OS.Platform == PlatformID.Unix)
            {
                return(DULutil.ExecuteShellCommand("uname -r").Trim());
            }

            return(_OS.VersionString);
        }
        private static string GetWiFi_SSID()
        {
            if (_OS.Platform == PlatformID.Unix)
            {
                return(DULutil.ExecuteShellCommand("iwgetid").Trim());
            }

            return("unknown");
        }
        private static string GetSerialNumber()
        {
            if (_OS.Platform == PlatformID.Unix)
            {
                return(DULutil.ExecuteShellCommand("cat /proc/cpuinfo | grep 'Serial' | awk '{print $3}' | sed 's/^1000//'").Trim());
            }

            return("unknown");
        }
        private static string GetChipName()
        {
            if (_OS.Platform == PlatformID.Unix)
            {
                return(DULutil.ExecuteShellCommand("cat /proc/cpuinfo | grep 'Hardware' | awk '{print $3}' | sed 's/^1000//'").Trim());
            }

            return(Environment.Is64BitProcess ? "64 bit" : "32 bit");
        }
        public static string GetFreeDisk()
        {
            if (_OS.Platform == PlatformID.Unix)
            {
                return(DULutil.ExecuteShellCommand("df -h").Trim());
            }
            if (_OS.Platform == PlatformID.Win32NT)
            {
                WriteResourceToFile("df.bat", "df.bat");
                // return ExecuteShellCommand("df.bat").Trim();  Does not work -> need debugging.
            }

            return("unknown");
        }
        private static string GetHardwareKey()
        {
            if (OperatingSystem.IsWindows())
            {
                return("PC");
            }

            // https://elinux.org/RPi_HardwareHistory
            if (_OS.Platform == PlatformID.Unix)
            {
                return(DULutil.ExecuteShellCommand("cat /proc/cpuinfo | grep 'Revision' | awk '{print $3}' | sed 's/^1000//'").Trim());
            }

            return(RuntimeInformation.OSDescription);
        }