Enviar búsqueda
Cargar
Low-level Accesses
•
8 recomendaciones
•
25,627 vistas
Anil Kumar Pugalia
Seguir
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 16
Recomendados
Network Drivers
Network Drivers
Anil Kumar Pugalia
File System Modules
File System Modules
Anil Kumar Pugalia
PCI Drivers
PCI Drivers
Anil Kumar Pugalia
BeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
SysPlay eLearning Academy for You
System Calls
System Calls
Anil Kumar Pugalia
Shell Scripting
Shell Scripting
Anil Kumar Pugalia
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
Block Drivers
Block Drivers
Anil Kumar Pugalia
Recomendados
Network Drivers
Network Drivers
Anil Kumar Pugalia
File System Modules
File System Modules
Anil Kumar Pugalia
PCI Drivers
PCI Drivers
Anil Kumar Pugalia
BeagleBoard-xM Bootloaders
BeagleBoard-xM Bootloaders
SysPlay eLearning Academy for You
System Calls
System Calls
Anil Kumar Pugalia
Shell Scripting
Shell Scripting
Anil Kumar Pugalia
Platform Drivers
Platform Drivers
SysPlay eLearning Academy for You
Block Drivers
Block Drivers
Anil Kumar Pugalia
Audio Drivers
Audio Drivers
Anil Kumar Pugalia
Bootloaders
Bootloaders
Anil Kumar Pugalia
File System Modules
File System Modules
Anil Kumar Pugalia
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Linux DMA Engine
Linux DMA Engine
SysPlay eLearning Academy for You
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
Kernel Programming
Kernel Programming
Anil Kumar Pugalia
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
gcc and friends
gcc and friends
Anil Kumar Pugalia
Linux Network Management
Linux Network Management
Anil Kumar Pugalia
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
Kernel Timing Management
Kernel Timing Management
SysPlay eLearning Academy for You
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
Architecture Porting
Architecture Porting
Anil Kumar Pugalia
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
Embedded Software Design
Embedded Software Design
Anil Kumar Pugalia
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Character Drivers
Character Drivers
Anil Kumar Pugalia
RISC-V 30908 patra
RISC-V 30908 patra
RISC-V International
[Defcon] Hardware backdooring is practical
[Defcon] Hardware backdooring is practical
Moabi.com
Más contenido relacionado
La actualidad más candente
Audio Drivers
Audio Drivers
Anil Kumar Pugalia
Bootloaders
Bootloaders
Anil Kumar Pugalia
File System Modules
File System Modules
Anil Kumar Pugalia
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Linux DMA Engine
Linux DMA Engine
SysPlay eLearning Academy for You
SPI Drivers
SPI Drivers
SysPlay eLearning Academy for You
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Anil Kumar Pugalia
Kernel Programming
Kernel Programming
Anil Kumar Pugalia
Serial Drivers
Serial Drivers
SysPlay eLearning Academy for You
gcc and friends
gcc and friends
Anil Kumar Pugalia
Linux Network Management
Linux Network Management
Anil Kumar Pugalia
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
Kernel Timing Management
Kernel Timing Management
SysPlay eLearning Academy for You
Introduction to Linux Drivers
Introduction to Linux Drivers
Anil Kumar Pugalia
Architecture Porting
Architecture Porting
Anil Kumar Pugalia
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
SysPlay eLearning Academy for You
Embedded Software Design
Embedded Software Design
Anil Kumar Pugalia
Introduction to Linux
Introduction to Linux
Anil Kumar Pugalia
Character Drivers
Character Drivers
Anil Kumar Pugalia
La actualidad más candente
(20)
Audio Drivers
Audio Drivers
Bootloaders
Bootloaders
File System Modules
File System Modules
SPI Drivers
SPI Drivers
Introduction to Linux
Introduction to Linux
Linux DMA Engine
Linux DMA Engine
SPI Drivers
SPI Drivers
Kernel Debugging & Profiling
Kernel Debugging & Profiling
Kernel Programming
Kernel Programming
Serial Drivers
Serial Drivers
gcc and friends
gcc and friends
Linux Network Management
Linux Network Management
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
Kernel Timing Management
Kernel Timing Management
Introduction to Linux Drivers
Introduction to Linux Drivers
Architecture Porting
Architecture Porting
BeagleBone Black Bootloaders
BeagleBone Black Bootloaders
Embedded Software Design
Embedded Software Design
Introduction to Linux
Introduction to Linux
Character Drivers
Character Drivers
Similar a Low-level Accesses
RISC-V 30908 patra
RISC-V 30908 patra
RISC-V International
[Defcon] Hardware backdooring is practical
[Defcon] Hardware backdooring is practical
Moabi.com
Slideshare - PCIe
Slideshare - PCIe
Jin Wu
Linux Porting
Linux Porting
Anil Kumar Pugalia
A 32-Bit Parameterized Leon-3 Processor with Custom Peripheral Integration
A 32-Bit Parameterized Leon-3 Processor with Custom Peripheral Integration
Talal Khaliq
[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 mode
[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 mode
Moabi.com
AllBits presentation - Lower Level SW Security
AllBits presentation - Lower Level SW Security
AllBits BVBA (freelancer)
The Cell Processor
The Cell Processor
Heiko Joerg Schick
Hardware backdooring is practical : slides
Hardware backdooring is practical : slides
Moabi.com
Linux Memory Management
Linux Memory Management
Anil Kumar Pugalia
Nios2 and ip core
Nios2 and ip core
anishgoel
my Windows 7 info
my Windows 7 info
isky guard
OSDC 2017 | Open POWER for the data center by Werner Fischer
OSDC 2017 | Open POWER for the data center by Werner Fischer
NETWAYS
OSDC 2017 - Werner Fischer - Open power for the data center
OSDC 2017 - Werner Fischer - Open power for the data center
NETWAYS
OSDC 2017 | Linux Performance Profiling and Monitoring by Werner Fischer
OSDC 2017 | Linux Performance Profiling and Monitoring by Werner Fischer
NETWAYS
PCI_Express_Basics_Background.pdf
PCI_Express_Basics_Background.pdf
zahixdd
Session01_Intro.pdf
Session01_Intro.pdf
RahnerJames
Csw2016 economou nissim-getting_physical
Csw2016 economou nissim-getting_physical
CanSecWest
Cao 2012
Cao 2012
Raja Basharat
Track c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eve
chiportal
Similar a Low-level Accesses
(20)
RISC-V 30908 patra
RISC-V 30908 patra
[Defcon] Hardware backdooring is practical
[Defcon] Hardware backdooring is practical
Slideshare - PCIe
Slideshare - PCIe
Linux Porting
Linux Porting
A 32-Bit Parameterized Leon-3 Processor with Custom Peripheral Integration
A 32-Bit Parameterized Leon-3 Processor with Custom Peripheral Integration
[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 mode
[Ruxcon] Breaking virtualization by switching the cpu to virtual 8086 mode
AllBits presentation - Lower Level SW Security
AllBits presentation - Lower Level SW Security
The Cell Processor
The Cell Processor
Hardware backdooring is practical : slides
Hardware backdooring is practical : slides
Linux Memory Management
Linux Memory Management
Nios2 and ip core
Nios2 and ip core
my Windows 7 info
my Windows 7 info
OSDC 2017 | Open POWER for the data center by Werner Fischer
OSDC 2017 | Open POWER for the data center by Werner Fischer
OSDC 2017 - Werner Fischer - Open power for the data center
OSDC 2017 - Werner Fischer - Open power for the data center
OSDC 2017 | Linux Performance Profiling and Monitoring by Werner Fischer
OSDC 2017 | Linux Performance Profiling and Monitoring by Werner Fischer
PCI_Express_Basics_Background.pdf
PCI_Express_Basics_Background.pdf
Session01_Intro.pdf
Session01_Intro.pdf
Csw2016 economou nissim-getting_physical
Csw2016 economou nissim-getting_physical
Cao 2012
Cao 2012
Track c-High speed transaction-based hw-sw coverification -eve
Track c-High speed transaction-based hw-sw coverification -eve
Más de Anil Kumar Pugalia
Processes
Processes
Anil Kumar Pugalia
System Calls
System Calls
Anil Kumar Pugalia
Embedded C
Embedded C
Anil Kumar Pugalia
Playing with R L C Circuits
Playing with R L C Circuits
Anil Kumar Pugalia
Video Drivers
Video Drivers
Anil Kumar Pugalia
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
Anil Kumar Pugalia
References
References
Anil Kumar Pugalia
Functional Programming with LISP
Functional Programming with LISP
Anil Kumar Pugalia
Power of vi
Power of vi
Anil Kumar Pugalia
"make" system
"make" system
Anil Kumar Pugalia
Hardware Design for Software Hackers
Hardware Design for Software Hackers
Anil Kumar Pugalia
RPM Building
RPM Building
Anil Kumar Pugalia
Linux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Anil Kumar Pugalia
Timers
Timers
Anil Kumar Pugalia
Threads
Threads
Anil Kumar Pugalia
Synchronization
Synchronization
Anil Kumar Pugalia
Processes
Processes
Anil Kumar Pugalia
Signals
Signals
Anil Kumar Pugalia
Linux File System
Linux File System
Anil Kumar Pugalia
Inter Process Communication
Inter Process Communication
Anil Kumar Pugalia
Más de Anil Kumar Pugalia
(20)
Processes
Processes
System Calls
System Calls
Embedded C
Embedded C
Playing with R L C Circuits
Playing with R L C Circuits
Video Drivers
Video Drivers
Mobile Hacking using Linux Drivers
Mobile Hacking using Linux Drivers
References
References
Functional Programming with LISP
Functional Programming with LISP
Power of vi
Power of vi
"make" system
"make" system
Hardware Design for Software Hackers
Hardware Design for Software Hackers
RPM Building
RPM Building
Linux User Space Debugging & Profiling
Linux User Space Debugging & Profiling
Timers
Timers
Threads
Threads
Synchronization
Synchronization
Processes
Processes
Signals
Signals
Linux File System
Linux File System
Inter Process Communication
Inter Process Communication
Último
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
Fwdays
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Stephanie Beckett
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
DianaGray10
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Mark Simos
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Addepto
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
LoriGlavin3
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
Pixlogix Infotech
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
Lars Bell
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Fwdays
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
Enterprise Knowledge
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Zilliz
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Rizwan Syed
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
Sri Ambati
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
gvaughan
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
RankYa
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Fwdays
Último
(20)
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
Low-level Accesses
1.
© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Low-level Accesses
2.
2© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What to Expect? After this session, you would know Various Address Spaces in Linux Role of Memory Manager in Linux Accessing the Memory in Kernel Space Accessing the Device or Hardware Memory Registers Low-level Access in Drivers
3.
3© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Address Spaces in Linux An Example assuming 32-bit architecture 4GB Process VA Space 1 User Space 4GB Process VA Space N . . . Logical Address (Non-swappable) Virtual Address (Swappable) 3GB Virtual Address for User 1GB VA for Kernel Kernel Space (fixed by kernel) 0x00000000 0xBFFFFFFF 0xFFFFFFFF 0xC0000000 Upto 3GB Memory (RAM) Addressing Upto 1GB Dev Addressing Physical Address Space (fixed by architecture) 0x00000000 0xBFFFFFFF 0xC0000000 0xFFFFFFFF Bus Address (incl. both h/w memory & registers) Physical Address (incl. only memory)
4.
4© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Linux Memory Manager Provides Access Control to h/w & memory resources Provides Dynamic Memory to kernel sub-system Drivers File Systems Stacks Provides Virtual Memory to Kernel & User space Kernel & User Processes run in their own virtual address spaces Providing the various features of a Linux system System reliability, Security Communication Program Execution Support
5.
5© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Kernel Space Memory Access Virtual Address for Physical Address Header: <linux/gfp.h> unsigned long __get_free_pages(flags, order); etc void free_pages(addr, order); etc Header: <linux/slab.h> void *kmalloc(size_t size, gfp_t flags); GFP_USER, GFP_KERNEL, GFP_DMA void kfree(void *obj); Header: <linux/vmalloc.h> void *vmalloc(unsigned long size); void vfree(void *addr);
6.
6© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Kernel Space Device Access Virtual Address for Bus/IO Address Header: <asm/io.h> void *ioremap(phys_addr_t bus_addr, unsigned long size); void iounmap(void *addr); I/O Memory Access Header: <asm/io.h> u[8|16|32] ioread[8|16|32](void *addr); void iowrite[8|16|32](u[8|16|32] value, void *addr); Kernel Window: /proc/iomem Access Permissions Header: <linux/ioport.h> struct resource *request_mem_region(resource_size_t start, resource_size_t size, label); void release_mem_region(resource_size_t start, resource_size_t size);
7.
7© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. x86 Memory & Device Access x86 CPU Memory Controller Bus Controller RAM Device Address Space Address BusData Bus 32 32 32 32
8.
8© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. x86 Hardware Architecture complete x86 CPU North Bridge South Bridge RAM (PCI) Device Address Space I/O Ports / Address Space I/O Line Address BusData Bus 32 32 32 32 32 16
9.
9© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. I/O Access (x86* specific) I/O Port Access u8 inb(unsigned long port); u16 inw(unsigned long port); u32 inl(unsigned long port); void outb(u8 value, unsigned long port); void outw(u16 value, unsigned long port); void outl(u32 value, unsigned long port); Header: <asm/io.h> Kernel Window: /proc/ioports Access Permissions Header: <linux/ioport.h> struct resource *request_region(resource_size_t start, resource_size_t size, label); void release_region(resource_size_t start, resource_size_t size);
10.
© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. DMA Mapping To Device PM VM PA VA From Device APIs dma_addr_t dma_map_single(struct device *, void *, size_t, enum dma_data_direction); void dma_unmap_single(struct device *, dma_addr_t, size_t, enum dma_data_direction); Directions DMA_BIDIRECTIONAL DMA_TO_DEVICE DMA_FROM_DEVICE DMA_NONE Header: <linux/dma-mapping.h>
11.
© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. DMA Allocation PM VM APIs void *dma_alloc_coherent(struct device *, size_t, dma_addr_t *, gfp_t); void dma_free_coherent(struct device *, size_t, void *, dma_addr_t); int dma_set_mask(struct device *, u64 mask); Header: <linux/dma-mapping.h> PA VA
12.
12© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Barriers Heard about Processor Optimization? void barrier(void); For surrounding instructions Header: <linux/kernel.h> void [r|w|]mb(void); For surrounding read/write instructions Header: <asm/system.h>
13.
13© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Memory & Character Driver Dynamic Memory Experiments Preserve latest write in /dev/memory Control the preserve size using ioctl Implement seek
14.
14© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Hardware & Character Driver Digital/Analog I/O Control on the Board Figure out Operation Relevant Registers Hardware Access Addresses Relevant low-level access APIs to be used Driver for I/O access over /dev/io
15.
15© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. What all have we learnt? Various Address Spaces in Linux Role of Memory Manager in Linux Accessing the Memory in Kernel Space Accessing the Device or Hardware Memory Registers Barriers Low-level Access in Drivers
16.
16© 2010-15 SysPlay
Workshops <workshop@sysplay.in> All Rights Reserved. Any Queries?