如果看一些很底层的代码(比如很多库的代码,或者内核代码),会经常见到形如 _cdecl , _stdcall (这个在Windows下的代码中很常见), _fastcall (这个比较少见)这一类的东西,到底是什么? 这些其实是用来指示编译器做函数调用的时候,应该如何调用,比如说, a)参数的传递是 ...
分类:
其他好文 时间:
2016-05-15 21:39:20
阅读次数:
217
在linux下对上面的文件进行静态编译(考虑到前面开发板上移植的某些库还没有添加进去)生成read-mem目标文件,然后进行反汇编并将反汇编生成的文件导入到当前目录下的dump上去。
这里红箭头指向的两行是比较重要的两行,将3传给r7,然后使用了SVC系统调用指令,这时PC指针会从用户空间进入到内核空间(通过一个固定的入口),第二步会取r7寄存器里面的值3, 然后根据这个值查一个表确定要调用那个系统调用(即对于3的系统调用内核代码)。
系统就是通过固定入口进入内核空间,然后取出系统调用编号,在利用编号查找上...
分类:
系统相关 时间:
2016-05-12 22:53:24
阅读次数:
340
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano ...
分类:
其他好文 时间:
2016-05-11 23:44:56
阅读次数:
255
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano ...
分类:
其他好文 时间:
2016-05-10 23:21:03
阅读次数:
278
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano ...
分类:
其他好文 时间:
2016-05-10 23:14:48
阅读次数:
147
基本信息 Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都使用了Git。Git同样可以被诸如Capis ...
分类:
其他好文 时间:
2016-05-09 18:28:48
阅读次数:
144
linux 内存管理基于分段、分页把逻辑地址转换为物理地址,同时有些RAM永久的分配给了内核使用用来存放内核代码以及静态数据。其余的RAM为动态内存。linux中采用了很多有效的管理方法,包括页表管理、高端内存(临时映射区、固定映射区、永久映射区、非连续内存区)管理、为减小外部碎片的伙伴系统、为减小内部碎片的slab机制、伙伴系统未建立之前的页面分配制度以及紧急内存管理等等。。
...
分类:
其他好文 时间:
2016-05-07 10:35:11
阅读次数:
268
内核代码中,原因一览无余
每一位一个描述符,总共1024/8/4*32=1024个...
分类:
其他好文 时间:
2016-05-07 08:20:09
阅读次数:
641
第一章主要概述绍了Android系统移植与驱动开发和我们之前课上的内容大同小异,Android的系统架构分为四层:Linux内核(Android使用Linux2.系列作为内核)、C/C++代码库、Android SDK API(JAVA编写的Library)、应用程序。 而Android移植分为系统 ...
分类:
移动开发 时间:
2016-05-06 19:33:28
阅读次数:
126
内存管理
RAM的某些部分永久的分配给内核,并用来存放内核代码以及静态内核数据结构。
RAM的其余部分称为动态内存(dynamic memory),这不仅是进程所需的宝贵资源,也是内核本身所需的宝贵资源。实际上,整个系统的性能取决于如何有效地管理动态内存。
因此,现在所有多任务操作系统都在尽力优化对动态内存的使用,也就是说,尽可能做到当需要时分配,不需要时释放。
...
分类:
系统相关 时间:
2016-05-06 16:10:01
阅读次数:
228