This document provides an overview comparing NetBSD and Linux operating systems for embedded systems. Both systems are highly portable and POSIX compliant, with active development, but they differ in key areas like memory footprint, process scheduling, threading models, debugging support, and availability of drivers. NetBSD emphasizes reduced size and portability while Linux prioritizes functionality and third-party support. The document examines features and tradeoffs to help choose between the two for embedded applications.
Cilium - Fast IPv6 Container Networking with BPF and XDPThomas Graf
We present a new open source project which provides IPv6 networking for Linux Containers by generating programs for each individual container on the fly and then runs them as JITed BPF code in the kernel. By generating and compiling the code, the program is reduced to the minimally required feature set and then heavily optimised by the compiler as parameters become plain variables. The upcoming addition of the Express Data Plane (XDP) to the kernel will make this approach even more efficient as the programs will get invoked directly from the network driver.
This slide deck focuses on eBPF JIT compilation infrastructure and how it plays an important role in the entire eBPF life cycle inside the Linux kernel. First, it does quite a number of control flow checks to reject vulnerable programs and then JIT compiles the eBPF program to either host or offloading target instructions which boost performance. However, there is little documentation about this topic which this slide deck will dive into.
The document provides information about accessing Linux from Windows using SSH. It discusses using programs like Putty, Xming, MobaXterm, and SmarTTY to connect to a Linux server. These programs allow running both command line and graphical applications remotely. The document also covers basic Linux commands like cal, ncal, echo, and tput to display calendars, output text, and query the terminal database for features.
This document provides an introduction to POSIX threads (Pthreads) programming. It discusses what threads are, how they differ from processes, and how Pthreads provide a standardized threading interface for UNIX systems. The key benefits of Pthreads for parallel programming are improved performance from overlapping CPU and I/O work and priority-based scheduling. Pthreads are well-suited for applications that can break work into independent tasks or respond to asynchronous events. The document outlines common threading models and emphasizes that programmers are responsible for synchronizing access to shared memory in multithreaded programs.
Cilium - Fast IPv6 Container Networking with BPF and XDPThomas Graf
We present a new open source project which provides IPv6 networking for Linux Containers by generating programs for each individual container on the fly and then runs them as JITed BPF code in the kernel. By generating and compiling the code, the program is reduced to the minimally required feature set and then heavily optimised by the compiler as parameters become plain variables. The upcoming addition of the Express Data Plane (XDP) to the kernel will make this approach even more efficient as the programs will get invoked directly from the network driver.
This slide deck focuses on eBPF JIT compilation infrastructure and how it plays an important role in the entire eBPF life cycle inside the Linux kernel. First, it does quite a number of control flow checks to reject vulnerable programs and then JIT compiles the eBPF program to either host or offloading target instructions which boost performance. However, there is little documentation about this topic which this slide deck will dive into.
The document provides information about accessing Linux from Windows using SSH. It discusses using programs like Putty, Xming, MobaXterm, and SmarTTY to connect to a Linux server. These programs allow running both command line and graphical applications remotely. The document also covers basic Linux commands like cal, ncal, echo, and tput to display calendars, output text, and query the terminal database for features.
This document provides an introduction to POSIX threads (Pthreads) programming. It discusses what threads are, how they differ from processes, and how Pthreads provide a standardized threading interface for UNIX systems. The key benefits of Pthreads for parallel programming are improved performance from overlapping CPU and I/O work and priority-based scheduling. Pthreads are well-suited for applications that can break work into independent tasks or respond to asynchronous events. The document outlines common threading models and emphasizes that programmers are responsible for synchronizing access to shared memory in multithreaded programs.
This presentation discusses the different CPU architectures used in Android devices, including ARM, Intel, and MIPS. ARM is the most popular and uses energy-efficient RISC designs. Popular ARM vendors are Qualcomm, Texas Instruments, Nvidia, and Samsung, who integrate ARM cores into system-on-chip (SoC) designs. Intel produces x86 processors for Android via the Atom platform. MIPS is another RISC architecture used in some devices. The presentation explores the processor designs and vendors that power popular Android smartphones and tablets.
El documento resume la historia de AMD desde su fundación en 1969 hasta sus procesadores más recientes. Comenzó como segundo proveedor de procesadores para IBM y lanzó sus propios procesadores compatibles con Intel como el Am386 en 1991. Desde entonces ha lanzado una variedad de procesadores exitosos como el Athlon, Athlon 64 y Phenom con arquitecturas de 1, 2, 3 y 4 núcleos fabricados con diferentes tecnologías. Actualmente todos sus procesadores son de 64 bits compatibles con 32 bits.
During the CXL Forum at OCP Global Summit, MemVerge software architect Steve Scargall defines the CXL software stack and where the development is being done.
The document discusses configuring GTP tunnels on Linux using the libgtpnl library. Key points:
- Linux kernels since 4.7 include GTP tunnel endpoint functionality in the gtp.c driver
- Libgtpnl provides tools to configure GTP tunnels via netlink without a control plane
- Configuration involves creating veth interfaces, loopbacks, GTP devices, and tunnels between endpoints using TEIDs and IP addresses
GPU databases utilize GPUs to accelerate database operations like analytics. In contrast to CPUs which have few cores for serial tasks, GPUs have thousands of cores that enable massively parallel processing better suited for analytics. Popular GPU databases include Kinetica, SqreamDB, and BlazingDB. They can handle larger datasets and more complex queries faster than traditional CPU-based databases by distributing operations across GPU cores. Common uses of GPU databases involve fast data processing, stream analytics, graph processing, and extreme analytics.
The document discusses algorithms used in the DPDK libraries for fast lookups. It describes the characteristics and usage of the hash, LPM, and ACL libraries. The hash library uses cuckoo hashing for tables like FDB and host tables. The LPM library uses a modified DIR-24-8-BASIC algorithm for IPv4 and IPv6 route tables. The ACL library classifies entries using techniques like scalar, SSE, and AVX2 based on multi-bit tries. Examples of lookups and inserts are provided for each library.
This document provides an overview of the steps to port the U-boot bootloader to a new SoC using the NDS32 architecture as an example. It describes the directory structure of U-boot and key files related to the architecture, board, configuration, and device drivers. The document outlines where to define SoC hardware addresses, initialize board-specific peripherals, configure options, and implement device drivers to support the new SoC and board.
- The document describes the Zephyr real-time operating system which is open source, has a vibrant community, and is built with safety and security in mind. It supports multiple architectures and hardware boards and has vendor-neutral governance.
- Key features include being highly configurable, modular, and product development ready using long-term supported releases that include security updates. It provides a range of OS services and supports over 100 sensors out of the box.
- The project focuses on safety and has established committees to improve security practices and work towards safety certification for applications requiring functional safety standards like IEC 61508.
O documento descreve a arquitetura do sistema operacional Unix, incluindo suas principais partes como o kernel, sistema de arquivos, shell e ferramentas. Também discute processos, escalonamento, interrupções de relógio e chamadas do sistema no Unix.
The document discusses Linux, an open-source operating system that can be installed on various devices. It notes that Linux is free, powerful, stable, and provides security without viruses. Some key advantages are that Linux systems are stable, free from viruses, and never slow down over time like other OSes. The document also provides a brief history of Linux and operating systems before it, and discusses how Linux is now widely used on PCs, supercomputers, and by about 29 million users worldwide. It lists some common Linux distributions and notes that desktop Linux is free, secure, and user-friendly.
The document discusses installing and configuring various Linux applications including Apache, PHP, MySQL, and Postgres. It covers basic Ubuntu installation, system configuration, installing packages, configuring Apache, PHP, and MySQL. Specific instructions are provided for installing Apache, configuring virtual hosts and SSL, installing PHP, and installing and configuring MySQL and phpMyAdmin.
The document provides information on various commands used to work with files and directories in Linux/Unix systems. It discusses the ls command for listing files and folders along with important options. It also covers the pwd command for printing the current working directory, and the tree command for listing directories in a tree format. Additionally, it discusses shell globbing patterns used for wildcard character matching of filenames. Symbolic links and various ways of creating new files in Linux are also summarized.
During the CXL Forum at OCP Global Summit, Jeff Hilland of HPE explained what CXL, PCI SIG, DMTF, OFA, OCP, and SNIA are doing to make CXL fabric, memory and device management interoperable.
Monitoring IO performance with iostat and pt-diskstatsBen Mildren
iostat is a tool for monitoring input/output performance on Linux systems. It provides reports on CPU utilization and device utilization, including metrics like read/write operations per second, throughput, and latency for block devices. The tool can display statistics since system startup or for a specified time interval, and supports standard or extended output formats to include additional metrics on request and queue lengths and service times.
The document discusses scheduling in Android. It provides an overview of the history of Linux scheduling including the Completely Fair Scheduler (CFS) and scheduling classes. It describes how CPU power management integrates with scheduling and discusses load tracking methods. The document outlines some problems Android has had with the Linux scheduler and solutions developed. It also summarizes how the Android framework interacts with and provides hints to the underlying Linux scheduler.
Linux is an open-source operating system developed by Linus Torvalds in 1991. It has a reputation for being efficient and fast-performing. The document then lists and describes 50 common Linux commands, including their syntax and usage. Examples include commands for changing directories, copying files, displaying the date/time, searching files with grep, and more.
The objective of this article is to describe what to monitor in and around Alfresco in order to have a good understanding of how the applications are performing and to be aware of potential issues.
A firewall uses programs on a gateway server to protect internal networks. A Linux box with Netfilter and Iptables can be configured as a firewall. Iptables uses connection tracking to evaluate packets and determine whether to forward, modify, filter or drop them based on their state (new, established, related, invalid) rather than just addresses and ports. This allows more flexible rule writing than stateless firewalls.
Celery is a really good framework for doing background task processing in Python (and other languages). While it is ridiculously easy to use celery, doing complex task flow has been a challenge in celery. (w.r.t task trees/graphs/dependecies etc.)
This talk introduces the audience to these challenges in celery and also explains how these can be fixed programmatically and by using latest features in Celery (3+)
This presentation discusses the different CPU architectures used in Android devices, including ARM, Intel, and MIPS. ARM is the most popular and uses energy-efficient RISC designs. Popular ARM vendors are Qualcomm, Texas Instruments, Nvidia, and Samsung, who integrate ARM cores into system-on-chip (SoC) designs. Intel produces x86 processors for Android via the Atom platform. MIPS is another RISC architecture used in some devices. The presentation explores the processor designs and vendors that power popular Android smartphones and tablets.
El documento resume la historia de AMD desde su fundación en 1969 hasta sus procesadores más recientes. Comenzó como segundo proveedor de procesadores para IBM y lanzó sus propios procesadores compatibles con Intel como el Am386 en 1991. Desde entonces ha lanzado una variedad de procesadores exitosos como el Athlon, Athlon 64 y Phenom con arquitecturas de 1, 2, 3 y 4 núcleos fabricados con diferentes tecnologías. Actualmente todos sus procesadores son de 64 bits compatibles con 32 bits.
During the CXL Forum at OCP Global Summit, MemVerge software architect Steve Scargall defines the CXL software stack and where the development is being done.
The document discusses configuring GTP tunnels on Linux using the libgtpnl library. Key points:
- Linux kernels since 4.7 include GTP tunnel endpoint functionality in the gtp.c driver
- Libgtpnl provides tools to configure GTP tunnels via netlink without a control plane
- Configuration involves creating veth interfaces, loopbacks, GTP devices, and tunnels between endpoints using TEIDs and IP addresses
GPU databases utilize GPUs to accelerate database operations like analytics. In contrast to CPUs which have few cores for serial tasks, GPUs have thousands of cores that enable massively parallel processing better suited for analytics. Popular GPU databases include Kinetica, SqreamDB, and BlazingDB. They can handle larger datasets and more complex queries faster than traditional CPU-based databases by distributing operations across GPU cores. Common uses of GPU databases involve fast data processing, stream analytics, graph processing, and extreme analytics.
The document discusses algorithms used in the DPDK libraries for fast lookups. It describes the characteristics and usage of the hash, LPM, and ACL libraries. The hash library uses cuckoo hashing for tables like FDB and host tables. The LPM library uses a modified DIR-24-8-BASIC algorithm for IPv4 and IPv6 route tables. The ACL library classifies entries using techniques like scalar, SSE, and AVX2 based on multi-bit tries. Examples of lookups and inserts are provided for each library.
This document provides an overview of the steps to port the U-boot bootloader to a new SoC using the NDS32 architecture as an example. It describes the directory structure of U-boot and key files related to the architecture, board, configuration, and device drivers. The document outlines where to define SoC hardware addresses, initialize board-specific peripherals, configure options, and implement device drivers to support the new SoC and board.
- The document describes the Zephyr real-time operating system which is open source, has a vibrant community, and is built with safety and security in mind. It supports multiple architectures and hardware boards and has vendor-neutral governance.
- Key features include being highly configurable, modular, and product development ready using long-term supported releases that include security updates. It provides a range of OS services and supports over 100 sensors out of the box.
- The project focuses on safety and has established committees to improve security practices and work towards safety certification for applications requiring functional safety standards like IEC 61508.
O documento descreve a arquitetura do sistema operacional Unix, incluindo suas principais partes como o kernel, sistema de arquivos, shell e ferramentas. Também discute processos, escalonamento, interrupções de relógio e chamadas do sistema no Unix.
The document discusses Linux, an open-source operating system that can be installed on various devices. It notes that Linux is free, powerful, stable, and provides security without viruses. Some key advantages are that Linux systems are stable, free from viruses, and never slow down over time like other OSes. The document also provides a brief history of Linux and operating systems before it, and discusses how Linux is now widely used on PCs, supercomputers, and by about 29 million users worldwide. It lists some common Linux distributions and notes that desktop Linux is free, secure, and user-friendly.
The document discusses installing and configuring various Linux applications including Apache, PHP, MySQL, and Postgres. It covers basic Ubuntu installation, system configuration, installing packages, configuring Apache, PHP, and MySQL. Specific instructions are provided for installing Apache, configuring virtual hosts and SSL, installing PHP, and installing and configuring MySQL and phpMyAdmin.
The document provides information on various commands used to work with files and directories in Linux/Unix systems. It discusses the ls command for listing files and folders along with important options. It also covers the pwd command for printing the current working directory, and the tree command for listing directories in a tree format. Additionally, it discusses shell globbing patterns used for wildcard character matching of filenames. Symbolic links and various ways of creating new files in Linux are also summarized.
During the CXL Forum at OCP Global Summit, Jeff Hilland of HPE explained what CXL, PCI SIG, DMTF, OFA, OCP, and SNIA are doing to make CXL fabric, memory and device management interoperable.
Monitoring IO performance with iostat and pt-diskstatsBen Mildren
iostat is a tool for monitoring input/output performance on Linux systems. It provides reports on CPU utilization and device utilization, including metrics like read/write operations per second, throughput, and latency for block devices. The tool can display statistics since system startup or for a specified time interval, and supports standard or extended output formats to include additional metrics on request and queue lengths and service times.
The document discusses scheduling in Android. It provides an overview of the history of Linux scheduling including the Completely Fair Scheduler (CFS) and scheduling classes. It describes how CPU power management integrates with scheduling and discusses load tracking methods. The document outlines some problems Android has had with the Linux scheduler and solutions developed. It also summarizes how the Android framework interacts with and provides hints to the underlying Linux scheduler.
Linux is an open-source operating system developed by Linus Torvalds in 1991. It has a reputation for being efficient and fast-performing. The document then lists and describes 50 common Linux commands, including their syntax and usage. Examples include commands for changing directories, copying files, displaying the date/time, searching files with grep, and more.
The objective of this article is to describe what to monitor in and around Alfresco in order to have a good understanding of how the applications are performing and to be aware of potential issues.
A firewall uses programs on a gateway server to protect internal networks. A Linux box with Netfilter and Iptables can be configured as a firewall. Iptables uses connection tracking to evaluate packets and determine whether to forward, modify, filter or drop them based on their state (new, established, related, invalid) rather than just addresses and ports. This allows more flexible rule writing than stateless firewalls.
Celery is a really good framework for doing background task processing in Python (and other languages). While it is ridiculously easy to use celery, doing complex task flow has been a challenge in celery. (w.r.t task trees/graphs/dependecies etc.)
This talk introduces the audience to these challenges in celery and also explains how these can be fixed programmatically and by using latest features in Celery (3+)
Linux, Android and Open Source in the Mobile EnvironmentAlison Chaiken
A presentation that describes the quite various Linux-based operating systems available in the mobile space, especially contrasting MeeGo and Android. Some platforms include just the Linux kernel and some are full "Gnu/Linux" distros. Libraries, licenses and governance models also vary, making the situation confusing for both consumers and developers.
Wind River is a software company founded in 1981 that had 1507 employees worldwide as of FY08. It provides products and services for embedded systems, including development tools, operating systems, and professional services. Some key facts are that it had $328M in revenue in FY08, $244M in cash, and invests $81M annually in R&D. It has 42,000+ developers in its community and has products running in over 350 million devices.
Developer Day 2014 - 4 - wind river - iot business and technology trendsThibault Cantegrel
This document discusses trends in the Internet of Things (IoT) and the role of open standards. It provides an overview of Wind River, a company that provides software for IoT devices. Wind River discusses the convergence of IT and OT systems in IoT and the need for open standards to facilitate interoperability between systems. The document outlines Wind River's offerings, including its Intelligent Device Platform, and how it uses open-source components like Linux, Yocto Project, and Legato to provide a flexible solution for customers. Finally, it discusses some of the business benefits that open standards can provide, such as cost reduction, new revenue opportunities, and faster innovation.
Yocto Project Open Source Build System and Collaboration InitiativeMarcelo Sanz
The Yocto Project creates a custom embedded Linux distribution for a device by building recipes that define how to obtain, patch, compile and package software, rather than using an existing Linux distribution. It provides a common build environment and tools to configure, build and test embedded systems across different processor architectures.
This document summarizes a presentation on using Celery for background task processing and deferred execution in Python applications. It discusses the basics of job queues and Celery, how to set up Celery with RabbitMQ, and integrating Celery with Django. The tutorial covers understanding Celery architecture, installing components, creating simple tasks, and next steps like adding workers, retrying tasks, routing to queues, and monitoring. Attendees are walked through hands-on examples of using Celery for asynchronous tasks like periodic jobs and integrating it with a web application.
This document provides an overview of embedded operating systems (OSes). It discusses non-real-time OSes like Palm OS and embedded Linux distributions. It also summarizes over 20 commercial and open-source real-time operating systems (RTOSs) such as VxWorks, RTX, Nucleus, FreeRTOS, and eCos. These RTOSs support a variety of processor architectures and have different features around real-time performance, memory footprint, middleware, and pricing models. The document serves as a resource for choosing an appropriate OS for an embedded system.
Importance of ‘Centralized Event collection’ and BigData platform for Analysis !Piyush Kumar
The document discusses the importance of centralized event collection and analysis using a big data platform. It describes the challenges faced by MakeMyTrip in analyzing huge amounts of data from various sources. Centralized logging of structured event data from all systems and applications is recommended to enable effective log analysis, troubleshooting, and personalizing the user experience. A data service platform is needed to integrate data from different sources and power real-time and batch processing for analytics and insights.
"In love with Open Source : Past, Present and Future" : Keynote OSDConf 2014Piyush Kumar
OPEN SOURCE DEVELOPERS CONFERENCE http://osdconf.in/
★ April 26-27th, Noida ★
Keynote Session By Piyush Kumar (Lead of Infrastructure and Website Operations at MakeMyTrip)
A Market Update on Embedded/Real-Time Operating SystemsVDC Research Group
During this webcast, Steve Balacco, Director of the Embedded Software & Tools Practice, will present data from our 2010 study on embedded /real-time operating systems. Specifically, he will discuss: consolidation in the embedded and real-time operating system market; migration to commercial and open source operating systems; multicore processors and embedded software considerations; virtualization in embedded systems; and embedded engineering trends.
This document provides a go-to market strategy for Filippa K in Germany. It summarizes research on the German retail market, key competitors, and proposes a multi-channel strategy for market development. Customer research in Hamburg found high brand awareness of Filippa K and a perception as a sustainable, Scandinavian brand. The strategy recommends opening new concept stores in Berlin, Hamburg and Munich while controlling online sales. A focus on earned and owned media is suggested to support expansion.
The document discusses the Internet of Things (IoT) and how connected devices communicate with each other over various personal area networks and protocols. It provides examples of common IoT devices like sensors and describes how they can be integrated using platforms like Arduino, Raspberry Pi, Android and APIs. The goal of IoT is to connect everyday objects to enable data collection and management to increase efficiency and enable new applications across various industries.
Radisys and Wind River joined together to present: Cloud RANs - an NFV Evolution or Revolution? The presenters discuss the options available for architecting the mobile network for virtualization success.
Celery is an asynchronous task queue/job queue based on distributed message passing. It allows tasks to be executed asynchronously by worker servers using a message passing protocol like AMQP. Celery can be used to process tasks in the background outside of the HTTP request/response cycle, run periodic tasks, interact with APIs, and more. It uses brokers like RabbitMQ to push tasks to workers to execute tasks in parallel. Task results are stored for retrieval. Celery provides features like task retries, task sets, periodic tasks, and Django views for interacting with tasks.
The document discusses an introduction to embedded systems workshop. It covers topics like what embedded systems are, why they are needed, real-time requirements, embedded software components including bootloaders, operating systems and applications. It discusses the role of open source software like Linux in embedded development. Key points are that embedded systems are hardware devices designed to perform specific tasks, they have requirements like reliability, low power and cost-effectiveness, and open source software like Linux is widely used due to benefits like availability, community support and cost.
The document discusses toolchains and cross toolchains. It defines a toolchain as a collection of tools including a C compiler, C libraries, and binary utilities. A cross toolchain is a toolchain configured to compile code for a platform other than the one on which the toolchain is running. The document outlines steps for building a cross toolchain, including obtaining kernel headers, building binary utilities, compilers, and libraries. It also discusses automated build tools like Crosstool and testing the generated cross toolchain.
This document provides an introduction to the NetBSD kernel. It discusses NetBSD's history and focus on portability across architectures. Key features of the NetBSD kernel discussed include its process scheduling, SMP support, threading model using scheduler activations, and event notification using kqueues. Debugging support via DDB and KGDB is also summarized. The document provides a brief overview of NetBSD's build system and configuration, and notes some limitations in device support. It concludes by highlighting NetBSD's clean code, documentation, and commercial support options.
The document provides an introduction to the Linux operating system, including:
- A brief history of UNIX and Linux, describing their origins in the 1960s-1990s.
- An overview of Linux distributions, kernels, features, and structure, explaining concepts like monolithic vs. microkernel designs.
- Descriptions of key Linux components like modules, eBPF, and the roles of processes, user mode, kernel mode, and context switches.
- Discussions of ongoing developments like extended BPF which allow more dynamic programmability of the Linux kernel.
Linux Container Brief for IEEE WG P2302Boden Russell
A brief into to Linux Containers presented to IEEE working group P2302 (InterCloud standards and portability). This deck covers:
- Definitions and motivations for containers
- Container technology stack
- Containers vs Hypervisor VMs
- Cgroups
- Namespaces
- Pivot root vs chroot
- Linux Container image basics
- Linux Container security topics
- Overview of Linux Container tooling functionality
- Thoughts on container portability and runtime configuration
- Container tooling in the industry
- Container gaps
- Sample use cases for traditional VMs
Overall, a bulk of this deck is covered in other material I have posted here. However there are a few new slides in this deck, most notability some thoughts on container portability and runtime config.
This document provides an overview of the Ubuntu operating system. It discusses Ubuntu's history as a Debian-based Linux distribution first released in 2004. It also covers Ubuntu's key features, components, and principles such as its use of the Linux kernel, GNOME desktop environment, and Ext4 file system. The document discusses Ubuntu's security, processes, memory management, networking, and compares its robustness to other operating systems. It provides examples of basic Ubuntu commands and how to password protect the GRUB boot loader for added security.
امروزه مجازیسازی یکی از روشهای پرطرفدار برای پیادهسازی کارگزاران وب است. این فناوری موجب کاهش هزینههای تجارتهای کوچک میشود. مجازیسازی یکی از جنبههای مهم ارائه خدمات ابری است که حتی برای تجارتهای بزرگ نیز از جذابیت زیادی برخوردار است.
در این سخنرانی به امکاناتی همچون Control Groups و Containers که در نسخههای جدیدتر هسته سیستم عامل لینوکس پیادهسازی شده است میپردازیم. هرچند این امکانات مجازیسازی کامل را به ارمغان نمیآورند، اما بسیاری از مزایای آن را با سربار بسیار کم در سطح هسته فراهم میکنند. راه حلهایی همچون LXC و Docker بر اساس این امکانات توانستهاند به نتایج خوبی برسند که هم از لحاظ تجاری در خور توجه هستند و هم تبعات و کاربردهای امنیتی دارند.
This document provides an overview and summary of the Ubuntu operating system. It discusses Ubuntu's history beginning with the creation of Linux by Linus Torvalds in 1991. It then covers key aspects of Ubuntu including its design principles, process and memory management, security features, networking capabilities, and graphical user interface. The document also provides examples of basic commands and important directories in Ubuntu. It concludes with recommendations for securing the boot loader to help harden the Ubuntu system.
The document provides an overview of the Ubuntu operating system. It discusses Ubuntu's history as a Debian-based Linux distribution first released in 2004. It covers Ubuntu's design principles including its use of the Linux kernel for process management, memory management, and file systems. It also addresses security topics like hacking threats and strategies for hardening Ubuntu systems. Basic commands and utilities included in Ubuntu are outlined.
Namespaces, Cgroups and systemd document discusses:
1. Namespaces and cgroups which provide isolation and resource management capabilities in Linux.
2. Systemd which is a system and service manager that aims to boot faster and improve dependencies between services.
3. Key components of systemd include unit files, systemctl, and tools to manage services, devices, mounts and other resources.
Linux began in 1991 as a personal project by Finnish student Linus Torvalds to create a free operating system kernel. The Linux kernel forms the core of the operating system, providing functions to run processes and access hardware resources. The Linux system consists of the kernel, system libraries that define standard functions for applications to interact with the kernel, and system utilities for maintaining operating system abstractions. The kernel uses both segmentation and paging for memory management, dividing a process's address space into segments with different protection modes and paging small regions of addresses to physical memory.
This document contains teaching material on distributed systems operating systems from the book "Distributed Systems: Concepts and Design". It discusses key concepts around processes, threads, communication, and operating system architecture to support distributed applications and middleware. The material is made available for teaching purposes and cannot be used without permission.
Powerpoint presentation on LINUX scheduling and input and output operations . source of information is operating system concepts 8th edition by abraham silberschatz peter b . galvin greg gagne
Linux containers (LXC) provide operating system-level virtualization using features of the Linux kernel such as cgroups, namespaces, and chroot. This allows for the creation of lightweight isolated environments called containers that share the kernel of the host system. Containers offer many advantages over traditional virtual machines such as near-native performance, flexibility, and lightweight resource usage. The document discusses the key building blocks and technologies that underpin LXC such as cgroups for resource control and namespaces for process isolation. It also covers the benefits of using LXC and how container images are realized on Linux.
Virtual Distro Dispatcher - A costless distributed virtual environment from T...Flavio Bertini
Virtual Distro Dispatcher is a project that combines LTSP (Linux Terminal Server Project) with User-Mode Linux (UML) virtualization to allow multiple Linux distributions to run simultaneously on thin clients. The goals of the project are to provide an easy way to test distributions, support buggy software, and allow users to choose their preferred distribution on thin clients. Future work will focus on integrating high-performance clustering and extending the system to support more thin clients over a LAN.
This document discusses threads and multi-threading in operating systems. It defines threads as parts of a program that can run simultaneously. The programmer must design the program such that threads do not interfere with each other. It compares threads to processes, noting that threads share resources like memory and address space within a process, while processes have separate address spaces. The document also outlines advantages of multi-threading like better CPU and cache utilization. Finally, it discusses user-level and kernel-level threads and different multi-threading models.
Linux is a widely used open source operating system kernel that can also refer to full operating system distributions. It is commonly used in embedded systems due to its portability, modularity, and ability to run on hardware with limited resources. Device drivers can be dynamically loaded and unloaded from the Linux kernel as modules, allowing new functionality to be added without rebooting the system. This makes Linux well-suited for embedded device development.
Enea Linux and Light-weight Threading
Enea Linux is a customized Linux distribution powered by Yocto that is tailored for telecom and networking applications. It includes over 150 curated packages and supports hardware from various vendors. Enea also introduces Light-weight Runtime Threading (LWRT), which partitions the system into real-time and non-real-time domains to improve performance. LWRT runs most processes in user-space with an optimized scheduler for lower latency compared to standard pthreads. LWRT provides benefits like determinism without depending on the PREEMPT_RT patch and allows both POSIX and real-time APIs.
Running Applications on the NetBSD Rump Kernel by Justin Cormack eurobsdcon
Abstract
The NetBSD rump kernel has been developed for some years now, allowing NetBSD kernel drivers to be used unmodified in many environments, for example as userspace code. However it is only since last year that it has become possible to easily run unmodified applications on the rump kernel, initially with the rump kernel on Xen port, and then with the rumprun tools to run them in userspace on Linux, FreeBSD and NetBSD. This talk will look at how this is achieved, and look at use cases, including kernel driver development, and lightweight process virtualization.
Speaker bio
Justin Cormack has been a Unix user, developer and sysadmin since the early 1990s. He is based in London and works on open source cloud applications, Lua, and the NetBSD rump kernel project. He has been a NetBSD developer since early 2014.
The document provides an overview of User Mode Linux (UML), including what it is, how it works, alternatives, and how to use it. UML allows running the Linux kernel as a userspace process, enabling uses like kernel debugging, security testing, and hosting virtual servers. It works by modifying the host kernel to create separate address spaces for guest kernels and processes using hardware virtualization. Key components discussed include filesystems, networking using TUN/TAP devices, management scripts, backups using LVM snapshots and blocksync, and network monitoring tools like MRTG and iftop.
Similar to NetBSD and Linux for Embedded Systems (20)
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
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…
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
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.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
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.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
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
1. NetBSD and Linux for Embedded Systems
Mahendra M
Mahendra_M@infosys.com
http://www.infosys.com
This work is licensed under a Creative Commons License
http://creativecommons.org/licenses/by-sa/2.5/
2. About the talk
This talk is NOT about to compare NetBSD and Linux and
find out which is better.
– We shall compare – but not criticize !!
We shall try to understand both systems in their own merit
It is about sharing our experiences with both the systems –
more from a embedded & telecom OS perspective.
We hope to help you choose.
3. Agenda
A short introduction to NetBSD and Linux based systems
Suitability for embedded systems
Introduction to the features available in NB and Linux
– Specifically for Embedded Systems
Feature wise comparison of the two kernels
– Core architecture, Threading model, Real time capabilities,
modularity, performance, ease of deployment, portability
Linux capabilities.
NetBSD Capabilities
– Kqueue : Event notification framework
Availability of Code for future needs
Feasibility and time to market along with License issues.
4. About the Systems
Linux
– Refers only to the kernel
– Distributions are built around it. ( distros available for
embedded systems )
– Has a history of around 15 years
– Is under the GPL license ( v2.0 ) and supports binary modules.
NetBSD
– A BSD “ distribution” targeted at portability.
– Includes a kernel, libraries, config tools, scripts and build
systems.
– Targeted at portability
– The BSD systems have had a history of around 25 years.
– Is under a BSD license.
5. Common stuff ...
Highly portable – ports exist for a large number of
architectures and reference boards.
Both are POSIX compliant
Good VM, Networking, Threading subsystems
Both have been time tested in the market
Active development happening
– Directly on Linux kernel – on multiple trees maintained by
different people.
– NetBSD tend to let features stabilize on FreeBSD/OpenBSD
and then pick it up :-)
Let us get on with the differences....
6. Memory foot print
Linux is slowly getting bloated.
– There are projects that are working on reducing the size of
Linux kernel
– “ Linux Tiny” project provides a set of patches that can be
applied to the Linux kernel to reduce the kernel size (built
image and run time memory requirements)
NetBSD projects boast of reduced kernel size.
– TINY configuration file is distributed along with the source.
Both kernels can be easily reduced to a size of less than
1MB ( uncompressed : ~900k, compressed : ~400k )
With sufficient hacking around, it can be reduced even
further.
7. Process Scheduling
Both OS follow a similar model in running user space
processes.
– Time slice based – and O(1) in nature.
– They have priority based levels and processes are placed on
these levels based on their priority
– Both support dynamic priority modification based on
interactiveness of a process
Not needed for embedded systems – and can be turned off at
compile time.
– Both support the same user space priorities (40)
Linux has two run-queues : An active and an expired run-
queue.
Linux also has a run-queue per CPU – for SMP boxes.
8. Process Run-queue
RunQueue
Doubly linked lists of tasks
Active
Task 1 Task 2 ... Task N [Priority: 1]
...
Task 1 Task 2 Task M [Priority:140]
Expired
...
...
Migration Thread
From kernel/sched.c
9. Other stuff ...
Kernel pre-emption.
– Linux kernel supports kernel pre-emption, but only at pre-
emptible points inside in the kernel.
– There are still areas within the kernel which cannot be pre-
empted.
– NetBSD does not support kernel pre-emption.
Hence real-time support is pretty poor on NetBSD systems
SMP Support ( not really critical in embedded systems )
– Very good in Linux.
– Worked upon in NetBSD.
10. Real-time performance
Hard real-time performance
– Not available in both kernels by default.
– FSM labs provides patches to the Linux kernel ( under GPL )
and commercial patches to NetBSD.
Works by running Linux/NetBSD kernel as low priority tasks
under a real time kernel.
Soft real-time performance.
– Linux is pretty good in providing soft real time facilities.
– In addition to the 40 user land priorities, Linux provides an
additional 100 real-time priorities
– Linux supports two soft real time scheduling options
SCHED_FIFO – First in first out
SCHED_RR – Round robin
– Real time tasks cannot be pre-empted.
11. Threading models
Both kernels are thread aware and are POSIX compliant
They support different threading models
– This is where the difference starts and things get interesting..
Linux
– Supports 1:1 model of threading ( NPTL )
– The kernel does not distinguish between threads and
processes
A process is a group of thread ids – thats it.
– All threads in a process are visible as tasks to the kernel and
active threads are allocated time-slices for scheduling.
All active threads will get their time-slices
– Can set real time priorities to tasks.
– APIs are available for real time threads handling
12. Threading models ( contd .. )
NetBSD
– Treats threads (lwp) and processes differently
– Supports Scheduler Activations.
m:n model of threading
– Not all threads are visible to the kernel scheduler. User space
code takes part in telling the kernel which thread to schedule.
– The threads in a process have co-operative scheduling.
A thread can keep running for most of the time – careful
programing required.
Both groups had debated the models before taking up their
approaches. Both methods are “ claimed” to be better than
the other.
Today, Linux seems to have better thread/process creation,
spawning and context switching times.
13. Debugging support
NetBSD has much better debugging support.
– DDB – an in-kernel debugger
– Supports kernel crash dumps
– Supports KGDB (source level debug) – remote debugging.
Linux
– Patches available for crash dumps and KDB & KGDB (not
available for all architectures)
– Linux Trace Toolkit, UML etc. are also available methods.
– Has “ Kernel Hacking” Option in kernel configuration
Allows debugging using “ Magic SysRQs” , Debugging of actions
like memory allocations, file systems, highmem, stack overflows,
page allocations etc.
Also allows stats collection for some modules.
– Also, early printk() support is pretty recent.
14. Flash Devices and File Systems
Support is poor in NetBSD
Linux supports
– Advanced MTD support ( device concatenation, FTL, NFTL )
– JFFS2 ( JFFS3 is being worked on )
– RAM file systems and ramdisk support
– Supports initrd
In NetBSD
– OpenSource implementations of the above are not available.
( Commercial products are available )
– Results in considerable lead time in development.
– Supports MFS ( not memory efficient ) : tmpfs is being worked
upon
– For boot time, it allows embedding a file-system into the kernel
15. KQueue : Event notification mechanism
NetBSD supports a generic event notification framework –
kqueues.
Excellent replacement for select() / poll() APIs.
– No need to pass entire descriptor set to each call.
– On return, applications need not check all file descriptors for
updates.
– Reduces data copying ( fd list from kernel to user space and
vice-versa )
Can handle multiple types of events.
– Signals, Vnode/Process monitoring, Timer events etc.
Can club multiple occurrences of an event into a single event
New event types can be easily added.
All with just two system calls !!
16. Build systems and configuration
NetBSD is better
– The entire system : kernel, compilers and tools, libraries and
applications can be compiled ( native or cross platform ) using
a single script – build.sh
– The same script can build distributions, tarballs, archives and
can also update existing systems and install fresh systems.
– Adding new components to the build framework is extremely
easy.
Linux – Such systems exist but it is not as flexible as BSD
Both NetBSD and Linux provide different configuration
mechanisms.
– NetBSD builds a device tree format.
– Linux provides a GUI interface for configuring the kernel...
17. Other differences.
Linux kernel code throws out lot of warnings during
compilation. NetBSD is very clean in this aspect.
Linux supports MMU Less operations.
Loadable kernel modules
– Better supported in Linux.
Better device support in Linux
With 2.6 kernel, the device driver model has vastly improved
( attend other talks at FOSS.in for more details )
Portability has been a design goal for NetBSD.
Development models are vastly different :-)
– NetBSD is more “ cathedral” like !!
In Linux, you get answers easily :-)
18. Business related
License (violation) is a serious cause of concern
– BSD License is very liberal
– One of the main reasons why telecom companies go for BSD
– eg: Juniper ( JUNOS )
Protocol stacks and third party code
– Are available usually for most BSDs and Linux.
– To be more portable, they tend to ignore benefits of one OS
New device support
– Vendors of new devices like Network Processors, etc. release
code only/mainly for Linux ( kernel modules etc. ).
– Extra effort is required in such cases to port things to NetBSD.
In case of Linux, extra time is required in selecting and
integrating components of the system.
19. Links
http://linux-bangalore.org/blug/meetings/200401/scheduler-2.6.pdf
http://www.netbsd.org/ - One site for all NetBSD stuff
http://people.freebsd.org/~jlemon/papers/kqueue.pdf - Kqueue design
http://camars.kaist.ac.kr/courses/530/97/Readings/scheduler-act.pdf - SA design
http://josh.trancesoftware.com/linux/ - Details of Linux 2.6 scheduler
http://www.wasabisystems.com/gpl/linux.htm - A comparison
http://bulk.fefe.de/scalability/ - Started a Battle and cleanup !!
http://lkcd.sourceforge.net/
http://kgdb.sf.net/
http://oss.sgi.com/projects/kdb/
http://www.linuxjournal.com/article/3829 - Using Linux Trace Toolkit
http://www.opersys.com/LTT
http://netbsd-soc.sourceforge.net/projects/tmpfs/ - TMPFS project page
http://www.selenic.com/linux-tiny - Linux Tiny home page
20. Finally ...
Questions ??
Thanks to
– Organizers for giving me a chance to speak at FOSS.in
– NetBSD and Linux developers who helped me during my work
– Linux kernel team for doing a wonderful job !!
Special thanks to YOU for listening...
You can contact me at :
Mahendra_M@infosys.com