- 博客(139)
- 资源 (1)
- 收藏
- 关注
转载 HEX文件和BIN文件格式的区别
HEX文件和BIN文件是我们经常碰到的2种文件格式。下面简单介绍一下这2种文件格式的区别:1 - HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身 在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。而烧写BIN 文件的时候,用户是一定需要指定地址信息的。3 - BIN文件格式 对二进
2017-07-21 09:58:14
874
1
原创 visual C++使用libcurl环境配置
visual studio下配置使用libcurl库本次操作环境配置:VisualStudio2010win10操作系统实现目标通过在vc++程序中调用libcurl库熟悉vc++外部库的调用及配置方法 libcurl说明及安装 libcurl 是为方便应用程序访问http,https,ftp等服务器的开源库,具有很高的可移植性,支持windows,linux等操作系统,方便工
2017-06-10 14:01:23
797
转载 12864液晶深入学习笔记_1——基于msp430g2553
12864液晶学习笔记 Created on: 2012-8-30 Author: zhang bin 这是我对12864的学习笔记,12864液晶功能很全面,使用起来也很方便,能够满足一般的研究和工程应用的需求。 下面我就对几个方面讲述一下我对它学习过程中的一些体会。我会尽量全面的介绍,并且会主要针对一些特殊的应用和一些我认为要特别注意的地方进行较为详细的说明。而对于
2017-05-25 17:18:05
1714
原创 使用逻辑分析进行UART通信协议分析
使用逻辑分析进行UART通信协议分析本实验过程使用下列软硬件工具实现:硬件设备:逻辑分析仪软件:Saleae Logic1.2.14,NuMicro ISP ProgrammingTool效果目标通过逻辑分析仪抓取uart通信过程中的信号,对其协议进行逆向分析 可用于红外遥控器的解码串口通信协议的分析试验结果 对此段结果进行分析后,即为该通信过程所用的协议 设置项协议展
2017-05-13 09:20:13
4160
原创 Linux卸载挂载文件
在我们进行远程文件操作的时候,我们经常会出现文件服务出现卸载掉哦情况。例如umount /mnt/net1umount: /mnt/net1: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fus
2016-09-14 11:16:04
702
转载 UBOOT移植详细 很全面
u-boot-1.3.4 移植到S3C2440 (带有某些解析) 移植u-boot-1.3.4到S3C2440 一.预备知识: 1.首先,U-Boot1.3.4还没有支持s3c2440,移植仍是用2410的文件稍作修改而成的。 2....
2016-09-10 16:32:20
1480
转载 linux内存管理伙伴算法(一:基本概念介绍)
原文地址:【http://blog.csdn.net/hs794502825/article/details/7887915】在系统初始化进行到伙伴系统分配器能够承担内存管理的责任后,必须停用bootmem分配器,毕竟不能同时用两个分配器管理内存。在UMA和NUMA系统上,停用分别由free_all_bootmem和free_all_bootmem_node完成(前面的博客已经详细讨论过)。伙...
2016-09-08 16:15:51
413
转载 Linux内存管理中内存的组织及主要数据结构分析(pg_data_t&&page&&zone)
在讲解内核中用于组织内存的数据结构之前,考虑到术语不总是容易理解,所以先来看看几个概念。我们首先考虑NUMA系统,这样,在UMA系统上介绍这些概念就非常容易了。下图给出内存划分的图示:首先,内核划分为结点。每个结点关联到系统中的一个处理器,在内核中表示为pa_data_t的实例(稍后定义该数据结构)。各个结点又划分为内存域,是内存的进一步细分。例如,对可用于(ISA设备的)DMA操
2016-09-08 16:12:57
2551
转载 SHELL网络爬虫实例剖析
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1552472 前天简单分享了用 shell 写网络爬虫的一些见解,今天特地把代码发出来与51博友分享,还是那句话,爱技术、爱开源、爱linux。 针对脚本的注解和整体构思,我会放到脚
2016-09-08 16:12:09
4470
转载 Linux文件系统的实现
Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/),节点为目录,而末端的叶子为包含数据的文件。当我们给出一个文件的完整路径时,我们从根目录出发,经过沿途各个目录,最终到达文件。我们可以对文件进行许多操作,比如打开和读写。在Linux文件管理相关命令中,我们看到许多对文件进行操作的命令。它们大都基于对文件的打开和读写操作。比如
2016-09-08 16:06:47
329
转载 linux文件系统简介
文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识。 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录、挂载基本原理、文件存储结构、软链接硬链接、和常见目录的介绍。相信有了这些知识对于深入的学习linux会有一定的帮助。文章例子主要是基于ubuntu发行版。 如有不对之处请大家多多指出。1.Linux磁盘分区和目
2016-09-08 16:04:19
318
转载 linux-4.3.0代码注释git地址
https://code.csdn.net/xiebaoyou/linux-4-3-0-comment.git可以用git clone命令下载代码注释。目前刚开始,欢迎有兴趣的同学一起参与注释。参与方式有两种:1、加入到项目中,可以给我发邮件或者微信商量加入事宜。2、clone代码后,建立自己的分支,然后向项目发出合并请求。在linux下用vim查看乱码的同学,可以编辑~/
2016-09-08 16:02:35
355
转载 《LINUX3.0内核源代码分析》第四章:内存管理(7)
原文地址:【http://blog.chinaunix.net/uid-25845340-id-3251137.html】摘要:本文主要讲述linux如何处理ARM cortex A9多核处理器的内存管理部分。包括对vmalloc、vfree函数的分析。其实现在写的东西,几年前在看老版本代码时就注释过了。目前在看3.0代码,将以前的东西复习一下,顺便发表到CU上与大家共享,大家在看博...
2016-09-08 16:01:00
879
转载 Linux内核源代码情景分析-内存管理之用户堆栈的扩展
在下面几种情况下会发生,页面出错异常(也叫缺页中断): 1、相应的页面目录项或者页面表项为空,也就是该线性地址与物理地址的映射关系尚未建立,或者已经撤销。本文讨论的就是这种情况。 2、相应的物理页面不在内存中。 3、指令中规定的访问方式与页面的权限不符,例如企图写一个“只读”的页面。 首先看下进程地址空间示意图: 假设现在需要调...
2016-09-08 16:00:12
919
转载 Linux内核源代码分析——Linux内核的入口
Jack:hi,淫龙,在Linux内核的源代码里,有几段汇编代码,那几段代码是负责Linux内核引导的。我:是的。早期的Linux内核引导代码只有bootsect.s、setup.s、head.s这3个文件,这三个文件都是Linus在1991年左右亲手写的。后来的代码虽然进行了加固,但是原型还是这几个。Jack:我想弄清楚。这几个汇编代码做了些什么事情。我:我不能在对话中一句代码一句代
2016-09-08 15:58:39
2014
转载 Linux 内核解读之内存管理----memory.c
转载请注明原文出处http://blog.csdn.net/lizhiliang06/article/details/865511580x86体系结构中,Linux内核的内存管理程序使用分页管理方式。利用页目录和页表结构处理内核中其他部分代码对内存申请和释放操作。Memory.s是linux内存管理的核心,80x86内存管理最大寻址范围是4G的内存空间,在最大1024*1024*4KB的范
2016-09-08 15:57:15
2403
转载 <Linux内核源码>内存管理模型
原文地址:【http://www.cnblogs.com/guguli/p/4489272.html#top】首先要理解一下每一个进程是如何维护自己独立的寻址空间的,我的电脑里呢是8G内存空间。了解过的朋友应该都知道这是虚拟内存技术解决的这个问题,然而再linux中具体是怎样的模型解决的操作系统的这个设计需求的呢,让我们从linux源码的片段开始看吧!(以下内核源码均来自fedora2
2016-09-08 15:55:59
921
转载 Linux 内存管理
计算机系统中有几类存储设备:cache、内存、外存。cache的存取速度最高,可以和CPU匹配,因此其代价最高,容量也最小。内存,又称主存或物理内存,是可以随机访问的存储器,其存取速度比高速cache低,对内存的访问需要几倍的CPU周期,因此其代价也比cache低,容量也可以做得比较大(从M到G) 。外存,如硬盘、软盘、光盘等,其容量大、成本低,但存取速度更低,对硬盘的存取速度至少比对内存的存取速
2016-09-08 15:54:37
490
转载 关于linux 内存分配
Linux内存管理摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存的使用方法。力求从外到内、水到渠成地引导网友分析Linux的内存管理与使用。在本章最后,我们给出一个内存映射的实例,帮助网友们理解内核内存管理与用户内存管理之间的关系,希望大家最终能驾驭Linux内存管理。前言内存管理一向是所有操作系统书籍不惜笔墨...
2016-09-08 15:52:45
3017
转载 linux 内存管理 - 分配页面
源码为 2.6.37内核,x86_64架构Linux内核中分配页面使用了以下六个函数:alloc_pages(gfp_mask, order):用这个函数请求2order 个连续的页框。他返回第一个所分配页框描述符的地址,或者如果失败,则返回NULL。alloc_page(gfp_mask):用于获得一个单独页框的宏,它其实只是alloc_p
2016-09-08 15:50:31
421
转载 linux 内存管理 - paging_init 函数
源码为 2.6.37内核,x86_64架构,内存模型为Sparse Memorypaging_init函数在setup_arch函数中被调用,用于初始化所有节点的pg_data_t结构,以及节点对应的管理区zone结构,和page结构。调用的大致过程为:start_kernel() --> setup_arch() --> paging
2016-09-08 15:49:35
839
转载 Linux 内存管理 重要结构体
虚拟内存地址与实际内存地址之间的关系,是如此转换的,逻辑地址-->线性地址-->物理地址。也是从分段单元到分页单元的转换。在linux中,用户程序所使用的地址与硬件使用的物理地址是不等同的。虚拟内存引入一个间接层,它使得许多操作成为可能。在引入虚拟内存这个概念和方法后,在系统中运行的程序可以分配比物理内存更多的内存。而linux的地址有分下面几个类型:用户虚拟地址:用户空间所能看到的常规地
2016-09-08 15:48:37
647
转载 深入浅出Linux内核内存管理基础
1 背景1.1 用户空间与内核空间内存的划分 从Linux操作系统层次上,内存可划分为用户空间内存和内核空间内存。 32位的CPU,最大寻址范围为2^32 - 1也就是4G的线性地址空间。Linux简化了分段机制,使得虚拟地址与线性地址总是一致的。Linux一般把这个4G的地址空间划分为两个部分:其中 0~3G为用户程序地址空间,虚地址0x00000000到0x
2016-09-08 15:41:39
490
转载 Linux内核学习笔记十——虚拟文件系统概念
虚拟文件系统虚拟文件系统:内核子系统VFS,VFS是内核中文件系统的抽象层,为用户空间提供文件系统相关接口;通过虚拟文件系统,程序可以利用标准Linux文件系统调用在不同的文件系统中进行交互和操作。VFS作为抽象层: 文件系统被安装在一个特定的安装点上,该安装点在全局层次结构中被称作命名空间,所有的已安装文件系统都作为根文件系统树的枝叶出现在系统中。
2016-09-07 19:20:31
171
转载 Linux内核学习笔记九——内核内存管理方式
一 页 内核把物理页作为内存管理的基本单位;内存管理单元(MMU)把虚拟地址转换为物理地址,通常以页为单位进行处理。MMU以页大小为单位来管理系统中的也表。 32位系统:页大小4KB 64位系统:页大小8KB内核用相应的数据结构表示系统中的每个物理页: struct page {}内核通过这样的数据结构管理系统中所有的页,因
2016-09-07 19:20:02
218
转载 Linux内核学习笔记八——定时器和时间管理
一 内核中的时间观念 内核在硬件的帮助下计算和管理时间。硬件为内核提供一个系统定时器用以计算流逝的时间。系 统定时器以某种频率自行触发,产生时钟中断,进入内核时钟中断处理程序中进行处理。 墙上时间和系统运行时间根据时钟间隔来计算。利用时间中断周期执行的工作: 更新系统运行时间; 更新实际时间; 在smp系统上,
2016-09-07 19:19:31
239
转载 Linux内核学习笔记七——内核同步机制和实现方式
一 原子操作 指令以原子的方式执行——执行过程不被打断。1 原子整数操作 原子操作函数接收的操作数类型——atomic_t//定义atomic_t v;//初始化atomic_t u = ATOMIC_INIT(0);//操作atomic_set(&v,4); // v = 4atomic_add(2,&v); //
2016-09-07 19:19:06
202
转载 Linux内核学习笔记六——并发和同步概念
一 临界区和竞争条件 临界区:访问和操作共享数据的代码段。 竞争条件:多个执行线程处于同一个临界区中。 处于竞争条件:造成访问的数据或者资源不一致状态:对资源i的访问:ProcessA和B访问后得到正确的结果应该是9: 进程是并发执行,有可能得到的结果是:8
2016-09-07 19:18:31
197
转载 Linux内核学习笔记五——中断推后处理机制
一 中断 硬件通过中断与操作系统进行通信,通过对硬件驱动程序处注册中断处理程序,快速响应硬件的中断。硬件中断优先级很高,打断当前正在执行的程序。有两种情况: 硬件中断在中断处理程序中处理 硬件中断延后再进行处理 这个具体硬件相关,在中断处理程序中处理,打断了当前正在执行的程序;所有中断都将被屏蔽;如果占用时间太长不合适,造成系统交互性,反应能力都会受到影响
2016-09-07 19:18:05
208
转载 Linux内核学习笔记四——系统调用
一 用户空间和内核空间Linux内核将这4G字节虚拟地址空间的空间分为两部分: l 将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为“内核空间”。 l 将较低的3G字节(从虚拟地址 0x00000000到0xBFFFFFFF),供各个进程使用,称为“用户空间)。 因为每个进程可以通过系统调用进入内核,因此Linux内核由系统内的所
2016-09-07 19:17:31
225
转载 Linux内核学习笔记三——进程调度
进程调度: 在可运行态进程之间分配有限处理器时间资源的内核子系统。一 调度策略1 进程类型 I/O消耗型进程:大部分时间用来提交I/O请求或是等待I/O请求,经常处于可运行状态,但运行时间短,等待请求过程时处于阻塞状态。如交互式程序。 处理器消耗型进程:时间大都用在执行代码上,除非被抢占否则一直不停的运行。 综合型:既是I/O
2016-09-07 19:17:07
358
转载 Linux内核学习笔记二——进程
一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源。 线程是进程中活动的对象,每个线程都拥有独立的程序计数器、进程栈和一组进程寄存器。 内核调度的对象是线程而不是进程。对Linux而言,线程是特殊的进程。二 进程描述符及任务结构 内核使用双向循环链表的任务队列来存放进程,使用结构体task_struc
2016-09-07 19:16:28
238
转载 Linux内核学习笔记一
内核与操作系统: 内核是操作系统的核心部分,包含了系统运行的核心过程,决定系统的性能,操作系统启动内核被装入到RAM中;操作系统与底层硬件设备交互和为运行应用程序提供执行环境。Linux内核与微内核比较: 微内核:内核只需要一个很小的函数集,通常包括几个同步原语,一个简单的调度程序和进程间通信机制。运行在微内核之上的几个系统进程实现系统级功能:内存分配,设备
2016-09-07 19:15:46
194
转载 OS中的自映射问题
对于每个进程而言都能看到4G的内存,一个页是4K,一共有4G/4K=2^20个页。每个进程中都有自己的一个页目录(一级页表),这个页目录可以管辖1024个二级页表,充足情况下进程会有1024个二级页表。那么这1024个页对于用户来说就不用了,可以从2^20个页表中去除,实际需要管理的页的个数就是2^20-1024=1023*1024个页。又因为我们有1024个二级页表,每个二级页表可以管理1024
2016-09-07 14:54:01
633
转载 【OS】逻辑地址、线性地址和物理地址之间的转换
LogicalAddress,LinearAddress,PhysicalAddressLinearAddress是转换过程中出现的中间态而已。虚拟内存中和代码上能看到的内存地址一般都是LogiccalAddress(带冒号的除外)。这几个地址是如何转换的:首先拿到一个LogicalAddress,然后去查GDT表,根据选择子找到Base,再把base和Of...
2016-09-07 14:50:41
804
转载 Linux2.6内核启动流程
Linux内核构成1 arch/arm/boot/compressed/Makefile arch/arm/boot/compressed/vmlinux.lds2. arch/arm/kernel/vmlinux.lds Linux内核启动流程arch/arm/boot/compressed/start.S Start: .
2016-09-06 21:30:10
356
转载 Linux内核目录结构
l arch目录arch是architecture的缩写。内核所支持的每种CPU体系,在该目录下都有对应的子目录。每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别包含控制系统引导,内存管理,系统调用等。| --x86 /* 英特尔cpu及与之相兼容体系结构的子目录*/| |--boot /*引导程序*/| | |--compressed
2016-09-06 21:26:52
178
转载 linux目录结构详细介绍
1、树状目录结构图2、/目录目录描述/第一层次结构的根、整个文件系统层次结构的根目录。/bin/需要在单用户模式可用的必要命令(可执行文件);面向所有用户,例如:cat、ls、cp,和/usr/bin类似。/boot/引导程序文件,
2016-09-06 21:25:54
187
转载 大话linux(五)之互斥锁mutex
上文说到小明驱车离开银行,随即开到了比较大的商城茂业(在深圳来说,茂业算是大商城咯)楼下,准备把车停在停车场下,进里面看看zippo火机,自己怎么也算是个“白骨精”(新时代对白领、骨干、精英的称谓),吸烟也得有个好装备:)驱车来到停车场前,发现保安在为排在前面的10辆车一个个的发停车卡,发停车卡很快的,自己等一下吧。不禁又联想到这个和操作系统的那个机制有些类似呢?对了,互斥锁。其实互斥锁和当cou
2016-09-06 21:22:22
651
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人