- 博客(11)
- 资源 (4)
- 收藏
- 关注
原创 运算符优先级
假设high和low是两个整数,他们的值介于0-15之间,如果r是一个八位整数,且r的低四位与low的各位上一致,而r的高四位与high的各位上一致,很自然会想到要这样写: r = high << 4 + low 但是很不幸,这样写是错误的,加法运算的优先级要比移位运算的优先级要高,因此本例实际上相当于: r = high << (4 + low) 对于这种情况,有两种更正方
2016-12-27 14:27:59 1314
原创 shell-sed工具
1.使用说明 sed本身是一个管道命令,可以分析standard input,而且sed还可以将数据进行替换、删除、新增、选取特定行等的功能。其用法如下:sed -nefr '动作'参数:-n:使用安静(silent)模式。在一般sed的用法中,所有来自STDIN的数据一般都会被列出到屏幕上。但是如果加上-n参数后,则只有经过sed特殊处理的那一行才会被列出来。-e:直接在命令行模式上进行s
2016-12-27 11:34:18 629
原创 shell-判断式
test命令测试功能使用test命令判断一个文件是否存在:root@silent:/home/lianxi/shell# test -e /home/hh && echo "exist" || echo "no exist"no existtest的所有参数汇总如下表所示: 利用判断符号[] 使用中括号必须要特别注意,因为中括号用在很多地方,包括通配符与正则表达式等,所以如
2016-12-23 14:06:26 377
原创 shell-条件判断式
if…thenif判断式的格式有如下三种。 第一种,单层、简单条件判断式if [ 条件判断 ]; then 当条件判断式成立时,可以进行的命令工作内容;fi <==将if反过来写,就称为fi,结束if之意。第二种,一个条件判断if [ 条件判断 ]; then 当条件判断式成立时,可以进行的命令工作内容;else 当条件判断式不成立时,可以进行的命令工作内容;fi
2016-12-23 11:01:51 639
原创 shell-函数
shell脚本中,函数的语法如下:function fname () { 程序段} function也是拥有内置变量的,它的内置变量与shell script很类似,函数名称代表示0,而后续的变量也是以0,而后续的变量也是以1, $2…来替代的。 一个简单的例子如下:#!/bin/bashfunction print_message () { echo "my name
2016-12-23 10:38:30 330
原创 shell-循环
while do done这个语法的格式如下:while [ condition ] <==中括号内的状态就是判断式do <==do是循环的开始 程序段落done <==done是循环的结束一个简单的例子。从控制台读取一个数值max,然后计算1加到max的和,然后输出,程序如下:#!/bin/bashdeclare -i sumde
2016-12-23 10:27:01 406
原创 ARM Linux启动流程-根文件系统的加载
前言 在Kernel启动的初始阶段,首先去创建虚拟的根文件系统(rootfs),接下来再去调用do_mount来加载真正的文件系统,并将根文件系统切换到真正的文件系统,也即真实的文件系统。 接下来结核内核代码(内核版本:linux-3.14.28),讲解整个流程。1、文件系统的分类 文件系统大体可以分为基于内存的文件系统(initrd)和非基于内存的文件系统(noinitrd),想要了解根
2016-12-05 22:20:56 5435
原创 ARM Linux启动流程-start_kernel阶段
start_kernel的主要功能 start_kernel()函数是内核初始化C语言部分的主体。这个函数完成系统底层基本机制,包括处理器、存储管理系统、进程管理系统、中断机制、定时机制等的初始化工作。 分析所在文件:init/main.c 内核版本:linux-3.14.28start_kernel流程介绍 1、void lockdep_init(void) 有些体系结构有
2016-12-02 17:42:13 678
转载 ARM Linux启动流程-汇编第二阶段
本文整理了ARM Linxu启动流程的第二阶段——start_kernel前启动阶段(汇编部分),内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析Linux内核在自解压后到跳转运行start_kernel之前所做的主要初始化工作:包括参数有效性验证、创建初始页表和MMU初始化等。内核版本:Linux-3.12.35分析文件:arch/arm/kernel/
2016-12-01 20:48:41 1508
转载 ARM Linux启动流程-汇编第一阶段
转载地址:http://blog.csdn.net/luckyapple1028/article/details/44726131本文整理了ARM Linxu启动流程的第一阶段——内核自解压,内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析uboot跳转到Linux内核运行后做了哪些初始化动作,以及如何转入真正的内核开始运行。内核版本:Linux-3.12.35分析文件:l
2016-12-01 19:46:02 3066
原创 ARM Linux启动流程-前传
1、zImage的组成 zImage是由一个压缩后的内核piggy.o,连接上一段初始化及解压功能的代码(head.o misc.o)组成的。 2、Linux的入口 内核从什么地方开始运行呢?当然要看lds文件啦。zImage的 生成经历了两次大的链接过程: 一次是顶层根目录下vmlinux的生成,由arch/arm/boot/vmlinux.lds(这个lds文件是由 arch/ar
2016-12-01 19:13:24 511
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人