自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GetnextWindow的专栏

大爱开源

  • 博客(9)
  • 资源 (7)
  • 收藏
  • 关注

原创 ubuntu设置中文输入法

Ubuntu 12.04中文输入法的安装 Ubuntu上的输入法主要有小小输入平台(支持拼音/二笔/五笔等),Fcitx,Ibus,Scim等。其中Scim和Ibus是输入法框架。在Ubuntu的中文系统中自带了中文输入法,通过Ctrl+Space可切换中英文输入法。这里我们主要说下Ubuntu英文系统中,中文输入法的安装。安装输入法的第一步,是安装语言包。我们选择System S

2014-06-28 13:51:21 822

原创 内存映射

1.概述一个线性区可以和磁盘文件系统的普通文件的某一个部分或者块设备文件相关联。这就意味着内核把对线性区中页内某个字节的访问转换成对文件中相应字节的操作,这种技术称为内存映射。有两种类型的内存映射:共享型:在线性区页上的任何写操作都会修改磁盘上的文件;而且,如果进程对共享映射中的一个页进行写,那么这种修改对于其他映射了这同一文件的所有进程来说都是可见的。私有型:当进程创

2014-06-17 11:02:00 1376

原创 写文件的流程

许多文件系统都是通过generic_file_write()函数来实现文件对象的write方法,即write(库函数)->sys_write()->generic_file_write():ssize_t generic_file_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)

2014-06-15 16:37:27 1695

原创 文件读写的理论

为了提高效率,稍微复杂一些的操作系统对文件的读写都是带缓冲的,Linux当然也不例外。所谓缓冲,就是操作系统为最近刚读写的文件内容在内核保留一份副本,以便当再次需要已经缓冲存储在副本中的内容时就不必再临时从设备上读入,而需要写的时候则可以先写到副本中,待系统较为空闲的时候再从副本写入设备。在多进程的系统中,由于同一个文件可能为多个进程所共享,缓冲的作用就更为显著。然而,怎么样实现缓冲,在哪一个

2014-06-14 11:17:59 1370

原创 brk系统调用实现分析

brk(addr)直接修改堆的大小。addr指定current->mm->brk的新值,返回值是线性区新的结束地址,这是一个系统调用。当用户态的进程调用brk()系统调用时,内核执行sys_brk(addr)函数。下面分析这个函数的执行流程:1:检测addr参数是否位于进程代码段所在的线性区,如果是直接返回,因为堆不能与进程代码段所在的线性区重合。mm=current->mm;down_

2014-06-10 10:02:24 5770

原创 PAGE_MASK判定addr是否是4096倍数

将物理地址addr修整为页边界地址(页的上边界)#define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)|------------|PAGE_ALGN(addr)| || || || |addr|

2014-06-09 11:22:08 4729

转载 堆栈brk指针

内存分配的原理从操作系统角度来看,进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)。1、brk是将数据段(.data)的最高地址指针_edata往高地址推;2、mmap是在进程的虚拟地址空间中(堆和栈中间,称为文件映射区域的地方)找一块空闲的虚拟内存。     这两种方式分配的都是虚拟内存,没有分配物理内存。在第一次访问已分配的虚拟

2014-06-09 09:39:12 1955

原创 linux内存管理浅析

【虚拟内存管理】每个进程对应一个task结构,它指向一个mm结构,这就是该进程的内存管理器。mm->pdg指向容纳页表的内存,每个进程都有自己的mm,每个mm都有自己的页表。用户程序对内存的操作(分配、回收、映射等)都是对mm的操作,具体来说是对mm上的vma(虚拟内存空间)的操作。这些vma代表这进程的各个区域,比如堆、栈、代码区、数据区、各种映射区等等。用户程序对内存的操作并不会直接影响页

2014-06-06 21:09:47 983

原创 Linux0.12信号

1.我们先来看下0.12版本内核是如何处理信号的。在系统调用或者时钟中断末尾,内核会检测每个进程是否收到信号,如果收到信号就会调用do_signal()函数。这个函数是内核系统调用(0x80)中断处理程序中对信号的预处理程序。do_signal会把信号处理函数插入到用户程序堆栈中。这样,在当前系统调用结束后就会立即执行信号处理程序,然后继续执行用户程序,如下图所示:在把信号处理程序的参

2014-06-03 16:40:31 1444 1

Makefile工程

模拟安卓编译系统的工程示例,相信看来这个就能够理解安卓编译系统设计的精髓

2015-08-30

jd-gui windows

非常小巧方便的java反编译工具

2015-08-18

反编译结果

framework.jar中反编译出来的XXX.class文件,对于理解framework.jar很有帮助

2015-08-18

dex2jar反编译工具

dex2jar是一款很小巧的反编译工具,可以讲.dex反编译成.class

2015-08-18

HAL层模块代码

Android增加HAL模块对应的文件,相信读者看后就可以自己为安卓系统定制HAL模块

2015-08-18

Android HAL模块源文件

Android增加HAL模块对应的文件,相信读者看后就可以自己为安卓系统定制HAL模块

2015-08-18

就与CUI的聊天小程序

CUI聊天程序,想玩玩网络编程的可以看看喔

2010-11-30

空空如也

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

TA关注的人

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