自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(33)
  • 收藏
  • 关注

原创 python安装Theano库

最近研究deep learning,于是装个Theano库,结果今天折腾了好半天折腾好久,终于发现一种比较简单的安装方法。http://python-distribute.org/distribute_setup.pyhttps://github.com/pypa/pip/raw/master/contrib/get-pip.py分别打开上面两个网址,里面其实是distribute和p

2017-02-23 16:12:41 840

翻译 深入理解Linux内核——内存管理

1:页框的大小:4KB,4MB(如果PAE被激活,则为2MB)。2:页描述符:    1)内核必须记录每个页框当前的状态。    2)内核必须能够区分哪些页框包含的是属于进程的页,而那些页框包含的是内核代码或者内核数据。    3)空闲页框:动态内存中不包含有用数据。          不空闲页框:包含用户态进程的数据,某个软件高速缓存的数据,动态分配的内核数据结构,设

2017-02-20 16:15:39 873

翻译 深入理解linux内核架构(内存管理)

1:在内核使用高端内存页之前,必须使用下文讨论的kmap和kunmap函数将其映射到内存虚拟地址空间中。2:UMA计算机(一致内存访问,uniform memory access)将可用内存以连续方式组织起来。3:NUMA计算机(非一致性内存访问,non-uniform memory access)系统的各个CPU都有本地内存,可支持特别快速的访问,各个处理器之间通过总线连接起来,以支持其

2017-02-20 15:43:52 8075

转载 神经网络

2017-02-20 15:00:56 292

转载 k-means

2017-02-20 14:56:11 252

原创 中断&中断返回

中断1、将所有参数或一部分参数入栈2、将当前指令的下一条指令地址入栈(返回地址)3、跳转到函数体执行,在函数体开始执行时还需要完成一部分操作:ebp入栈,将ebp指向esp(栈顶),分配所需字节的临时空间,保存寄存器汇编代码1. push ebp    /*将old ebp入栈*/2. mov ebp,es

2017-02-20 14:54:18 4064

转载 linux的echo命令

linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法echo命令的功能是在显示器上显示一段文字,一般起到一个提示的作用。该命令的一般格式为: echo [ -n ] 字符串其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。用echo命令输出加引号的字符串时,将字符串原样输出;用echo

2017-02-20 14:53:02 226

转载 一个简单的Linux驱动程序和Makefile

1、源程序//hello.c1.     #include    2.     #include    3.       4.     MODULE_LICENSE("Dual BSD/GPL");  5.       6.     static int hello_init(void)  7.     {  8.      

2017-02-20 14:51:58 1198

转载 linux内核模块编译

本文将直接了当的带你进入linux的模块编译。当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者能够看懂。之所以要写这篇文章,主要是因为从书本上学的话,可能要花更长的时间才能学会整个过程,因为看书的话是一个学习过程,而我这篇文章更像是一个培训。所以实践性和总结性更强。通过本文你将会学到编译一个模块和模块makefile的基本知识。以及加载(卸载)模块,查看系统消息的一些知识;声明:

2017-02-20 14:51:16 337

转载 主设备号和次设备号

2017-02-20 14:49:39 481

转载 linux系统将设备分为3类:字符设备、块设备、网络设备

2017-02-20 14:46:44 9043

转载 linux内核驱动设备

最近在学习Linux下设备驱动程序,从头开始吧!慢慢总结,先入手,后入门,再提高!       下面是一个简单的字符设备驱动程序,主要是一个模拟设备,使用了系统的内存,相信大家都能看懂,毕竟简单,而且注释清楚,编译测试的方法大家都知道吧,这里要说的就是习惯的测试方法是通过echo向设备文件写入内容,然后通过cat显示内容,但是希望大家看到,该设备只有4字节的内存,测试的时候建议大家可以试一

2017-02-20 14:43:35 233

原创 while&do-while

一、while语句的一般形式为:while(表达式)语句其中表达式是循环条件,语句为循环体。while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。二、do-while语句的一般形式为:do语句while(表达式);这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循

2017-02-20 14:42:16 260

翻译 深入理解linux内存管理1

2017-02-20 14:41:29 368

转载 内存映射机制

