`

《嵌入式Linux应用程序开发详解》

 
阅读更多

1、分区、挂载
windows下,各盘符就是分区,各分区有自己的目录结构;
linux下,只有一个目录结构,各分区是挂载在特定的一个目录上,将分区和目录对应的过程叫做挂载,而这个挂载在文件树中的位置就是挂载点。

2、SWAP交换分区
在内存硬件资源有限的条件下,linux在硬盘上划出一个区域来当作临时的内存,而windows操作系统把这个区域叫做虚拟内存,linux 把它叫做交换分区swap,在

安装linux建立交换分区时,一般将其设定为内存大小的2倍。
在安装linux的时候,交换分区是必须建立的。

3、文件系统目录结构
/etc/rc.d该目录主要存放linux启动和关闭时要用到的脚本文件,包括/etc/rc.d/init和/etc/xinetd.d目录下的内容
/mnt该目录是软驱、光驱和硬盘的挂载点
/proc该目录是用于放置系统核心与执行程序所需要的一些信息,而这些信息是在内存中由系统产生的,故不占用硬盘空间,主要是进程信息
/sbin该目录是用来存放系统管理员的常用的系统管理程序
/tmp该目录是用来存放不同程序执行时产生的临时文件
/usr/bin和/usr/sbin系统管理员和超级用户
/usr/src内核源代码
/srv该目录存放一些服务启动之后需要提取的数据
/sys在设备模型中,sysfs文件系统用来表示设备的结构.将设备的层次结构形象的反应到用户空间中.用户空间可以修改sysfs中的文件属性来修改设备的属性值,
/var服务日志信息存放在这里

4、挂载命令
mount -a将/etc/fstab文件中的分区全部挂载一遍
mount -l列出当前已经挂载的设备、文件系统名称和挂载点
mount -t vfat /dev/hda1 /mnt/c 将vfat类型的设备/dev/hda1(实际上为一块硬盘)挂载到/mnt/c下面,可以实现linux访问windows
fdisk -l 查看分区列表


5、网络命令
netstat显示网络连接、路由表和网络接口信息
nslookup查询一台机器的IP地址和其对应的域名
finger查询用户的信息
ifconfig查看和配置网络接口的参数

6、查找命令
find和locate,后者自建一个数据库,并通过crontab每天updatedb,也可以手工更新,相对find更快

7、linux启动详解
(1)第一阶段:BIOS引导。开电源、CPU从地址0XFFFFF0开始执行,也就是从Bios开始执行;Bios开机自检,并按BIOS中设置的启动设备进行启动,安装在启动设

备上的引导程序lilo或grub开始引导linux
(2)第二阶段:linux内核引导。linux主要完成磁盘引导、读取机器系数数据、实模式和保护模式切换、加载数据段寄存器以及重置中断描述符表。从

start_kernel函数开始调用一系列初始化函数。
(3)第三阶段:执行init程序,完成系统初始化工作。init程序调用rc.sysinit和rc等程序。
(4)第四阶段:init启动mingetty,打开终端供用户登陆系统,用户登陆成功后就进入了shell。

8、linux启动第三阶段,执行init程序,完成系统初始化工作
(1)确定用户登陆模式
根据/etc/inittab文件,确定用户登陆模式
(2)执行脚本/etc/rc.d/rc.sysinit,包括判断主机名,挂载文件系统,加载内核模块等等
(3)init进程就会读取这个系统运行级别设置,然后运行/etc/rc.d/rc脚本。通过这个脚本,然后进入/etc/rc.d/rcx.d(x为对应的系统运行级别),启动相应的

程序。其中/etc/rc.d/rcx.d/下的文件均为符号链接,最终绝大部分都是都是链接到/etc/rc.d/init.d下面。各个级别的服务,有的以K开头,有的以S开头,分别

表示停止和启动。
总体的脚本程序执行流程:init->inittab->rc.sysinit->rc->rcx.d->init.d


9、linux系统服务
(1)两种服务
linux的系统服务包括两种,第一种是独立运行的系统服务,很常见的服务,常住内存,开机后一直启动着,存放在rcx.d中,K开头表示kill未开启,S开头表示

Start已启动。
第二种时xinetd设定的服务,不常见的服务,xinet能够同时监听多个指定的端口,在接受用户请求时,它能够根据用户请求的端口不同,启动不同的网络服务进程

来处理请求。可以把xinetd看作一个启动服务的管理服务器。具体配置哪个服务,需要在/etc/xinetd.d目录下新建这个服务的文件。
(2)操作服务的命令
service 服务名 start/stop/status/restart
chkconfig --list 可以看到常驻服务和xinetd启动的服务,然后可以进入/etc/xinetd.d进行查看是否一致
chkconfig --level N ntpd on

10、有用的linux命令
lsof -i:138 查看138端口被哪个程序占用了

11、交叉编译工具
可以使用已经编译好的交叉编译工具cross-3.3.2.tar.bz2,也可以自己手动制作,包括target上的bin和lib,包括gcc、g++、glibc都需要编译成符合目标板的

(ARM交叉编译链的制作)


12、GCC编译流程
(1)预处理(将头文件内容包含进来)
gcc -E hello.c -o hello.i
(2)编译(将高级语言转换成汇编语言)
gcc -S hello.i -o hello.s
(3)汇编(将汇编语言转换成二进制目标代码)
gcc -c hello.s -o hello.o
(4)链接(将显示指定的库或者默认库链接生成最终的目标程序)
gcc hello.o -o hello

13、GCC编译选项
-g:在可执行程序中包含标准调试信息
-I dir:在头文件的搜索路径列表中添加dir目录
-L dir:在库文件的搜索路径列表中添加dir目录
-lA:链接名为A的库文件

14、Makefile
(1)功能
管理整个工程,多个文件的编译;
自动编译管理器,指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量;
(2)使用方法
make 目标名;
make(以找到的第一个目标为默认目标);
(3)自动生成makefile工具autotools


分享到:
评论

相关推荐

    嵌入式Linux应用程序开发详解

    该开发详解详尽介绍如何嵌入式Linux应用程序,由14个pdf文件组成: arm体系结构 目录 第一章-LinuxBasic 第二章t-LinuxApp02-LinuxCommand 第三章-LinuxApp03-C 第四章-LinuxApp04-EmbededSystem 第五章-LinuxApp05-...

    嵌入式Linux应用程序开发详解(孙琼)

    《嵌入式Linux应用程序开发详解》主要分为3个部分,包括Linux基础、搭建嵌入式Linux环境和嵌入式Linux的应用开发。Linux基础部分从Linux的安装过程、基本操作命令讲起,为Linux初学者能快速入门提供了保证。接着系统...

    嵌入式linux应用程序开发详解

    第5 章 嵌入式Linux开发环境的搭建.pdf 第6 章 文件IO编程.pdf 第7 章 进程控制开发.pdf 第8 章 进程间通信.pdf 第9 章(多线程编程).pdf 第10 章(嵌入式Linux网络编程).pdf 第11 章(嵌入式Linux设备驱动开发).pdf 第...

    黑色经典系列之嵌入式linux应用程序开发详解

    1.1 嵌入式Linux基础 1.2 Linux安装 1.3 Linux文件及文件系统 1.4 实验内容——安装Linux操作系统 本章小结 思考与练习 第2章 Linux基础命令 2.1 Linux常用操作命令 2.2 Linux启动过程详解 2.3 ...

    嵌入式Linux应用程序开发详解(完整版)

    《嵌入式Linux应用程序开发详解》是一本专为初学者设计的Linux开发指南,旨在帮助读者快速掌握Linux应用程序编程的核心概念和技术。这本书深入浅出地介绍了如何在嵌入式环境中进行Linux应用开发,使得读者能轻松理解...

    嵌入式Linux应用程序开发详解 完整版 PDF格式

    《嵌入式Linux应用程序开发详解》是一本深入探讨嵌入式系统中Linux应用程序开发的专业书籍。这本书以PDF格式提供,包含完整的十二章节内容,旨在帮助开发者深入理解在嵌入式环境中,上层应用如何与底层硬件和服务...

    《嵌入式Linux应用程序开发详解》源代码

    《嵌入式Linux应用程序开发详解》是一本专为学习嵌入式Linux系统应用程序设计与开发的书籍,由华清远见嵌入式培训中心的孙琼编著,并在人民邮电出版社出版。这本书深入探讨了在嵌入式环境中利用Linux进行应用软件...

    《嵌入式Linux应用程序开发详解》源代码下载

    《嵌入式Linux应用程序开发详解》是一本深入探讨在嵌入式系统中如何利用Linux进行应用程序开发的专业书籍。源代码下载则提供了与书本内容紧密相关的实践案例和示例程序,便于读者理解和学习。这本书主要涵盖了以下几...

    嵌入式Linux应用程序开发详解 中文版

    嵌入式Linux应用程序开发详解 嵌入式Linux应用程序开发详解-第1 章 Linux 快速入门.pdf 嵌入式Linux应用程序开发详解-第10章(嵌入式Linux网络编程).pdf 嵌入式Linux应用程序开发详解-第11章(嵌入式Linux设备驱动...

    嵌入式Linux应用程序开发详解第2章Linux基础命令_linux_

    在嵌入式Linux应用程序开发中,熟悉和掌握Linux基础命令是至关重要的。这些命令构成了Linux操作系统的基本交互方式,...阅读《嵌入式Linux应用程序开发详解-第2章 Linux基础命令.pdf》可以获取更详尽的教程和实践指导。

    嵌入式Linux应用程序开发详解( 带源程序)孙琼

    《嵌入式Linux应用程序开发详解》是一本专为IT专业人士,特别是对嵌入式系统感兴趣的开发者编写的指导书籍。作者孙琼在书中深入探讨了如何在Linux环境下进行嵌入式系统的应用程序开发,提供了丰富的源代码供读者实践...

Global site tag (gtag.js) - Google Analytics