Plan 9 was an operating system designed in the 1980s by Bell Labs as a distributed successor to Unix. It treated all system resources, including files, devices, processes and network connections, as files that could be accessed through a single universal file system interface. Plan 9 assumed a network of reliable file servers and CPU servers with personal workstations accessing aggregated remote resources through a high-speed network. It aimed to "build a UNIX out of little systems" rather than integrating separate systems.
Faults inside system software were analyzed, with a focus on diagnosing faults in device drivers. Approaches to deal with faulty drivers included runtime isolation and static analysis. Runtime isolation involves running each driver in a separate process or virtual machine to isolate failures. Static analysis techniques inspect source code for issues like concurrency errors, protocol violations, and invalid register values without needing to execute the code. The talk provided statistics on driver faults, discussed the Linux driver model and common bug causes, and outlined techniques like instrumentation and specification-based development to improve driver correctness and security.
This document discusses making Linux capable of hard real-time performance. It begins by defining hard and soft real-time systems and explaining that real-time does not necessarily mean fast but rather determinism. It then covers general concepts around real-time performance in Linux like preemption, interrupts, context switching, and scheduling. Specific features in Linux like RT-Preempt, priority inheritance, and threaded interrupts that improve real-time capabilities are also summarized.
The key problematic instructions for virtualization on ARM are those that change processor state or mode, access privileged resources, or cause unpredictable behavior when executed in user mode. These must be trapped and emulated by the virtual machine monitor.
Mach was an early microkernel-based operating system from the 1980s that served as the basis for several later systems. It employed asynchronous inter-process communication (IPC) which led to significant performance penalties compared to monolithic kernels. The L3 and L4 microkernels from the 1990s improved IPC performance by an order of magnitude through techniques like synchronous IPC and architecture-specific optimizations. This helped validate that microkernels could achieve adequate performance. L4Linux brought the Linux kernel to run as a user process on top of L4 microkernels like Fiasco.OC. It required paravirtualizing portions of Linux to interface with the microkernel but typically incurred only 5-10% performance penalties compared to native
* Know the reasons why various operating systems exist and how they are functioned for dedicated purposes
* Understand the basic concepts while building system software from scratch
• How can we benefit from cheap ARM boards and the related open source tools?
- Raspberry Pi & STM32F4-Discovery
Give you an overview about
– device virtualization on ARM
– Benefit and real products
– Android specific virtualization consideration
– doing virtualization in several approaches
F9 is a new open source microkernel designed for deeply embedded systems like IoT devices. It aims to provide efficiency, security, and a flexible development environment. F9 follows microkernel principles with minimal kernel functionality and isolates components as user-level processes. It uses capabilities for access control and focuses on performance through techniques like tickless scheduling and adaptive power management.
The promise of the IoT won’t be fulfilled until integrated
software platforms are available that allow software
developers to develop these devices efficiently and in
the most cost-effective manner possible.
This presentation introduces F9 microkernel, new open source
implementation built from scratch, which deploys
modern kernel techniques dedicated to deeply
embedded devices.
Microkernel-based operating system developmentSenko Rašić
The document discusses microkernel-based operating system development. It describes how a microkernel has minimal functionality and moves drivers and services to user-level processes that communicate through inter-process communication calls. This can impact performance. Mainstream systems now take a hybrid approach. The document then describes the L4 microkernel and its implementation, Hasenpfeffer, which maximizes reuse of open source components. It lists components and features of the Hasenpfeffer system, including programming languages, drivers, and tools for development.
This document provides an introduction to microkernel-based operating systems using the Fiasco.OC microkernel as an example. It outlines the key concepts of microkernels, including using a minimal kernel to provide mechanisms like threads and address spaces while implementing operating system services like filesystems and networking in user-level servers. It describes the objects and capabilities model of the Fiasco.OC microkernel and how it implements threads and inter-process communication. It also discusses how the L4 runtime environment builds further services on top of the microkernel to provide a full operating system environment.
Update as of March 2016: This is an article from ACM Computer, May 1996. It is old and facts, links, contact information and the world itself has changed significantly. Read this out of historical interest – look elsewhere for current information on Plan 9. Reformatted, citations updated and some graphics tweaked for readability.
Linux uses /proc/iomem as a "Rosetta Stone" to establish relationships between software and hardware. /proc/iomem maps physical memory addresses to devices, similar to how the Rosetta Stone helped map Egyptian hieroglyphs to Greek and decode ancient Egyptian texts. This virtual file allows the kernel to interface with devices by providing address translations between physical and virtual memory spaces.
Xvisor is an open source lightweight hypervisor for ARM architectures. It uses a technique called cpatch to modify guest operating system binaries, replacing privileged instructions with hypercalls. This allows the guest OS to run without privileges in user mode under the hypervisor. Xvisor also implements virtual CPU and memory management to isolate guest instances and virtualize physical resources for multiple operating systems.
The Mars Pathfinder mission successfully demonstrated new landing techniques and returned valuable data from the Martian surface. However, it experienced issues with priority inversion in its VxWorks real-time operating system. The lower priority weather data collection task would occasionally prevent the higher priority communication task from completing before the next cycle began, resetting the system. Engineers traced the problem to the use of VxWorks' select() call to wait for I/O from multiple devices, allowing long-running lower priority tasks to block critical higher priority tasks.
A tour of F9 microkernel and BitSec hypervisorLouie Lu
A brief tour about F9 microkernel and BitSec hypervisor
This slide won't covering all aspect about them, but to focus on some point in these two kernel.
F9 microkernel repo: https://github.com/f9micro/f9-kernel
Impress template from: http://technology.chtsai.org/impress/
This document summarizes a lecture on microkernel design. It discusses the principles of minimality in microkernel design and how this leads to user-level services rather than services inside the kernel. It also discusses the mechanisms provided by microkernels, including abstracting memory as address spaces, execution as threads/activations, and interrupts/exceptions. A key mechanism is inter-process communication (IPC) which it discusses designs for, including synchronous IPC, asynchronous notifications, and IPC addressing schemes.
"DTracing the Cloud", Brendan Gregg, illumosday 2012
Cloud computing facilitates rapid deployment and scaling, often pushing high load at applications under continual development. DTrace allows immediate analysis of issues on live production systems even in these demanding environments – no need to restart or run a special debug kernel.
For the illumos kernel, DTrace has been enhanced to support cloud computing, providing more observation capabilities to zones as used by Joyent SmartMachine customers. DTrace is also frequently used by the cloud operators to analyze systems and verify performance isolation of tenants.
This talk covers DTrace in the illumos-based cloud, showing examples of real-world performance wins.
My presentation at the BayLISA SmartOS meetup on August 16th, 2012. More details at http://dtrace.org/blogs/bmc/2012/06/07/dtrace-in-the-zone/.
The document summarizes the use of LLVM for code generation when recompiling Nintendo games as native games. LLVM provides a full compiler infrastructure that can be used to generate code for various platforms from a common intermediate representation (LLVM bitcode). The document discusses using LLVM for code generation from 6502 assembly to generate native code for emulation. Optimizations available through LLVM are also discussed.
The key problematic instructions for virtualization on ARM are those that change processor state or mode, access privileged resources, or cause unpredictable behavior when executed in user mode. These must be trapped and emulated by the virtual machine monitor.
Mach was an early microkernel-based operating system from the 1980s that served as the basis for several later systems. It employed asynchronous inter-process communication (IPC) which led to significant performance penalties compared to monolithic kernels. The L3 and L4 microkernels from the 1990s improved IPC performance by an order of magnitude through techniques like synchronous IPC and architecture-specific optimizations. This helped validate that microkernels could achieve adequate performance. L4Linux brought the Linux kernel to run as a user process on top of L4 microkernels like Fiasco.OC. It required paravirtualizing portions of Linux to interface with the microkernel but typically incurred only 5-10% performance penalties compared to native
* Know the reasons why various operating systems exist and how they are functioned for dedicated purposes
* Understand the basic concepts while building system software from scratch
• How can we benefit from cheap ARM boards and the related open source tools?
- Raspberry Pi & STM32F4-Discovery
Give you an overview about
– device virtualization on ARM
– Benefit and real products
– Android specific virtualization consideration
– doing virtualization in several approaches
F9 is a new open source microkernel designed for deeply embedded systems like IoT devices. It aims to provide efficiency, security, and a flexible development environment. F9 follows microkernel principles with minimal kernel functionality and isolates components as user-level processes. It uses capabilities for access control and focuses on performance through techniques like tickless scheduling and adaptive power management.
The promise of the IoT won’t be fulfilled until integrated
software platforms are available that allow software
developers to develop these devices efficiently and in
the most cost-effective manner possible.
This presentation introduces F9 microkernel, new open source
implementation built from scratch, which deploys
modern kernel techniques dedicated to deeply
embedded devices.
Microkernel-based operating system developmentSenko Rašić
The document discusses microkernel-based operating system development. It describes how a microkernel has minimal functionality and moves drivers and services to user-level processes that communicate through inter-process communication calls. This can impact performance. Mainstream systems now take a hybrid approach. The document then describes the L4 microkernel and its implementation, Hasenpfeffer, which maximizes reuse of open source components. It lists components and features of the Hasenpfeffer system, including programming languages, drivers, and tools for development.
This document provides an introduction to microkernel-based operating systems using the Fiasco.OC microkernel as an example. It outlines the key concepts of microkernels, including using a minimal kernel to provide mechanisms like threads and address spaces while implementing operating system services like filesystems and networking in user-level servers. It describes the objects and capabilities model of the Fiasco.OC microkernel and how it implements threads and inter-process communication. It also discusses how the L4 runtime environment builds further services on top of the microkernel to provide a full operating system environment.
Update as of March 2016: This is an article from ACM Computer, May 1996. It is old and facts, links, contact information and the world itself has changed significantly. Read this out of historical interest – look elsewhere for current information on Plan 9. Reformatted, citations updated and some graphics tweaked for readability.
Linux uses /proc/iomem as a "Rosetta Stone" to establish relationships between software and hardware. /proc/iomem maps physical memory addresses to devices, similar to how the Rosetta Stone helped map Egyptian hieroglyphs to Greek and decode ancient Egyptian texts. This virtual file allows the kernel to interface with devices by providing address translations between physical and virtual memory spaces.
Xvisor is an open source lightweight hypervisor for ARM architectures. It uses a technique called cpatch to modify guest operating system binaries, replacing privileged instructions with hypercalls. This allows the guest OS to run without privileges in user mode under the hypervisor. Xvisor also implements virtual CPU and memory management to isolate guest instances and virtualize physical resources for multiple operating systems.
The Mars Pathfinder mission successfully demonstrated new landing techniques and returned valuable data from the Martian surface. However, it experienced issues with priority inversion in its VxWorks real-time operating system. The lower priority weather data collection task would occasionally prevent the higher priority communication task from completing before the next cycle began, resetting the system. Engineers traced the problem to the use of VxWorks' select() call to wait for I/O from multiple devices, allowing long-running lower priority tasks to block critical higher priority tasks.
A tour of F9 microkernel and BitSec hypervisorLouie Lu
A brief tour about F9 microkernel and BitSec hypervisor
This slide won't covering all aspect about them, but to focus on some point in these two kernel.
F9 microkernel repo: https://github.com/f9micro/f9-kernel
Impress template from: http://technology.chtsai.org/impress/
This document summarizes a lecture on microkernel design. It discusses the principles of minimality in microkernel design and how this leads to user-level services rather than services inside the kernel. It also discusses the mechanisms provided by microkernels, including abstracting memory as address spaces, execution as threads/activations, and interrupts/exceptions. A key mechanism is inter-process communication (IPC) which it discusses designs for, including synchronous IPC, asynchronous notifications, and IPC addressing schemes.
"DTracing the Cloud", Brendan Gregg, illumosday 2012
Cloud computing facilitates rapid deployment and scaling, often pushing high load at applications under continual development. DTrace allows immediate analysis of issues on live production systems even in these demanding environments – no need to restart or run a special debug kernel.
For the illumos kernel, DTrace has been enhanced to support cloud computing, providing more observation capabilities to zones as used by Joyent SmartMachine customers. DTrace is also frequently used by the cloud operators to analyze systems and verify performance isolation of tenants.
This talk covers DTrace in the illumos-based cloud, showing examples of real-world performance wins.
My presentation at the BayLISA SmartOS meetup on August 16th, 2012. More details at http://dtrace.org/blogs/bmc/2012/06/07/dtrace-in-the-zone/.
The document summarizes the use of LLVM for code generation when recompiling Nintendo games as native games. LLVM provides a full compiler infrastructure that can be used to generate code for various platforms from a common intermediate representation (LLVM bitcode). The document discusses using LLVM for code generation from 6502 assembly to generate native code for emulation. Optimizations available through LLVM are also discussed.
The document discusses how a "Hello World" program works behind the scenes. It covers topics like compilation, linking, executable file formats, loading programs into memory, and process creation. The key points are:
1) A C program is compiled into an object file, then linked with library files to create an executable. The linker resolves symbols and relocates addresses.
2) Executable files use formats like ELF that contain machine code, data, symbol tables, and sections. Object files have a similar format.
3) When a program runs, the OS loads pages of the executable into memory as needed and sets up the process with its own virtual address space.
4) System calls
Build a full-functioned virtual machine from scratch, when Brainfuck is used. Basic concepts about interpreter, optimizations techniques, language specialization, and platform specific tweaks.
(Presentation at COSCUP 2012) Discuss why you should try to develop your own operating system and how you can speed up by taking the microkernel approach.
Introduce Brainf*ck, another Turing complete programming language. Then, try to implement the following from scratch: Interpreter, Compiler [x86_64 and ARM], and JIT Compiler.
This presentation covers the general concepts about real-time systems, how Linux kernel works for preemption, the latency in Linux, rt-preempt, and Xenomai, the real-time extension as the dual kernel approach.
The document discusses cross-compiling native packages for Android using autotools or cmake. It describes downloading and configuring the Android NDK, which provides cross-compilation tools for ARM, x86, and MIPS architectures. It then gives steps to cross-compile the expat library as an example, including downloading the sources, extracting them, and configuring/building using the autotools system. Key points covered include limitations of the Bionic C library used on Android and associations between Android API levels and supported architectures.
Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications. It was originally developed by Google based on years of experience running production workloads at scale. Kubernetes groups containers into logical units called pods and handles tasks like scheduling, health checking, scaling and rollbacks. The main components include a master node that manages the cluster and worker nodes that run application containers scheduled by the master.
This document discusses Docker, including what it is, why it is used, and how it works. Docker provides lightweight software containers that package code and its dependencies so the application runs quickly and consistently on any computing infrastructure. It allows applications to be easily deployed and migrated across computing environments. The document outlines how Docker addresses issues like managing multiple software stacks and hardware environments by creating portable containers that can be run anywhere without reconfiguration. Examples of using Docker for microservices, DevOps, and data centers are also provided.
This document introduces software containers and Docker. It defines containers as portable and isolated runtime environments for applications, sharing the same kernel as other containers. Docker is a toolset for creating and managing containers, with key components including the Docker Engine, images, and Hub registry. The document explains how Docker uses read-only layers and writable container layers to build images and run containers.
This document provides an overview of embedded Linux. It defines embedded Linux as porting the Linux kernel to run on a specific CPU and board that will be placed in an embedded device. It discusses common embedded Linux distributions and components like bootloaders, kernels, and file systems. It also outlines the process for building an embedded Linux system, developing applications for it using common free tools, and emulating or testing on real hardware.
A talk listing few main shortcomings of Docker, showing potential however questionable remedies, to finally introduce Alpine Linux - biggest revolution in Docker of recent.
Following on that rabbit a bit deeper down its hole, we introduce Unikernels - the next big thing in cloud, embedded, big data and scientific computing... well at least Docker is betting on it too.
Presented by: Elizabeth Joseph, IBM
Presented at All Things Open 2020
Abstract: Many enterprises and, as many of us learned during the COVID-19 outbreak, governments, rely on mainframes to do the bulk of their data-driven work and the modern mainframe is very good at what it does. But what if you’re looking to modernize your platform and bring in the DevOps methodologies, tooling, and practice into your organization?
Today, there is an entire product line of mainframes that exclusively run Linux (RHEL, SLES, or Ubuntu). With Linux, you get access to the vast ecosystem of open source software that’s already been ported to the mainframe architecture (s390x), with more being ported every month.
If your organization is using z/OS, the Open Mainframe Project has a series of open source projects targeted specifically at the mainframe and improving usability. Zowe, for instance, helps create a consolidated API for accessing resources and workload on your system and Feilong is a z/VM connector that allows you to manage your virtual machines with familiar open source tooling like OpenStack. There are even connectors for Jenkins that allow you to integrate CI/CD pipelines with your workloads.
In this talk I’ll explore all of this in more to show you how an automated, modern environment can thrive on today’s mainframe.
OpenNebulaConf 2013 - Making Clouds: Turning OpenNebula into a Product by Car...OpenNebula Project
What does it takes to bring innovations like private clouds to small and medium enterprises? In the course of this talk we will present our experience in creating a self-service toolkit for creating a complete virtualization and cloud platform based on OpenNebula, as well as our experience gathered in tens of installations of all sizes. From scalable storage (with benchmarks!) to autonomic optimization, we will present what in our view is needed to bring private clouds to everyone, what components and additions we created to better solve our customers’ problems (from replacing industrial control systems to medium scale virtual desktop infrastructures), and why OpenNebula has been chosen over other competing cloud toolkits.
Bio:
Carlo Daffara the Technical director of Cloudweavers, and formerly head of research and development at Conecta, a consulting firm specializing in open source systems and distributed computing; Italian member of the European Working Group on Libre Software and co-coordinator of the working group on SMEs of the EU ICT task force on competitiveness. Since 1999, works as evaluator for IST programme submissions in the field of component-based software engineering, GRIDs and international cooperation. Coordinator of the open source platforms technical area of the IEEE technical committee on scalable computing, co-chair of the SIENA EU cloud initiative roadmap editorial board and part of the editorial review board of the International Journal of Open Source Software & Processes (IJOSSP).
Making Clouds: Turning OpenNebula into a ProductNETWAYS
What does it takes to bring innovations like private clouds to small and medium enterprises? In the course of this talk we will present our experience in creating a self-service toolkit for creating a complete virtualization and cloud platform based on OpenNebula, as well as our experience gathered in tens of installations of all sizes. From scalable storage (with benchmarks!) to autonomic optimization, we will present what in our view is needed to bring private clouds to everyone, what components and additions we created to better solve our customers’ problems (from replacing industrial control systems to medium scale virtual desktop infrastructures), and why OpenNebula has been chosen over other competing cloud toolkits.
0xdroid is a community-developed Android distribution created by 0xlab. It aims to build an open software platform on open hardware by leveraging the power of open source. 0xdroid provides not only an Android-based project but also an accumulating innovative community platform. It focuses on quickly consolidating work results, being developer-friendly, and ensuring work can be reused.
Learn about Linux on System z Update: Current & Future Linux on System z Technology, Live Virtual Class, Wednesday, July 28. 2010. For more information, visit http://ibm.co/PNo9Cb.
RubyStack: the easiest way to deploy Ruby on Railselliando dias
RubyStack is a tool that makes it easy to deploy Ruby on Rails applications. It provides a self-contained, relocatable environment with all necessary components like Ruby, Rails, MySQL, and Apache bundled together. The RubyStack installer uses BitRock InstallBuilder to create installers with a graphical user interface that work across operating systems. RubyStack provides unattended installation options and tools like Capistrano for automating deployment. Under the hood, RubyStack bundles optimized versions of all required libraries and components to provide a complete development and deployment solution for Ruby on Rails.
UniK - a unikernel compiler and runtimeLee Calcote
This document contains the slides from a presentation by Lee Calcote on UniK, an open source tool for building and deploying unikernels. UniK allows developers to compile applications written in languages like Java, C++, Python and Go directly into small, secure virtual machines called unikernels. It supports deploying unikernels on various cloud platforms and virtualization technologies. The presentation covers what unikernels are, the UniK tool, its architecture and components, and demonstrates how to use UniK to build and deploy a sample application as a unikernel.
امروزه مجازیسازی یکی از روشهای پرطرفدار برای پیادهسازی کارگزاران وب است. این فناوری موجب کاهش هزینههای تجارتهای کوچک میشود. مجازیسازی یکی از جنبههای مهم ارائه خدمات ابری است که حتی برای تجارتهای بزرگ نیز از جذابیت زیادی برخوردار است.
در این سخنرانی به امکاناتی همچون Control Groups و Containers که در نسخههای جدیدتر هسته سیستم عامل لینوکس پیادهسازی شده است میپردازیم. هرچند این امکانات مجازیسازی کامل را به ارمغان نمیآورند، اما بسیاری از مزایای آن را با سربار بسیار کم در سطح هسته فراهم میکنند. راه حلهایی همچون LXC و Docker بر اساس این امکانات توانستهاند به نتایج خوبی برسند که هم از لحاظ تجاری در خور توجه هستند و هم تبعات و کاربردهای امنیتی دارند.
The Android operating system consists of multiple layers including the Linux kernel, native layer, and Dalvik virtual machine. The Linux kernel provides hardware abstraction, security features, and other functionality. The native layer contains code written in C/C++ like the HAL for device drivers and native libraries for system services. Above this is the Dalvik virtual machine which executes compiled Android applications and uses less memory and battery than standard Java VMs.
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfSoftware Company
Explore the benefits and features of advanced logistics management software for businesses in Riyadh. This guide delves into the latest technologies, from real-time tracking and route optimization to warehouse management and inventory control, helping businesses streamline their logistics operations and reduce costs. Learn how implementing the right software solution can enhance efficiency, improve customer satisfaction, and provide a competitive edge in the growing logistics sector of Riyadh.
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell
With expertise in data architecture, performance tracking, and revenue forecasting, Andrew Marnell plays a vital role in aligning business strategies with data insights. Andrew Marnell’s ability to lead cross-functional teams ensures businesses achieve sustainable growth and operational excellence.
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...Alan Dix
Talk at the final event of Data Fusion Dynamics: A Collaborative UK-Saudi Initiative in Cybersecurity and Artificial Intelligence funded by the British Council UK-Saudi Challenge Fund 2024, Cardiff Metropolitan University, 29th April 2025
https://alandix.com/academic/talks/CMet2025-AI-Changes-Everything/
Is AI just another technology, or does it fundamentally change the way we live and think?
Every technology has a direct impact with micro-ethical consequences, some good, some bad. However more profound are the ways in which some technologies reshape the very fabric of society with macro-ethical impacts. The invention of the stirrup revolutionised mounted combat, but as a side effect gave rise to the feudal system, which still shapes politics today. The internal combustion engine offers personal freedom and creates pollution, but has also transformed the nature of urban planning and international trade. When we look at AI the micro-ethical issues, such as bias, are most obvious, but the macro-ethical challenges may be greater.
At a micro-ethical level AI has the potential to deepen social, ethnic and gender bias, issues I have warned about since the early 1990s! It is also being used increasingly on the battlefield. However, it also offers amazing opportunities in health and educations, as the recent Nobel prizes for the developers of AlphaFold illustrate. More radically, the need to encode ethics acts as a mirror to surface essential ethical problems and conflicts.
At the macro-ethical level, by the early 2000s digital technology had already begun to undermine sovereignty (e.g. gambling), market economics (through network effects and emergent monopolies), and the very meaning of money. Modern AI is the child of big data, big computation and ultimately big business, intensifying the inherent tendency of digital technology to concentrate power. AI is already unravelling the fundamentals of the social, political and economic world around us, but this is a world that needs radical reimagining to overcome the global environmental and human challenges that confront us. Our challenge is whether to let the threads fall as they may, or to use them to weave a better future.
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Aqusag Technologies
In late April 2025, a significant portion of Europe, particularly Spain, Portugal, and parts of southern France, experienced widespread, rolling power outages that continue to affect millions of residents, businesses, and infrastructure systems.
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
Procurement Insights Cost To Value Guide.pptxJon Hansen
Procurement Insights integrated Historic Procurement Industry Archives, serves as a powerful complement — not a competitor — to other procurement industry firms. It fills critical gaps in depth, agility, and contextual insight that most traditional analyst and association models overlook.
Learn more about this value- driven proprietary service offering here.
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersToradex
Toradex brings robust Linux support to SMARC (Smart Mobility Architecture), ensuring high performance and long-term reliability for embedded applications. Here’s how:
• Optimized Torizon OS & Yocto Support – Toradex provides Torizon OS, a Debian-based easy-to-use platform, and Yocto BSPs for customized Linux images on SMARC modules.
• Seamless Integration with i.MX 8M Plus and i.MX 95 – Toradex SMARC solutions leverage NXP’s i.MX 8 M Plus and i.MX 95 SoCs, delivering power efficiency and AI-ready performance.
• Secure and Reliable – With Secure Boot, over-the-air (OTA) updates, and LTS kernel support, Toradex ensures industrial-grade security and longevity.
• Containerized Workflows for AI & IoT – Support for Docker, ROS, and real-time Linux enables scalable AI, ML, and IoT applications.
• Strong Ecosystem & Developer Support – Toradex offers comprehensive documentation, developer tools, and dedicated support, accelerating time-to-market.
With Toradex’s Linux support for SMARC, developers get a scalable, secure, and high-performance solution for industrial, medical, and AI-driven applications.
Do you have a specific project or application in mind where you're considering SMARC? We can help with Free Compatibility Check and help you with quick time-to-market
For more information: https://www.toradex.com/computer-on-modules/smarc-arm-family
TrsLabs - Fintech Product & Business ConsultingTrs Labs
Hybrid Growth Mandate Model with TrsLabs
Strategic Investments, Inorganic Growth, Business Model Pivoting are critical activities that business don't do/change everyday. In cases like this, it may benefit your business to choose a temporary external consultant.
An unbiased plan driven by clearcut deliverables, market dynamics and without the influence of your internal office equations empower business leaders to make right choices.
Getting things done within a budget within a timeframe is key to Growing Business - No matter whether you are a start-up or a big company
Talk to us & Unlock the competitive advantage
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxJustin Reock
Building 10x Organizations with Modern Productivity Metrics
10x developers may be a myth, but 10x organizations are very real, as proven by the influential study performed in the 1980s, ‘The Coding War Games.’
Right now, here in early 2025, we seem to be experiencing YAPP (Yet Another Productivity Philosophy), and that philosophy is converging on developer experience. It seems that with every new method we invent for the delivery of products, whether physical or virtual, we reinvent productivity philosophies to go alongside them.
But which of these approaches actually work? DORA? SPACE? DevEx? What should we invest in and create urgency behind today, so that we don’t find ourselves having the same discussion again in a decade?
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
HCL Nomad Web – Best Practices and Managing Multiuser Environmentspanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-and-managing-multiuser-environments/
HCL Nomad Web is heralded as the next generation of the HCL Notes client, offering numerous advantages such as eliminating the need for packaging, distribution, and installation. Nomad Web client upgrades will be installed “automatically” in the background. This significantly reduces the administrative footprint compared to traditional HCL Notes clients. However, troubleshooting issues in Nomad Web present unique challenges compared to the Notes client.
Join Christoph and Marc as they demonstrate how to simplify the troubleshooting process in HCL Nomad Web, ensuring a smoother and more efficient user experience.
In this webinar, we will explore effective strategies for diagnosing and resolving common problems in HCL Nomad Web, including
- Accessing the console
- Locating and interpreting log files
- Accessing the data folder within the browser’s cache (using OPFS)
- Understand the difference between single- and multi-user scenarios
- Utilizing Client Clocking
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, transcript, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
#StandardsGoals for 2025: Standards & certification roundup - Tech Forum 2025BookNet Canada
olibc: Another C Library optimized for Embedded Linux
1. olibc: Another C Library
optimized for embedded Linux
Jim Huang ( 黃敬群 ) <[email protected]>
Developer, 0xlab
Feb 22, 2013 / Embedded Linux Conference
3. What I will discuss about...
• I learned a bit about the toolchain and system library
optimizations while developing Android based
projects.
• It might be a good idea to “reuse” them in ordinary
embedded Linux projects.
• Therefore, I plan to emphasize on how to leverage
the engineering efforts originally from Android world.
– Review C library characteristics
– Toolchain optimizations
– Build configurable runtime
– Performance evaluation
4. Related talks
• Android Builders Summit 2013
– LLVMLinux: Compiling Android with LLVM - Behan
Webster, Converse in Code - Behan Webster
• Embedded Linux Conference 2013
– Toybox: Writing a new Linux Command Line from
Scratch - Rob Landley
– System-wide Memory Management without Swap -
Howard Cochran
– Bringing kconfig to EGLIBC - Khem Raj
5. Agenda (1) Take from Android
(2) olibc: configurable
(3) Optimizations
(4) Action Items
7. We know, Android is not Linux, but...
≠
We're __taking__ someting useful
back to embedded Linux.
8. from Rob Landley's talk
• “Dalvik is the new ROM basic"
• …
• “why not extend toolbox/bionic instead of replace?
– just enough to run dalvik. (The new ROM BASIC.)"
Our "something useful" is the base to launch Dalvik Virtual Machine
and the above Android Framework
Source: http://www.landley.net/talks/celf-2013.txt
Source: http://www.landley.net/talks/celf-2013.txt
9. Why build bionic-derived libc?
• License
– glibc (LGPL), uClibc (LGPL), dietlibc (GPL), musl (MIT)
• Optimized for major (consumer) targets
– ARMv7 + MIPS + Intel Atom optimizations
– glibc (good arm/mips/atom), uClibc (simpler
arm/mips/x86), dietlbc (N/A), musl (simple x86)
• API coverage is getting more complete by versions.
• Catch up with latest SoC technologies
– Contributors: Google, Intel, Qualcomm, Texas
Instruments, NVIDIA, ST-Ericsson, Linaro, MIPS, etc.
• The problem is, Android is not a community project.
“Copyleft is dying.
GPLv2 was category killer, synonymous with copyleft." – Rob Landley
10. Goals of olibc
• Create small, fast, free, and standard-compliant
implementation for C Library.
• Offer configurable levels of functionality and should
scale from tiny embedded Linux up to general
purpose environments such as Android-powered
smart devices.
• Provide system utilities around C library
– benchmarking, validation, prelinker, ...
• Introduce steady security, performance, and
comformance fixes.
11. Programming Model
loading
SoC
#include <stdio.h> Memory
int main() {
Execute
printf(“Hello Wolrdn”); Write
return 0; back
} “Stack” Section
hello.c Memory
Reg
(Source) “BSS” Section
access
arm-gcc
(Compiler) execute
“Data” Section
decode
“Text” Section PC fetch
hello runtime
(ELF)
Let's review the programming model...
12. Programming Model (multi-threaded)
Bare-metal Multi-Thread
Stack Stack Stack
“Stack” Section
………………………………
………
BSS
“BSS” Section
“Data” Section
“Data” Section
Text Text Text
“Text” Section
scheduler
14. bionic libc
• Small C Library implementation
– mixture of NetBSD (libc) and FreeBSD (libm)
• BSD license
• Partially POSIX compatible; not compatible with glibc
• No SysV IPC support (due to Binder IPC)
• Support for ARM (w/ Thumb), x86, MIPS
• Fast pthread implementation (based on futexes)
• Small footprint
glibc 2.11 : /lib/libc.so → 1,208,224 bytes
uClibc 0.9.30 : /lib/libuClibc.so → 424,235 bytes
bionic 2.1 : /system/lib/libc.so → 243,948 bytes
15. Not in bionic libc
• Complete wide chars
• C++ exceptions (limited since NDKr5)
• Full C++ STL
• Full POSIX Thread
16. Memory Map [Android pre-4.x]
0x00000000
0x00008000
app_process
0x40000000
Java apps and No memory with execution attribute
resource data
File mapping direction
*.apk,*.jar,*.ttf etc.
Some memory are of execution attribute
Shared lib; libc,
libwecore etc. File mapping direction
various .so files
0xB0000000
/system/bin/linker
Stack
0xBEFFFFFF
17. Memory related changes
• ASLR (Address space layout randomization) since
Android 4.0
– help protect system and third party applications from
exploits due to memory-management issues
– PIE (Position Independent Executable) is added since
Android 4.1
– original ELF prelinker was removed
• AddressSanitizer since 4.1
18. AddressSanitizer vs. Valgrind
Valgrin AddressSanitizer
Heap out-of-bounds Yes Yes
Stack out-of-bounds No Yes
Global out-of-bounds No Yes
Use-after-free Yes Yes
Use-after-return No Sometimes/Yes
Uninitialized reads Yes No
Overhead 10x-30x 1.5x-3x
Host platform Linux, Mac OS X where (latest)
GCC/LLVM runs
19. AddressSanitizer
=================================================================
==7161== ERROR: AddressSanitizer global-buffer-overflow on address 0x2a002194 at
pc 0x2a00051b bp 0xbeeafb0c sp 0xbeeafb08
READ of size 4 at 0x2a002194 thread T0
#0 0x40022a4b (/system/lib/libasan_preload.so+0x8a4b)
#1 0x40023e77 (/system/lib/libasan_preload.so+0x9e77)
#2 0x4001c98f (/system/lib/libasan_preload.so+0x298f)
#3 0x2a000519 (/system/bin/global-out-of-bounds+0x519)
#4 0x4114371d (/system/lib/libc.so+0x1271d)
0x2a002194 is located 4 bytes to the right of global variable 'global_array
(external/test/global-out-of-bounds.cpp)' (0x2a002000) of size 400
Shadow byte and word:
0x05400432: f9
0x05400430: 00 00 f9 f9 int global_array[100] = {-1};
More shadow bytes:
0x05400420: 00 00 00 00 int main(int argc, char **argv) {
0x05400424: 00 00 00 00
0x05400428: 00 00 00 00
return global_array[argc + 100]; /* BOOM */
0x0540042c: 00 00 00 00 }
=>0x05400430: 00 00 f9 f9
0x05400434: f9 f9 f9 f9
0x05400438: 00 00 00 00
0x0540043c: 00 00 00 00
0x05400440: 00 00 00 00
Stats: 0M malloced (0M for red zones) by 35 calls
Stats: 0M realloced by 0 calls
20. Shared library issues
• Older Android dynamic linker has an arbitrary low
(for larger applications such as GStreamer,
LibreOffice) limit on number of shared libs: 128
– Until Sep 12, 2012, dynamically allocating soinfo-structs
in linker is implemented.
• Mozilla: Use a hacked-up copy of the bionic linker
in our own code, in addition to the system one.
– two run-time linkers not aware of each others ended up a
failure
21. C++ Integrations
C++ Exception C++ RTTI Standard Library
system No No No
gabi++ No Yes No
stlport No Yes Yes
gnustl Yes Yes Yes
• olibc provides stlport, which depends on wchar
support in libc.
22. Debuggerd
• Nice embedded-specific crash handler
– used on all Android devices
• Crash report data placed in log/tombstone
• Debuggerd also facilitates connecting debugger to
dying process
– Can halt and wait for gdb to attach to the process
• Apache license
23. How Debuggerd works
• Debuggerd acts as a crash-handling daemon
• Adds default signal handler to each process, which handles
any signals that generate core
– included in bionic, thus every application gets it
• Signal handler captures deadly signal and contacts
debuggerd
• Debuggerd records information using ptrace (registers,
stack, memory areas), and /proc
• Has builtin ARM stack unwinder for generating a backtrace
• Automatically rotates a fixed number of crash reports
• Reference:
https://wiki.linaro.org/WorkingGroups/ToolChain/Outputs/LibunwindDebuggerd
24. unwinding
• Unwinding = processing stack and memory image
to create a backtrace
• Backtrace is very compact - summarizes stack
information nicely
• Local variables usually not available
• Different methods available, depending on
compilation flags
25. Crash Handler
• New crash handler written by Tim Bird of Sony
– Based on debuggerd from Android
• Implemented as a core file handler
• Writes crash report to a “tombstone_0x” file in
/tmp/tombstones
• Writes information from /proc, ptrace, and kernel
log buffer
• Also writes some information to the kernel log
• Information: http://elinux.org/Crash_handler
26. License Issue
• THE BIONIC LIBRARY: DID GOOGLE WORK AROUND
THE GPL? brownrudnick, Mar 2011
• Bionic Revisited: What the Summary Judgment Ruling in
Oracle v. Google Means for Android and the GPL,
brownrudnick, Nov 2011
– Google tries to “clean” Linux kernel headers to avoid the
GPL
30. External Toolchain Issues
• CodeSourcery Toolchain doesn't use gold linker,
and Android's original build flags are a bit
aggressive.
– e.g. ICF (Identical Code Folding), which is gold only
redundancy elimination
– Option: --icf (known to bring 5% size reduction)
• Default link script doesn't take olibc into
consideration.
• Sometimes, toolchains have optimization bugs
31. Build Android compatible toolchain
• Barebone-style building:
– Inside Android tree
– Specify all system and bionic header file paths, shared
library, paths, libgcc.a, crtbegin_*.o, crtend_*.o, etc.
• Standalone-style building:
– Convenient for native developers:
arm-xxx-eabi-gcc -mandroid --sysroot=<path-to-sysroot > hello.c -o hello
(<path to sysroot> is a pre-compiled copy of Bionic)
32. olibc: Configurable and Optimized
• Configured using the Kconfig language pioneered by
the Linux kernel
– Extensions, Library settings, crash handler, ...
• Encapulate the Android build system to become
simpler and dedicated one.
• Allow full optimization techniques originally applied by
Android including implementation and toolchain
– SoC enhancements
• Use repo to manage source tree
– repo init -u https://github.com/olibc/manifest.git
– repo sync
35. Build Tweaks: Symbol Visibility
1
Linux-arm.mk
-fvisibi-lity=hidden
Android.mk 1. Goal: Visibility of a function should match the
API spec in programmer’s design.
2
2. Solution:
__attribute__((visibility(“public”)))
*.h
function decl
First, systematically applying the 5 steps.
Fundamentally, need to go through the
APIs of each library:
3 Consciously decide what should be
$ make -j5 “public” and what shouldn’t.
3. Result: ~500 KB savings for opencore libs
4
/tmp/GoOgLe.o: In function foo
4. Key: The whole hidden functions can be
src.c: undefined reference to “z”
garbage collected if unused locally:
Until no failure
5 5. Toolchain’s options:
__attribute__((visibility(“public”)))
-ffunction-sections,
Int z;
-Wl,--gcsections,
36. Build Tweaks: code size
(unit: byte)
• Android default inline options: GCC-4.2.1 GCC-4.4.3 GCC-4.4.3
(tuned inline options)
-finline-functions
-fno-inline-functions-called-once Native 22,087,436
system
image
23,839,29 23,027,032
1
Use genetic algorithm to find best-fit:
-finline
-fno-inline-functions
-finline-functions-called-once
--param max-inline-insns-auto=62
--param inline-unit-growth=0
--param large-unit-insns=0
--param inline-call-cost=4
GCC-4.2.1 GCC-4.4.3 GCC-4.4.3(tuned)
Native system image size
Source: Smaller and Faster Android, Shih-wei Liao, Google Inc.
Source: Smaller and Faster Android, Shih-wei Liao, Google Inc.
37. Instrumentation-based FDO (Feedback-Directed
Optimization)
1. Build twice.
2. Find representative input
3. Instrumentation run: 2~3X slower but this perturbation is OK, because
threading in Android is not that time sensitive
4. 1 profile per file, dumped at application exit.
arm-xxx-eabi-gcc 3 Optimized
Optimized
arm-xxx-eabi-gcc
arm-xxx-eabi-gcc 1 arm-xxx-eabi-gcc Binary
Binary
–fprofile-generate=./profile –fprofile-use=./profile.zip
–fprofile-use=./profile.zip
–fprofile-generate=./profile with FDO
with FDO
Instrumented
Instrumented
Binary
Binary
2 Run the instrumented
Run the instrumented
binary
binary Profile.zip
Profile.zip
Representative
Representative
Input Data
Input Data
38. FDO Performance
• Global hotness for ARM (HOT_BB_COUNT_FRACTION, Branch
prediction routine for the GNU compiler, gcc-4.4.x/gcc/predict.c)
– 1% improvement on Android's skia library as belows.
– smaller effects on smaller Android benchmarks.
(unit: bytes)
Content Work default fdo-default fdo-modified
Size of libskia 7,879,646 7,396,032 7,319,668
Size reduction 0.00% 6.14% 7.11%
Stdev (over 100 runs) 0.28 0.63 0.26
Speedup 1 0.98 0.97
Source: Smaller and Faster Android, Shih-wei Liao, Google Inc.
Source: Smaller and Faster Android, Shih-wei Liao, Google Inc.
39. Dynamic Linker Optimizations
• Why?
– The major reason to optimize dynamic linker is to speed
up application startup time.
• How?
– Implement GNU style hash support for bionic linker
– Prelinker improvements: incremental global prelinking
40. (normalized) Dynamic Link time
1
0.9
0.8
0.7
0.6
0.5 lp
0.4 gp
re.gp
0.3
re.pe.gp
0.2 re.pe.pgp.gp
0.1 re.pe.pgp.gp.are
0
44. Symbol lookup fail# gnu filtered by bloom
s # hash
in ELF
gnu.gp 3758 23702 19950 23310 18234(78%)
gnu.gp.re 3758 20544 16792 19604 14752(75%)
gnu.lp 61750 460996 399252 450074 345032(76%)
gnu.lp.re 61750 481626 419882 448492 342378(76%)
H = {x, y, z} = hash functions
Hash function may collision
→ Bloom filter may got false positives
Bit array
NOTE: Android 4.0 removes the support of prelinker,
but gnu style hash is still useful.
46. TODO
• Use eglibc-like Option Group
– based on POSIX.1-2001 specifications
• Comply with relevant standards
• Resolve external toolchain issues
– Allow arm-none-eabi- and arm-none-linux-gnueabi-
– Don't depend on prebuilt toolchain anymore
• Collaboration: crosstool-ng, buildroot, yocto, ...
• Validation: improve unit-test, bench, ABI test
• More SoC enhancements
• Extensions
– BioMP: Migrating OpenMP into Bionic
http://code.google.com/p/biomp/
47. Reference
• olibc hosted at GitHub: http://olibc.github.com/
• Optimizing Android Performance with GCC Compiler, Geunsik
Lim
• Embedded-Appropriate Crash Handling in Linux, Tim Bird
• Smaller and Faster Android, Shih-wei Liao, Google Inc.