
linux
文章平均质量分 90
雨中风华
e-mail: fanxiushu@163.com
GITHUB: https://github.com/fanxiushu
能开源免费的都在我的GITHUB或优快云公布了,
其他的源码请勿再询问开源获取,因为问了也白问。
展开
-
linux平台实现虚拟磁盘驱动(通用的块设备驱动和基于SCSI的磁盘驱动)
struct Scsi_Host *sh = scsi_host_alloc(&nbt_scsi_driver_template, sizeof(自己定义的私有结构体大小));这时候 scsi_host_template 里边对应的 queuecommand 回调函数就会被调用,用来处理具体的SCSI磁盘的SCSI请求。然后响应 一些关于磁盘的特殊IOCTL, 同时响应 IRP_MG_READ和IRP_MJ_WRITE的读写磁盘扇区请求。原创 2023-08-16 23:44:26 · 1582 阅读 · 4 评论 -
Windows远程桌面实现之十二:桌面屏幕通过ONVIF协议与NVR等监控录像设备对接,以及进一步增强直播功能
by fanxiushu 2021-10-27 转载或引用请注明原始作者。标题还是取名叫 “Windows远程桌面实现“,其实经过全面的移植,xdisp_virt程序已经支持 macOS系统,各类linux发行版,(iOS也移植了,只是发布iOS的程序实在是麻烦,所以并没发布出来,暂时也没有对应的Android手机,所以Android系统暂时也没有移植)所以xdisp_virt已经不再是单一的Windows版本的程序了,标题中还保持”Windows“,是因为讲述这个系列的文章比较多。本文讲述在x原创 2021-10-28 12:18:08 · 6680 阅读 · 0 评论 -
macOS和Linux系统中的虚拟网卡(xFsRedir虚拟局域网功能扩展之其他平台的实现)
by fanxiushu 2021-07-07 转载或引用请注明原始作者。今年早些时候,实现了xFsRedir的虚拟局域网功能,包括普通的创建独立的虚拟节点组建的虚拟局域网,也包括跟同网段的真实局域网混合到一起的混合网络。前段时间实现的 NAT路由功能,以及根据各种过滤条件进行网络重定向(网络代理)的功能。(有兴趣可以去 https://github.com/fanxiushu...原创 2021-07-07 17:24:22 · 3389 阅读 · 0 评论 -
USB虚拟总线驱动开发扩展之(利用虚拟USB总线驱动实现U盘模拟)
by fanxiushu 2020-03-25 转载或引用请注明原始作者。USB虚拟总线驱动的使用范围是非常广泛的,可以使用它来模拟各种通用的USB设备。以前的文章阐述过基于windows平台和基于linux平台中的USB虚拟总线驱动开发,比如如下链接阐述的是在linux平台中的虚拟USB总线驱动开发原理:https://blo...原创 2020-03-25 21:43:38 · 4460 阅读 · 7 评论 -
Windows远程桌面实现之十 - 移植xdisp_virt之Linux(Utunbu,CentOS等)屏幕截屏,键鼠控制,声音 摄像头采集(四)
byfanxiushu 2019-12-30转载或引用请注明原始作者。前几章介绍xdisp_virt移植的时候,分别阐述了xdisp_virt移植整个工程,iOS平台相关的各种数据采集,macOS平台相关的各种数据采集。这篇文章阐述Linux平台下的桌面图像数据采...原创 2019-12-30 20:12:47 · 2378 阅读 · 2 评论 -
Windows远程桌面实现之十 - 把xdisp_virt项目移植到iOS,macOS,linux平台(一)
by fanxiushu 2019-12-06 转载或引用请注明原始作者。xdisp_virt项目到目前为止,持续了两年多时间,几乎都是在windows平台下的实现各种功能,因为持续时间比较长,能想到的功能都给添加到xdisp_virt中了,尤其在windows截屏这部分,为了更好的截取windows桌面屏幕数据,能想到的都想办法实现了。为了支持全屏3D游戏,添加了DXHOOK动态库,为了...原创 2019-12-06 19:39:17 · 1664 阅读 · 0 评论 -
linux平台实现USB虚拟总线驱动二(把驱动移植到Android系统)
byfanxiushu 2019-11-07 转载或引用请注明原始作者。接上文,把上文中开发的驱动移植到android系统中来。因为我身边没有Android系统的设备,很疑惑,目前确实没有。因此只好在模拟器上打主意了,我想模拟器跟真机其实差不多的,没道理模拟器能移植成功,而真机无法移植成功。要移植驱动,需要重新编译Android系统的linuxkernel源码,重新替换原来的ker...原创 2019-11-08 11:20:05 · 1162 阅读 · 0 评论 -
linux平台实现USB虚拟总线驱动一(原理以及开发流程)
by fanxiushu 2019-11-07 转载或引用请注明原始作者。之前的文章阐述过在windows平台下,如何实现USB虚拟总线驱动,以及如何在windows平台采集真实USB设备的数据,然后通过网络传输,达到 ”延长“ USB线缆的效果。相关链接如下:https://blog.youkuaiyun.com/fanxi...原创 2019-11-08 09:57:32 · 3840 阅读 · 0 评论 -
NDIS协议驱动应用之(另类的NAT路由程序开发)
by fanxiushu 2019-02-23 转载或引用请注明原始作者。在上一篇文章中,描述了windows7以上平台下NDIS协议驱动的开发过程。本文将描述NDIS协议驱动的其中一个用途,用于实现一个介于应用层和驱动层的混...原创 2019-02-27 00:19:30 · 1700 阅读 · 4 评论 -
USB驱动开发之远程访问USB设备扩展(linux平台USB设备数据采集端)
by fanxiushu 2017-06-20 转载或引用请注明原始作者.前面的章节陆续介绍了远程访问USB设备的相关知识,从数据采集端到虚拟总线驱动,到虚拟控制器和根集线器驱动等、相关文章如下链接:http://blog.youkuaiyun.com/fanxiushu/article/details/51420096 (USB设备驱动开发之远程访问USB设备(一USB设备数据采集端原创 2017-06-20 02:23:51 · 3614 阅读 · 0 评论 -
linux平台用VFS驱动实现目录重定向(文件驱动实现目录重定向 四)
By Fanxiushu 2016-09-27 转载或引用请注明原始作者当你工作中或者生活中都面临着多台电脑,而且要经常访问每台电脑上的文件时候,你会很需要一种机制,或者工具,能非常方便的访问每台电脑的文件。各种操作系统平台都通用的工具,比如FTP工具,HTTP工具,windows平台最常用就是网上邻居(SMB/CIFS协议),UNIX等平台的网络文件系统(SMB,NFS等)当然NFS是跨平台的,windows也能使用,而且NFS是网络文件系统,可以跟原创 2016-09-27 16:14:34 · 3764 阅读 · 3 评论 -
基于TCP流协议的数据包通讯
TCP通讯是流协议,它不像UDP那样基于包为边界的通讯方式,TCP流式协议,举个简单例子,一端用send 分别发送 100,123,120字节的数据,另一端用recv可以一下子接收到 100+123+120=343字节的数据,或者先接收 3个字节的数据,再接收余下的340字节,不管另一端怎么接收,最终是要接收到343字节的数据。而且TCP保证数据的完整性和顺序,也就是两端是数据同步原创 2016-02-03 23:43:42 · 7533 阅读 · 0 评论 -
海量数据处理
By Fanxiushu ,引用和转载请注明原作者海量日志分析收费平台。这是多年前负责的一个项目,因为数据量十分的庞大,处理办法也比较的复杂。现在写出来,希望对正在做这方面的事情的朋友有点帮助。非常有幸能负责这个项目的分析处理。因为可以从处理这些庞大的数据中,体会到挑战的乐趣;更加考验自己的技术水平和经验跟能力。日志分析,就是对 IIS,apache等浏览器产生的标准日志文原创 2013-04-25 23:50:03 · 1219 阅读 · 0 评论 -
linux内核select/poll,epoll实现与区别
下面文章在这段时间内研究 select/poll/epoll的内核实现的一点心得体会:select,poll,epoll都是多路复用IO的函数,简单说就是在一个线程里,可以同时处理多个文件描述符的读写。select/poll的实现很类似,epoll是从select/poll扩展而来,主要是为了解决select/poll天生的缺陷。epoll在内核版本2.6以上才出现的新的函数,而他原创 2013-02-22 00:01:56 · 3028 阅读 · 0 评论 -
linux虚拟网卡驱动代码
linux平台实现虚拟网卡,在系统中模拟出一块虚拟的网卡出来,把发送到这块网卡的数据通过某种途径转发到应用层程序,由应用层程序负责处理这些数据。 linux内核中有 TUN/TAP,其实已经实现了这个功能,只要 open(“/dev/net/tun",O_RDWR); (2.6内核),然后ioctl创建一个虚拟网卡,系统中就会出现 名字叫 TUN或者TAP的网卡,接着就可以调用原创 2013-01-21 17:35:38 · 7549 阅读 · 12 评论 -
linux网卡驱动一点点基础知识
这算是真正的第一次接触linux驱动吧,为了实现在linux平台下的虚拟网卡,开始钻研linux驱动开发。先了解linux设备, 分为三种类型设备: 字符设备,块设备,网络接口设备。linux驱动开发基本就是围绕这三种设备驱动的开发。字符设备按照字节为单位传输数据,像字节流一样的顺序访问,块设备每次按照一个数据块的方式传输,一般是512的倍数,可随机访问,用于磁盘驱动等驱动中。原创 2013-01-15 23:01:24 · 2186 阅读 · 0 评论 -
红黑树算法源代码(摘自linux内核代码)
在应用层开发中,STL标准库的map容器内部实现就是红黑树算法, 既然有现成的,可能大部分人都不会写红黑树算法来管理复杂的数据结构, 不过基于许多的考虑,有时很需要自己实现原始的红黑树数据结构。比如做嵌入式开发,需要效率高的执行代码; 比如在做庞大的服务器,需要高效的处理各种复杂的数据结构,比如在驱动开发中,需要管理复杂的数据结构,这种情况除了自己实现红黑树之外没别的办法。原创 2013-01-14 16:01:31 · 1924 阅读 · 0 评论