现代意义上的操作系统都处于32位保护模式下。每个进程一般都能寻址4G的内存空间。但是我们的物理内存常常没有这么大,进程怎么能获得4G的内存空间呢?这就是使用了虚拟地址的好处。我们经常在程序的反汇编代码中看到一些类似0x32118965这样的地址,操作系统中称为线性地址,或虚拟地址。通常我们使用一种叫做虚拟内存的技术来实现,因为可以使用硬盘中的一部分来当作内存使用。另外,现在操作系统都划分为系统空间

2017-02-20 14:38:00 2070

翻译 Linux内核管理原理

2017-02-20 11:40:44 260

转载 C++中 #ifdef 和#endif的作用

C++中 #ifdef 和#endif的作用一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #

2017-02-20 11:36:18 214

转载 用vin打造IDE

2017-02-20 11:34:57 248

转载 bash的内置的unix命令

bash内置Unix命令.:执行当前进程环境中的程序。同source。. file:dotUnix命令从文件file中读取命令并执行。: 空操作,返回退出状态0。alias:显示和创建已有Unix命令的别名。bg:把作业放到后台。bind:显示当前关键字与函数的绑定情况,或将关键字与readline函数或宏进行绑定。break:从最内层循环跳出。builtin

2017-02-20 11:32:12 390

翻译 转换后缓冲器

2017-02-20 11:30:58 279

翻译 硬件高速缓存

2017-02-20 11:29:16 348

翻译 内存管理

2017-02-20 11:26:52 249

原创 C语言小笔记

1.main是一个特殊的函数名——每个程序都是从main函数的起点开始执行。2.函数之间进行数据交换的一种方法是调用函数向被调用函数 一个值(称为参数)列表。函数名后面的一对圆括号将参数列表括起来。3.\n——换行符  \t——制表符  \b——回退符  \"——双引号  \\——反斜杠4.printf是一个输出化格式函数.该函数的第一个参数

2017-02-20 11:24:46 220

转载 Linux内核中采用了一种同时适用于32位和64位系统的内存分页模型

Linux内核中采用了一种同时适用于32位和64位系统的内存分页模型,对于32位系统来说,两级页表足够用了,而在x86_64系统中,用到了四级页表,如图2-1所示。四级页表分别为:页全局目录(Page Global Directory)页上级目录(Page Upper Directory)页中间目录(Page Middle Directory)页表(Page Tab

2017-02-20 11:23:12 945

翻译 伙伴系统的概述

2017-02-20 11:22:01 531

转载 Zshell

2017-02-20 11:13:26 1792

转载 编译内核

2017-02-20 11:12:02 204

原创 cache的工作原理

2017-02-20 11:09:59 405

翻译 palloc

2017-02-20 11:08:00 1379

原创 linux常见的20条命令

1. ls命令ls命令是列出目录内容(List Directory Contents)的意思。运行它就是列出文件夹里的内容,可能是文件也可能是文件夹。?1234567root@tecmint:~# ls Android-Games

2017-02-20 11:01:16 751

原创 逻辑地址&线性地址&物理地址

一、逻辑地址转线性地址    机器语言指令中出现的内存地址,都是逻辑地址,需要转换成线性地址,再经过MMU(CPU中的内存管理单元)转换成物理地址才能够被访问到。我们写个最简单的hello world程序,用gccs编译,再反编译后会看到以下指令:mov    0x80495b0, %eax这里的内存地址0x80495b0 就是一个逻辑地址,必须加上隐含的DS 数据

2017-02-20 10:58:48 349

原创 list_entry()

Linux内核中,获取节点地址的函数list_entry()非常常用,由于其定义有点晦涩,先解析如下:list_entry的宏定义:#define list_entry(ptr, type, member) / ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) 这个倒是不难理解:从一个

2017-02-20 10:31:32 164

转载 程序的内存布局

程序的内存布局 现代的应用程序都运行在一个虚拟内存空间里,在32位的系统里,这个内存空间拥有4GB的寻址能力。现代的应用程序可以直接使用32位的地址进行寻址,整个内存是一个统一的地址空间,用户可以使用一个32位的指针访问任意内存位置。    在进程的不同地址区间上有着不同的地位,Windows在默认情况下会将高地址的2GB空间分配给内核,而Linux默认将高地址的1GB空间分配给内核,

2017-02-20 10:30:18 803

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除