
转载记录
文章平均质量分 72
it潮人
这个作者很懒,什么都没留下…
展开
-
IP fragment是什么意思?如何防御IP fragment攻击?
如果路由器、防火墙等中间设备对这些分片报文进行重组后在匹配其安全策略,那么又会对这些中间设备的资源带来极大的消耗,特别是在遇到分片攻击的时候,这些中间设备会在第一时间内消耗完其所有内存资源,从而导致全网中断的严重后果。黑客构造的分片报文,但是不向接收方发送最后一个分片报文,导致接收方要为所有的分片报文分配内存空间,可由于最后一个分片报文永远不会达到,接收方的内存得不到及时的释放(接收方会启动一个分片重组的定时器,在一定时间内如果无法完成重组,将向发送方发送。转载 2024-12-25 13:33:37 · 100 阅读 · 0 评论 -
Visual Studio创建简单MFC工程
代码语言:javascript。转载 2024-12-18 18:01:11 · 462 阅读 · 0 评论 -
Source Insight 4.x使用Ctrl+C无法复制
选用SourceInsight浏览代码目的是为了提高工作效率和编写代码的体验,在安装SourceInsight(3.5和4.0)后,选中代码片后,进行复制Ctrl+C或者剪切Ctrl+V快捷键操作时,光标立即跳入剪切板clips window(此前剪切板未打开),严重影响代码的编辑效率。关闭与SourceInsight热键冲突的软件(如谷歌翻译,有道词典,金山词霸的划词功能)。在使用的时候,可以鼠标调用。鼠标右击列表中的复制和粘贴功能正常,推测快捷键受其他热键影响未正常工作。转载 2024-12-09 18:24:03 · 554 阅读 · 0 评论 -
教你如何设置win7的快速启动功能
设置快速启动栏可以帮助我们能够更方便地打开常用软件。但是有不少人不知道该如何设置,其实方法非常简单,只需要修改一下文件夹路径,然后把程序添加到快速启动栏就可以了,下面就一起来看看具体步骤吧。转载 2024-12-08 12:09:23 · 1708 阅读 · 0 评论 -
exec函数用法总结
3、可能的几种错误有,找不到文件或路径,errno为ENOENT;execlp、execvp这两个函数第一个形参是名为file表示可以只列出文件名就可以了,不用指出它的路径。2、exec函数族执行成功后不会返回,执行失败会返回 -1,错误代码存放在errno中。要记住这六个函数之间的区别,就要搞清楚 “l” 、“v”、“p”、“e”代表的含义。族的时候,经常搞不清楚这六个函数之间的区别,下面就总结一下这六个函数的区别。“l”表示参数以列表的形式表示;“v”表示参数以数组的形式表示;1、参数以NULL结尾;转载 2024-12-06 09:41:41 · 58 阅读 · 0 评论 -
svn从一个分支同步代码到另外一个分支
接着在Show log中选择要从开发分支同步到补丁A分支的Revision号。1.4 在URL to merge from中填入A分支的地址。假设要同步代码的svn分支为:svn://A,简记为A。1.6 同步完毕后,检查无误后,在B分支中提交即可。svn目标分支的地址为:svn://B,简记为B。1.5 最后点击Merge(合并)即可。由于水平有限,如有问题,请指正。1.1 拉取B的最新代码。1.3 Next后选择第一个。转载 2024-11-14 15:35:22 · 411 阅读 · 0 评论 -
yocto错误汇总!!!
robot@robot-virtual-machine:~/poky$ ls bitbake LICENSE.GPL-2.0-only meta-selftest README.qemu build LICENSE.MIT README.poky scripts robot@robot-virtual-machine:~/poky$ source oe-init-build-env bash: oe-init-build-env: 没有那个文件或目录。下载的yocto不完全,删除后按照此博客重新下载。原创 2024-10-20 17:00:23 · 947 阅读 · 0 评论 -
Makefile中的常用函数 - 字符串和文件
makefile函数转载 2022-07-23 08:22:33 · 1640 阅读 · 0 评论 -
Yocto:解决“QA Issue: Package version for package went backwards which would break package feeds”
主要原因是:如果启用了构建历史记录,那么当一个包在相同的名称下被构建出来时,Yocto 的 ERROR_QA 或者 WARN_QA 就会报告它的版本比以前构建的包的版本要低。如果你将旧版本包放置到镜像中,并使用该镜像升级目标系统上的包,则旧版本包可能导致目标系统无法正确升级到该包的“新”版本。转载 2024-10-17 14:22:54 · 137 阅读 · 0 评论 -
yocto
Yocto项目(YP)是一个开源协作项目,可帮助开发人员创建基于Linux的自定义系统,而无需考虑其硬件体系结构。该项目提供了一套灵活的工具和空间,全世界的嵌入式开发人员可以在其中共享技术,软件堆栈,配置和最佳实践,这些技术,可用于为嵌入式和IOT设备或需要定制Linux OS的地方创建量身定制的Linux映像。yocto的发行版为Poky,也是用来构建系统的基本工具。Poky包含定制版OpenEmbedded(OECore)和BitBake构建引擎,以及帮助我们构建系统的其他元数据,转载 2024-10-14 19:01:38 · 84 阅读 · 0 评论 -
Yocto编译系统介绍
其次是一个可用的Linux系统包含引导模块、内核、文件系统,以及很多必要的应用程序,如果手动编译上述的这些东西(LFS就是一个例子),需要花费很大的力气而且容易出错,而使用OpenEmbeded只需要几个简单的命令即可自动完成整个构建的过程。do_populate_sysroot:将do_install安装的目录文件拷贝到相应的sysroot中,这个目录最终会被放到共享区,其它任务构建就可以共享,具体哪些目标会被拷贝,取决于定义的sysroot相关的变量。Yocto,是一个开源社区。转载 2024-10-14 18:43:38 · 1336 阅读 · 0 评论 -
嵌入式Linux 开发经验:platform_driver_register 的使用方法
其实平台驱动本身一点都不麻烦,相反如果自己去拿个【设备节点名称】去匹配设备树,才会比较的麻烦,也就是说,注册了平台驱动,这个匹配操作就自动完成了,不需要用户写一些匹配设备树的操作函数手动去匹配了。利用平台驱动的这个机制,在设备匹配成功再去注册设备,那么注册实际的设备的操作放在平台驱动 probe 中调用,再适合不过了,如根据设备树觉得是否需要注册一个 misc 字符设备,如果匹配失败,那这个设备不存在,就无须注册,匹配成功,说明设备存在,就会在 probe 中注册设备。/* 移除驱动模块时会调用 */转载 2024-09-30 14:07:26 · 678 阅读 · 0 评论 -
Linux内核的 EXPORT_SYMBOL 和 EXPORT_SYMBOL_GPL 的作用
它表示一个符号,如果被重新定位引用,该符号的值不会与其地址,但必须在运行时调用。“w” 符号是一个弱符号,未被明确标记为弱对象符号。当弱定义符号与正常定义符号链接时使用定义的符号时没有错误。当弱未定义符号被链接且未定义该符号时,该符号的值将在特定系统中确定没有错误的方式。当弱未定义符号被链接并且符号未被定义,则弱符号的值变为零,没有错误。对于这样的符号,动态链接器将确保在在整个过程中,只有一个符号使用此名称和类型。第二列,是符号属性,小写表示局部符号,大写表示全局符号(具体含义参考man nm);转载 2024-09-30 13:30:21 · 592 阅读 · 0 评论 -
实现自动化构建与集成:Jenkins与SVN整合的指南
在SVN配置文件下有这样一个文件:/usr/local/svn/svnrepos/project/hooks/post-commit.tmpl,表示在执行commit之后,SVN会做什么事情。第一步:配置web发布服务器地址,参考上面的:https://www.cnblogs.com/zhangzhixi/p/17015148.html#_label2_6。比如我们这个项目的地址触发地址是:http://110.43.204.225/jenkins/job/apple/build?转载 2024-09-27 14:01:18 · 1127 阅读 · 0 评论 -
一招解决,SVN控制的文件夹都是绿色勾,没有叹号或者其它标识的问题
项目文件夹右键 》 tortoiseSVN-》setting-》Icon Overlays设置为Default。刷新文件夹即可看到效果。转载 2024-08-29 10:49:24 · 394 阅读 · 0 评论 -
16进制对应的ASCII表
转载 2024-08-29 10:40:14 · 1140 阅读 · 0 评论 -
《一篇搞懂》系列之一 —— iptables
iptables其实只是一个简称,其真正代表的是这个IP数据包过滤系统。为了简便,本文也将整套系统用iptables简称。iptables是3.5版本的Linux内核集成的IP数据包过滤系统。当系统接入网络时,该系统有利于在Linux系统上更好地控制IP信息包和防火墙配置。此外,iptables还可以进行NAT规则的管理。netfilter位于内核空间,是内核的一部分,由一些数据包过滤表组成,这些表包含内核用来控制数据包过滤处理的规则集;转载 2024-07-26 10:16:29 · 144 阅读 · 0 评论 -
一文详解iptables基础知识
iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置 iptables将会帮助你更有效地管理Linux防火墙。如果你是第一次接触iptables,你会觉得它很复杂,但是一旦你理解iptables的工 作原理,你会发现其实它很简单。首先介绍iptables的结构:iptables -> Tables -> Chains -> Rules. 简单地讲,tables由chains组成,而chains又由rules组成。如下图所示。转载 2024-07-26 10:07:20 · 2442 阅读 · 0 评论 -
OpenWrt启动过程分析+添加自启动脚本
之后还需要在rc.d目录下做一个链接,启动时系统会按顺序启动rc.d目录下的脚本链接,对应执行init.d目录下的启动脚本。总结一下OpenWrt的启动流程:1.CFE->2.linux->3./etc/preinit->4./sbin/init ->5./etc/inittab ->6./etc/init.d/rcS->7./etc/rc.d/S* ->8.OpenWRT的启动脚本放在 /etc/init.d 目录下,而系统开机时自动运行/etc/rc.d目录下的脚本。之后,linux系统启动起来了。转载 2024-07-23 18:29:12 · 1638 阅读 · 0 评论 -
Linux系统调用--getrlimit()与setrlimit()函数详解
终止w/core的含义是:在进程当前目录生成core文件,并将进程的内存映象复制到core文件中,core文件的默认名称就是“core”(这是 Unix类系统的一个由来已久的功能)。这里要注意的是,当你要修改limit的时候,如果不指定-S或者-H,默认是同时设置soft limit和hard limit。在linux系统中,Resouce limit指在一个进程的执行过程中,它所能得到的资源的限制,比如进程的core file的最大值,虚拟内存的最大值等。//进程可建立的文件的最大长度。转载 2024-07-11 11:27:45 · 518 阅读 · 0 评论 -
Source Insight 4.0的超实用的常规设置小技巧
【Options】->【Preferences】 ->【File】->【Default encoding】修改为:Chinese Simplified(GB2312),关闭所有文件,重启即可。【Options】->【File type Options】,选择【Auto Indent…】弹出对话框,将【Smart Indent Options】下的两个复选框的√去掉即可。【Options】->【File type Options】,勾选下图所示选项。打开函数调用关系窗口,这个窗口在你。转载 2024-06-15 17:38:05 · 2343 阅读 · 0 评论 -
linux内核cdev_init系列函数(字符设备的注册)
kobj_map函数中哈希表的实现原理和前面注册分配设备号中的几乎完全一样,通过要加入系统的设备的主设备号major(major=MAJOR(dev))来获得probes数组的索引值i(i = major % 255),然后把一个类型为struct probe的节点对象加入到probes[i]所管理的链表中,如图2-6所示。其中,dev是它的设备号,range是从次设备号开始连续的设备数量,data是一void *变量,指向当前正要加入系统的设备对象指针p。初始化 cdev 后,需要把它添加到系统中去。转载 2024-06-14 11:44:43 · 509 阅读 · 0 评论 -
register_chrdev_region、alloc_chrdev_region、register_chrdev区别
内核提供了三个函数来注册一组字符设备编号,这三个函数分别是和。这三个函数都会调用一个共用的函数向内核设备表来注册一组设备编号范围(即一个 char_device_struct 结构)。转载 2024-06-07 09:45:50 · 323 阅读 · 0 评论 -
01-register_chrdev_region解析
注意:cp = &(*cp)->next,cp是char_device_struct **类型,(*cp)->next是一个char_device_struct 类型,所以&(cp)->next,就得到一个char_device_struct **,并且这时候由于是指针,所以对cp赋值,就相当于对链表中的元素的next字段进行操作。在内核4.4版本中,MKDEV(ma,mi) ((ma)<<8 | (mi)),与之前的主设备号占高12位,次设备号占低20位不同,所以次设备号只能从0~255,转载 2024-06-06 17:50:34 · 69 阅读 · 0 评论 -
【Linux API 揭秘】module_init与module_exit
目录1、函数作用2、module_init函数解析2.1 module_init2.1.1 模块方式2.1.2 内建方式2.2 __initcall2.2.1 代码调用流程2.2.2 #和##的作用2.2.3 函数解析3、module_exit函数解析3.1 module_exit3.1.1 模块方式3.1.2 内建方式3.2 __exitcall4、扩展module_init和module_exit是驱动中最常用的两个接口,主要用来注册、注销设备驱动程序。并且这两个接口的实现机制是一样的,我们先以modu转载 2024-06-06 16:44:44 · 98 阅读 · 0 评论 -
【Linux】内核线程创建 kthread_run 函数和内核中断
kthread_run函数详解以PCIE的热插拔内核线程创建为例说明注意:内核线程和RTOS的线程略有不同,这里Linux上创建以后直接运行,RTOS上有的是需要加入到调度队列中后才会执行,比如RT-Thread的系统kthread_run 是 Linux 内核中的一个函数,用于创建和运行内核线程(Kernel Thread)。在 Linux 内核中,线程是一种轻量级的执行单位,可以独立运行并共享进程资源。转载 2024-06-06 15:08:45 · 86 阅读 · 0 评论 -
notepad++ 打开提示“Folder xx does not exist“解决
nodepad++打开文件 ,提示 xx catnot be opened,Folder xx does not exist",原因是文件是被notepad++以管理员权限方式打开的,重新以非管理员打开正常。即:退出notepad++重新进入即可!转载 2024-06-05 10:04:46 · 345 阅读 · 0 评论 -
Win11怎么重置系统?(小白专享篇)
重置Windows 11系统的步骤如下:方法一:1.同时按下【Windows+i】键打开系统设置。2.在当前页面下拉选择【系统】-【恢复】。3.点击重置此电脑下的【初始化电脑】。4.点击【删除所有内容】。5.选择删除所有内容后,继续选择安装Windows的方式,选择从【本地重新安装】即可。6.选择从本地重新安装后系统会提示电脑重置会删除的内容,点击【下一步】即可。7.点击下一页后系统会再确认一次重置需要删除的内容,直接点击【重置】即可。转载 2024-05-30 17:48:15 · 12224 阅读 · 0 评论 -
svn 分支(branch)和标签(tag)管理
版本控制的一大功能是可以隔离变化在某个开发线上,这个开发线就是分支(branch)。分支通常用于开发新功能,而不会影响主干的开发。也就是说分支上的代码的编译错误、bug不会对主干(trunk)产生影响。然后等分支稳定之后,可以再合并到主干上。版本管理系统的一大功能是标记特定版本,以便在任何时候都可以重建某个版本的环境,这个标记版本的动作就是打标签。svn不需要特殊命令来打分支或者打标签。它使用的是一种“轻量copy”的方式,这种方式有些像unix的硬链接。转载 2024-05-29 18:41:09 · 1976 阅读 · 0 评论 -
安装系统时找不到硬盘的处理方法
路径一般为在【Drivers】-【Production】下,选择【Windows10-x64】,点击【确定】。在出现的页面点击【驱动程序和下载】,在【关键字】中搜索:rapid,找到【英特尔快速存储技术驱动程序】,点击【下载】,下载的文件默认保存位置或保存到自己可以找到的位置即可。下载完成后,先把U盘接到电脑上,然后找到下载的文件,双击运行。接着在出现的页面选择【EXTRACT】进行解压,解压路径选择接入的U盘,等待解压完成。1、修改BIOS的硬盘模式为AHCI模式后,重启电脑,再次安装系统。转载 2024-05-28 19:30:55 · 6046 阅读 · 0 评论 -
failed to set hardware filter to promiscuous mode:连到系统是上的设备没有发挥作用(31)
百度网盘:https://pan.baidu.com/s/1BIyXd7aIGaULww9g0n-WJw 提取码: yequ。阿里云盘:https://www.aliyundrive.com/s/4UjQ3uEqywz 提取码:onechina。阿里云盘:https://www.aliyundrive.com/s/KrZZxS4jSPU 提取码:xv80。npcap软件下载页(需加速):https://npcap.com/dist/详细问题定位阅读:http://issues.npcap.org/628。转载 2024-05-28 19:28:23 · 797 阅读 · 0 评论 -
Ventoy的pe盘制作及重装系统步骤【解释的非常清楚!!!】
当我们使用一般的pe盘的时候,他会把我们的u盘格式化,而且里面下载了很多文件,我们可能就不敢轻易的使用这个u盘作为我们日常使用的u盘,只是把它放起来等到需要重装系统的时候才会拿出来,这就造成了u盘的浪费。而Ventoy就能解决这个问题。转载 2024-05-28 19:20:31 · 2511 阅读 · 0 评论 -
嵌入式Linux--U-Boot(五)NAND命令使用
uboot 是支持 NAND Flash 的,所以也有 NAND Flash 的操作命令,前提是使用的 NAND 版本的核心板,并且编译 NAND 核心板对应的 uboot,然后使用 imxdownload 软件将 u-boot.bin 烧写到 SD 卡中,最后通过 SD 卡启动。从上面给出了 NAND 的页大小、OOB 域大小,擦除大小等信息。上图中的文件就是我们写到 NAND 中的设备树文件,至于设备树文件的详细内容我们后面会有专门的章节来讲解,这里大家知道这个文件就行了。转载 2024-05-27 09:41:16 · 1017 阅读 · 0 评论 -
vscode编译多文件复杂项目时tasks.json launch.json 的配置
本文介绍了利用vscode编译复杂工程的方法,包括gcc和cmke编译时 tasks.json launch.json c_cpp_properties.json 的具体配置。一、编译代码使用例子c/c++在windows下编译:使用MinGW gcc从零编译项目二、g++配置tasks.json launch.json c_cpp_properties.jsontasks.json编译程序所需要的指令"tasks": [//下面两条g++语句编译动态库。转载 2024-05-24 14:05:22 · 1142 阅读 · 0 评论 -
MinGW-w64的安装详细步骤(c/c++的编译器gcc、g++的windows版,win10、win11真实可用)
MinGW(Minimalist GNU for Windows) 是一个用于 Windows 平台的开发工具集,它提供了一组 GNU 工具和库,可以用于编译和构建本地的 Windows 应用程序。MinGW 的目标是在 Windows 环境下提供类似于 Unix/Linux 环境下的开发工具,使开发者能够轻松地在 Windows 上编写和编译 C、C++ 等程序。转载 2024-05-24 09:30:49 · 14581 阅读 · 5 评论 -
csdn分类专栏使用指南
如果建二级分类,需要 “#”+“空格”+分类名,这样就可以建立一个二级分类。注:二级分类是单独的分类,和一级分类并无父子关系。分类专栏上线了,很多小伙伴不会使用,写个简单的操作指南,供大家参考。建立好二级分类以后,可以鼠标直接拖拽,放到你制定的一级分类下。选择你要添加的文章,选择好以后,点击 应用。选择你需要新增文章的二级分类,点击查看。如果建一级分类,直接输入分类名就行。注::: 分类可以直接拖拽排序!至此,该二级分类,新增文章完成。2.给二级分类下增加新文章。点击新建,增加一个分类。转载 2024-05-10 09:29:19 · 232 阅读 · 0 评论 -
线程五种状态及其相关方法,线程安全
第一:调用notify() 方法导致解除阻塞的线程是从因调用该对象的 wait()方法而阻塞的线程中随机选取的,我们无法预料哪一个线程将会被选择,所以编程时要特别小心,避免因这种不确定性而产生问题。第二:除了notify(),还有一个方法 notifyAll()也可起到类似作用,唯一的区别在于,调用 notifyAll()方法将把因调用该对象的 wait()方法而阻塞的所有线程一次性全部解除阻塞。当然,只有获得锁的那一个线程才能进入可执行状态。转载 2024-05-10 09:23:32 · 54 阅读 · 0 评论 -
Linux多核运行机制(SMP)
/load_balance检查该cpu在这一层的调度域中是否存在负载不平衡的情况,如果存在该cpu会分担负载最重的那个cpu的一些任务。/* (7) 如果本sd的balance间隔时间已到,进行实际的load_balance() *//* (6) 如果需要串行化(SD_SERIALIZE),做balance之前需要持锁 */for_each_domain(cpu, sd) {//遍历该cpu的所有调度域,从最低一级到最高一级。// next_decay_max_lb_cost 是下一次进行衰减的时间。转载 2024-05-09 17:17:29 · 2107 阅读 · 0 评论 -
PPPoE体系架构 pppoe 流程
发现阶段结束后,就进入标准的PPP会话阶段。LCP协商的过程如下:协商双方互相发送一个LCP Config-Request报文,确认收到的Config-Request报文中的协商选项,根据这些选项的支持与接受情况,做出适当的回应。(2)Config-NAK:若支持对端的协商选项,但不认可该项协商的内容,则回应Config-NAK报文,在Config-NAK的选项中填上自己期望的内容,如:对端MRU值为1500,而自己期望MRU值为1492,则在Config-NAK报文中埴上自己的期望值1492。转载 2024-04-28 15:08:30 · 143 阅读 · 0 评论 -
操作系统 宏内核和微内核的区别
优点:超级稳定,驱动等的错误只会导致相应进程死掉,不会导致整个系统都崩溃,做驱动开发时,发现错误,只需要kill掉进程,修正后重启进程就行了,比较方便。宏内核:简单来说,就是把很多东西都集成进内核,例如linux内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议等等都在内核里面。内核态:CPU可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,CPU也可以将自己从一个程序切换到另一个程序。缺点:稳定性差,开发过程中的bug经常会导致整个系统挂掉。宏内核和微内核的区别。转载 2024-04-28 10:44:04 · 798 阅读 · 0 评论