Devel::...amilies(3)
πΈ 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. π
π AUTHOR, COPYRIGHT and LICENCE π
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
- opensuse-leap 16.0: perl-Devel-CheckOS 2.40.0-bp160.1.11 Β· Artistic-1.0 OR GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms