Devel::...amilies(3)

πŸ“¦
version 2.40.0 Β· 3 versions
, in opensuse-leap 16.0

🌸 NAME 🌸

Okay bestie, welcome to Devel::CheckOS::Families(3) β€” the manual page from the User Contributed Perl Documentation. This is all about what OS "families" are supported "out of the box" by Devel::CheckOS and Devel::AssertOS? Yes, that's the whole assignment. 🫢


🧚 WHAT IS AN OS FAMILY 🧚

Okay so computing platforms fall into several categories. For example, there's the category of Unix-a-likes. Each one of these categories is a "family", and a platform can fall into several families. Periodt. πŸ’…


🐚 THE Unix FAMILY 🐚

Broadly speaking, these are platforms where:

  • Devices are represented as pseudo-files in the filesystem.
  • Symlinks and hardlinks are supported in at least some filesystems.
  • "Unix-style" permissions are supported.
    • That is, there are seperate read/write/execute permissions for file owner, group and anyone.
    • This implies the presence of multiple user accounts and user groups.
    • Permissions may not be supported on all filesystems.
  • The filesystem has a single root.
  • The C API for the operating system is largely POSIX-compatible.

🐧 THE Linux FAMILY 🐧

This one includes both ordinary Linux and Android. Plain old Linux will match Linux. Android will match both that and Android. ✨

A word of warning β€” there are a vast number of Linux derivatives, and the docs say they will never detect every single one of them. Most Linux derivatives will only match Linux.


πŸ“ THE Linux::Debian FAMILY πŸ“

Linux::Debian is the family of all the Debian-based Linuxes. If you want to test which particular family member you're on, then look at list_family_members("Linux::Debian") to see what's available. πŸ‘‘

Note the difference between Linux::RealDebian (which uses /etc/os-release for identification) and Linux::UnknownDebianLike (which uses the existence of /etc/debian_version for identification). In particular, beware that some very old Debians don't have /etc/os-release available and so will be detected as Linux::UnknownDebianLike. 😭

It is likely that Linux::Ubuntu will in the future turn into a family. 🌈


πŸ”₯ THE Linux::Redhat and Linux::SUSE FAMILIES πŸ”₯

Both Redhat and SUSE come in multiple flavours, some commercial and some open-source. In particular, note that Oracle Linux is a Redhat derivative. πŸ’…


πŸͺŸ THE MicrosoftWindows FAMILY πŸͺŸ

This includes any version of Windows, and it also includes things like Cygwin which run on top of it. πŸ–₯️


🍎 THE DEC, Sun, and Apple FAMILIES 🍎

These include any OS written by, respectively, DEC, Sun, and Apple. They exist because, while, eg, Mac OS Classic and Mac OS X are very different platforms, they do support some unique features β€” such as AppleScript. ✨


⏱️ THE Realtime FAMILY ⏱️

This is for all real-time OSes. So far, it only includes QNX. πŸ¦‹


πŸ’Ύ THE EBCDIC FAMILY πŸ’Ύ

OSes which use EBCDIC instead of ASCII. πŸŽ€


Copyright 2024 David Cantrell <david@cantrell.org.uk>. πŸ’–

This documentation is free-as-in-speech. It may be used, distributed and modified under the terms of the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales License, whose text you may read at <http://creativecommons.org/licenses/by-sa/2.0/uk/>. 🫢


πŸ•΅οΈ CONSPIRACY πŸ•΅οΈ

This documentation is also free-as-in-mason. 🀫


Catch you later, bestie β€” this was perl v5.42.0, dated 2024-06-23, signing off from Devel::...amilies(3). Byeee! πŸ’…βœ¨

πŸ“¦ where this page comes from