CASACURSOSESTUDANTESDOAÇÕESVÍDEOSEVENTOSTUTORIAISLINKSNOTÍCIACONTATO


VIDEOS 》 Linux ioctl() API interface

Refer:
net-tools (ioctl APIs - user-space side):
net-tools sourceforge.net - http://net-tools.sourceforge.net
net-tools sourceforge.net Project - https://sourceforge.net/projects/net-tools
net-tools Linux Foundation Wiki - https://wiki.linuxfoundation.org/networking/net-tools
net-tools Git source - https://sourceforge.net/p/net-tools/code/ci/master/tree
ifconfig.c - https://sourceforge.net/p/net-tools/code/ci/master/tree/ifconfig.c

Refer:
Wiki:
Carrier grade - https://en.wikipedia.org/wiki/Carrier_grade
Carrier Grade Linux - https://en.wikipedia.org/wiki/Carrier_Grade_Linux
High Availability (HA) - https://en.wikipedia.org/wiki/High_availability
Redundancy(engineering) - https://en.wikipedia.org/wiki/Redundancy_(engineering)

Kernel Source (ioctl APIs - kernel-space side):
/net/core/dev_ioctl.c - http://elixir.free-electrons.com/linux/latest/source/net/core/dev_ioctl.c
/net/core/dev.c - http://elixir.free-electrons.com/linux/latest/source/net/core/dev.c
The Linux Channel video series:
Linux Kernel net_device data-structure - http://the-linux-channel.the-toffee-project.org/index.php?page=41-videos-linux-kernel-net-device-data-structure
Linux Kernel Networking Sub-system - http://the-linux-channel.the-toffee-project.org/index.php?page=45-videos-linux-kernel-networking-sub-system
Linux Kernel /proc Interface - http://the-linux-channel.the-toffee-project.org/index.php?page=106-videos-linux-kernel-proc-interface
Linux Kernel sk_buff data-structure - Episode-1 to Episode-10 - http://the-linux-channel.the-toffee-project.org/index.php?page=47-videos-linux-kernel-sk-buff-data-structure
Linux Kernel sk_buff data-structure - Episode-11 to Episode-18 - http://the-linux-channel.the-toffee-project.org/index.php?page=111-videos-linux-kernel-sk-buff-data-structure

Download this episode my entire kernel module sample code, make file, clean script HERE.

Refer:
Device Drivers, Part 9: I/O Control in Linux - by Anil Kumar Pugalia <email_at_sarika-pugs_dot_com> - http://opensourceforu.com/2011/08/io-control-in-linux/
The Linux Kernel Module Programming Guide - Chapter 7. Talking To Device Files - http://tldp.org/LDP/lkmpg/2.6/html/x892.html
(NOTE: Sample example source-code mentioned here will not work as it is in newer kernels. It needs porting.)

Refer:
/include/linux/uaccess.h - copy_from_user(), copy_to_user() - http://elixir.free-electrons.com/linux/latest/source/include/linux/uaccess.h
/arch/x86/include/asm/uaccess_32.h - raw_copy_from_user(), raw_copy_to_user() [x86 32-bit] http://elixir.free-electrons.com/linux/latest/source/arch/x86/include/asm/uaccess_32.h
/arch/x86/include/asm/uaccess_64.h - raw_copy_from_user(), raw_copy_to_user() [x86 64-bit] http://elixir.free-electrons.com/linux/latest/source/arch/x86/include/asm/uaccess_64.h
/arch/arm/include/asm/uaccess.h - raw_copy_from_user(), raw_copy_to_user() [arm] http://elixir.free-electrons.com/linux/latest/source/arch/arm/include/asm/uaccess.h
/arch/arm64/include/asm/uaccess.h- raw_copy_from_user(), raw_copy_to_user() [arm 64-bit] http://elixir.free-electrons.com/linux/latest/source/arch/arm64/include/asm/uaccess.h

As discussed in the video (Episode 4), we cannot use memcpy() to communicate between user-space applications (processes). Since each process has its own virtual memory space. Instead we need to use standard Linux predefined IPC (for example: sockets, message queues, pipes, signals and so on), which in turn built via APIs such as: copy_from_user() and copy_to_user().
copy_from_user() and copy_to_user()
Notice: copy_from_user() and copy_to_user() looks similar to memcpy() in terms of their function arguments.
copy_from_user() and copy_to_user() vs memcpy()
Here is the Kernel source API flow of the copy_from_user() and copy_to_user() APIs. As discussed in the video, eventually it transitions from architecture (or platform) independent code to the platform (or hardware/CPU) dependent code:
copy_from_user() and copy_to_user() Kernel Source API path



Suggested Topics:


Video Episodes :: Linux Kernel programming

Linux Kernel - Containers and Namespaces ↗
Thursday' 09-Jul-2020

Linux Kernel Compilation ↗
Thursday' 09-Jul-2020

Linux Kernel FileSystems Subsystem ↗
Thursday' 09-Jul-2020

Linux ioctl() API interface ↗
Thursday' 09-Jul-2020
Watch detailed videos and read topics on Linux Kernel Programming and Linux ioctl() API interface

Linux Kernel Architecture ↗
Thursday' 09-Jul-2020

Linux Operating System - User-space Processes ↗
Thursday' 09-Jul-2020

Linux Kernel Programming - Device Drivers ↗
Thursday' 09-Jul-2020
Watch detailed videos and read topics on Linux Kernel Programming - Device Drivers

Linux Kernel Programming ↗
Thursday' 09-Jul-2020

Linux Kernel /proc Interface ↗
Thursday' 09-Jul-2020

Join The Linux Channel :: Facebook Group ↗

Visit The Linux Channel :: on Youtube ↗


Join a course:

💎 Linux, Kernel, Networking and Device Drivers: PDF Brochure
💎 PhD or equivalent (or Post Doctoral) looking for assistance: Details
💎 ... or unlimited life-time mentorship: Details


💗 Help shape the future: Sponsor/Donate


Tópicos recomendados:
Featured Video:
Assista no Youtube - [97//0] B.E and M.E Final Year Projects - Execute your project ↗

Compiling a C Compiler with a C Compilter | Compile gcc with gcc ↗
Thursday' 09-Jul-2020
The fundamental aspect of a programming language compiler is to translate code written from language to other. But most commonly compilers will compile code written in high-level human friendly language such as C, C++, Java, etc. to native CPU architecture specific (machine understandable) binary code which is nothing but sequence of CPU instructions. Hence if we see that way we should able to compile gcc Compiler source code with a gcc Compiler binary.

AT&T Archives: The UNIX Operating System ↗
Thursday' 09-Jul-2020

CEO, CTO Talk ↗
Thursday' 09-Jul-2020

Arduino UNO - RO Water Purifier Controller ↗
Thursday' 09-Jul-2020
Here is a Youtube VLOG of my DIY RO Water Purifier Controller done via Arduino UNO. I want the Arduino UNO to control the RO pump, so that it pumps for a specific duration and stops automatically. This is done via Opto-isolated 4 Channel 5V 10A Relay Board meant for Arduino UNO, Raspberry Pi or similar SoC boards which offers GPIO pins. To this relay I have connected the RO water purifier booster pump which works at 24V DC connected via 220V AC to 24V DC power supply adaptar. I have also connected a small active 5V buzzer to notify the progress and completion as it fills the tank/canister.

Programming Language Performance and Overheads ↗
Thursday' 09-Jul-2020
A detailed Youtube video series of various programming language performance and overheads - a big picture

Apache web-server installation ↗
Thursday' 09-Jul-2020

Linux Kernel USB ↗
Thursday' 09-Jul-2020

Telnet installation and remote access ↗
Thursday' 09-Jul-2020

mmap() munmap() - map or unmap files or devices into memory ↗
Thursday' 09-Jul-2020

CYRIL INGÉNIERIE - CoreFreq Linux CPU monitoring software ↗
Thursday' 09-Jul-2020


Trending Video:
Assista no Youtube - [91//0] 205 VLOG - Choose the right harddisk for your NAS ↗

Linux Kernel Network Programming - struct net - struct netns_ipv4 - /proc/sys/net/ipv4 ↗
Thursday' 09-Jul-2020



Recommended Video:
Assista no Youtube - [860//0] 0x18a Network MTU and Path MTU Discovery PMTUD | WAN and Internet Performance Optimization - Part1 ↗