- 博客(26)
- 资源 (4)
- 收藏
- 关注
原创 虚拟内存空间的映射和虚拟区域的建立
虚拟内存可以使计算机操纵更大的地址空间,使系统中的每一给进程拥有独立的虚拟地址空间,所以运行一个程序的进程不会影响到其他进程。另外,硬件的虚拟内存机制允许对内存区写保护,这可以防止代码和数据被错误的程序覆盖。内存映射可以将cpu的虚拟地址空间映射到物理内存。虚拟内存机制虽然允许进程拥有独立的地址空间,但有时也需要进程之间共享内存。有些程序会被多个进程运行(bash),此时更好的方法是再
2013-12-26 14:34:55
1840
原创 chapter one Algorithm based(算法基础)
什么是算法?什么是程序?前者指解决问题的方法或者一个过程(计算机世界的一切问题几乎都能落实到具体的算法)。后者则是前者的代码体现。算法的特性(输入、输出、确切、有穷)1.1枚举算法
2013-12-24 23:03:54
603
原创 C程序设计语言1-9习题
编写一个将输入复制到输出的程序,并且将其中出现连续的空格用一个空格代替;linux@ubuntu:~/workdir/Denis_ritchet/fun$ cat Copy_InputTo_Output.c/*1.变量c记录当前输入字符串的ASCII码值;lastc记录前一个输入字符串的ASCII码值 *2.NONBLANK负责初始化 lastc为一个任意非空格字符 * */#inc
2013-12-24 17:09:22
1088
原创 pipeline的相关解释(instruction pipeline)
在计算机相关术语中pipeline被解释为流水线(instruction pipeline---指令流水线),为了计算机能够加速指令的通过速度(单位时间指令的运行数量)而设计。指令流水线(英语:Instruction pipeline)是为了让计算机和其它数字电子设备能够加速指令的通过速度(单位时间内被运行的指令数量)而设计的技术。流水线是假设程序运行时有一连串的指令要被运行(垂直座标i
2013-12-23 12:24:54
3071
原创 linux内存管理
存储管理是操作系统的重要组成部分。linux操作系统采用了请求式分页虚拟存储管理办法。系统为每个进程提供4GB的虚拟存储空间。不同进程的虚拟内存是独立的。
2013-12-22 23:51:16
856
转载 linux启动流程分析
http://blog.csdn.net/dlutbrucezhang/article/details/9068017原文出处---谢谢作者的无私分享--将技术进行到底开机过程指的是从打开计算机电源直到LINUX显示用户登录画面的全过程。分析LINUX开机过程也是深入了解LINUX核心工作原理的一个很好的途径。启动第一步--加载BIOS当 你打开计算机电
2013-12-21 16:18:42
522
转载 win7下的超级终端的移植
原文出自http://blog.sina.com.cn/s/blog_5d9f8cc60101a340.html将windows xp中的超级终端移植到win7或vista中 (2013-01-17 15:46:06)转载▼标签: win7 vista 超级终端
2013-12-16 15:02:08
894
转载 指令及寻址方式三
现在我们已经掌握了所有知识,可以编写简单的ARM汇编程序,但如果要编写较为复杂的ARM程序,就必须掌握更多的寻址模式和指令,这就是本节的重点所在。我们在“基本寻址模式与基本指令”中学习了最常用的3种寻址方式。下面介绍其它寻址方式。1.6.1其它常见寻址模式1. 基址寻址基址寻址就是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址。基址寻址用于访问基址
2013-12-16 00:01:16
4055
转载 arm寻址与简单指令
要想进行ARM的汇编编程,首当其冲要知道最基本、最常用的指令,而要了解指令则必须要了解寻址方式。所以这里将聚焦在——基本寻址方式和基本指令。首先,来看一看我们已经见过的2条指令:MOV pc, lr和BL addsub最简单的汇编指令格式是操作码(例如:MOV、BL)和操作数(例如:pc, lr, addsub)。操作码易于理解,例如MOV表示将某个值从一处传送到另一处,BL表示跳
2013-12-15 23:26:07
1436
转载 arm汇编基础一
本文出自http://blog.csdn.net/scyangzhu/article/details/8018761 作者著有好几本技术书籍,在此谢谢作者的分享ARM的汇编编程,本质上就是针对CPU寄存器的编程,所以我们首先要弄清楚ARM有哪些寄存器?这些寄存器都是如何使用的?ARM寄存器分为2类,普通寄存器和状态寄存器,如表1-1所列。表1
2013-12-15 21:16:01
873
原创 网络基础
一、OSI七层参考模型1、为什么使用-----早期不同厂商设备之间无法互相通信,标准不同; 物理层:关注传输的介质,有线和无线;电气、机械、光学特性 传输的流量-----透明比特流;bit; 有线介质:双绞线、同轴电缆、光纤; 双绞线分类:RJ--45抗干扰:屏蔽(STP)和非屏蔽(UTP)内部线缆对绞程度:3、
2013-12-15 09:46:23
853
转载 组播相关协议
本文部分内容转载于:http://network.51cto.com/art/200912/168407.htm之前在讲到IGMP的时候说到IGMP报文不能传送到局域网以外(详细参见:http://blog.csdn.net/todd911/article/details/9530633),那么在不同网段的主机加入组播组后,路由器之间是如何通信,知道要转发到哪个子网的呢?这就是IP组播路由
2013-12-15 09:37:34
1988
转载 linux内核相关面试题
1) Linux中主要有哪几种内核锁?2) Linux中的用户模式和内核模式是什么含意?3) 怎样申请大块内核内存?4) 用户进程间通信主要哪几种方式?5) 通过伙伴系统申请内核内存的函数有哪些?6) 通过slab分配器申请内核内存的函数有?7) Linux的内核空间和用户空间是如何划分的(以32位系统为例)?8) vmalloc()申请的内存有什么特点?9) 用户
2013-12-11 18:36:34
752
转载 arm基础
一、arm特点(1)、支持的数据类型字节(8位)、半字(16为)、字(32位)(2)、采用精简指令集(RISC)处理器有两种工作状态:ARM状态(指令长度32位)执行字对齐的ARM指令、Thumb状态(16位)执行半字对齐的Thumb指令这两种工作状态可以相互切换(不影响处理器模式和寄存器内容)作者:程老师,华清远见嵌入式学院讲师。一
2013-12-11 00:00:24
1019
转载 如果当初学习编程时能有人给我这些忠告该多好
http://blog.jobbole.com/52761/ 原文链接伯乐在线导读: Cecily Carver 是多伦多的一位程序媛,和 Jennie Faber 一起创办了一个游戏制作工作室。她喜欢歌剧、舞蹈和弹钢琴。Cecily 在这篇文章分享她在编程道路上的所感所想,给出很多值得思考的编程箴言以及一些思想误区,比如在你学习编程之前思考一下你的目标、编程不是什么神秘的东西、坚
2013-12-07 14:10:02
1225
转载 cmd 命令行制作u盘启动
cmd下制作U盘启动盘命令cmd下使用命令制作U盘启动盘过程:1. 使用Win键+R进入cmd界面。2. 输入diskpart。3. 输入list disk(显示当前系统下的所有磁盘)。4. 输入select disk 1(1是我的磁盘编号,0是电脑自带的硬盘,注意根据大小选择正确的U盘)。5. clean(清楚U盘中的内容,清除前注意保存)。6. create
2013-12-06 20:29:10
3172
转载 Posix多线程编程学习笔记
Posix多线程编程学习笔记(一)—线程基础(1)一.什么是线程 在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。 典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。 二.
2013-12-05 14:24:24
878
转载 多线程编程知识储备
http://blog.csdn.net/feixiaoxing/article/details/7001999 原文出处 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 多线程编程是现代软件技术中很重要的一个环节。要弄懂多线程,这就要牵涉到多进程?当然,要了解到多进程,就要涉及到操作系统。
2013-12-05 14:09:48
708
转载 解析“extern”
1、 声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部。下面举一个简单的例子。创建一个工程,里面含有A.cpp和B.cpp两个简单的C++源文件://A.cppint i; void main(){}
2013-12-04 17:15:28
601
原创 第一章-内核模块
模块的最大好处是可以动态扩展应用层序的功能而且无需重新编译链接生成一个新的镜像;这种模块概念在linux和windows系统的上都有体现,如(windows系统的动态链接库DLL)就是模块概念的应用;我们linux则以大家熟知的共享库 so(shared object)文件心事存在;
2013-12-02 17:03:01
628
原创 关于剑指offer上面程序c语言实现
linux@ubuntu:~/workdir/interview/string_operation$ cat atoi.c/*程序的编写当中核心算法的实现固然是很重要的-但是对于一些可能 * 出现的复杂的不可预料的输入数据的处理函数来说仅仅核心算法的 * 实现对于整个程序来说是远远不够的-如下面的字符串处理函数 * * 下面函数我们似乎都很熟悉,将字符串转换成整形数输出 * 如果是一个
2013-12-02 16:32:35
2405
转载 数组求和
#include int sum(int *arr, int n){ return n == 0 ? 0 : sum(arr,n-1) + arr[n-1];}int main(){ int arr[] = {1,2,3,4,5,6,7,8,9,10}; int len = sizeof(arr)/sizeof(arr[0]);
2013-12-02 16:13:18
871
转载 求单向链表倒数第k个节点
http://www.csdn123.com/html/blogs/20130602/18722.htm/********************************************题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。我们在遍历时维持两个指针,第一个指针从链表的头指针开始遍历,在第k-1步之前,第二个指针保持不动;在第
2013-12-02 12:57:16
988
原创 剑指offer阅读有感
/*二维数组中的查找 * 在一个二维数组中,每一行都按照从左到右递增的顺序排序; * 每一列都按照从上到下递增的顺序排序。需要一个函数,输入 * 这样一个二维数组中的一个整数 ,判断是否为此数组的元素; * *变量的定义:不再多说; * * 首先解决此问题前我需要明白二维数组需要手工定义的变量 * 如行、列,还有输入的数以及一个标记二位数的地址变量 * 以及定义一个一维数组存储指
2013-12-01 22:33:06
665
原创 编译器报错记录
note: expected ‘int *’ but argument is of type ‘int (*)[4]’/*上面的注意是由于在函数传递参数时没有将特殊的(如数组名)参数强转而产生的*/ Test("Test2", matrix, 4, 4, 5, false); //这句程序matri是一个数组作为参数传递应该加上(int *)如下Test("Test2",(int
2013-12-01 21:36:40
2147
转载 二维数组的初始化
二维数组初始化的形式为: 数据类型 数组名[整常量表达式][ 整常量表达式]={ 初始化数据 }; 在{ }中给出各数组元素的初值,各初值之间用逗号分开。把{ }中的初值依次赋给各数组元素。 有如下几种初始化方式: ⑴ 分行进行初始化 int a[2][3]={{1,2,3},{4,5,6}}; 在{ }内部再用{ }把各行分开,第一对{ }中的初值1,2,3是
2013-12-01 17:06:54
743
多处理器编程的艺术中英文版两本
2014-09-29
ckermit源码在redhat和ubuntu上测试过
2014-10-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人