标签 struct 下的文章

  • 📂Linux中多CPU的runqueue及抢占教程

    一、引出在在嵌入式操作系统中,很多线程都可以为实时任务,因为毕竟这些线程很少和人接触,而是面向任务的。所有就有一个抢占的时机问题。特别是2.6内核中引入了新的内核态抢占任务,所以就可以说一下这个内核态抢占的实现。内核态抢占主要发生在两个时机,一个是主动的检测是否需要抢占,另一个就是在异常处理完之后的异常判断。\#define preempt\_enable() \ do { \ pre...

  • 📂Linux学习---自定义数据类型教程

    struct 结构体 (地址递增)eg:struct myabc{unsigned int a;unsigned int b;unsigned int c;unsigned int d;};注: int i;struct myabc buf; //struct myabc等同于intunion 联合体(共用起始地址)enum 枚举 (整型常数的集合)eg1:#define MOD 0#def...

  • 📂Linux ixgbe 10G intel 网卡数据包处理流程教程

    Linux ixgbe 10G intel 网卡数据包处理流程 ==================================================================================================================================================================...

  • 📂Linux Kernel文件系统写I/O流程代码分析(一)教程

    Linux Kernel文件系统写I/O流程代码分析(一) ==================================================在Linux VFS机制简析(二)这篇博客上介绍了struct address\_space\_operations里底层文件系统需要实现的操作,实际编码过程中发现不是那么清楚的知道这里面的函数具体是干啥,在什么时候调用。尤其是写I...

  • 📂28.Linux-IIC驱动(详解)教程

    come from : http://www.cnblogs.com/lifexy/p/7816324.html1. I2C体系结构分析1.1首先进入linux内核的driver/i2c目录下,如下图所示:其中重要的文件介绍如下:1)algos文件夹(algorithms)里面保存I2C的通信方面的算法2)busses文件夹里面保存I2C总线驱动相关的文件,比如i2c-omap.c、 i2c...

  • 📂Linux 系统中怎样判断栈是否溢出教程

    linux 系统中共使用了 4 种堆栈:第 1 种是系统引导初始化时临时使用的堆栈;第 2 种是进入保护模式之后提供内核程序初始化使用的堆栈,位于内核代码地址空间固定位置处。该堆栈也是后来任务 0 使用的用户态堆栈;第 3 种是每个任务通过系统调用,执行内核程序时使用的堆栈,我们称之为任务的内核态堆栈。每个任务都有自己独立的内核态堆栈;第 4 种是任务在用户态执行的堆栈,位于任务(进程)逻辑...

  • 📂从linux源码看epoll教程

    从linux源码看epoll 前言 在linux的高性能网络编程中,绕不开的就是epoll。和select、poll等系统调用相比,epoll在需要监视大量文件描述符并且其中只有少数活跃的时候,表现出无可比拟的优势。epoll能让内核记住所关注的描述符,并在对应的描述符事件就绪的时候,在epoll的就绪链表中添加这些就绪元素,并唤醒对应的epoll等待进程。 本文就是笔者在探究epol...

  • 📂C/C++ 内存对齐原则及作用教程

    struct/class/union内存对齐原则有四个:1).数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小或者成员的子成员大小(只要该成员有子成员,比如说是数组,结构体等)的整数倍开始(比如int在32位机为4字节, 则要从4的整数倍地址开始存储),基本类型不包括struct/...

  • 📂Linux进程管理内核API函数pid task教程

    pid\_task( ) 函数获取任务的任务描述符信息,此任务在进程pid的使用链表中,并且搜索的链表的起始元素的下标为参数type的值。 参数pid是struct pid 类型的指针变量,保存进程描述符信息,其定义及详细解释请读者自行参考本章函数find\_get\_pid( )分析文档的返回参数说明部分。参数type是pid\_type型变量,此变量是一个枚举型变量,定义如下:enum...

  • 📂深入理解linux互斥锁 mutex教程

    锁机制,可以说是linux整个系统的精髓所在,linux内核都是围绕着同步在运转。在多进程和多线程编程中,锁起着极其重要的作用。我这里说的是互斥锁,其实是泛指linux中所有的锁机制。我在这里不讲如果创建锁,关于锁的创建,网上代码很多,我在这里就不多说了。我要谈一谈一个让所有刚刚接触锁机制的程序员都很困惑的问题:如何使用以及锁机制在程序中是如何运作的。一、定义: /linux/includ...

  • 📂关于Linux LOOPBACK网口抓包的一个细节教程

    这个问题其实是我几个月前碰到,只是那时好像还在回忆着什么,心系上海,还没有完全适应这个新环境,加上这个问题也不是什么太深奥的问题,觉得太简单了,就搁置了。今天周末闲来无事就顺便写来来了。加上深圳经常下雨,越来越喜欢了。本文没什么深度,仅为记录,以及阐述一个“看文档学习原理->猜测并自行实现->对比标准实现确认”的方法。问题是这样的: 在Linux上如果使用tcpdump去抓取l...

  • 📂Linux 匿名页的反向映射教程

    我们知道LINUX的内存管理系统中有”反向映射“这一说,目的是为了快速去查找出一个特定的物理页在哪些进程中被映射到了什么地址,这样如果我们想把这一页换出(SWAP),或是迁移(Migrate)的时候,就能相应该更改所有相关进程的页表来达到这个目的。1、为什么要使用反向映射物理内存的分页机制,一个PTE(Page Table Entry)对应一个物理页,但一个物理页可以由多个PTE与之相对应,...