This lecture discusses the concept of Linux device Drivers and Kernel Loadable Modules in general. It shows how to handle them such as loading/unloading ,and querying for their info. It also discusses the role of device files and how it binds to device drivers in the Linux Kernel
Video for this lecture on youtube:
http://www.youtube.com/watch?v=5qhgMyPyvVE
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture describes the virtual filesystems procfs and sysfs.
Video for this Lecture on youtube:
http://www.youtube.com/watch?v=wlxL-iQN6No
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture addresses the different commands that are used to monitor the processes running in Linux, and the associated resources used by them. It also addresses the different attributes of processes and the manipulation of process priority
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 16: Process Management (Part 2) Ahmed El-Arabawy
This lecture continues to introduce concepts about processes in Linux. It describes both Automatic processes and Daemon Processes.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 27: FileSystems in Linux (Part 2)Ahmed El-Arabawy
This lecture goes through the different types of Filesystems and some commands that are used with filesystems. It introduces the filesystems ext2/3/4 , JFFS2, cramfs, ramfs, tmpfs, and NFS.
Video for this lecture on youtube:
http://www.youtube.com/watch?v=XPtPsc6uaKY
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 20: Networking In Linux (Basic Concepts) Ahmed El-Arabawy
This lecture addresses the basic concepts of Networking and the associated commands in Linux. It describes MAC Addressed, IP Addresses, Subnets, Routing, Private Addressing and NATing, ARP protocol, and DNS
Video for this lecture on youtube:
http://www.youtube.com/watch?v=IZ5Pz2t-pTI
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 26: FileSystems in Linux (Part 1) Ahmed El-Arabawy
This lecture introduces some concepts about FileSystems in Linux.
Video for this lecture on youtube:
http://www.youtube.com/watch?v=9jj1QOokACo
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture goes into basic info about Linux and the GNU Project.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the concept of Regular Expressions along with its usage in different tools such as grep, sed, and awk
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture describes the virtual filesystems procfs and sysfs.
Video for this Lecture on youtube:
http://www.youtube.com/watch?v=wlxL-iQN6No
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture addresses the different commands that are used to monitor the processes running in Linux, and the associated resources used by them. It also addresses the different attributes of processes and the manipulation of process priority
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 16: Process Management (Part 2) Ahmed El-Arabawy
This lecture continues to introduce concepts about processes in Linux. It describes both Automatic processes and Daemon Processes.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 27: FileSystems in Linux (Part 2)Ahmed El-Arabawy
This lecture goes through the different types of Filesystems and some commands that are used with filesystems. It introduces the filesystems ext2/3/4 , JFFS2, cramfs, ramfs, tmpfs, and NFS.
Video for this lecture on youtube:
http://www.youtube.com/watch?v=XPtPsc6uaKY
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 20: Networking In Linux (Basic Concepts) Ahmed El-Arabawy
This lecture addresses the basic concepts of Networking and the associated commands in Linux. It describes MAC Addressed, IP Addresses, Subnets, Routing, Private Addressing and NATing, ARP protocol, and DNS
Video for this lecture on youtube:
http://www.youtube.com/watch?v=IZ5Pz2t-pTI
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 26: FileSystems in Linux (Part 1) Ahmed El-Arabawy
This lecture introduces some concepts about FileSystems in Linux.
Video for this lecture on youtube:
http://www.youtube.com/watch?v=9jj1QOokACo
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture goes into basic info about Linux and the GNU Project.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the concept of Regular Expressions along with its usage in different tools such as grep, sed, and awk
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture Introduces how Linux Handles Input and Output of its processes. It discusses the TTY/PTY devices and different types of terminals (Physical Terminal, Virtual Terminals, and Emulated Terminals)
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the commands and tools used to deal with text and text files in Linux. This includes displaying, concatenation, editing, searching, sorting, comparing text files. It also discusses the generation and usage of patch files
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group:
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the handling of files and file management commands by Linux Subsystems. It also covers creating both Hard Links and Symbolic Links
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture addresses the Use of Signals by the Linux Kernel, and the process behavior upon receiving signals. The popular signals are outlined
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the structure of the Linux filesystem layout and the concept of mounting different filesystems in the main filesystem
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture addresses the internals of Linux processes, and its life cycle. This includes its creation, termination, and state transitions during its existence. It also addresses the difference between processes and threads in Linux
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses a group of Utilities and Commands that will be used in the following lectures and are very useful for CLI Users and Bash Script Programmers
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the different Help Commands to get more details about Linux CLI Commands
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture is an overview for the topics that will be covered in the course along with some course logistics
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 10: Learning About the Shell Ahmed El-Arabawy
This lecture Introduces the shell program, its role, its functionality , and the categories of commands to run on it. It also discusses the different scripts executed at shell startup
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the concept of Multi-User support in Linux. It discusses how Linux protects user files and resources from other user unauthorized access. It also shows how to share resources and files among users, how to add/del users and groups.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses a group of techniques to use commands output/Input to feed into other commands or into files. It also covers argument expansion and quoting
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Part 02 Linux Kernel Module ProgrammingTushar B Kute
Presentation on "Linux Kernel Module Programming".
Presented at Army Institute of Technology, Pune for FDP on "Basics of Linux Kernel Programming". by Tushar B Kute (http://tusharkute.com).
Course 102: Lecture 3: Basic Concepts And Commands Ahmed El-Arabawy
This lecture covers the basic file management commands
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the structure of the Linux filesystem layout and the concept of mounting different filesystems in the main filesystem
Video for this Lecture on youtube:
http://www.youtube.com/watch?v=6YL1qjqcR9M
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture Introduces how Linux Handles Input and Output of its processes. It discusses the TTY/PTY devices and different types of terminals (Physical Terminal, Virtual Terminals, and Emulated Terminals)
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the commands and tools used to deal with text and text files in Linux. This includes displaying, concatenation, editing, searching, sorting, comparing text files. It also discusses the generation and usage of patch files
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group:
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the handling of files and file management commands by Linux Subsystems. It also covers creating both Hard Links and Symbolic Links
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture addresses the Use of Signals by the Linux Kernel, and the process behavior upon receiving signals. The popular signals are outlined
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the structure of the Linux filesystem layout and the concept of mounting different filesystems in the main filesystem
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture addresses the internals of Linux processes, and its life cycle. This includes its creation, termination, and state transitions during its existence. It also addresses the difference between processes and threads in Linux
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses a group of Utilities and Commands that will be used in the following lectures and are very useful for CLI Users and Bash Script Programmers
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the different Help Commands to get more details about Linux CLI Commands
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture is an overview for the topics that will be covered in the course along with some course logistics
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 102: Lecture 10: Learning About the Shell Ahmed El-Arabawy
This lecture Introduces the shell program, its role, its functionality , and the categories of commands to run on it. It also discusses the different scripts executed at shell startup
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the concept of Multi-User support in Linux. It discusses how Linux protects user files and resources from other user unauthorized access. It also shows how to share resources and files among users, how to add/del users and groups.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses a group of techniques to use commands output/Input to feed into other commands or into files. It also covers argument expansion and quoting
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Part 02 Linux Kernel Module ProgrammingTushar B Kute
Presentation on "Linux Kernel Module Programming".
Presented at Army Institute of Technology, Pune for FDP on "Basics of Linux Kernel Programming". by Tushar B Kute (http://tusharkute.com).
Course 102: Lecture 3: Basic Concepts And Commands Ahmed El-Arabawy
This lecture covers the basic file management commands
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the structure of the Linux filesystem layout and the concept of mounting different filesystems in the main filesystem
Video for this Lecture on youtube:
http://www.youtube.com/watch?v=6YL1qjqcR9M
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture discusses the different techniques used to install, uninstall and upgrade software packages in Linux and the associated tools
Video for this lecture on youtube:
http://www.youtube.com/watch?v=pFqdupd9wKk
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Embedded Systems: Lecture 4: Selecting the Proper RTOSAhmed El-Arabawy
This lecture describes the different properties of Embedded Systems Operating Systems that would affect the selection of the most appropriate RTOS in an embedded system application
This lecture is the first part of an introduction to SVC tools with a focus on Git and GitHub. This Lecture discusses the basic concepts as well as Installation and initial configuration of Git
In this Lab, we go through the steps to prepare the Raspberry Pi board for the projects in the course. this includes selecting the OS and setting it up on the SD card, connecting the Pi, and booting it.
The Lab also goes through setting up the network interfaces (both wired and wireless) and remote connecting into the Pi
Embedded Systems: Lecture 8: Lab 1: Building a Raspberry Pi Based WiFi APAhmed El-Arabawy
In this Lab, we go through the steps to build a WiFi Access Point using the Raspberry Pi. The Lab starts by introducing some concepts of Wireless LANs followed by step-by-step procedure to build the AP. The Lab concludes by an evaluation of the performance of the built AP
This lecture is the second part of an introduction to SVC tools with a focus on Git and GitHub. This Lecture discusses the Git Object Model and Some Git Commands to perform basic operations
This lecture discusses the Environment Variables concept, usage, and how processes acquire them. It then goes through the most popular ones
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This presentation is about -
embedded system programming,
What are device drivers?,
Types of device driver,
Recognizing device drivers,
Character Device Drivers,
Features of kernel programming,
CNIT 126: 10: Kernel Debugging with WinDbgSam Bowne
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_F18.shtml
Unit 6 Operating System TEIT Savitribai Phule Pune University by Tushar B KuteTushar B Kute
Recent And Future Trends In Os
Linux Kernel Module Programming, Embedded Operating Systems: Characteristics of Embedded Systems, Embedded Linux, and Application specific OS. Basic services of NACH Operating System.
Introduction to Service Oriented Operating System (SOOS), Introduction to Ubuntu EDGE OS.
Designed By : Tushar B Kute (http://tusharkute.com)
This presentation gives introduction to kernel module programming with sample kernel module.
It helps to start with kernel programming and how it can be used to develop various types of device drivers.
CNIT 126: 10: Kernel Debugging with WinDbgSam Bowne
Slides for a college course at City College San Francisco. Based on "Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software", by Michael Sikorski and Andrew Honig; ISBN-10: 1593272901.
Instructor: Sam Bowne
Class website: https://samsclass.info/126/126_F19.shtml
Some basic knowledges required for beginners in writing linux kernel module - with a description of linux source tree, so that the idea of where and how develops. The working of insmod and rmmod commands are described also.
This presentation briefs about the Linux Kernel Module and Character Device Driver. This also contains sample code snippets. Also briefs about character driver registration and access.
Similar to Course 102: Lecture 25: Devices and Device Drivers (20)
Course 102: Lecture 24: Archiving and Compression of Files Ahmed El-Arabawy
This lecture discusses the different commands and utilities used for archiving and compression of files and directories in Linux
Video for this lecture on youtube:
http://www.youtube.com/watch?v=R6ZQ6PJyy28
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
This lecture covers the use of wild cards in Linux commands, as well as escape sequences
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture targets to install Ubuntu on a VM. It starts by describing some info about Virtualization Virtual Machines, followed by installation procedure. The lecture then goes through the UI of Ubuntu.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
This lecture provides an overview of the popular RTOS's in the Market along with their main features and common applications
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Course 101: Lecture 2: Introduction to Operating Systems Ahmed El-Arabawy
This lecture goes into an introduction to the role and functionality of operating systems in Embedded Systems and in computer systems in general
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
Ahmed ElArabawy
- https://www.linkedin.com/in/ahmedelarabawy
Course 101: Lecture 1: Introduction to Embedded SystemsAhmed El-Arabawy
This is the first lecture of the Course 101: Introduction to Embedded Linux
The lecture title is "Introduction to Embedded Systems"
It introduce the basic concepts of Embedded Systems and the difference from typical desktop platforms, and how do these differences affect the developer.
Check the other Lectures and courses in
http://Linux4EnbeddedSystems.com
or Follow our Facebook Group at
- Facebook: @LinuxforEmbeddedSystems
Lecturer Profile:
- https://www.linkedin.com/in/ahmedelarabawy
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
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.
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.
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
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.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
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.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
3. What is a Device Driver ??
Hardware devices (processor, memory, storage, peripherals)
Initialization
(bootloader)
Operating System
(Linux Kernel)
Device drivers
ApplicationsUtilities
C LibraryOther Libraries
4. What is a Device Driver ?
• A device driver is a kernel module responsible for handling a
hardware device in order to isolate the operating system and
the user application from the details of this hardware device
• This way, the Linux Kernel and the user applications running
on top of it don’t have to know about the details of the
hardware device
• For example, the user application deals with a hard disk (of
any kind) and a flash drive the same way, although the internal
handling of them is completely different
• This leads to possibility for the introduction of new hardware
devices everyday, and the Linux Kernel can support them using
the proper device driver without the need to modify the
kernel
5. Correct but not Complete ….
• This definition represent only some of the device drivers and
not all of them
• device drivers are not limited to the support of hardware
devices
• Some device drivers perform a complete software function
and don’t perform any hardware device interaction
• Examples are the device drivers supporting these devices,
• Random number generator (/dev/random & /dev/urandom)
• Zeros generator (/dev/zero)
• Output Sink (/dev/null)
• We need to understand the more general definition of Devices
and Device Driver
6. The Extendable Architecture of Linux
• Linux kernel is under continuous development with thousands
of developers with different objectives
• It supports a lot of fancy and advanced features
• Not all of these features are required by all users
• It also has support for tons of hardware devices (printers,
scanners, cameras, storage devices, …. )
• To build the kernel with all of its features and hardware device
support will result in a very large image (unnecessarily) and
some times with conflicting functions
• With such a large image, Linux may not be able to run on a lot
of systems including embedded systems, and will need too
much resources (again unnecessarily)
7. The Extendable Architecture of Linux
• The solution for that problem, is that a lot of the advanced features, and
the hardware devices support functionality are considered optional
features
• When building the kernel, we go through a configuration phase, to set
for each optional feature,
• Enable: to build the code for that feature and include it in the kernel image
build in a static way
• Disable: To bypass the build the code for that feature, and hence the kernel
would not support it
• Module: The code is built as a separate module, resulting in a separate binary
(*.ko), which can be dynamically added/removed to/from the kernel at run
time on need basis
• Also, kernel modules can be developed and built independent of the
kernel build and then added to the kernel tree for future load/unload
• A lot of the kernel features can be built as a “Kernel Loadable Modules”
to keep the kernel image smaller, and to add the flexibility of adding or
removing them when needed
8. Kernel Loadable Module (KLM)
• A KLM is a binary file (*.ko) that can be created as an
additional step when building the Linux Kernel, or as a
completely separate procedure
• KLM’s reside in the Linux tree in,
/lib/modules/{kernel release}/
• KLM’s can be loaded or unloaded to/from the Linux Kernel at
run time (after the kernel has booted)
• Using KLM enables the following,
• No need to rebuild the kernel every time a new KLM is introduced
• No need to reboot the kernel every time we need to load/unload
a KLM
• The KLM runs inside the kernel
9. Loading Kernel Modules
• Kernel Modules can be activated as follows,
• Kernel modules can be loaded in the kernel on demand based on
user commands (we will go this later in this lecture)
• The Linux kernel supports automatic discovery of new hardware
devices, and this may result in the automatic load of the
associated kernel modules (using the udev subsystem in the
kernel). An example is when inserting a USB flash drive
• The Linux kernel has a list of kernel modules to load at startup
(via some startup scripts)
• Some Kernel Modules are needed in the boot process of the
Linux Kernel, and hence they are statically built in the kernel
• Other modules are necessary for system operation, and it is
decided to build them statically in the kernel (they can not be
unloaded, since they are becoming part of the kernel image)
10. Selecting Modules to Start at Boot
(/etc/modules)
• The file /etc/modules will contain the list of modules to start
at kernel startup
12. Inserting a Module
(insmod Command)
$ insmod <module file>
$ insmod <module file> <arguments>
• This command inserts a module in the kernel
$ sudo insmod /lib/module/`uname –r`/my-driver.ko
• Note that the module full path needs to be specified
• You can pass parameters to the module, these parameters are
processed by the module code
$ sudo insmod /lib/module/`uname –r`/my-device.ko debug_enable=1
• Sometimes, a kernel module would require another module to
be loaded first, the user has to take care of this dependency,
otherwise, the insmod command may fail
13. Removing a Module
(rmmod Command)
$ rmmod <kernel module>
• This command removes the kernel module from the kernel
$ sudo rmmod my-driver
• Since we are addressing now the kernel module inside the kernel
and not its binary file inside the Linux tree, no path is specified.
Just the module name
14. Load/Unload a Module
(modprobe Command)
$ modprobe <kernel module name >
$ modprobe -r <kernel module name>
• This command replaces both insmod and rmmod Commands
$ sudo modprobe my-driver
$ sudo modprobe –r my-driver
• It is a much richer command, because,
• It has the capability of understanding the module dependencies, and load
any modules needed (if not already loaded) before loading the desired
module
• When removing a module, any dependencies that are not used by other
modules, will be removed as well
• It also has a means to find the modules, so we don’t need to specify the full
path of the module file. The module name should be enough
• The modprobe command also performs other special features such as
setting default parameter options in its configuration files, and using
these options when loading the specified module
• Default module parameters are specified in,
• /etc/modprobe.conf
• /etc/modprobe.d/*.conf
16. Displaying Kernel Module info
(modinfo Command)
$ modinfo <kernel module name>
• This command shows information about the module
$ modinfo my-driver
• This includes,
• Full path for the .ko file
• Author
• License type
• Description of the module function
• Valid parameters
• Dependencies on other modules
18. What are Device Drivers ??
• A device driver is a kernel module
• It can be either built statically in the kernel image, or loaded
dynamically
• Automatically loaded via udev
• On demand via user commands (modprobe)
• At boot time via startup scripts
• The device driver registers itself to the system with a number
(called the major number)
• The device driver runs in the kernel and performs the required
functions (interacts with hardware interrupts, communicate
with hardware devices, access Linux Kernel structures,
communicate with other device drivers, …etc)
• The device driver supports one or more devices
19. What are Devices ??
• A device is a special file (also called device node) representation
located in /dev
• The file is not a real file. It does not reside on the disk, it is just a
place holder (that just lives in memory)
• Each device binds to a specific device driver at device creation time
• It is just an abstraction to enable the user plane to access the device
driver as if it is normal file
• It is the way the Linux kernel uses to establish the statement
“Everything is a file”, so you can,
• Request information from the device driver by reading from the
device file
• Send information to it by writing to the device file
• One or more devices can bind with the same device driver (they
must have the same Major Number), but each one has to pick a
unique number (called the Minor Number)
20. Major & Minor Numbers
• Each Device will have a pair of numbers,
• Major Number:
• This is the number that identify the device driver associated with this
device
• The Major number is reserved and registered by the device driver
when it is loaded in the kernel
• Minor Number:
• This number is associated with the device file
• It is the way to differentiate the different device files that are
associated with the same device driver
• It is also the way that the device driver file to know which device is
communicating with it
22. Device Classification
• Two main classes of devices:
• Character devices
• Serial streams of data
• Read and Write operations are done in a serial manner
• Examples:
• Keyboard
• Mouse
• /dev/ones
• /dev/tty1
• /dev/ttyS1
• Represented by a file with type “c”
• Most common devices
• Block devices
• Read and Write are performed in Blocks
• Blocks are addressable, and hence can read in a non sequential way
• Examples are:
• Storage devices (hard disk, flash)
• /dev/sda1
• Represented by a file with type “b”
25. Creating a Device file
(mknod Command)
$ mknod <device file name> <c|b> <Major> <Minor>
$ mknod -m <permissions> <device file name> <c|b> <Major> <Minor>
• This command creates a device file
• The device file name is the file to be created. It should be located in /dev
• The device class is either a “Character” or “Block” device
• The Major Number is the number for the device driver to attach to
• The Minor Number is the number for this device file (it should be unique
within all devices attached to that device driver)
• You can deal with the device as a normal file
• It can be read only, write only, or read-write
• You can read from the file using like any file (use cat, or input redirection)
• You can write to a device file like any file (for example use echo or output
redirection)
• To create a device node
$ mknod /dev/my-new-device c 235 1
$ mknod -m 666 /dev/my-new-device c 235 1
27. SCSI Disk Drive Devices
• All SCSI Disk drive devices (such as those used for SCSI Hard-
disks) are attached to the sd driver which registers the Major
Number of 8
• The naming of the device files:
• /dev/sd[a-z][1-15]
• The number at the end is the partition number
• The device file without a number refers to the whole disk
28. TTY Terminals & Serial Interfaces
• All Linux virtual terminals have devices names
• /dev/tty[n] (example /dev/tty1 )
• All Linux Serial Interfaces use the device names
• /dev/ttyS[n] (example /dev/ttyS1)
30. Configuration of Serial Interfaces
(setserial Command)
$ setserial <options> <serial device file> <parameters to set>
• This command is used to read/write configuration of serial
ports
• This includes,
• Setting the I/O port used by the serial interface
• Setting the IRQ channel used by the serial interface
• Baud rate
• Other info
• Example:
$ sudo setserial -a /dev/ttyS1
$ sudo setserial /dev/ttyS1 baud_base 115200
31. Listing USB Hardware Devices
(lsusb Command)
$ lsusb
• This command lists the USB Hardware devices and information
about them
$ lsusb (List USB Devices)
$ lsusb -a (List USB Devices with all information about them)
$ lsusb -t (List USB Devices in a tree hierarchy structure)
32. Listing PCI Hardware Devices
(lspci Command)
$ lspci
• This command lists the PCI Hardware devices and information
about them
$ lspci
$ lspci -tv (Use tree hierarchical Structure with detailed info)
33. Copy And Convert data
(dd Command)
$ dd if=<source> of=<destination> <options>
• This command copies data from one file, perform any needed
conversions, and store it an another file
• It is a very useful command specially that it can use device
files as either source, destination, or both
• Be cautious when using this command. It can wipe a whole
partition or drive on your machine
• Example:
$ dd if=/dev/urandom of=~/random-data-file bs=4 count=1000
$ dd if=/dev/sr0 of=/my-file.iso bs=2048 conv=noerror,sync
$ dd if=/dev/sda of=~/disk.img
$ dd if=/dev/sda of=/dev/sdb
34. Dump of a File
(od Command)
$ od <Options> <file>
• This command dumps files in different formats
• Examples:
$ od -x file.img (output the file in Hexadecimal format)
$ od -s file.img (output the file in decimal format)