A communication system (100, 1800) comprising: a programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) configured to provide communication resources; and a processor configured to implement a metasurface virtualization component configured to create multiple virtual programmable metasurfaces, wherein each virtual programmable metasurface is associated with a respective portion of the communication resources provided by the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801); expose the virtual programmable metasurfaces to one or more managing components as resource to provide one or more communication functions; and for each virtual programmable metasurface for which the one or more management components have requested provision of a respective communication function, control the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) to provide the requested communication function by means of the portion of the communication resources provided by the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) associated with the virtual programmable metasurface, characterized in that the communication resources comprise time slots, frequency ranges and/or phases for communicating via the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) and wherein the metasurface virtualization component is configured to ensure that communication functions requested to be provided by different ones of the virtual programmable metasurfaces are provided by different portions of the communication resources provided by the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) by time multiplexing, frequency multiplexing and/or phase multiplexing, respectively. a programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) configured to provide communication resources; and a processor configured to implement a metasurface virtualization component configured to create multiple virtual programmable metasurfaces, wherein each virtual programmable metasurface is associated with a respective portion of the communication resources provided by the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801); expose the virtual programmable metasurfaces to one or more managing components as resource to provide one or more communication functions; and for each virtual programmable metasurface for which the one or more management components have requested provision of a respective communication function, control the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) to provide the requested communication function by means of the portion of the communication resources provided by the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) associated with the virtual programmable metasurface, characterized in that the communication resources comprise time slots, frequency ranges and/or phases for communicating via the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) and wherein the metasurface virtualization component is configured to ensure that communication functions requested to be provided by different ones of the virtual programmable metasurfaces are provided by different portions of the communication resources provided by the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) by time multiplexing, frequency multiplexing and/or phase multiplexing, respectively. create multiple virtual programmable metasurfaces, wherein each virtual programmable metasurface is associated with a respective portion of the communication resources provided by the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801); expose the virtual programmable metasurfaces to one or more managing components as resource to provide one or more communication functions; and for each virtual programmable metasurface for which the one or more management components have requested provision of a respective communication function, control the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) to provide the requested communication function by means of the portion of the communication resources provided by the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) associated with the virtual programmable metasurface, characterized in that the communication resources comprise time slots, frequency ranges and/or phases for communicating via the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) and wherein the metasurface virtualization component is configured to ensure that communication functions requested to be provided by different ones of the virtual programmable metasurfaces are provided by different portions of the communication resources provided by the programmable metasurface (700, 802, 904, 1015, 1119, 1206, 1207, 1208, 1801) by time multiplexing, frequency multiplexing and/or phase multiplexing, respectively.