- 博客(140)
- 资源 (3)
- 收藏
- 关注
转载 Linux 内存管理浅析 - 页面映射管理之页表管理
(4). 页表管理下面我们来看下页表的建立过程。前面我说过,进程分为用户进程和内核进程。用户进程可以有多个,而内核进程则只有一个。因此,对于内核进程页表,我们只有一份。下面我以e6500平台为例说明内核进程页表和用户进程页表是怎么建立和管理的。我们先来思考下,在什么时候,我们才需要真正的创建一个页表呢。前面我说过,页表是按需创建的,就是说在物理页面分配之后,我们才会创建相应的页表项。这里说下...
2019-12-03 15:27:22
385
转载 msc和gcc编译器的内置函数(Compiler Intrinsics/Built-in Functions)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/10km/article/details/49122651msc和gcc编译器都提供了丰富的内置函数,虽然函数名各有不同,但总是有不少共通的内容,对于跨平台开发非常有用,善用这些函数,可以提高程序的效率同时也减少开发工作量。msc的内...
2019-12-01 18:49:02
632
转载 详析进程异常退出
进程退出意味着进程生命期的结束,系统资源被回收,进程从操作系统环境中销毁。进程异常退出是进程在运行过程中被意外终止,从而导致进程本来应该继续执行的任务无法完成。首先我们来看导致进程异常退出的这两类情况:●第一类:向进程发送信号导致进程异常退出;●第二类:代码错误导致进程运行时异常退出。第一类:向进程发送信号导致进程异常退出信号:UNIX 系统中的信号是系统响应某些状况而产...
2019-11-27 10:44:03
8731
转载 Linux slab 分配器剖析
Linux slab 分配器剖析了解 Linux 内存管理的方式M. Jones2010 年 9 月 20 日发布WeiboGoogle+用电子邮件发送本页面4动态内存管理内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享。内存管理方法应该实现以下两个功能:最小化管理内存所需的时间 最大化用于一般应用的可用内存(最小化管理开销)...
2019-11-22 15:19:29
171
原创 内存管理
Linux内存管理(最透彻的一篇)https://blog.csdn.net/csdn_whb/article/details/81251713Linux 虚拟内存和物理内存的理解https://www.linuxidc.com/Linux/2015-02/113981.htmLinux内核空间内存管理(一):内存寻址、内存管理机制综述https://blog.csdn....
2019-10-27 22:40:23
221
转载 Linux源码目录结构和Linux文件系统目录结构
转载链接:https://blog.csdn.net/qq_38892883/article/details/79557715学习Linux也有一段时间了,具体来整理一下Linux源码的目录结构和文件系统的目录结构,以便加深记忆。一、Linux源码的目录结构首先上一张截图,如下所示:再看各个文件的介绍,借用一下其他资源。arch:这个为目录是架构相关,里面存放了许多CPU架构,比...
2019-10-27 21:45:54
230
原创 git相关资料
搭建私有代码管理平台(Gitlab)和自动化部署平台(Jenkins)https://my.oschina.net/u/3375733/blog/1812886GitLab 与 Gerrit对比https://blog.csdn.net/bjstyle/article/details/79107086CI持续集成介绍https://www.jianshu.com/p/61b5b549d21...
2019-10-11 23:04:58
95
转载 关于linux的tun/tap原理
Linux网络 - 数据包的发送过程https://segmentfault.com/a/1190000009249039Linux网络 - 数据包的接收过程https://segmentfault.com/a/1190000008836467Linux虚拟网络设备之tun/taphttps://segmentfault.com/a/1190000009249039Linu...
2019-06-07 15:23:18
1122
转载 PCIE相关
https://blog.csdn.net/hulidong971/article/details/41412199https://www.cnblogs.com/chengqi521/p/8717630.html
2019-05-19 22:48:51
212
转载 Linux PCI 设备驱动基本框架(一)
https://www.cnblogs.com/zhuyp1015/archive/2012/06/30/2571400.htmlLinux将所有外部设备看成是一类特殊文件,称之为“设备文件”,如果说系统调用是Linux内核和应用程序之间的接口,那么设备驱动程序则可以看成是 Linux内核与外部设备之间的接口。设备驱动程序向应用程序屏蔽了硬件在实现上的细节,使得应用程序可以像操作普通文件一样来...
2019-05-19 20:59:58
502
转载 FreeRTOS源码分析-代码结构
FreeRTOS作为开源的轻量级实时性操作系统,不仅实现了基本的实时调度、信号量、队列和存储管理,而且在商业应用上不需要授权费。 FreeRTOS的实现主要由list.c、queue.c、croutine.c和tasks.c 4个文件组成。list.c 是一个链表的实现,主要供给内核调度器使用;queue.c 是一个队列的实现,支持中断环境和信号量控制;croutine.c 和ta...
2019-04-27 22:22:03
1937
转载 Linux多线程编程初探
https://www.cnblogs.com/xiehongfeng100/p/4620852.htmlhttps://www.cnblogs.com/Nancy5104/p/5338062.html
2019-04-07 23:10:20
155
转载 linux内核之进程管理详解
https://blog.csdn.net/heliangbin87/article/details/774419081、进程描述符(1)进程与线程进程是处于执行期的程序以及相关资源的总称。线程在linux上称为轻量级进程,没有独立的地址空间,一个进程下的所有线程共享地址空间、文件系统资源、文件描述符、信号处理程序等。(2)进程描述符task_struct...
2019-04-06 16:15:41
286
转载 linux驱动注册过程分析--driver_register(一)
http://blog.csdn.net/richard_liujh/article/details/45825333kernel版本3.10.14driver_register顾名思义,是驱动程序的注册。但是很少是由我们写的驱动直接调用的,例如framebuffer中调用platform_driver_register,i2c中调用i2c_add_driver等等函数注册对应的驱动程序。...
2019-04-05 22:41:10
1175
转载 linux驱动篇之 driver_register 过程分析(二)bus_add_driver
个人笔记,欢迎转载,请注明出处,共同分享 共同进步http://blog.csdn.net/richard_liujh/article/details/48245715kernel版本3.10.141.概述本篇主要围绕driver_register中的第二步bus_add_driver展开分析。在上一篇博文中主要分析了driver_find的过程,在driver_regis...
2019-04-01 19:42:09
151
转载 SDH、MSTP、OTN和PTN的区别和联系
SDH、MSTP、OTN和PTN的区别和联系首先要说的是TDM的概念,TDM就是时分复用,就是将一个标准时长(1秒)分成若干段小的时间段(8000),每一个小时间段(1/8000=125us)传输一路信号; SDH系统的电路调度均以TDM为基础,所以看到很多人说SDH业务就是TDM业务,就是传统的电路调度,是有理论依据的; 但在SDH大红大紫的时候,另一场战争以太网和ATM(不是取款机...
2019-02-11 22:14:07
928
转载 MPLS-TP原理
https://blog.csdn.net/qq_33746593/article/details/78884249MPLS-TP概述MPLS-TP ——MPLS Transport Profile,是国际电信联盟(ITU-T)标准化的一种分组传送网(PTN)技术。MPLS-TP的特点:MPLS-TP 解决了传统SDH 在以分组交换为主的网络环境中的效率低下的缺点。MPLS-TP...
2019-02-02 10:33:49
3815
转载 交换机开发(三)—— 深入分析三层网络交换机的原理和设计
转载:https://blog.csdn.net/zqixiao_09/article/details/51170124引言 传统路由器在网络中起到隔离网络、隔离广播、路由转发以及防火墙的作业,并且随着网络的不断发展,路由器的负荷也在迅速增长。其中一个重要原因是出于安全和管理方便等方面的考虑,VLAN(虚拟局域网)技术在网络中大量应用。VLAN技术可以逻辑隔离各个不同的网段、端口甚至主...
2019-01-16 11:03:15
666
转载 serdes相关资料
https://www.cnblogs.com/yhsy1002/p/6872876.htmlhttps://blog.csdn.net/zzsfqiuyigui/article/details/47065153
2019-01-08 14:29:28
323
转载 以太网标准802.3相关
https://blog.csdn.net/fw0124/article/details/8588568https://baike.baidu.com/item/IEEE%20802.3/3684685?fr=aladdinhttps://wenku.baidu.com/view/a95f1f9b763231126fdb1121.htmlhttps://blog.csdn.net/fw...
2019-01-07 15:24:04
2762
转载 从零开始制作rootfs
1、什么是rootfs,为什么需要rootfs?内核启动后会开启三个进程,分别是:进程0(idle进程),空闲进程,也就是死循环进程1(init进程),挂载根文件系统,并执行Linuxrc这个应用程序从内核态转为用户态,开启用户态的进程1(init进程),逐步开启其他进程进程2(kthreadd进程)linux内核的守护进程,负责提供操作系统的核心功能(进程调度、内存管理、设备管理、文件体...
2019-01-03 23:38:18
1409
转载 SERDES介绍
转自https://www.cnblogs.com/liujinggang/p/10125727.html一、SERDES介绍 随着大数据的兴起以及信息技术的快速发展,数据传输对总线带宽的要求越来越高,并行传输技术的发展受到了时序同步困难、信号偏移严重,抗干扰能力弱以及设计复杂度高等一系列问题的阻碍。与并行传输技术相比,串行传输技术的引脚数量少、扩展能力强、采用点对点的连接方式...
2019-01-01 21:52:36
16031
转载 交叉编译工具链命名详解
转载地址:https://www.cnblogs.com/wxishang1991/p/5322499.html交叉编译就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放到ARM CPU平台上才能运行,虽然两个平台用的都是Linux系统。 交...
2018-12-31 17:24:48
347
转载 linux shell中 2>/dev/null和/dev/null 2>&1 的解释
shell中可能经常能看到:>/dev/null 2>&1命令的结果可以通过%>的形式来定义输出分解这个组合:“>/dev/null 2>&1” 为五部分。1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt2:/dev/null 代表空设备文件3:2> 表示stderr标准错误4:&..
2018-12-31 16:40:27
342
转载 shell脚本报错:-bash: xxx: /bin/bash^M: bad interpreter: No such file or directory
今天写了一个shell脚本,然后在执行的时候报错,脚本内容很简单,仅供测试:Shell代码 #!/bin/sh echo "test shell " 具体报错信息如下:Shell代码 [root@localhost test]# ./test.sh -bash: ./test.sh: /bin/bash^M: bad interpreter: No s...
2018-12-31 16:30:05
1095
转载 使用buildroot创建自己的交叉编译工具链
转:https://blog.csdn.net/linczone/article/details/45894181转:https://blog.csdn.net/Lidroid/article/details/50393531
2018-12-25 20:20:08
433
转载 处理器启动过程
1 处理器启动过程简介处理器上电后,PC寄存器固化了一个默认值PC默认值用于决定第一条执行的指令第一条执行指令隶属于启动程序2 启动程序(BootLoader)系统上电后运行的第一个程序(Not Os)根据运行阶段、体积和功能的不同分为三个部分 BL0 - 固化于硬件中,用于初始化硬件,加载并运行BL1BL1 - 存储于外部设备中,用于初始化主存,加载并运行BL2BL2 ...
2018-12-19 17:09:21
277
转载 U-boot 开始文件Start.s的异常向量表CONFIG_SPL_BUILD宏及VBAR地址映射
#include <asm-offsets.h> /* 头文件在根目录下的include及根#include <config.h> 目录下的arch/arm/include目录 */ #include <version.h>#include <asm/system.h>#include <lin...
2018-12-19 14:20:03
445
转载 Uboot中start.S源码的指令级的详尽解析
转载:https://www.crifan.com/files/doc/docbook/uboot_starts_analysis/release/html/uboot_starts_analysis.html版本:v1.9 Crifan Li摘要本文对Uboot中的Start.S的源码的几乎每一行,都进行了详细的解析 本文提供多种格式供: 在线阅读 ...
2018-12-18 20:09:38
1114
翻译 uboot之CONFIG_SPL_BUILD
首先进行第一步,下载工作:输入 U-Boot 下载的地址,找到自己要下载的 U-Boot 版本,点击开始下载,下载完成之后开始解压。U-Boot 下载之后压缩包的压缩方式是.tar.bz2 的,所以解压命令为 tar jzvf **.tar.bz2而我们平时经常解压的压缩包为.tar.gz 格式的,所以它的解压命令为 tar zxvf **.tar.gz。这两个解压命令只有一个参数的差别,...
2018-12-18 19:41:40
1484
转载 cpu的基本结构及其工作原理
中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。中央处理器主要包括运算器(算术逻辑运算单元,ALU,ArithmeTIc Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态...
2018-12-18 16:28:14
26852
3
转载 华为组织结构30年演变历程(一文说透)
转载地址:https://baijiahao.baidu.com/s?id=1597956437217205621&wfr=spider&for=pc华为从成立到现在正好走过30年的历程,这么些年,其战略不断在依据环境的变化而调整,而组织结构也在追随着战略进行优化,从而始终都能让华为处于一个发展的进程中,因而这么多年,华为始终是中国企业发展史上的一面旗帜。 我因为在华为...
2018-12-18 09:07:37
5660
转载 LINUX系统初始化
转载地址:https://blog.csdn.net/runner668/article/details/79844423说明BIOS是位于位于主板flash rom(掉电不丢失0)中的程序,操作系统Boot Loader位于硬盘MBR中。BIOS在完成硬件检测和资源分配后。将硬盘MBR中的Boot Loader读到系统的RAM中,然后将控制权交给操作系统Boot Loader。Boo...
2018-12-17 11:00:49
306
转载 Linux MTD (Memory Technology Device) subsystem analysis For Atheros char device
读了Linux MTD 源代码分析 对这部分有了整体的认识,结合现有代码,分析一下Atheros的MTD是如何使用的。Linux kernel: 2.6.31.Atheros platform: QCA9890??? 参考Linux MTD 源代码分析,这里把MTD分为4层,从上到下依次是:字符设备节点、字符设备、MTD 核心、FLASH 硬件驱动。字符设备节点:/dev/mt...
2018-12-13 20:08:46
373
转载 module_init 和 late_initcall 区别
在init.h 中有如下定义 #define pure_initcall(fn) __define_initcall("0",fn,1)#define core_initcall(fn) __define_initcall("1",fn,1)#define core_initcall_sync(fn) __define_initcall("1s",fn,1s)#define ...
2018-12-13 17:31:39
174
转载 module_init解析
module_init这个函数的具体功能和执行过程在kernel源码目录中找到include\linux\init.h文件 #define module_init(x) __initcall(x); 有对module_init 的定义,我们发现 module_init(x)是一个宏定义,那么_initcall(x)又是什么呢? [cpp] view plain cop...
2018-12-12 22:32:53
166
转载 Linux内核很吊之 module_init解析 二
简单来说上篇博文介绍module_init如何注册驱动的init函数,这篇博文将详细分析kernel启动过程又是如何执行我们注册的init函数。如果了解过linux操作系统启动流程,那么当bootloader加载完kernel并解压并放置与内存中准备开始运行,首先被调用的函数是start_kernel。start_kernel函数顾名思义,内核从此准备开启了,但是start_kernel做的事...
2018-12-12 22:25:29
159
转载 AD采集算法
收集的关于基础滤波算法:理论上讲单片机从A/D芯片上采集的信号就是需要的量化信号,但是由于存在电路的相互干扰、电源噪声干扰和电磁干扰,在A/D芯片的模拟输入信号上会叠加周期或者非周期的干扰信号,并会被附加到量化值中,给信号带来一定的恶化。考虑到数据采集的实时性和安全性,有时需要对采集的数据进行软处理,一尽量减小干扰信号的影响,这一过程称为数据采集滤波。以下介绍十种数据采集滤波的方法和编...
2018-12-06 19:23:54
10053
转载 利用__attribute__((section()))构建初始化函数表【转】
转自:https://mp.weixin.qq.com/s?__biz=MzAwMDUwNDgxOA==&mid=2652663356&idx=1&sn=779762953029c0e0946c22ef2bb0b754&chksm=810f28a1b678a1b747520ba3ee47c9ed2e8ccb89ac27075e2d069237c13974aa43...
2018-12-01 14:17:32
5468
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人