03 2014 档案

摘要:启动流程包括两个阶段:linux系统启动android应用系统启动1、linux系统启动启动次序:系统上电Bootloader引导linux内核启动init初始化系统服务1.1 系统上电与启动ROM上电,PC指向复位时的零地址,即从启动代码开始执行,启动代码在NOR Flash或NAND Flash中。1.1.1 从NOR Flash中启动启动代码在NOR Flash开始处设置好存储器地址、存取规则配置电源管理模块,各模块上电复制正式代码到内存中设置地址映射PC指向内存启动代码1.1.2 从NAND Flash中启动上电开始,DMA将NAND Flash第一页数据搬运到内部RAM中PC指向内部 阅读全文
posted @ 2014-03-31 16:16 学而~ 阅读(299) 评论(0) 推荐(0) 编辑
摘要:一、GSM网络概述1、安全机制认证用户,防止未授权接入对空中接口传输加密,防止无线信道上用户信息被窃听SIM卡独立于终端,管理用户信息在空中接口上以临时身份标识用户,防止用户被跟踪 但是GSM的缺陷已经逐渐暴露。2、GSM网络结构两个主要组成部分: 固定网络基础结构(固话网络) 移动基站按功能,GSM系统中的模块划分为四个部分: 网络与交换子系统NSS 基站子系统BSS 移动台MS 公众网络PN MS BSS NSS PN3、GSM网络的安全要求GSM的两个主要安全目标: 防止未授权接入、用户身份倍假冒(通过用户鉴权) 保护用户隐私(通过传输加密、信令加密)二、GSM... 阅读全文
posted @ 2014-03-30 17:25 学而~ 阅读(2089) 评论(0) 推荐(0) 编辑
摘要:1、首先打开终端 2、在终端中输入sudo apt-add-repository ppa:tualatrix/ppa 回车后输入密码等一会,导入密钥 3、再输入sudo apt-get update 回车再等一会,更新源信息 4、输入 sudo apt-get install Ubuntu-tweak 回车后就开始下载最新的Ubuntu tweak了,马上就好了 安装完毕后便可以在 应用程序-系统工具中找到 阅读全文
posted @ 2014-03-29 13:41 学而~ 阅读(523) 评论(0) 推荐(0) 编辑
摘要:我们在使用printk()函数中使用日志级别为的是使编程人员在编程过程中自定义地进行信息的输出,更加容易地掌握系统当前的状况。 对程序的调试起到了很重要的作用。(下文中的日志级别和控制台日志控制级别是一个意思)printk(日志级别 "消息文本");这里的日志级别通俗的说指的是对文本信息的一种输出范围上的指定。日志级别一共有8个级别,printk的日志级别定义如下(在linux26/includelinux/kernel.h中):#defineKERN_EMERG""/*紧急事件消息,系统崩溃之前提示,表示系统不可用*/#defineKERN_ALERT 阅读全文
posted @ 2014-03-28 22:10 学而~ 阅读(965) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://blog.csdn.net/estate66/article/details/5886816 ,本人对此文有改进。 当我们编写完一个驱动后,我们要把它以模块形式编译或者直接编译进内核时,需要修改相关文件,其中最重要的便是kconfig,makefile。主要是分析一下三者之间的关系,然后就其语法简要的谈一下。 当我们在内核源码目录下执行make(或者makemenuconfig等命令)命令时,实际上是根据makefile来进行编译的。我在 mini2440开发板上编写了一个按键控制led灯的驱动,文件名为buttons_leds_zhao.c,属于字符驱动。因此在/.. 阅读全文
posted @ 2014-03-28 19:55 学而~ 阅读(1829) 评论(0) 推荐(0) 编辑
摘要:步骤如下:1、make mrproper Linux下面去编译项目之前,一般常会用make mrproper去先删除之前编译所生成的文件和配置文件,备份文件等,其中,mrproper和distclean,clean之间的区别,Linux内核源码根目录下面的makefile中,有很清晰的解释:help:@echo 'Cleaning targets:'@echo ' clean - Remove most generated files but keep the config and'@echo ' enough build support to buil 阅读全文
posted @ 2014-03-28 16:47 学而~ 阅读(594) 评论(0) 推荐(0) 编辑
摘要:Andriod是什么?首先,就像Android开源和兼容性技术负责人Dan Morrill在Android开发手册兼容性部分所解释的,“Android并不是传统的Linux风格的一个规范或分发版本,也不是一系列可重用的组件集成,Android是一个用于连接设备的软件块。”Andriod是什么?Linux所有东西的底层是一个稳定的保持更新的Linux内核(我现在用的Nexus手机所用的就是2.6.32版的内核),以及我们精心打造的能源管理组件;当然还有将它们整合至上层Linux代码的扩展和公共组件。DalvikAndroid另一个重要的部分,包括虚拟机和一组重要的运行环境。它的设计非常巧妙,是个 阅读全文
posted @ 2014-03-27 17:21 学而~ 阅读(349) 评论(0) 推荐(0) 编辑
摘要:该宏有三个参数:prev, next, last。它们都是局部变量。 prev:输入参数,变量值为旧进程描述符的地址。 next:输入参数,变量值为新进程描述符的地址。 last:输出参数,用来记录该进程是由哪个进程切换而来的,即保存 在当前进程之前 占用cpu的进程的 进程描述符地址。为什么需要last这个局部变量呢? 因为: 首先,记录前一进程的进程描述符地址,对进程切换是很有用的,具体什么用途,以后再说。 其次,switch_to宏由就进程调用,在新进程结束,新进程如果想获取旧进程描述符地址,不能直接读取局部变量prev(因为prev存放在该宏调用者,即旧进程的内核栈中,新进... 阅读全文
posted @ 2014-03-26 14:31 学而~ 阅读(2277) 评论(0) 推荐(0) 编辑
摘要:这是Android2.1的源代码的目录结构,可以帮助我们研究Android的源代码。Android源代码的下载请参考官网Android 2.1|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build (存放系统编译规则及generic等基础开发包配置)|-- cts (Android兼容性测试套件标准)|-- dalvik (dalvik JAVA虚拟机)|-- development (应用程序开发相关)|-- external (android使用的一些开源的模组)|-- frameworks (核心框架——jav 阅读全文
posted @ 2014-03-26 11:06 学而~ 阅读(296) 评论(0) 推荐(0) 编辑
摘要:显然Eclipse不是阅读Android源码的好工具,不流畅,搜索低效,继承性关系/调用关系都无法有效查看。推荐Source Insight,在这个工具帮助下,你才可以驾驭巨大数量的Android 源码,你可以从容在Java,C++,C代码间遨游,你可以很快找到你需要的继承和调用关系。顺便,现在东家是Linux+Samba+Windows的工作模式,Linux+Samba用于代码的同步/编译/管理,Windows做代码编辑。你需要先理解下这个图:Application层就是一个个应用程序,很好理解。Framework提供一个java的运行环境以及对功能实现的封装,简单点说,你家装修总要留很多水 阅读全文
posted @ 2014-03-25 22:19 学而~ 阅读(413) 评论(0) 推荐(0) 编辑
摘要:会话、进程组、线程组总体关系示意图待插入Session(会话)与进程组Shell 分前后台来控制的不是进程而是作业(Job)或者进程组(Process Group)。一个前台作业可以由多个进程组成,一个后台作业也可以由多个进程组成,Shell可以同时运行一个前台作业和任意多个后台作业,这称为作业 控制(Job Control)。例如用以下命令启动5个进程(这个例子出自[APUE2e]): 其中proc1和proc2属于同一个后台进程组,proc3、proc4、proc5属于同一个前台进程组,Shell进程本身属于一个单独的进程组。这些进程组的控制终端相同,它们属于同一个Session。当用户在 阅读全文
posted @ 2014-03-25 21:52 学而~ 阅读(4031) 评论(0) 推荐(0) 编辑
摘要:1、df查看磁盘使用情况2、将windows下的磁盘空间分出与部分给ubuntu3、格式化磁盘在终端输入:mkfs -t ext3 /dev/sdb1用ext3格式对/dev/sdb1 进行格式化4、挂载该分区:手动挂载:在终端输入:mkdir /media/sdb1 ,创建新的硬盘的挂载点在终端键入:mount /dev/sdb1 /media/sdb1如果想开机自动挂载修改/etc/fstab文件,添加如下行:/dev/sdb1/media/sdb1ext3defaults,00 阅读全文
posted @ 2014-03-25 13:39 学而~ 阅读(1206) 评论(0) 推荐(0) 编辑
摘要:一、概述众所周知,Android移动操作系统是Google花费了很大的财力、物力及人力的前提下,推广到世界各个角落,以开放源代码的方式(当然也不是完全开放所有),使其在世界范围内迅速漫延开来,到目前虽说只有三四年的时间 ,火热程度,也不用我细说了,看看业界新闻就明白了。这里我们主要讨论Android系统源代码的下载,这里我们先了解两个工具:1、GitGit是面向Linux内核管理的一个工具,它是一种分布式的版本控制系统,即每一个工作目录下都是一个完整的仓库,因此也支持离线工作, 在本地提交后,便会稍后更新到服务器上。它这种结构比集中式版本控制系统(如常见的SVN、CVS等只有一个完整仓库)更加 阅读全文
posted @ 2014-03-24 19:48 学而~ 阅读(341) 评论(0) 推荐(0) 编辑
摘要:https://android.googlesource.com/ google的android源码网站http://source.android.com/ android网站git://codeaurora.org/platform/manifest.git(用repo下载源码时用的) (不知道是不是https://www.codeaurora.org/里面的) android源码网站http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo 下载repo的网站http://grepcode.com/project/reposi... 阅读全文
posted @ 2014-03-24 00:04 学而~ 阅读(244) 评论(0) 推荐(0) 编辑
摘要:Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现... 阅读全文
posted @ 2014-03-23 23:58 学而~ 阅读(224) 评论(0) 推荐(0) 编辑
摘要:本篇文章将介绍本人对以下问题的理解。1、进程、轻量级进程、线程、线程组之间的关系2、及它们的标识相关说明一、进程、轻量级进程、线程、线程组之间的关系借助上图说明:进程P0有四条执行流,即线程,主线程t0是它的第一个线程,且与进程P0相关联,之后衍生出t1、t2、t3三个线程,这三个线程与轻量级进程P1、P2、P3一一关联,所有的进程、轻量级进程、线程组成了线程组。轻量级进程也是进程,只不过它与某进程的某特定线程相关联。二、它们的标识相关说明pid是进程标识符,tgid是线程组标识符每个进程都有自己的pid,如图中:进程pid(P0)= a,轻量级进程pid(P1)= b /pid(P1)= c 阅读全文
posted @ 2014-03-22 15:15 学而~ 阅读(3135) 评论(1) 推荐(0) 编辑
摘要:目前,互联网行业正在朝着移动互联网方向强劲地发展,而移动互联网的发展离不开背后的移动平台的支撑。众所周知,如今在移动平台市场上,苹果的iOS、谷歌的Android和微软的Windows Phone系统已经形成了三足鼎立的形势,而Android系统的市场占有率是最高的。Android系统之所以能够在市场上占据着第一的位置,一来是因为它依托着谷歌的品德效应和技术实力,二来是因为它是开放的,任何人都可以得到它的源代码,并且能够自由地使用它。既然Android系统是开放的,作为一个移动平台开发人员来说,当然希望能够深入地去分析和研究它的源代码了,然而,Android系统的源代码非常庞大,我们需要循序渐 阅读全文
posted @ 2014-03-22 14:31 学而~ 阅读(891) 评论(0) 推荐(0) 编辑
摘要:引入PAE机制后,分页模式是怎样的呢?首先,要搞明白几件事,2.6.11以上版本的linux内核中,存在4中页表(页全局目录,页上级目录,页中级目录,页表),这些页表结构是已经存在于硬盘中的,当进程被创建或这些页表被使用到时,将其调入物理内存(页框)中。而每一线性地址都与某目录项或表项对应,也就是说,根据每一线性地址都能特定地找到某一目录项,例如下面这个例子:当某进程被创建时,此进程的页全局目录被调入物理内存(页框)中,页全局目录的地址被存入到进程控制块中,假如此时采用二级页表,需要寻址进程线性地址0x12345678的物理地址,步骤如下:线性地址0x12345678的前10位为0x48,它就 阅读全文
posted @ 2014-03-22 14:29 学而~ 阅读(3183) 评论(0) 推荐(0) 编辑
摘要:task state segment,任务状态段。关于每个cpu对应不同TSS段的问题,如下解释:TSS段主要用在当前的任务从用户态切入内核态时去找到该任务的内核堆栈。多核上的任务是真正的并发,每个核都可以同时运行不同的任务,所以“当前任务”的数量可能达到cpu数量这么多,所以要为每一个“当前任务”准备一个TSS。也就是有几个核就得有几个TSS。任务切换是通过中断实现的,中断时任务处于内核态,所以任务切换时,当前任务处于内核态,当切换到新任务时,当前任务的上上文先保存在它的内核栈。当切换回该任务时,先从任务描述符中得到它内核栈的栈顶指针,然后恢复上下文,之后再从内核栈中恢复到用户态。1、工作细 阅读全文
posted @ 2014-03-22 14:28 学而~ 阅读(2434) 评论(0) 推荐(1) 编辑
摘要:《UNIX环境高级编程》,推荐指数:★★★★★《UNIX环境高级编程》是 Unix/ Linux 程序员案头必备的一本书籍。可以说,Linux 程序员如果没有读过这本书,就好像基督教徒没有读过圣经一样,是很难让人理解的。这本书概括了 Linux 编程所需的一切理论框架、主要系统函数、多进程编程、乃至 Linux 网络通信。对于初学者,如果你能将《操作系统》这门课程结合着这本书来学习,试着用 Linux 程序实践《操作系统》这门书中讲的进程间通信、进程调度、进程同步等内容,相信这将是一个一举两得的事情。哦,忘了告诉大家,上次 CNN 采访 Google 总裁佩林的时候,就看到佩林的书架上就有这本 阅读全文
posted @ 2014-03-22 14:25 学而~ 阅读(1298) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示