Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

A license for CPU-intensive software like Pix4D says it can be installed on two devices - but with a condition. Reading the finer print, it seems that one device can be a full-processing workstation/desktop whereas the other must be a mobile device/laptop.

How would the software know? Are there giveaways in the hardware specifications for determining something like this e.g. presence of a battery?
Given the software is fully functional on both machines, wouldn't this condition become irrelevant if I just buy a high-end laptop which is just as fast as the workstation?

share|improve this question
    
In Devices and Printers, you can see a device that represents your PC. If it's a laptop, it will show a laptop icon. Not sure if other software can or will use this info, though. – ecube Feb 4 at 23:52
16  
The presence of a battery is probably a good one, but I'm sure some UPSes would also count as batteries. – user20574 Feb 5 at 8:58
1  
I think Pix4D does not check what type of hardware is used. It just gives out two different licenses. In one of the license only "Rapid Check processing mode" is allowed whereas the other is a full license. – user797717 Feb 5 at 9:58
1  
The software may be able to glean that info from the OS - if not, I'd suggest that the presence of a lid button (i.e the laptop sensing when the lid is closed) is probably a dead giveaway for laptops. of course this doesn't cover all, as you do get phablets / all-in-ones and others. – jammypeach Feb 5 at 11:24
2  
Does the software even attempt to enforce it? Or is it just honor system? – whatsisname Feb 5 at 21:29

On Linux, you can run the following command:

sudo dmidecode --string chassis-type

On a laptop, this will return "Laptop", "Notebook" "Portable", or "Sub Notebook" (depending on the manufacturer).

For Windows, refer to the following documentation to determine your computer chassis type:

Identifying the Chassis Type of a Computer

share|improve this answer
21  
Heh, that pizza box really confused me until I read this en.wikipedia.org/wiki/Pizza_box_form_factor – ecube Feb 4 at 23:25
    
I had a laptop that identified itself as such once. It was a piece of junk ;p – Journeyman Geek Feb 4 at 23:47
5  
Both my desktop and my laptop systems identify themselves as 'Other'. I do expect many would correctly identify themselves, mind you. – ChrisInEdmonton Feb 5 at 16:25
    
@dma1324 Wow, 117 mips for under $100k! – Michael Feb 5 at 18:10
3  
My Chromebook identified itself as a desktop. – dramzy Feb 5 at 18:43

To add to the other answer here re: Linux, Windows software can also access this information through various provided WinAPI methods/objects. One such example is Win32_ComputerSystem, which among others, has members such as:

PCSystemTypeEx

Data type: uint16
Access type: Read-only

Type of the computer in use, such as laptop, desktop, or Tablet.

Possible values include:

Unspecified (0)
Desktop (1)
Mobile (2)
Workstation (3)
Enterprise Server (4)
SOHO Server (5)
Appliance PC (6)
Performance Server (7)
Slate (8)
Maximum (9)

As for how Windows knows this, while I can't say with certainty because I lack both the Windows source code and any official documentation links presently, I'd say its a simple matter of the hardware ID's within the computer giving this information away to the OS. Since Windows has a massive partner network that submit their drivers directly to Microsoft (for driver updates via Windows Update, "standard" drivers to include with install media), it's pretty easy for Windows to figure out precisely what kind of computer you've installed it on. Just by the CPU ID alone you could make a pretty safe bet whether the machine is a laptop or desktop.

share|improve this answer
    
Yeah but how does Windows know – Lightness Races in Orbit Feb 5 at 10:40
3  
@PreferenceBean Windows kernel asks windows server about hardware ids and windows server asks linux? ;) – Technik Empire Feb 5 at 11:48
2  
In the answer please – Lightness Races in Orbit Feb 5 at 11:51
6  
The CPUID is strongly suggestive; but not foolproof. Small form factor desktops sometimes use mobile CPUs, and there have been a few ultra high end gaming "laptops" that were built using desktop CPUs. – Dan Neely Feb 5 at 16:43
1  
"Dmidecode reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard" nongnu.org/dmidecode Almost certainly WMI gets the information from the same place. That's what standards are for after all. – Ben Feb 8 at 9:55

There are various hints. One is the "system type" in the DMI data. Another is whether or not the system has a battery. Yet another is the type of processor, chipset, display controller, display etc. None of them are foolproof but by taking them together it would be pretty easy to write a classifier that grouped systems into "almost certainly a laptop", "almost certainly a desktop/workstation" and "undetermined".

But honestly enforcement of licensing through technical/activation methods tends to be focussed on preventing large scale abuse. Small scale abuse is more likely to be handled through audits, disgrunted employees ratting out their bosses etc.

Given the software is fully functional on both machines, wouldn't this condition become irrelevant if I just buy a high-end laptop which is just as fast as the workstation?

If you can buy a laptop that is as fast as your workstation you must have a pretty low end (or old) workstation.

share|improve this answer

The code that was used to write the software can determine what type of "Chassis" it is currently being run on.

See this answer for an example in C#. This can determine whether the computer is any of the following types (some are seemingly repeats, and/or outdated):

  • Other
  • Unknown
  • Desktop
  • LowProfileDesktop
  • PizzaBox
  • MiniTower
  • Tower
  • Portable
  • Laptop
  • Notebook
  • Handheld
  • DockingStation
  • AllInOne
  • SubNotebook
  • SpaceSaving
  • LunchBox
  • MainSystemChassis
  • ExpansionChassis
  • SubChassis
  • BusExpansionChassis
  • PeripheralChassis
  • StorageChassis
  • RackMountChassis
  • SealedCasePC

Also about my comment saying that they are seemingly repetitive - that was a matter of my opinion - just by looking over the list it appears to have been created ad hoc over the years and does not appear to be MECE. Indeed, I several instances of people saying that the need for differentiation between some of the above form factors is no longer relevant or understood (for instance see this short summary of the sub notebook.

share|improve this answer
    
technet.microsoft.com/en-us/library/ee156537.aspx For the values when querying WMI. There isn't solid consensus on where the delineation is between "workstation" and "mobile device", but the vendor should be able to state what criteria they use. – blaughw Feb 5 at 21:12
3  
Which ones are "easter eggs"? All of those look like actual chassis types to me. – Cody Gray Feb 6 at 10:34
1  
Microsoft has a policy of absolutely no easter eggs allowed, so it might be surprising to you, but none of them are easter eggs. – Derek 朕會功夫 Feb 7 at 6:23
    
Even a PizzaBox or LunchBox? – William Feb 8 at 15:32
    
I just wikipediaed it and you are correct! Those are real chassis types lol - i will update my answer – William Feb 8 at 15:32

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.