- 博客(47)
- 资源 (4)
- 收藏
- 关注
转载 Linux地址映射(3)--地址转换
作者:fireaxe_hq@hotmail.com博客:fireaxe.blog.chinaunix.net 三、地址转换上图揭示了进程空间、内核空间与物理地址之间的转换关系。在linux中,物理地址用page结构 表示,物理内存在初始化时已经生成了page结构管理,其他地址空间则需要生成page再进行管理(ioremap)。物理地址可以被映射到内核空间或进程空间,也可以从
2017-07-28 23:06:08 752
转载 Linux地址映射(2)--内存申请
作者:fireaxe_hq@hotmail.com博客:fireaxe.blog.chinaunix.net 如果申请的内存是低端内存,因为低端内存一直都被映射在内核页表中,因此只需要一个page_address()函数就可以完成转换,也就是图中的线性映射。如果申请的是高端内存,就没有这么简单了。首先,如果可以在高端申请到足够的内存,需要先在非线性区映射,操作结束后在解除
2017-07-28 23:05:34 417
转载 Linux地址映射(1)--线性映射与非线性映射
作者:fireaxe_hq@hotmail.com博客:fireaxe.blog.chinaunix.net 一,线性映射与非线性映射1. 内存管理物理内存管理:Linux内存最小管理单位为页(page),通常一页为4K。初始化时,linux会为每个物理内存也建立一个page的管理结构,操作物理内存时实际上就是操作page页。某些设备会映射在物理内存地址外,这些地址
2017-07-28 23:04:23 1232
转载 pid理解
PID的理解 关于理解PID控制算法最典型的一个例子就是一个漏水的水缸的问题。网上有很多讲解PID的帖子会讲到这个例子。这里我也把我自己对于PID的理解用这个例子阐述一遍。 有个漏水的水缸,而且漏水的速度还不是恒定的。然后我们还有个水桶,我们可以控制往水缸里面加水或者从水缸里面舀水出来。另外我们可以检测水平面。现在我们的目的就是要控制水平面稳定在我们
2017-07-14 10:17:53 837
转载 面试中常问的关于链表的题目
注:本文转载自 计算机艺术 的博客,感谢作者整理!http://blog.csdn.net/walkinginthewind/article/details/7393134 链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面
2017-07-04 14:48:07 245
转载 git
一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够
2017-05-02 16:39:52 232
转载 mtklog结构及分析
1.mtklog简介:mtklog是由log生成工具MTKLogger生成的一系列问题追踪文件,其主要作用就是对系统或者应用产生的异常进行快速定位,从而解决问题。mtklog 的分类:MDLog、Mobile Log、Network Log,可能出现的aee_exp logMD log:medom 相关底层的logMobile Log:主要是Android log 和ker
2017-04-18 15:00:11 2140
转载 数字签名与数字证书
转自:http://blog.csdn.net/oscar999/article/details/9364101前言先看一下百度百科对数字签名和数字证书的解释:数字签名:将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证:只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符。这样就保证了报文的不可更改性。将该报文摘要值用
2017-04-17 15:02:30 324
转载 unlocked_ioctl和compat_ioctl
转自:http://blog.csdn.net/xiaocaohuyang/article/details/50755414kernel 2.6.35 及之前的版本中struct file_operations 一共有3个ioctl :ioctl,unlocked_ioctl和compat_ioctl现在只有unlocked_ioctl和compat_ioctl 了
2017-01-12 16:19:28 352
转载 Linux电源管理(3)_Generic PM之Reboot过程
转自:http://www.wowotech.net/linux_kenrel/reboot.html1. 前言在使用计算机的过程中,关机和重启是最先学会的两个操作。同样,这两个操作在Linux中也存在,称作shutdown和restart。这就是本文要描述的对象。在Linux Kernel中,主流的shutdown和restart都是通过“reboot”系统调
2016-08-10 09:51:27 1693 2
转载 linux patch
说到patch命令,就不得不提到diff命令,也就是制作patch的必要工具。diff命令,在制作patch文件的时候,基本上只需要使用到diff -Nau 这个参数,如果比较的是文件夹,还要加上-r参数,所以一般直接使用Naur参数。 实验的基本步骤。我打算是建立一个级联目录./x/xx/xxx/,在xxx目录下建立两个不同的文件xxx1,xxx2。然后在xxx目录下用dif
2016-06-25 15:46:54 243
转载 字符编码笔记:ASCII,Unicode和UTF-8
转自:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗
2016-06-06 10:50:33 219
转载 Git常用命令解析
1. Git概念 1.1. Git库中由三部分组成 Git 仓库就是那个.git 目录,其中存放的是我们所提交的文档索引内容,Git 可基于文档索引内容对其所管理的文档进行内容追踪,从而实现文档的版本控制。.git目录位于工作目录内。 1) 工作目录:用户本地的目录; 2) Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Gi
2016-05-12 08:43:29 310
原创 编写高质量C代码一:数据
(1)注意数据类型及其范围不同数据类型的表示方法和范围是不同的,整型如下图: 这里要注意符号数和无符号数是有区别的,符号的最高位要牺牲出来作为符号位,符号位为1表示负数,符号位为0表示正数。实质上,我们对内存中的数据进行解释,是按照他的数据类型进行解释的。举个例子,-3在内存中的补码(假设8位)表示为1000 0011,如果定义-3为无符号型,那么解释得到的数值就是131。所以,有时候会发生一
2016-05-02 19:35:18 3326 1
原创 Linux内核学习总结
安常青 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-10000290001.收获一直以来对linux内核充满了敬畏,觉得内核是非常庞大的,也曾经试图去阅读很多linux的书籍,但是总是读了几页就读不下去了。上了孟老师的linux内核分析课程,真的收获很大,大事化小,小事化了,老师把内核最
2016-04-30 22:57:56 293
转载 Linux内核栈与中断栈补充说明
转自:http://blog.chinaunix.net/uid-20543672-id-3164573.html 中断栈与内核栈的话题更多地属于内核的范畴,所以在《深入Linux设备驱动程序内核机制》第5章“中断处理”当中,基本上没怎么涉及到上述内容,只是在5.4节有些许的文字讨论中断栈在中断嵌套情形下可能的溢出问题。 本贴在这个基础上对内核栈与中断栈的话题
2016-04-25 12:53:59 1548
转载 进程的深入分析
在学习Linux进程内核栈的时候,看到这篇好文,在这里转载下:(注意:数据结构针对的是早期的2.4内核,2.6以后的内核数据结构和处理方法稍有不同,但是基本原理相同)作者: 曹国辉 南京凌嵌教育嵌入式Linux金牌讲师专题研究一 进程的深入理解与分析 进程是程序的一次执行过程。用剧本和演出来类比,程序相当于剧本,
2016-04-25 12:51:36 437
转载 解析 Linux 中的 VFS 文件系统机制(转)
转自:http://www.ibm.com/developerworks/cn/linux/l-vfs/本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核。总体上说 Linux 的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(Virtual Filesystem Switch),三是挂载到 V
2016-04-24 15:38:41 335
原创 Linux内核分析:实验八
安常青 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.基本概念操作系统原理中介绍了大量的进程调度算法,这些算法从实现的角度来看仅仅是从运行队列中选择一个新的进程,选择的过程中运用了不同的策略而已。对于理解操作系统的工作机制,反而是进程的调度时机与进程的切换机制
2016-04-17 21:25:03 412
原创 Linux内核分析:实验六
安常青 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.什么是进程所谓进程,就是一个程序的一个运行的动态实体,每个进程都有自己的进程控制块,里面记录了进程的各种信息,并通过pid唯一的标识。操作系统就是通过获取和改变进程控制块里面的成员变量,从而控制进程的运
2016-04-03 23:01:43 637
转载 TCP和UDP的区别
转自:http://www.cnblogs.com/Jessy/p/3536163.htmlTCP 与UDP的区别 很多文章都说TCP协议可靠,UDP协议不可靠!为什么前者可靠,后者不可靠呢?既然UDP协议不可靠,为什么还要使用它呢?所谓的TCP协议是面向连接的协议,面向连接是什么呢? TCP和UDP都是传输层的协议!从编程的角度看,就是两个模块(模块就是代码的集合,一系列
2016-03-30 14:28:59 297
转载 用户栈&内核栈
转自:http://www.cnblogs.com/shengge/archive/2011/08/29/2158748.htmlhttp://blog.chinaunix.net/uid-22548820-id-2125152.html进程内核栈、用户栈1.进程的堆栈 内核在创建进程的时候,在创建task_struct的同事,会为进程创建相应的
2016-03-28 16:50:48 603
转载 浅谈Linux PCI设备驱动
转自:http://blog.sina.com.cn/s/blog_6240123301014toi.html要弄清楚Linux PCI设备驱动,首先要明白,所谓的Linux PCI设备驱动实际包括Linux PCI设备驱动和设备本身驱动两部分。不知道读者理不理解这句话,本人觉得这句话很重要,对于PCI、USB这样的驱动来说,必须要理解这个概念,才能明 白该如何看待Linux下
2016-03-27 14:19:58 390
原创 Linux内核分析:实验五
安常青 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 1.增加Menu内核命令行增加menu内核命令行。把上一次实验的两个函数,Getpid和GetpidAsm两个函数写到text.c中。 增加后运行结果如下:2.系统调用过
2016-03-26 22:26:57 444
原创 Linux内核分析:实验四
使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用当我们使用某些库函数的API时,实际上该库函数啥都没干,它只是一个系统调用的封装。X86为例,系统调用会执行int 0x80指令,也就是陷入。操作系统会变为内核态,查找系统调用表,跳转到相应的系统调用。每个系统调用都对应一个唯一的系统调用号,系统调用之前,会从eax寄存器读系统调用号,系统调用的返回值也会保存在eax中
2016-03-18 20:39:20 548 1
原创 Linux内核分析:实验三
安常青 + 原创作品转载请注明出处 + 《Linux 内核分析》 MOOC 课程Linux内核分析:实验三1.计算机启动过程计算机上电后,首先运行ROM里面的BIOS程序,对系统的硬件进行检测。然后运行bootloader程序,一般位于磁盘的第一个扇区,它把操作系统从磁盘加载到内存中,然后将控制权交给操作系统。操作系统首先运行一段汇编代码,主要完成一系列的初始化工作,然后跳转到
2016-03-13 16:28:20 380
转载 Linux信号量详解
转自:http://www.cnblogs.com/hoys/archive/2012/08/19/2646377.html【摘要】本文分析了Linux内核对于信号的实现机制和应用层的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行及注销等。最后介绍了应用层的相关处理,主要包括信号处理
2016-03-09 14:41:18 1557 1
转载 U-boot启动过程
转自:http://www.cnblogs.com/heaad/archive/2010/07/17/1779829.html 1.1 U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能Ø 硬件设备初始化Ø 加载U-Boot第二阶段代码到RAM空间Ø 设置好栈Ø 跳
2016-03-08 17:16:41 349
转载 嵌入式笔试题荟萃
1:用C语言实现大小端的测试 Int CheckCpu() {union{int a;char b;}c;c.a=1;if(c.b==1)printf(“小端”);else printf(“大端”);}2:volatile的作用有哪些?Volatile第一变量相当于告诉编译器这个变量的值会随时发生变化,每次使用之前都要去内存里从
2016-03-08 12:00:39 494
原创 Linux内核分析:实验二
安常青 原创作品请注明出处《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000操作系统是如何工作的记得有个老师曾经说过:操作系统就是躺在内存里等待被调用的代码。我觉得说的是有一定道理的。计算机有三大法宝:程序存储计算机,堆栈,中断。中断无疑是操作系统的基础之一。中断发生,系统从
2016-03-06 19:17:27 379
转载 16道嵌入式C语言面试题(经典)
转自:http://blog.chinaunix.net/uid-26495963-id-3165021.html预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事
2016-02-24 21:08:38 3290 1
原创 Linux内核分析:实验一
安常青 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000计算机是如何工作的现代计算机多采用冯诺依曼体系结构,即存储程序计算机。计算机是很笨的,只能认识0和1,计算机为了能够理解不同的0和1组合,就需要特定的指令规范,即ABI(Application Binary Interface)。
2016-02-24 19:08:55 443
转载 linux进程调度
转自:http://www.cnblogs.com/zhaoyl/archive/2012/09/04/2671156.html Linux进程调度的目标 1.高效性:高效意味着在相同的时间下要完成更多的任务。调度程序会被频繁的执行,所以调度程序要尽可能的高效; 2.加强交互性能:在系统相当的负载下,也要保证系统的响应时间; 3.保证公
2016-01-19 21:23:47 328
转载 linux中断流程详解
转自:http://blog.chinaunix.net/uid-25622207-id-2897963.html异常体系比较复杂,但是linux已经准备了很多的函数和框架,但是因为中断是和具体的开发板相关,所以中断需要我们自己来处理一些方面,但是这也是很少的一部分,很多公用的处理函数内核已经实现,linux内核搭建了一个非常容易扩充的中断处理体系。中 断系统结构涉及的方面很多,而
2016-01-19 11:45:28 351
转载 linux内核启动第二阶段之setup_arch()函数分析-2.6.36
转自:http://blog.chinaunix.net/uid-20672257-id-2383451.html执行setup_arch()函数回到start_kernel当中,569行,调用setup_arch函数,传给他的参数是那个未被初始化的内部变量command_line。这个setup_arch()函数是start_kernel阶段最重要的一个函数,每个体系都有自己的s
2015-12-23 21:13:52 4328
转载 linux内核构成
内核构成分析uImage构成:arm linux内核映像uImage生成过程图解: u-boot认为zImage为自解压文件zImage:* (decompress code) Head.s misc.s * compressed vmlinuxvmlinux:* (vmlinux-init)arch/arm/kernel
2015-12-11 15:33:01 382
转载 GRUB启动过程分析 & GRUB 引导程序配置
转自:http://www.51testing.com/html/83/145083-69825.html计算机在启动的时候,首先由BIOS中的程序执行自检,自检通过后,就根据CMOS的配置找到第一个可启动磁盘的MBR中的Boot Loader程序(一般在启动盘的第一个物理扇区,占416字节),并把控制权交给Boot Loader,由Boot Loader进一步完成操作
2015-12-10 23:37:53 3186
转载 Grub和initrd对文件系统驱动的支持
本文转自:http://jallenoy.spaces.live.com/blog/cns!B70F21D986C9C057!195.entry前言本文源于这样一个问题:内核镜像存储在硬盘下特定文件系统中,bootloader必须先加载文件系统驱动,才能读取内核文件。类似的,内核要读取根文件系统中的文件,也需要先加载文件系统驱动。如果文件系统驱动存储在硬盘中,启动时没有驱动
2015-12-10 23:24:08 728
转载 (一)洞悉linux下的Netfilter&iptables:什么是Netfilter?
转自:http://blog.chinaunix.net/uid-23069658-id-3160506.html本人研究linux的防火墙系统也有一段时间了,由于近来涉及到的工作比较纷杂,久而久之怕生熟了。趁有时间,好好把这方面的东西总结一番。一来是给自己做个沉淀,二来也欢迎这方面比较牛的前辈给小弟予以指点,共同学习,共同进步。 能在CU上混的人绝非等闲之辈。因此,小弟这里
2015-12-01 18:52:14 424
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人