简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
分析路由子系统的时候需要调试分析,手上没有开发板,只好安装虚拟机调试了,安装12.04版本,和分析的内核版本不一致,需要重新装下内核,过程比较简单:sudo apt-get updatesudo apt-get install build-essential libqt4-dev pkg-config libncurses5-dev下载内核源代码并解压进入到解压目录make me...
嵌入式开发通常是在linux环境下编译,windows下开发,这就需要在linux环境下访问windows目录了,或者在windows上访问linux目录。通常有三种方式如果是在vm虚拟机上,vm提供了一个设置共享目录功能。如果linux是一台服务器的话,可以在linux上安装samba服务器,这样windows就可以访问linux的目录了。第三种就是将windows上的目录挂载到li...
调试内核的时候在虚拟机重新编译内核安装后重启提示出现标题的提示:Gave up waiting for root deviceGoogle一个方案说是:sudo make modules_installsudo make install进入编译目录重新安装了一下解决了问题。...
基于Linux开发的时候经常需要搭建虚拟机,如果只有一台电脑的话安装虚拟机很容易拖慢电脑速度。微软win10系统提供了一个新的解决方案,它内置了Linux子系统,可以直接在这个子系统里面安装samba,然后运行即可。我第一次安装的时候遇到一些问题,无法访问成功,samba服务无法启动,看log是权限问题,网上搜了一圈也没说个所以然出来,google了一篇完整的教程,讲的特别详细,完全按照它写的重新
1. 读取的时候,buffer要足够大。2. 需要手动mount看数据。3. 优先级队列,可以获取优先级参考文档https://www.man7.org/linux/man-pages/man7/mq_overview.7.html
结构体sk_buff是Linux内核网络子系统的一个基本结构体,关于它的长度有很多定义和操作,非常容易弄混,这里给出一个简单的说明。下面这幅图是《深入理解Linux网络技术内幕》里面的图,一个skb用于存储一个报文,如果一个报文特别大的话,线性存储区放不下就需要多个skb来存储,这就是下面frag_list的作用,保存连续的skb,但是如果内核支持分散聚集技术的话,并且报文长度刚好又不大于mt..
之前介绍了timer_list内核定时器,它的精度在毫秒级别,再高一点它就无能为力了,所幸内核提供了高精度定时器 hrtimer。源文件在linux/kernel/hrtimer.c中。接口简单。下面介绍一下相关接口1. 定时器定义与绑定超时回调函数static struct hrtimer timer;/* 设置回调函数 */timer.function = hrtimer_h...
最近在做IPv6的工作,基于Linux平台,主要内容涉及IPv6协议栈处理、报文转发相关的内容,做之前对IPv6的了解基本为零,平常基本不用。各方面收集了很多资料,取其精华笔记一下。内容简单,分为三个部分。1. IPv6首部格式2. IPv6地址分类3. IPv6地址格式 一. IPv6首部格式图1. IPv6首部格式首部固定长度40字节,包含8个字段...
1. 创建启动脚本,脚本内容自定义sudo vi /etc/init.wsl#!/bin/sh/etc/init.d/smbd start2. 添加执行权限sudo chmod +x /etc/init.wsl3. 编辑sudoers,避免输入密码sudo visudo或者sudo nano /etc/sudoers添加一行%sudo ALL=NOPASSWD: /...
每一个信号都有一个信号处理函数,可以是SIG_IGN, SIG_DFL或者是用户自定义的处理函数。使用用户自定义的处理函数需要注册,注册接口有如下两种。第一种是signal调用#include <signal.h>/***sighandler_t是GNU的扩展,如果在glibc下面使用的话,编译的时候需要加上-D_GNU_SOURCE*或者手动定义*/...