- 博客(82)
- 资源 (23)
- 收藏
- 关注
转载 parted创建GPT分区(fdisk不支持创建GPT分区,GPT支持大于2TB分区,MBR不支持)(转)
parted创建GPT分区(fdisk不支持创建GPT分区,GPT支持大于2TB分区,MBR不支持)(转)本次操作环境:Ubuntu Server 10.10 SCSI Harddisk:/dev/sda 500GBU盘:/dev/sdb 8GB(模拟成USB Harddisk,安装OS) 介绍2种分区表:MBR分区表:(MBR含义:主引导记录)所支持的最大卷:2T (T; t...
2018-07-09 20:21:19 1277
转载 Linux /proc/pid记录了什么
由于自己Linux系统知识基础比较薄弱,准备比较全面学习,准备从/proc这个目录开始。实际上这个目录也基本上记录所有系统运行时和内核的一些信息,所以如果想对linux系统有一个比较全面的了解,从/proc入手应该是个不错的选择。准备将自己学习的过程记录下来,分享给同样需要的朋友,也便于以后查阅。今天准备介绍一下/proc/pid这个目录到底是做什么用的,它到底记录了哪些信息。cd /proc/之...
2018-03-08 12:00:42 1512 1
转载 proc目录详解
1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,pro...
2018-03-07 15:45:50 1142
转载 Linux进程与线程的区别
进程与线程的区别,早已经成为了经典问题。自线程概念诞生起,关于这个问题的讨论就没有停止过。无论是初级程序员,还是资深专家,都应该考虑过这个问题,只是层次角度不同罢了。一般程序员而言,搞清楚二者的概念,在工作实际中去运用成为了焦点。而资深工程师则在考虑系统层面如何实现两种技术及其各自的性能和实现代价。以至于到今天,Linux内核还在持续更新完善(关于进程和线程的实现模块也是内核完善的任务之一)。本文...
2018-03-07 15:44:53 533
原创 MTK cmdline传递过程
1. Preloader部分 Platform.h(mediatek\platform\[$platform]\preloader\src\drivers\inc\platform.h) 在如下结构体中加cus_param变量,如果是char型,请注意4byte对其: typedef struct { u32 magic; boot_mode_t mode;
2015-11-19 11:37:41 6934
转载 Android属性(property)机制
1. 属性简介Android里有很多属性(property),每个属性都有一个名称和值,他们都是字符串格式。这些属性定义了Android系统的一些公共系统属性。比如:[dalvik.vm.dexopt-flags]: [m=y][dalvik.vm.heapgrowthlimit]: [48m][gsm.operator.iso-country]: [][g
2015-11-05 10:39:53 4823
转载 Android内存管理原理
一般来说,程序使用内存的方式遵循先向操作系统申请一块内存,使用内存,使用完毕之后释放内存归还给操作系统。然而在传统的C/C++等要求显式释放内存的编程语言中,记得在合适的时候释放内存是一个很有难度的工作,因此Java等编程语言都提供了基于垃圾回收算法的内存管理机制:垃圾内存回收算法常见的垃圾回收算法有引用计数法(Reference Counting)、标
2014-06-08 23:15:11 5188
转载 Android 操作系统的内存回收机制(转载)
Android APP 的运行环境 Android 是一款基于 Linux 内核,面向移动终端的操作系统。为适应其作为移动平台操作系统的特殊需要,谷歌对其做了特别的设计与优化,使得其进程调度与资源管理与其他平台的 Linux 有明显的区别。主要包含下面几个层次:Application FrameworkApplication Framework 将整个操作系统分隔
2014-06-07 10:30:12 5465
转载 Repo和Git 版本管理常用命令
Repo和Git 版本管理常用命令博客分类: Linuxrepogit 转载一则:Git命令快速参考Git Command Quick Reference本附录为Git常见命令快速参考。每节介绍一种操作类型。这里会列出很多命令,而相应的解释却不多。对于还不熟悉Git的读者,可回头翻阅第1章“Git的版本控制之道”(第3页)。A.1
2014-04-23 17:14:08 5526
转载 Gitolite - g3 搭建 Git 服务器 详解
服务器:ubuntu 12.04 (192.168.15.6)客户端:ubuntu 10.04 (192.168.15.5)Gitolite 搭建 Git 服务器,实现 Gitolite 服务器管理账户与普通用户无密码访问,且 Gitolite 管理员与普通用户在server上没有登录权限。 1.服务器端:1.1 创建 Git
2014-04-11 12:51:26 4758
转载 Android Framework 分析
1.目录树/framework/base/api /framework/base/awt/framework/base/build/framework/base/camera 关 于camera的HAL接口库。最终生成native共享库libcamera.so ,编译时根据是否定义USE_CAMERA_STUB来决定系统是否有Camera硬件支持。若没有实际的C
2014-02-18 19:20:17 4713
转载 Android系统启动过程浅谈
一、 系统启动流程简介在Linux内核启动后,init 1(1号进程)将作为第一个用户空间(Linux虚拟内存的大小为232(在32位的x86机器上),内核将这4G字节的空间分为两部分。最高的1G字节供内核使用,称为“内核空间”。而较低的3G字节供各个进程使用,称为“用户空间”。)的进程来启动Android系统,该启动流程可以分为如下5个阶段,如下图: (1) 启动准备:该阶段包括
2014-02-18 09:04:44 4190
转载 解析 Linux 中的 VFS 文件系统机制
本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核。总体上说 Linux 下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(Virtual Filesystem Switch),三是挂载到 VFS 中的各实际文件系统,例如 ext2,jffs 等。本文侧重于通过具体的代码分析来解释 Linux 内核中 VFS 的内在
2013-12-29 23:35:28 4522
转载 从文件 I/O 看 Linux 的虚拟文件系统
Linux 允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件系统的存在。虚拟文件系统,即VFS(Virtual File System)是 Linux 内核中的一个软件抽象层。它通过一些数据结构及其方法向实际的文件系统如 ext2,vfat 提供接口机制。本文在简要介绍 VFS 的相关数据结构后,以文件 I/O 为切入点深入 Linux 内核源代码,追踪了 sys
2013-12-29 23:34:15 5203
转载 从linux启动到rootfs的挂载分析
从linux启动到rootfs的挂载分析 2012-05-02 15:50:49| 分类:默认分类 | 标签:|字号大中小 订阅简单的来说,根文件系统包括虚拟根文件系统和真实根文件系统。在Kernel启动的初始阶段,首先去创建虚拟的根文件系统,接下来再去调用do_mount来加载真正的文件系统,并将根文件系统切换到真
2013-12-29 23:31:24 34206 2
转载 Linux的inode的理解
一、inode是什么?理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八
2013-12-28 11:11:54 4628 1
转载 Linux应用程序开发
Linux应用程序开发本文讲述了linux应用程序开发的基本内容。值得学习!Copyright © 2006 本文遵从GNU 的自由文档许可证(Free Documentation License)的条款,欢迎转载、修改、散布。发布时间:2006年11月01日更新时间:2007年11月14日,增加网络编程内容。Ab
2013-12-24 11:27:59 9463
转载 JNI学习积累之三 - 操作JNI函数以及复杂对象传递
链接库 (windos下就是.dll库,Linux就是.so库了,不懂在Window下生成dll动态库的,具体流程可看我的这篇博客: 《Android中JNI的使用之一:Java原生JNI的使用、javah指令的使用以及图解教材》)。即可掌握JNI的使用了了。 总的来说,JNI是不难的。通过前面的学习相信你应该有所了解。今天,我们从几个简单的小例子,来对JNI进
2013-12-16 14:40:21 6273 2
转载 Linux device driver 的概念
一、Linux device driver 的概念 系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以象操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,它完成以下的功能: 1、对设备初始化和释放; 2、把数据从内核
2013-12-09 15:15:20 4613
转载 Linux内核配置
对内核的操作分为两类:一.配置内核二.编译内核一.配置内核的过程如下:make menuconfig时可以修改配置项,这主要是Kconfig的功能,然后最终的配置结果会保存在.config文件中。下次再执行make menuconfig时回去读取这个文件。这是内核配置的过程。二.编译内核的过程(即make uImage的过程)如下:1.查看内核配置文件 .confi
2013-12-07 17:03:10 4915
转载 linux-Tcp IP协议栈源码阅读笔记
一.linux内核网络栈代码的准备知识 1. linux内核ipv4网络部分分层结构: BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件 主要有:/net/socket.c /net/protocols.c etcINET socket层:BSD socket是个可以
2013-11-16 15:08:06 4744
转载 TCP/IP 协议简单分析
首先TCP和IP是两种不同的协议,它们来七层网络模型中分别在不同的层次,IP协议是网络层的协议,TCP是更高一层的传输层的协议,TCP是建立在IP协议之上的,所以一般把TCP和IP连在一起说TCP/IP协议。Windows系统的TCP协议栈的数据包默认是1460字节大小,如果一次传输的数据大于这个长度,会把分割成几个长度都不大于1460字节的TCP数据包,每个数据包都会被赋予一个sequnce
2013-11-07 17:14:35 3321
转载 Android中线程通讯类Handler
handler是线程通讯工具类。用于传递消息。它有两个队列:1.消息队列2.线程队列消息队列使用sendMessage和HandleMessage的组合来发送和处理消息。线程队列类似一段代码,或者说一个方法的委托,用户传递方法。使用post,postDelayed 添加委托,使用 removeCallbacks移除委托。由上面的特性我们可以简单看出handler类似
2013-09-27 10:04:15 5343
原创 Java中Runnable和Thread的区别
线程的起动并不是简单的调用了你的RUN方法,而是由一个线程调度器来分别调用你的所有线程的RUN方法,我们普通的RUN方法如果没有执行完是不会返回的,也就是会一直执行下去,这样RUN方法下面的方法就不可能会执行了,可是线程里的RUN方法却不一样,它只有一定的CPU时间,执行过后就给别的线程了,这样反复的把CPU的时间切来切去,因为切换的速度很快,所以我们就感觉是很多线程在同时运行一样.你
2013-09-27 09:03:23 3851
转载 Android Looper和Handler分析 .
第一次接触android应用程序(这里指的是JAVA层的UI程序,也难怪了,Google放出的API就只支持JAVA应用程序了),很难搞明白内部是如何实现的。但是,从原理上分析,应该是有一个消息循环,一个消息队列,然后主线程不断得从消息队列中取得消息并处理之。然而,google封装得太厉害了,所以一时半会还是搞不清楚到底是怎么做的。本文将分析android内的looper,这个是用来封装消息循
2013-09-26 19:30:44 966
原创 Android权限Uri.parse的几种用法
1,调web浏览器 Uri myBlogUri = Uri.parse("http://xxxxx.com"); returnIt = new Intent(Intent.ACTION_VIEW, myBlogUri); 2,地图 Uri mapUri = Uri.parse("geo:38.899533,-77.036476"); returnIt = new Intent(
2013-09-23 15:05:25 7736
转载 Mars老师的Android学习基本路线
1.Java基础很多朋友一上手就开始学习Android,似乎太着急了一些。Android应用程序开发是以Java语言为基础的,所以 没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。那么Java学到什么程度才算是过关呢?我个人认为至少要掌握以下两个方面的 内容:a) Java基础语法:具体的知识点列表可以在这里下载:《Java知识点列表》V1.0。这部分内容没有讨价还
2013-09-10 11:32:59 699
转载 handler.post(r)同一个线程的疑惑
handler.post(r);是把r加到消息队列,但并未开辟新线程。等到消息被取出时才执行。package com.lei.handlethread;import android.os.Bundle;import android.os.Handler;import android.app.Activity;import android.view.Menu;im
2013-09-09 08:37:23 743
转载 NDK简介
1、前言 6月26日,Google Android发布了NDK,引起了很多发人员的兴趣。NDK全称:Native Development Kit。下载地址为:http://developer.android.com/sdk/ndk/1.5_r1/index.html。2、误解 新出生的事物,除了惊喜外,也会给我们带来一定的迷惑、误解。2.1、误解一:NDK发布之前,Android不
2013-08-30 15:15:21 847
转载 开发android,我们需要哪些技能基础
1开发android,我们需要哪些技能基础。(android大牛请绕开此段)①Java基础知识 ②Linux基础知识 ③数据库基础知识 ④网络协议 ⑤Android基础知识 ⑥服务器端开发知识①Java基础知识很多朋友一上手就开始学习Android,似乎太着急了一些。Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何
2013-08-29 11:16:39 7050
转载 软件规模度量LOC Vs FP
LOC Vs FP 众所周知,用“平方米”可以衡量住房大小,用“台”可以表示汽车数量,然而,长久以来,软件产品的规模(Size)度量却是个争论不休的问题。 不论是对软件开发企业、还是对软件用户,软件规模度量的重要性都是不容置疑的。因为它极大影响着甲方对发包产品的成本估算、乙方对自身开发成本的预测、乙方对开发过程的量化管理等诸多方面。 比如,A软件项目的规模是1
2013-08-16 12:35:46 10020
原创 软件概要设计的过程与任务
在完成对软件系统的需求分析之后,接下来需要进行的是软件系统的概要设计。一般说来,对于较大规模的软件项目,软件设计往往被分成两个阶段进行。首先是前期概要设计,用于确定软件系统的基本框架;然后是在概要设计基础上的后期详细设计,用于确定软件系统的内部实现细节。概要设计也称总体设计,其基本目标是能够针对软件需求分析中提出的一系列软件问题,概要地回答如何解决。例如,软件系统将采用什么样的体系构架、需要创
2013-08-01 15:50:35 68287
转载 软件概要设计与详细设计的区别
概要设计与详细设计的区别 概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。同时,还要设计该项目的应用系统的总体数据结构和数据库结构,即应用系统要存储什么数据,这些数据是什么样的结构,它们之间有什么关系。 详细设计阶段就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。 概要设计阶段通常得到
2013-08-01 15:36:28 2475
原创 linux基础知识
__attribute__ __attribute__(section),用来修饰函数时,可以使你把代码放在image的不同段,如: void f(void) __attribute__((section(“new_section”)));函数f()将被放到只读new_section段中,而不是.text中。
2013-06-20 14:49:03 883
转载 对Linux内核中进程上下文和中断上下文的理解
内核空间和用户空间是操作系统理论的基础之一,即内核功能模块运行在内核空间,而应用程序运行在用户空间。现代的CPU都具有不同的操作模式,代表不同的级别,不同的级别具有不同的功能,在较低的级别中将禁止某些操作。Linux系统设计时利用了这种硬件特性,使用了两个级别,最高级别和最低级别,内核运行在最高级别(内核态),这个级别可以进行所有操作,而应用程序运行在较低级别(用户态),在这个级别,处理器控制着对
2013-06-14 14:50:53 741
原创 内联函数
内联函数(inline)和普通函数相比可以加快程序的运行的速度,因为不需要中断调用,在编译的时候内联函数可以直接被镶嵌到目标代码中。而宏定义只是一个简单的替换。 inline是指嵌入代码,编译中不单独产生代码,而是将有关代码嵌入到调用处,就是在调用函数的地方不是跳转,而是把代码直接写到那里去。对于短小的代码而言,inline可以带来一定的效率提升,而且与C语言时代的宏函数相比,inline要
2013-06-14 11:26:36 755
转载 对Linux的进程内核栈的认识
什么是进程的“内核栈”? 在每一个进程的生命周期中,必然会通过到系统调用陷入内核。在执行系统调用陷入内核之后,这些内核代码所使用的栈并不是原先用户空间中的栈,而是一个内核空间的栈,这个称作进程的“内核栈”。 比如,有一个简单的字符驱动实现了open方法。在这个驱动挂载后,应用程序对那个驱动所对应的设备节点执行open操作,这个应用程序的open其实就通过glib库调用了Lin
2013-06-14 10:56:26 879
转载 linux中fork()函数详解
一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统先给新的进程分配资源,例如存储数据和代码的空间。然后把原来的进程的所有值都复制到新的新进程中,只有少数值与原来的进程的值不同。相当于克隆了一个自己。
2013-06-14 10:41:08 676
原创 Ucos-ii中获取最高优先级的原理(任务和事件)
Ucos-ii中获取最高优先级的原理(任务和事件) 2009-08-02 19:121. 任务优先级表是按照由左至右,由上至下的顺序增长的,且优先级号越小优先级越高。2. 任务优先级存储在一个字节型数组里,数组大小为8,其还有一个行表,即一个字
2011-08-04 17:46:56 5140 2
转载 Android深入浅出之Binder机制
<br />Android深入浅出之Binder机制<br />一说明<br /> Android系统最常见也是初学者最难搞明白的就是Binder了,很多很多的Service就是通过Binder机制来和客户端通讯交互的。所以搞明白Binder的话,在很大程度上就能理解程序运行的流程。<br />我们这里将以MediaService的例子来分析Binder的使用:<br /><!--[if !supportLists]-->l <!--[endif]-->ServiceManager,这是An
2011-05-24 19:12:00 820
jpeg编解码原理详解
2011-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人