$identifier always call the built-in identifier if it exists, otherwise the custom identifier if it exists, $null otherwise.
$/identifier always call the custom identifier if it exists, $null otherwise.
$~identifier always call the built-in identifier if it exists, $null otherwise.
In any case, overriding a built in command/identifier is not a good idea, make $_os and use that if you can.