Skip to content

ArnoCan/platformids

Repository files navigation

platformids

REMARK: This is a nighlty build with some minor issues, the final is following within a these days.

The ‘platformids‘ package provides the categorization and enumeration of OS platforms and distributions.

This enables the development of portable generic code for arbitrary platforms in IT and IoT landscapes consisting of heterogeneous physical and virtual runtime environments.

The introduced hierarchical bitmask vectors enable for fast and efficient platform specific code and data selection for OS and distributions with routines for specific platform releases.

The supported version numbering comprise various release schemes such as classical version numbers with variable segments and optional release names,

AlpineLinux-3.8.1
CentOS-6.10
Debian-9.6
Fedora31
OS-X-10.6.8
Ubuntu-18.04
armbian-5.76
cygwin-2.9.0
opensuse-15.1
opensuse-42.3
raspbian-9.4
slackware-14.2
solaris-11.3

variations of numbering schemes,

CentOS-7.5-1804
CentOS-7.6-1810
NT-6.3.9600
NT-6.1.7601
NT-5.1.2600

as well as various numbering schemes for continuous deployment including the numbering schemes of Windows releases.

archlinux-2018.12.01
kali-linux-2019-W11
kali-linux-2019.1
NT-10.0.1809
NT-10.0.1806

The current supported platforms are:

  • Linux, BSD, Unix, Minix, Cygwin, OS-X, and Windows

  • Servers, Workstations, Embedded Systems

  • Datacenters, public and private Clouds, IoT

  • x86, amd64, arm32/armhf, arm64/aarch64

Online documentation:

Runtime-Repository:

Downloads:

Project Data

  • PROJECT: 'platformids'

  • MISSION: Identify and enumerate platform IDs for the OS and it's distribution.

  • VERSION: 00.01

  • RELEASE: 00.01.039

  • STATUS: beta

  • AUTHOR: Arno-Can Uestuensoez

  • COPYRIGHT: Copyright (C) 2019 Arno-Can Uestuensoez @Ingenieurbuero Arno-Can Uestuensoez

  • LICENSE: Artistic-License-2.0 + Forced-Fairplay-Constraints

Concepts and enumeration values are migrated from the

  • UnifiedSessionsManager (C) 2008 Arno-Can Uestuensoez @Ingenieurbuero Arno-Can Uestuensoez.

Runtime Environment

For a comprehensive list refer to the documentation.

Python Syntax Support

  • Python2.7, and Python3

Python Implementation Support

  • CPython, IPython, IronPython, Jython, and PyPy

Jython requires on Windows platforms the optional Java package platformids.jy.dist.nt - see documentation:

  • JDK/JRE >= Java8

  • JNA

  • For the source-installation of the contained Java modules refer to setuplib with the setup.py commands build_java and build_jy.

OS on Server, Workstation, Laptops, Virtual Machines, and Containers

  • Linux: AlpineLinux, ArchLinux, CentOS, Debian, Fedora, Gentoo, OpenSUSE, Raspbian, RHEL, Slackware, SLES, Ubuntu, ...

  • BSD: DragonFlyBSD, FreeBSD, NetBSD, OpenBSD, GhostBSD, TrueOS, NomadBSD

  • OS-X: Snow Leopard

  • Windows: Win10, Win8.1, Win7, WinXP, Win2019, Win2016, Win2012, Win2008, Win2000

  • WSL-1.0: Alpine, Debian, KaliLinux, openSUSE, SLES, Ubuntu

  • Cygwin

  • UNIX: Solaris10, Solaris11

  • Minix: Minix3

  • ReactOS

Network and Security

  • Network Devices: OpenWRT

  • Security: KaliLinux, pfSense, BlackArch, ParrotOS, Pentoo

OS on Embedded Devices

  • RaspberryPI: ArchLinux, CentOS, OpenBSD, OpenWRT, Raspbian

  • ASUS-TinkerBoard: Armbian

  • e.g. Adafruit Trinket M0: CircuitPython, MicroPython

Current Release

Major Changes:

ToDo:

  • AIX

  • MicroPython, CircuitPython

  • test OpenBSD on rpi3

  • test Windows10IoT-Core

  • NomadBSD: has some issues with running in VirtualBox, so shifted for now