10 2017 档案
摘要:看了一下usb协议资料,对usb原理有了一个简单的了解。 usb总线和pci总线一样,总线的作用都是提供通道,各种设备利用总线通道来...
阅读全文
摘要:1、网络系统调用 1.1、socket() 1.1.1、sys_socket() 1.1.2、socket fs ...
阅读全文
摘要:1、虚拟文件系统VFS 1.1、背景说明 1.1.1、层次结构 所谓块设备,就是在该设备上读写数据时,必须要以块为基本单位,而不...
阅读全文
摘要:本文以风河linux代码为例,解析Linux 串口、CF卡、flash MTD、I2C驱动的具体实现。 1、串口驱动 1.1、原理简...
阅读全文
摘要:1、进程创建 .1、clone() clone()、fork()、vfork()实际调用的都是do_fork()函数,只是带入的参数...
阅读全文
摘要:1、内核组成 Linux的内核源码经过编译、链接以后,最原始的内核映像为vmlinux。而在实际使用的过程中为了启动的需要,会使用压...
阅读全文
摘要:1、ptrace概念 你一定知道linux下大名鼎鼎的程序调试工具gdb,但你可能没有听说过ptrace。Ptrace是linux一...
阅读全文
摘要:Linux系统崩溃有kdump机制来记录,但是由于kdump的文件内容一般很大,在嵌入式系统一般不使用,嵌入式系统一般使用把prin...
阅读全文
摘要:1、oprofile概念 前面我们通过tick timer增加“/proc/stat”计数的方式来计算cpu占用率,更精确的计算方法...
阅读全文
摘要:1、kprobe概念 kprobe是一个动态地收集调试和性能信息的工具,它从Dprobe项目派生而来,是一种非破坏性工具,用户用它几...
阅读全文
摘要:1、kdump概念 前面讲过进程在崩溃的时候可以使用core dump功能存储一个快照,那么系统崩溃有没有类似的存储故障快照的功能呢...
阅读全文
摘要:1、Core dump概念 linux下一个用户态程序出错通常会报出“Segmentation fault”并退出。如果系统使能了“...
阅读全文
摘要:1、内核异常 Linux内核在陷入一些不可恢复的异常时,马上就要崩溃了,内核陷入了恐慌,这种内核的异常除了复位也没有什么更好的手段。...
阅读全文
摘要:1、内核参数“/proc/sys” Linux提供了一种非常灵活的方法可以在系统运行的时候动态更改内核的参数。性能优化、功能变更时通...
阅读全文
摘要:1、CPU占用率查看工具 Linux提供了多种工具,用来查看CPU占用率、内存使用情况等等。 1.1、top top是linux下最...
阅读全文
摘要:linux在出现故障但是没有完全挂死的情况下,可以使用魔术键来打印一些系统信息或者执行一些操作。linux魔术键使用的官方文档在内核...
阅读全文
摘要:Linux在内核启动完成以后,需要启动用户态的各种应用服务,让linux可以提供给用户使用。通常用户程序的执行过程如图所示。 其...
阅读全文
摘要:1、概述 系统调用是操作系统为在用户态运行的进程与硬件设备(如打印机和磁盘)进行交互提供的一组接口。用户程序可以通过这组“特殊”接口...
阅读全文
摘要:1、模块插入 模块的格式。驱动模块在2.6内核下编译出来是.ko文件,.ko文件也是elf格式的。elf格式的文件有3种类型:可重定...
阅读全文
摘要:Linux内核的整个makefile编译系统称为kbuild系统,负责linux内核源码文件架构的编译和链接工作。2.4内核和2.6...
阅读全文
摘要:调试的时候,碰到一个问题,从表面上看非常正常,但是运行就是不正常。幸亏以前也碰到过相同的问题,才会迅速的联想起来。很有代表性的一个问...
阅读全文
摘要:在debugtool里面会创建收发包线程,然后再把线程号注册到底层驱动。以前一直没弄太明白这里面tid的计算方法,今天研究了一下,终...
阅读全文
摘要:1、FAQ 1.1、glibc安装时.so库文件和.h头文件都安装到什么文件夹,gcc怎么能正确的找到相应的文件夹? 当我们在bui...
阅读全文
摘要:相信大家在最早学习c语言程序的时候都写过“helloworld”程序,下面就是一个linux c语言的“helloworld”程序:...
阅读全文
摘要:文章目录 1、原理概述2、重定位原理2.1、符号表(Symbol Table):2.2、重定位表(Relocation):2.3、...
阅读全文
摘要:x86软件中需要读取当前的系统信息,区别出不同的系统类型,以实现不同的功能。如:A、B、C、D等等。前面也有通过桥片PCI DEVI...
阅读全文
摘要:x86大框图的的名词解释和各部分的带宽计算,系统整理了一下,做了个总结,大家有兴趣就一起学习学习。 1、总线带宽计算方法 首先,各类...
阅读全文
摘要:1、基本概念 cpu地址空间和pci地址空间是两个常用的比较容易混淆的概念,特别是其中不同系列的cpu的实现还各不相同:x86系列c...
阅读全文
摘要:1、什么是MSI?(Message Signaled Interrupts) 用简单的一句话就可以说明msi的原理:cpu有一段特殊...
阅读全文
摘要:1、什么是ExpansionOption ROM? Expansion rom是pci/pcie设备可选的一个外接的eprom芯片,...
阅读全文
摘要:1、PCIE 寄存器的总体结构: PCI的配置寄存器空间为256个字节大小。PCIE扩展了配置寄存器空间,大小为4096的字节。PC...
阅读全文
摘要:非markdown版本 Linux设备模型大概是最难的linux知识点之一了。晦涩难懂的kobject、kset概念,云里雾里的sy...
阅读全文
摘要:在面试的时候我们常常问或者被问一个问题:几种中断下半部机制softirq、tasklet、workqueue有什么区别?linux为...
阅读全文
摘要:layout: post title: “Linux 进程的Stop,Park,Freeze” keywords: [“kthre...
阅读全文
摘要:workqueue是内核里面很重要的一个机制,特别是内核驱动,一般的小型任务(work)都不会自己起一个线程来处理,而是扔到work...
阅读全文
摘要:信号的基本使用场景:使用“ctrl+c”中止一个程序,或者使用”kill pid”命令杀掉一个进程。 Linux信号机制基本上每个...
阅读全文
摘要:1、Linux时钟框架 上图是linux时钟框架一个经典的描述。本质上linux各种时钟架构和服务是基于硬件提供的两种timer而...
阅读全文

浙公网安备 33010602011771号