interoperable php
Post on 15-Apr-2017
550 views
Embed Size (px)
TRANSCRIPT
Interoperable PHP
Interoperable PHPWe are only as strong as we are united, as weak as we are divided.DambledoreAnatol BelskiPHP SpecialistSeptember 2015
Anatol Belski
@weltlingab@php.net#php.pecl on efnet#winphp-dev on freenode
PHP 7.0 release managerPHP core developerOSS guy
Interoperable PHP
OSTCPHPHyper-VAzureSambaDocker
Interoperable PHP
Interoperability
Interoperable PHP
Hardware various hardware existing or needed for a program.Architecture how is the hardware put together.OS an exact operating system.
Tree above platform.
Program actual binary running upon the platform. With PHP - the PHP interpreter.5
A cross-platform program is
HardwareOSArchitecture
independent and can run under various constellations.
Interoperable PHP
A cross-platform program can be handled within the same source tree, or with different sources for different platforms. As well many interpreted programming languages supports multiple platforms. Also there are like a dozen platforms within Unix, Linux, Windows.
6
TopicsFilesystemTime APIPerformance32- vs 64-bitThread safetyBeyond
Interoperable PHP
Brief UNIX/Windows diffUNIX/Linuxgccmany libsprocessesC99Ext*, reiserFS, HFS, etc.UNIX permissionsWindowsvc++core API + OSS libsthreadsC99 starting with VC12NTFS, FATACLs
Interoperable PHP
Filesystem
File permissionsUNIX/Linuxchmod +x filechmod -r filechmod ugo-r filechmod +r fileno equivalentno equivalentchmod +t somedirWindowsno equivalenticacls file /deny nick:(R)no equivalenticacls file /grant nick:(R)icacls file /grant nick:(GR,GW)icacls file /inheritance:eno equivalent
Interoperable PHP
10
File/process permissionsUNIX/Linuxchmod(), chown(), etc.process permissions are handled same way as file ones
WindowsicaclsimpersonationUnmapped UNIX users built-in SID mapping
Interoperable PHP
Access control lists and others vs UNIX permissions.
Unmapped UNIX user example Samba, NFS, etc.11
Access time
ext3, ext4 and othersnoatime,nodiratime in /etc/fstab
NTFSfsutil behavior query DisableLastAccessfsutil behavior set DisebleLastAccess 0
Interoperable PHP
Atime is usually off by default off windows. On linux depends on a distribution, but most likely is on.12
NTFS streamsC:\tmp> echo hello >foo.txt C:\tmp>echo world > foo.txt:bar.txtC:\tmp>dir /r foo.txt Volume in drive C is SYSTEM Volume Serial Number is AE0A-76BD
Directory of C:\tmp
08/31/2015 11:50 PM 8 foo.txt 8 foo.txt:bar.txt:$DATA 1 File(s) 8 bytes 0 Dir(s) 59,944,050,688 bytes free
Interoperable PHP
PHP FS snippet 1