This talk will give a brief background to the Xen Project Windows PV driver architecture for those who are not already familiar. It will then go on to update the community on recent changes to the drivers, and planned future changed. It will also cover the new HID and console drivers that have been introduced to the supported set, including demonstrations of those drivers.
TIME SYNCHRONIZATION IN WIRELESS SENSOR NETWORKS: A SURVEYijujournal
Time synchronization is a critical piece of infrastructure for any distributed system. Wireless sensor networks have emerged as an important and promising research area in the recent years. Time synchronization is important for many sensor network applications that require very precise mapping of gathered sensor data with the time of the events, for example, in tracking and vehicular surveillance. It also plays an important role in energy conservation in MAC layer protocols. The paper studies different existing methods, protocols, significant time parameters (clock drift, clock speed, synchronization errors, and topologies) to achieve accurate synchronization in a sensor network. The studied Synchronization protocols include conventional time sync protocols (RBS, Timing-sync Protocol for Sensor Networks -TPSN, FTSP), and other application specific
approaches such as all node-based approach, a diffusion-based method and group sync approaches aiming at providing network-wide time. The goal for writing this paper is to study most common existing time synchronization approaches and stress the need of a new class of secure-time synchronization protocol that is scalable, topology independent, fast convergent, energy efficient, less latent and less application dependent in a heterogeneous hostile environment. Our survey provides a valuable framework by which protocol designers can compare new and
existing synchronization protocols from various metric discussed in the paper. So, we are hopeful that this paper will serve a complete one-stop investigation to study the characteristics of existing time synchronization protocols and its implementation mechanism in a Sensor network environment.
TIME SYNCHRONIZATION IN WIRELESS SENSOR NETWORKS: A SURVEYijujournal
Time synchronization is a critical piece of infrastructure for any distributed system. Wireless sensor networks have emerged as an important and promising research area in the recent years. Time synchronization is important for many sensor network applications that require very precise mapping of gathered sensor data with the time of the events, for example, in tracking and vehicular surveillance. It also plays an important role in energy conservation in MAC layer protocols. The paper studies different existing methods, protocols, significant time parameters (clock drift, clock speed, synchronization errors, and topologies) to achieve accurate synchronization in a sensor network. The studied Synchronization protocols include conventional time sync protocols (RBS, Timing-sync Protocol for Sensor Networks -TPSN, FTSP), and other application specific
approaches such as all node-based approach, a diffusion-based method and group sync approaches aiming at providing network-wide time. The goal for writing this paper is to study most common existing time synchronization approaches and stress the need of a new class of secure-time synchronization protocol that is scalable, topology independent, fast convergent, energy efficient, less latent and less application dependent in a heterogeneous hostile environment. Our survey provides a valuable framework by which protocol designers can compare new and
existing synchronization protocols from various metric discussed in the paper. So, we are hopeful that this paper will serve a complete one-stop investigation to study the characteristics of existing time synchronization protocols and its implementation mechanism in a Sensor network environment.
This presentation is prepared for workshop session and is not in detail. You can ask your doubts here or you can email me at prakharbansal1@gmail.com. I'll try to answer to my best.
The Fujitsu Open ROADM solution is specifically developed to meet the standards set forth by the MSA community. The solution brings together the 1FINITY™ disaggregated optical networking platforms; the Virtuora® suite of SDN/NFV software tools and applications; and expert multivendor integration services.
1: Direct sequence and frequency hopped spread spectrum, spreading sequence and their correlation functions, Acquisition and tracking of spread spectrum signals.
2: Error probability for DS-CDMA, on AWGN channels, DS-CDMA on frequency selective fading, channels, Performance analysis of cellular CDMA.
3: Capacity estimation, Power control, effect of imperfect power control on DS CDMA performance, Soft Handoffs.
4: Spreading /coding tradeoffs, multi-carrier CDMA, IS-95 CDMA system, third generation CDMA systems, multi-user detection.
4G/5G RAN architecture: how a split can make the differenceEricsson
Current RAN architecture is undergoing a transformation to increase deployment flexibility and network dynamicity, so that networks will be able to meet the performance requirements demanded by applications such as extreme mobile broadband and long-range massive MTC. To stop total cost of ownership from soaring, the proposed architecture will be software-configurable and split between general-purpose and specialized hardware, in a way that enables ideal placement of networks functions.
Open Source Citrix Windows PV Drivers - Paul Durrant, CitrixThe Linux Foundation
Citrix has recently spent several months making sure all the key parts of XenServer are open source. Part of this effort made the XenServer Windows Paravirtual (PV) drivers available in source form under a BSD 2 clause license on GitHub.
This presentation is prepared for workshop session and is not in detail. You can ask your doubts here or you can email me at prakharbansal1@gmail.com. I'll try to answer to my best.
The Fujitsu Open ROADM solution is specifically developed to meet the standards set forth by the MSA community. The solution brings together the 1FINITY™ disaggregated optical networking platforms; the Virtuora® suite of SDN/NFV software tools and applications; and expert multivendor integration services.
1: Direct sequence and frequency hopped spread spectrum, spreading sequence and their correlation functions, Acquisition and tracking of spread spectrum signals.
2: Error probability for DS-CDMA, on AWGN channels, DS-CDMA on frequency selective fading, channels, Performance analysis of cellular CDMA.
3: Capacity estimation, Power control, effect of imperfect power control on DS CDMA performance, Soft Handoffs.
4: Spreading /coding tradeoffs, multi-carrier CDMA, IS-95 CDMA system, third generation CDMA systems, multi-user detection.
4G/5G RAN architecture: how a split can make the differenceEricsson
Current RAN architecture is undergoing a transformation to increase deployment flexibility and network dynamicity, so that networks will be able to meet the performance requirements demanded by applications such as extreme mobile broadband and long-range massive MTC. To stop total cost of ownership from soaring, the proposed architecture will be software-configurable and split between general-purpose and specialized hardware, in a way that enables ideal placement of networks functions.
Open Source Citrix Windows PV Drivers - Paul Durrant, CitrixThe Linux Foundation
Citrix has recently spent several months making sure all the key parts of XenServer are open source. Part of this effort made the XenServer Windows Paravirtual (PV) drivers available in source form under a BSD 2 clause license on GitHub.
Paul Durant, leader of the Windows PV Drivers effort in Xen Project, discusses the history, architecture, interfaces, and use of the drivers. Using the Windows PV Drivers yield higher performance for Windows VMs.
Join us to discover how to use the PHP frameworks and tools you love in the Cloud with Heroku. We will cover best practices for deploying and scaling your PHP apps and show you how easy it can be. We will show you examples of how to deploy your code from Git and use Composer to manage dependencies during deployment. You will also discover how to maintain parity through all your environments, from development to production. If your apps are database-driven, you can also instantly create a database from the Heroku add-ons and have it automatically attached to your PHP app. Horizontal scalability has always been at the core of PHP application design, and by using Heroku for your PHP apps, you can focus on code features, not infrastructure.
Matt Davis, Senior Principal Software Engineer at Ansible Core: Red HatWindows can be a fickle beast to automate. We'll explore ten common Windows pain points and how to tame them via Ansible, then explore an Ansible role that builds on those techniques to deploy a Chocolatey Simple Server.
On-Demand: https://www.nginx.com/resources/webinars/nginx-adc-basics-best-practices/
In this webinar, we help you get started with NGINX, industry’s most ubiquitous web server and API gateway. We cover best practices for installing, configuring, and troubleshooting both NGINX Open Source and the enterprise-grade NGINX Plus. We provide insights about using NGINX Controller to manage your NGINX Plus instances.
Watch this webinar to learn:
- How to create NGINX configurations for web server, load balancer, etc.
- About improving performance using keepalives and other NGINX directives
- How the NGINX Controller Load Balancing Module can manage NGINX Plus instances at scale
- About augmenting your existing ADC with NGINX
NGINX ADC: Basics and Best Practices – EMEANGINX, Inc.
In this webinar we help you get started with NGINX, industry’s most ubiquitous web server and API gateway. We cover best practices for installing, configuring, and troubleshooting both NGINX Open Source and the enterprise-grade NGINX Plus. We provide insights about using NGINX Controller to manage your NGINX Plus instances.
Watch this webinar to learn:
- How to create NGINX configurations for web server, load balancer, etc.
- About improving performance using keepalives and other NGINX directives
- How the NGINX Controller Load Balancing Module can manage NGINX Plus instances at scale
- About augmenting your existing ADC with NGINX
https://www.nginx.com/resources/webinars/nginx-adc-basics-best-practices-emea/
Note: also see https://www.slideshare.net/xen_com_mgr/ossna18-xen-beginners-training-exercise-script
The Xen Project supports some of the biggest clouds in production today and is moving into new industries, like security and automotive. Usually, you will use Xen indirectly as part of a commercial product, a distro, a hosting or cloud service and only indirectly use Xen. By following this session you will learn how Xen and virtualization work under the hood exploring high-level topics like architecture concepts related to virtualization to more technical attributes of the hypervisor like memory management (ballooning), virtual CPUs, scheduling, pinning, saving/restoring and migrating VMs.
Slides for my talk at the Blue4IT meeting in Utrecht. It shows you how to run everything in a Docker container. You can run the DTAP environment, the build environment and the development environment (including IDE) in Docker.
Similar to XPDDS18: Windows PV Drivers Project: Status and Updates - Paul Durrant, Citrix Systems (20)
Static partitioning is used to split an embedded system into multiple domains, each of them having access only to a portion of the hardware on the SoC. It is key to enable mixed-criticality scenarios, where a critical application, often based on a small RTOS, runs alongside a larger non-critical app, typically based on Linux. The two domains cannot interfere with each other.
This talk will explain how to use Xen for static partitioning. It will introduce dom0-less, a new Xen feature written for the purpose. Dom0-less allows multiple VMs to start at boot time directly from the Xen hypervisor, decreasing boot times drastically. It makes it very easy to partition the system without virtualization overhead. Dom0 becomes unnecessary.
This presentation will go into details on how to setup a Xen dom0-less system. It will show configuration examples and explain device assignment. The talk will discuss its implications for latency-sensitive and safety-critical environments.
XPDDS19: How TrenchBoot is Enabling Measured Launch for Open-Source Platform ...The Linux Foundation
TrenchBoot is a cross-community OSS integration project for hardware-rooted, late launch integrity of open and proprietary systems. It provides a general purpose, open-source DRTM kernel for measured system launch and attestation of device integrity to trust-centric access infrastructure. TrenchBoot closes the UEFI Measurement Gap and reduces the need to trust system firmware. This talk will introduce TrenchBoot architecture and a recent collaboration with Oracle to launch the Linux kernel directly with Intel TXT or AMD SVM Secure Launch. It will propose mechanisms for integrating the Xen hypervisor into a TrenchBoot system launch. DRTM-enabled capabilities for client, server and embedded platforms will be presented for consideration by the Xen community.
XPDDS19 Keynote: Xen in Automotive - Artem Mygaiev, Director, Technology Solu...The Linux Foundation
Artem will briefly cover what has been done since the first talk on Xen in Automotive domain back in 2013, what is going on now and what is still missing for broad adaptation of Xen in vehicles. The following topics will be covered:
Embedded/automotive features of Xen
Collaboration with AGL and GENIVI organizations for standardization
Efforts on Functional Safety compliance
Artem will also go over typical automotive use scenarios for Xen which may not be the same as generic computing use of hypervisor.
XPDDS19 Keynote: Xen Project Weather Report 2019 - Lars Kurth, Director of Op...The Linux Foundation
In this keynote talk, we will give an overview of the state of the Xen Project, trends that impact the project, see whether challenges that surfaced last year have been addressed and how we did it, and highlight new challenges and solutions for the coming year.
In recent years unikernels have shown immense performance potential (e.g., boot times of only a few ms, image sizes of only hundreds of KBs).The fundamental drawback of unikernels is that they require that applications be manually ported to the underlying minimalistic OS, needing both expert work and often considerable amount of time.
The Unikraft project provides a unikernel code base and build system that significantly simplifies the building of unikernels. In addition to support for a number CPU architectures, languages and frameworks, Unikraft provides debugging and tracing features that are generally sorely missing from unikernel projects. In this talk we will talk about these features, show a set of preliminary performance numbers, and provide a roadmap for the project's future.
XPDDS19 Keynote: Secret-free Hypervisor: Now and Future - Wei Liu, Software E...The Linux Foundation
The idea of making Xen secret-free has been floating since Spectre and Meltdown came into light. In this talk we will discuss what is being done and what needs to be done next.
XPDDS19 Keynote: Xen Dom0-less - Stefano Stabellini, Principal Engineer, XilinxThe Linux Foundation
This talk will introduce Dom0-less: a new way of using Xen to build mixed-criticality solutions. Dom0-less is a Xen feature that adds a novel approach to static partitioning based on virtualization. It allows multiple domains to start at boot time directly from the Xen hypervisor, decreasing boot times dramatically. Xen userspace tools, such as xl and libvirt, become optional.
Dom0-less extends the existing device tree based Xen boot protocol to cover information required by additional domains. Binaries, such as kernels and ramdisks, are loaded by the bootloader (u-boot) and advertised to Xen via new device tree bindings.
The audience will learn how to use Dom0-less to partition the system. Uboot and device tree configuration details will be explained to enable the audience to get the most out of this feature. The talk will include a status update and details on future plans.
XPDDS19 Keynote: Patch Review for Non-maintainers - George Dunlap, Citrix Sys...The Linux Foundation
As the number of contributions grow, reviewer bandwidth becomes a bottleneck; and maintainers are always asking for more help. However, ultimately maintainers must at least Ack every patch that goes in; so if you're not a maintainer, how can you contribute? Why should anyone care about your opinion?
This talk will try to lay out some advice and guidelines for non-maintainers, for how they can do code review in a way which will effectively reduce the load on maintainers when they do come to review a patch.
This talk is a follow-up to our Summit 2017 presentation in which we covered our plans for Intel VMFUNC and #VE, as well as related use-cases. This year, we will provide a report on what we have accomplished in Xen 4.12, and what remains to be addressed. We will also give a brief status update of VMI on AMD hardware. The session will end with some real-world numbers of the Hypervisor Introspection solution running on Citrix Hypervisor 8.0 with #VE enabled.
OSSJP/ALS19: The Road to Safety Certification: Overcoming Community Challeng...The Linux Foundation
Safety certification is one of the essential requirements for software to be used in highly regulated industries. Besides technical and compliance issues (such as ISO 26262 vs IEC 611508) transitioning an existing project to become more easily safety certifiable requires significant changes to development practices within an open source project.
In this session, we will lay out some challenges of making safety certification achievable in open source and the Xen Project. We will outline the process the Xen Project has followed thus far and highlight lessons learned along the way. The talk will primarily focus on necessary process, tooling changes and community challenges that can prevent progress. We will be offering an in-depth review of how Xen Project is approaching this challenging goal and try to derive lessons for other projects and contributors.
OSSJP/ALS19: The Road to Safety Certification: How the Xen Project is Making...The Linux Foundation
Safety certification is one of the essential requirements for software to be used in highly regulated industries. The Xen Project, a secure and stable hypervisor that is used in many different markets, has been exploring the feasibility of building safety certified products on top of Xen for a year, looking at key aspects of its code base and development practices.
In this session, we will lay out the motivation and challenges of making safety certification achievable in open source and the Xen Project. We will outline the process the project has followed thus far and highlight lessons learned along the way. The talk will cover technical enablers, necessary process and tooling changes and community challenges offering an in-depth review of how Xen Project is approaching this exciting and and challenging goal.
XPDDS19: Speculative Sidechannels and Mitigations - Andrew Cooper, CitrixThe Linux Foundation
2018 saw fundamental shifts in security boundaries which were previously taken for granted. A lot of work has been done in the past 2 years, and largely in secret under embargo, but there is plenty more work to be done to strengthen the existing mitigations and to try to recover some performance without reopening security holes.
This talk will look at speculative execution sidechannels, the work which has already been done to mitigate the security holes, and future work which hopes to bring some improvements.
XPDDS19: Keeping Coherency on Arm: Reborn - Julien Grall, Arm ltdThe Linux Foundation
The Arm architecture provides a set of guidelines that any software should abide by when accessing the memory with MMU off and update page-tables. Failing to do so may result in getting TLB conflicts or breaking coherency.
In a previous talk ("Keeping coherency on Arm"), we focused on updating safely the stage-2 (aka P2M) page-tables. This talk will focus on the boot code and Xen memory management.
During this session, we will introduce some of the guidelines and when they should be used. We will also discuss how Xen boot sequence needs to be reworked to avoid breaking the guidelines.
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...The Linux Foundation
For many years the QEMU codebase has contained PV backends for Xen guests, giving them paravirtual access to storage, network, keyboard, mouse, etc. however these backends have not been configurable as QEMU devices as their implementation did not fully adhere to the QEMU Object Model (QOM).
Particularly the PV storage backend not using proper QOM devices, or qdevs, meant that the QEMU block layer needed to maintain legacy code that was cluttering up the source. This was causing push-back from the maintainers who did not want to accept any patches relating to that Xen backend until it was 'qdevified'.
In this talk, I'll explain the modifications I made to QEMU to achieve 'qdevification' of the PV storage backend, how compatibility with the libxl toolstack was maintained, and what the next steps in both QEMU and libxl development should be.
XPDDS19: Status of PCI Emulation in Xen - Roger Pau Monné, Citrix Systems R&DThe Linux Foundation
PCI is a local computer bus for attaching hardware devices in a computer, and is the main peripheral bus on modern x86 systems. As such, having a proper way to emulate it is crucial for Xen to be able to expose both fully emulated devices or passthrough devices to guests.
This talk will focus on the current status of PCI emulation in Xen, how and where it is used, what are its main limitations and future plans to improve it in order to be more robust and modular.
XPDDS19: [ARM] OP-TEE Mediator in Xen - Volodymyr Babchuk, EPAM SystemsThe Linux Foundation
Volodymyr will speak about TEE mediators. This is a new feature in Xen which allows multiple virtual machines to interact with Trusted Execution Environment available on platform. He developed mediator for one of TEEs, namely OP-TEE.
He will give background information on why TEE is needed at all and share some implementation details.
XPDDS19: Bringing Xen to the Masses: The Story of Building a Community-driven...The Linux Foundation
Xen is a very powerful hypervisor with a talented and diverse developers community. Despite the fact it's almost everywhere (from the Cloud to the embedded world), it can be difficult to set up and manage as a system administrator. General purpose distros have Xen packages, but that's just a start in your Xen journey: you need some tooling and knowledge to have a working and scalable platform.
XCP-ng was built to overcome those issues: by bringing Xen to the masses with a fully turnkey distro with Xen as its core. It's the logical sequel to the XCP project, with a community focus from the start. We'll see how it happened, what we did, and what's next. Finally, we'll see the impact of XCP-ng on the Xen Project.
XPDDS19: Will Robots Automate Your Job Away? Streamlining Xen Project Contrib...The Linux Foundation
Doug has long advocated for more CI/CD (Continuous Integration / Continuous Delivery) processes to be adopted by the Xen Project from the use of Travis CI and now GitLab CI. This talk aims to propose ideas for building upon the existing process and transforming the development process to provide users a higher quality with each release by the Xen Project.
XPDDS19: Client Virtualization Toolstack in Go - Nick Rosbrook & Brendan Kerr...The Linux Foundation
High level toolstacks for server and cloud virtualization are very mature with large communities using and supporting them. Client virtualization is a much more niche community with unique requirements when compared to those found in the server space. In this talk, we’ll introduce a client virtualization toolstack for Xen (redctl) that we are using in Redfield, a new open-source client virtualization distribution that builds upon the work done by the greater virtualization and Linux communities. We will present a case for maturing libxl’s Go bindings and discuss what advantages Go has to offer for high level toolstacks, including in the server space.
Today Xen is scheduling guest virtual cpus on all available physical cpus independently from each other. Recent security issues on modern processors (e.g. L1TF) require to turn off hyperthreading for best security in order to avoid leaking information from one hyperthread to the other. One way to avoid having to turn off hyperthreading is to only ever schedule virtual cpus of the same guest on one physical core at the same time. This is called core scheduling.
This presentation shows results from the effort to implement core scheduling in the Xen hypervisor. The basic modifications in Xen are presented and performance numbers with core scheduling active are shown.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
3. ● Closed source drivers specifically for XenServer
○ Assumptions and custom hacks
3
XenServer Legacy PV Drivers
4. ● Closed source drivers specifically for XenServer
○ Assumptions and custom hacks
● Lots of interdependencies
○ Direct function calls between modules
4
XenServer Legacy PV Drivers
5. ● Closed source drivers specifically for XenServer
○ Assumptions and custom hacks
● Lots of interdependencies
○ Direct function calls between modules
● Installed together via an NSIS[1] installer
5
XenServer Legacy PV Drivers
[1] See https://sourceforge.net/projects/nsis
6. ● Closed source drivers specifically for XenServer
○ Assumptions and custom hacks
● Lots of interdependencies
○ Direct function calls between modules
● Installed together via an NSIS[1] installer
● Used prior to XenServer 7.0
6
XenServer Legacy PV Drivers
[1] See https://sourceforge.net/projects/nsis
8. ● Most drivers completely re-written
○ No assumptions or custom hacks
8
New XenServer PV Drivers
9. ● Most drivers completely re-written
○ No assumptions or custom hacks
● Interdependencies removed or controlled
○ No direct function calls
○ Use interfaces
9
New XenServer PV Drivers
10. ● Most drivers completely re-written
○ No assumptions or custom hacks
● Interdependencies removed or controlled
○ No direct function calls
○ Use interfaces
● Can be separately installed
○ Available on Windows Update
10
New XenServer PV Drivers
11. ● Most drivers completely re-written
○ No assumptions or custom hacks
● Interdependencies removed or controlled
○ No direct function calls
○ Use interfaces
● Can be separately installed
○ Available on Windows Update
● Open source
○ Adopted by Xen Project
11
New XenServer PV Drivers
20. Background: Device Driver Hierarchy
BAR
FOO
DRV.SYS
DRV.INF
[Inst.NT$ARCH$]
Name = Tag, FOOBAR
[Tag]
; Installation details
Function driver binds
to PDO by name
Binding is controlled
by driver INF file
40. ● XENBUS
○ DEBUG
○ SUSPEND
○ EVTCHN
○ GNTTAB
○ STORE
○ RANGE_SET
○ CACHE
40
Driver Interface Examples
Drivers can register a function to be called
when Xen debug-key ‘q’ is pressed
● XENVIF
○ VIF
41. ● XENBUS
○ DEBUG
○ SUSPEND
○ EVTCHN
○ GNTTAB
○ STORE
○ RANGE_SET
○ CACHE
41
Driver Interface Examples
Drivers can register a function to be called
when Xen debug-key ‘q’ is pressed
Drivers can register functions to be
called on resume from suspend
● XENVIF
○ VIF
42. ● XENBUS
○ DEBUG
○ SUSPEND
○ EVTCHN
○ GNTTAB
○ STORE
○ RANGE_SET
○ CACHE
42
Driver Interface Examples
Drivers can register a function to be called
when Xen debug-key ‘q’ is pressed
Drivers can register functions to be
called on resume from suspend
These are self explanatory
● XENVIF
○ VIF
43. ● XENBUS
○ DEBUG
○ SUSPEND
○ EVTCHN
○ GNTTAB
○ STORE
○ RANGE_SET
○ CACHE
43
Driver Interface Examples
Drivers can register a function to be called
when Xen debug-key ‘q’ is pressed
Drivers can register functions to be
called on resume from suspend
These are self explanatory
● XENVIF
○ VIF
Useful for managing resource allocation
44. ● XENBUS
○ DEBUG
○ SUSPEND
○ EVTCHN
○ GNTTAB
○ STORE
○ RANGE_SET
○ CACHE
44
Driver Interface Examples
Drivers can register a function to be called
when Xen debug-key ‘q’ is pressed
Drivers can register functions to be
called on resume from suspend
These are self explanatory
● XENVIF
○ VIF
Useful for managing resource allocation
Pseudo slab allocator
45. ● XENBUS
○ DEBUG
○ SUSPEND
○ EVTCHN
○ GNTTAB
○ STORE
○ RANGE_SET
○ CACHE
45
Driver Interface Examples
Drivers can register a function to be called
when Xen debug-key ‘q’ is pressed
Drivers can register functions to be
called on resume from suspend
These are self explanatory
● XENVIF
○ VIF
Useful for managing resource allocation
Pseudo slab allocator
Implementation of Xen netif
protocol
51. Interface Compatibility
BAR
● Provider implementations
should be compatible with
older versions of interfaces
● For each new version,
modify the PDO binding
name
FOO
Version X FOOBAR_1
Version Y FOOBAR_2
52. Interface Compatibility
BAR
● Provider implementations
should be compatible with
older versions of interfaces
● For each new version,
modify the PDO binding
name
FOO
Version X FOOBAR_1
Version Y FOOBAR_2
[Inst.NT$ARCH$]
Name = Tag, FOOBAR_1
● Subscriber chooses the
corresponding binding
name
Hi. My name is Paul Durrant. I’m a Senior Principal Software Engineer in the XenServer group at Citrix Systems R&D, based in Cambridge UK.
I’ve been a contributor to the Xen Project for many years now. I’m community lead for the Windows PV Drivers but I also contribute to Linux, QEMU and the hypervisor itself.
Today I’m going to talk about the PV drivers, their history, their architecture and the current status of the project.
So, first some history…
The Xen Project PV drivers ancestry lies in the PV drivers that were written to support the Citrix XenServer product (lately rebranded Citrix Hypervisor)
These drivers were closed source Citrix proprietary drivers to support only XenServer.
They contained assumptions about their environment that were only true for VMs running on XenServer, and they also relied on custom hacks in the hypervisor and QEMU.
There were lots of non-obvious interdependencies between drivers. Some drivers event made direct function calls to code supplied by other drivers, which was the cause of many blue screens during driver updates (where it was easy for binary incompatibilities to creep in).
So, to mitigate against incompatibilities all the drivers were remove or installed together as a single unit via an NSIS installer.
So this meant, for instance, that a relatively trivial fix to a nework driver would require re-installation of the storage driver…
And because the storage driver is responsible for the system disk then a reboot would be needed…
This was not popular.
These drivers were used for all versons of XenServer prior to 7.0, at which point...
We switched over to a new set of drivers…
We got rid of all the assumptions and dependencies on custom hacks, which improved compatibility across different versions of XenServer and also meant that drivers worked on upstream Xen installations…
Which helped development a lot, since we could easily develop and test against e.g. new PV backends in upstream versions of Linux, or new hypervisor features (such as per-vcpu event channel interrupts).
All the direct inter-module function calls were removed and, where necessary, replaced with something we called interfaces which I’ll talk about later
And because the direct function calls are gone, the drivers no longer need to be removed or installed as a unit...
They can be installed independently, in any order, using standard mechanisms (via device manager if you like) and that means…
We could post them on Windows Update, so no need to manually install if you don’t want to.
And they are all open source.
So, because they are no longer tied to XenServer by custom hacks or assumptions, they have now been adopted by the Xen Project as the official Windows PV drivers.
These are the relevant URLs where you can get information about the project.
You can download the code and build it yourself (using VS2015 or VS2017 for the master branches)...
Or you can get the binaries that are built by our public build infrastructure (which are currently built with VS2015)...
You can also find Linux Foundation signed releases built from the stable branch on the project front page too.
Now I’ll go on to describe the architecture of the drivers…
But before I can do that I need to give those of you who are not experienced Windows driver developers a quick tutorial...
Windows drivers deal with device objects, but there are several types of these...
The first is the Physical Device Object (or PDO) and this essentially represents a piece of hardware i.e. a node in the machine’s bus topology…
I’ll colour these pink like so.
The next type is the Function Device Object (or FDO)…
I’ll colour these blue...
...And the last type is the Filter Device Object, which are not called FDOs…
They are generally shortened to FiltDO and I’ll colour these green.
Now let’s look are how FDOs and FiltDOs relate to PDOs...
Windows objects form a hierarchy and the crucial entity in that hierarchy is a Bus Driver…
This is a driver that creates FDOs and PDOs. Let’s ignore the FDO for the moment and consider just the PDOs...
As I said, PDOs generally relate to nodes and machines bus topology so a Bus Driver is typically enumerating some layer in that topology and creating a PDO for everything it finds.
Now there are some PDOs we can look at what an FDO is…
FDOs are created by Function Drivers...
And a function driver creates an FDO in response to being told about a PDO by the Windows PnP subsystem…
This is called binding
But how does Windows know which function driver to tell about which PDO?
Well PDOs have names which are determined by the bus driver that created them…
And function drivers have a companion file as part of their package, called an INF file…
And that INF file contains information about the names of the PDOs to which the function driver can bind…
So when the function driver is installed into Windows, the PnP subsystem uses the information in the INF file to figure out which PDOs to tell it about.
But what about FiltDOs?
Well, FiltDOs are created by Filter Drivers and they logically sit between FDOs and PDOs...
And they get to interpose on the communications between and FDO and the PDO to which it is bound…
This communication is in the form of messages, called I/O Request Packets or IRPs and a FiltDO can create new IRPs to send to the PDO, completely block IRPs from the FDO, or make modifications to them as they pass.
But how does Windows decide which filter drivers to put into the hierarchy?
Well, insertion of filters is managed by certain registry keys and they can be specified to interpose on PDOs with certain names, or a certain class..,
For example, you can set up registry keys to load a filter on top of every PDO created the main PCI bus driver…
and indeed, we’ll see in a bit, this is exactly what one of the PV driver packages does.
Now, the last thing to note is that the reason that top level bus driver had an FDO is that bus drivers are also function drivers…
So the driver hierarchy in Windows grows tree-fashion…
The top level bus driver (which doesn’t actually bind to a real PDO itself) creates its own PDOs, then a bus driver is loaded (because of its INF file) and binds an FDO…
The it creates its own PDOs, and then another bus driver may loaded… or maybe just a plain function driver this time…
And so it goes on.
Now let’s look at a concrete exmaple…
the core PV drivers…
By core, I mean the drivers involved in providing the PV network and storage data paths...
This is their hierarchy…
We have the main bus infrastructure here, which enumerates its PDOs from the various PV device classes it finds in xenstore...
Here we have the PV network drivers…
XENVIF creates a PDO for every vif node it finds in xenstore…
And then XENNET is an NDIS (network) miniport driver that binds to those PDOs.
And over here we have the PV storage driver…
XENVBD creates a PDO for every vbd node it finds in xenstore…
There’s no function driver in this case, because Windows supplies its own generic function driver called DISK.SYS. All XENVBD has to do is create PDOs with the right names for that driver to bind.
The hierarchy is all rooted on a PCI device that is synthesized by QEMU.
The XENBUS driver there in the middle can bind to a couple of different PCI PDOs....
They both have a Vendor ID registered to the Xen Project, but one has device id 0x0001 (or 0x0002 for XenServer… for historical reasons) and the other has device id 0xC000…
The 0xC000 device is the magic one you need if you want to get drivers from Windows Update…
You’ll also notice that between XENBUS’s FDO and the PCI PDO there is a FiltDO created by XENFILT.
XENFILT is actually installed as a class filter, and so it actually creates a FiltDO for Core Xen interface every PCI PDO in the system…
And one of the reasons this we do this is so that we can find out about what emulated network and storage devices are present in the system
Actually there’s one more driver… and it has no objects at all!
Windows also has a special type of driver that is neither a bus driver, nor a function driver, and it’s called an export driver. It’s basically just a DLL for the kernel, and indeed it’s init hook is called DllInitialize() rather than DriverEntry().
And the purpose of this driver, as you might guess from the name, is to be the interface to Xen…
It owns the hypercall page and contains all the hypercall stubs.
It’s also the only driver into which other drivers make direct function calls, XENBUS and XENFILT in this case… but that is ok because...
As we can see from this diagram, the XEN driver is controlled by the same INF file as XENBUS and XENFILT, and so all three are always installed together as a unit...
What would not be ok, as I mentioned in the history section, is a direct call like this… Because it’s to easy for binary compatibility issues to creep when doing driver updates…
In this example, any change in the XEN driver’s implementation could cause XENVIF to call the wrong thing, or worse, pass the wrong number of arguments and mess up the stack.
But we want XENVIF to be able to interact with XEN, for things like event channels and grant tables, so how are we going to allow this?
Well that’s where interfaces come in…
I mentioned them before but now I’ll go into some detail...
Happily Windows specifies a type of IRP to use in this kind of thing, so we use that…
When a subscriber wants to access an interface then it sends the QUERY_INTERFACE IRP to the provider specifying the ID of the interface (Windows uses GUIDs for this kind of thing) and the version of the interface it knows about.
The provider then hands back a table to the subscriber with a set of methods it can call, and a private context pointer to pass to each of the methods (which it may need to disambiguate between multiple subscribers).
All of the PV driver interfaces implement these two methods… Acquire() and Release()
These are to track actual use of interfaces by subscribers and in most cases the first call to Acquire() will cause the interface implementation’s internal state to be initialized…
And similarly the last call to Release() will tear down that state.
Note that the jump table is valid regardless of calls Acquire() or Release()...
The implementation can’t be unloaded because of the parent/child relationship of the drivers in Windows’ device object hierarchy.
The reason for the methods is that the internal state of all interfaces must be torn down before the system state can transition out of S0, so all the drivers have power management code that makes sure they clean up during a system sleep or hibernate....
And the reason for that is that the OS instance may resume in a new domain (certainly this is true of hibernate) and so all the interfaces that talk to the hypervisor must start from scratch.
So here’s a list of some of the interfaces that the PV drivers provide…
This list is not exhaustive but let’s go through it...
The XENBUS DEBUG interface at the top is pretty simple. It just allows other drivers to register a callback that will be invoked (at interrupt level) when the Xen debug key ‘q’ is pressed… either on the serial console or by issuing an xl debug-keys command.
Next, there’s the SUSPEND interface. Drivers use this to register callbacks the are invoked early or late in a resume from suspend (which may be a restore or a migrate-in).
Early callbacks are invoked with interrupts disabled.
Late callbacks are invoked with interrupts (i.e. events) enabled.
All callbacks are invoked whilst the system has all CPUs, other than the one handling the resume, spinning in a tight loop to make sure everything is set up before arbitrary system code can run.
Then there are EVTCHN, GNTTAB and STORE… and you can probably guess what they do.
Then there’s RANGE_SET which is a set of methods for allocating and freeing ranges of numbers. This can be useful in resource management and indeed the GNTTAB code uses this interface internally for managing grant references.
Then there’s the CACHE interface which provides a pseudo slab allocator. I say pseudo because it doesn’t actually allocate slabs, it just uses non-paged pool, but it implements the object constructor/destructor primitives and these are heavily used by XENVIF.
And then lastly we have the one interface that XENVIF provides…
The VIF interface is basically a complete implementation of the Xen netif protocol and this underpins the operation of XENNET…
That means XENNET is actually a pretty small driver. All it has to do is marshal network packets between the VIF interface and the NDIS stack. The majority of the code in the PV network subsystem is actually in XENVIF.
Now, the main reason we want to use interfaces is to avoid those direct function calls which make driver updates unsafe…
But how do we make driver updates safe when interface versions might need to change… say when we add a feature...
Well let’s look at what might go wrong…
Say we update the provider, but the subscriber is still an older version…
It now looks for DEBUG interface version X
But we’ve updated the implementation of the DEBUG interface to version Y...
So, now the subscriber can’t access the functionality it needs...
We really want to avoid this happening…
In certain circumstances, say where the subscriber is XENVBD and it’s providing the OS system disk, an interface negotiation failure like this might lead to a blue screen and a non-bootable VM.
So there are some rules that providers and subscribers need to follow…
The first for providers is that interface implementations should be compatible with older versions… Just because we add a feature to an implementation doesn’t mean we can’t support older subscribers that don’t know about that feature...
The next is a bit more subtle…
Remember we talked about PDO names… Well PDOs can actually have more than one name…
So for each combination of interface versions that a provider supports, it should define a new name, and all of these names should be applied to the PDOs it creates…
So in this case we have version X of an interface referencing a PDO name of BAR_1 and version Y of the interface referencing a PDO name of BAR_2. Remember that the PDO simultaneously has both of those names…
Those are the main provider rules…
Now the subscriber needs to follow a rule too, which is that it must bind to the PDO name that corresponds to the versions of the interfaces it’s going to use.
So, in this example, because the subscriber wants to use DEBUG version X, it needs to bind to PDO name BAR_1.
So bearing those rules in mind let’s think about the safety of upgrading providers and subscribers…
Can we safely upgrade a provider?
Well, yes, because we maintain backwards compatibility and…
Because we maintain backwards compatibility the old PDO name is still valid, so the old subscribers can still bind to it.
Now, can we upgrade a subscriber?
Yes, because we will try to bind to the provider’s new PDO name so…
If the old provider is still in place, Windows will not load the new version of the subscriber (because it sees it as a driver with nothing to bind to)...
But as soon as the new version of the provider is installed then Windows will favour the new version of the subscriber because it will have a newer build date and a more recent version number.
Remember than driver removal is not something that Windows really supports… old versions are not removed, they are just displaced from use. They remain in driverstore forever.
So, that completes my explanation of the driver architecture....
Now a quick summary of the project status...
Well firstly… We graduated…
That means we are out of incubation and we are a fully fledged sub-project of the Xen Project.
Next, a few weeks ago I did a new tag of all the driver stable branches and built and signed version 8.2.1 of the drivers.
You can get the binaries from this link on the project front page. These drivers have various bug fixes in and I would recommend you upgrade if you’re still on the 8.2.0 release.
Also, we have some new drivers!
There are a couple of drivers now that use the PV vkbd protocol for paravirtual keyboard and tablet device. XENVKBD is the class bus driver (analogous to XENVIF or XENVBD) and XENHID is the function driver that handles both keyboard and tablet HID protocols.
Let’s have a look at why these are a nice addition to the PV driver set...
Well, before they existed, and you commented these lines out of your xl.cfg to turn off USB emulation (which is actually quite a dom0 cpu hog)...
This happened…
As you can see, the mouse pointer in the VM’s console is not in-sync with the VNC client’s mouse pointer… and that’s because Windows has fallen back to using QEMU’s implementation of a PS/2 mouse… which is, of course, a relative (rather than absolute) pointing device.
Well, install XENVKBD and XENHID and that problem goes away…
So no need for emulated USB any more.
But that’s not all…
There’s also a new console driver called XENCONS…
Let’s have a look what that lets us do...
You can see that, from a dom0 shell we can use xl console to get access to a command shell in the VM…
And then we can use a sysinternals tool called psexec to actually kick off a process in the interactive console.
And this is not a security hole… I logged in as the same used in both places!
I’ll end there. Thanks for listening. If anyone has any questions then please fire away...