嵌入式设备上的 Linux 系统开发
如果您刚接触嵌入式开发,那么大量可用的引导装载程序(bootloader)、规模缩小的分发版
(distribution)、文件系统和 GUI
看起来可能太多了。但是这些丰富的选项实际上是一种恩赐,允许您调整开发或用户环境以完全符合您的需要。对 Linux
嵌入式开发的概述将帮助您理解所有这些选项。
Linux 正在嵌入式开发领域稳步发展。因为 Linux 使用 GPL(请参阅本文后面的
参考资料
),
所以任何对将 Linux 定制于 PDA、掌上机或者可佩带设备感兴趣的人都可以从因特网免费下载其内核和应用程序,并开始移植或开发。许多
Linux 改良品种迎合了嵌入式/实时市场。它们包括 RTLinux(实时 Linux)、uclinux(用于非 MMU 设备的
Linux)、Montavista Linux(用于 ARM、MIPS、PPC 的 Linux 分发版)、ARM-Linux(ARM 上的
Linux)和其它 Linux 系统(请参阅 参考资料
以链接到本文中提到的这些和其它术语及产品。)
嵌
入式 Linux 开发大致涉及三个层次:引导装载程序、Linux 内核和图形用户界面(或称
GUI)。在本文中,我们将集中讨论涉及这三层的一些基本概念;深入了解引导装载程序、内核和文件系统是如何交互的;并将研究可用于文件系统、GUI
和引导装载程序的众多选项中的一部分。
引导装载程序
引
导装载程序通常是在任何硬件上执行的第一段代码。在象台式机这样的常规系统中,通常将引导装载程序装入主引导记录(Master Boot
Record,(MBR))中,或者装入 Linux 驻留的磁盘的第一个扇区中。通常,在台式机或其它系统上,BIOS
将控制移交给引导装载程序。这就提出了一个有趣的问题:谁将引导装载程序装入(在大多数情况中)没有 BIOS 的嵌入式设备上呢?
解决这个问题有两种常规技术:专用软件和微小的引导代码(tiny bootcode)。
专用软件
可以直接与远程系统上的闪存设备进行交互并将引导装载程序安装在闪存的给定位置中。
闪存设备
是与存储设备功能类似的特殊芯片,而且它们能持久存储信息 ― 即,在重新引导时不会擦除其内容。
这个软件使用目标(在嵌入式开发中,嵌入式设备通常被称为
目标
)上的 JTAG 端口,它是用于执行外部输入(通常来自主机机器)的指令的接口。JFlash-linux 是一种用于直接写闪存的流行工具。它支持为数众多的闪存芯片;它在主机机器(通常是 i386 机器 ― 本文中我们把一台 i386 机器称为
主机
)上执行并通过 JTAG 接口使用并行端口访
相关文档:
du -sh * 查看当前目录下的文件夹大小
du 命令
用途
概述磁盘使用。
语法
du [ -a | -s ] [ -k ] [ -m ] [ -g ][ -l ] [ -r ] [ -x ] [ -H | -L ][ File ... ]
描述
du命令显示用于文件的块的数量。
如果指定的File参数实际上是一个目录,就要报告该目录内的所有文件。如果没有提供 File参数,du命令使用当前目录 ......
Windows 和 Linux 的IPC API对应表
Table 1. Process mapping
Windows
Linux
Classification
CreateProcess()
CreateProcessAsUser()
fork()
setuid()
exec()
Mappable
TerminateProcess()
kill()
Mappable
SetThreadpriority()
GetThreadPriority()
Setpriority()
getPriority()
Mappa ......
进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait 就会收集这个子进程的信息, 并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。
wait(等待子进程中断或结束)
相关函数 waitp ......
作为一名网络管理员,您需要为您所需管理的每个网络设备存放用于管理的用户信息。但是网络设备通常只支持有限的用户管理功能。学习如何使用 Linux™ 上的一个外部 RADIUS 服务器来验证用户,具体来说是通过一个 LDAP 服务器进行验证,可以集中放置存储在 LDAP 服务器上并且由 RADIUS 服务器进行验证的用户信息,从而既 ......