Linux的一个吸引人的特性就是用户可以自行定制整个系统,你可是运行一个只有1M的“迷你”Linux,也可以运行一个几G的强大Linux。而无论你运行怎样的Linux,你都是先从引导程序开始运行的。对于普通用户,大多都是在个人电脑上运行Linux的。
个人电脑,又叫PC机,是我们常见的使用Intel或AMD的芯片的电脑。当我们接通PC机的电源之后,CPU会执行第一条指令,第一条指令通常是使CPU能跳跃到BIOS的入口地址上,然后BIOS就开始进行开机自检,包括对内存等硬件进行检测,如果存在其它设备的也自带有BIOS(比如SCSI或RAID设置等),也会执行它们。完成自检后的BIOS会根据设定好的启动设备和启动顺序来启动真正的操作系统,如Linux(本文以Linux为例)。
对于PC机,有以下几种设备可以作为启动设备来使用:
1) 硬盘
这是最常用的启动设备,硬盘有IDE接口和SCSI接口的两种,由于IDE硬盘价格比SCSI硬盘要便宜的多,所以,大多数PC机都使用的是IDE硬盘。一台PC机中可能有多个硬盘,用户可以在PC机的CMOS设置哪块硬盘首先启动。
2) 软盘
软盘是PC机必备的设备之一。常用作安装系统或作为系统应急盘使用。也出现了很多一张软盘上的Linux系统。
......
在Linux下用buildroot搭建mips/arm的交叉编译平台
这个编译环境是不能编译for开源无线路由器的程序的,因为内核是2.6的
建议参考这篇: http://www.felix021.com/blog/read.php?1467
前两天买了NetGear WRT614 V9,搭载的是Broadcom的200MHz MIPS处理器。
由于使用的是开源操作系统Linux,所以可以刷网上一些NB的固件,比如dd-wrt, tomato, openwrt ...
于是决定把武大校园网的newstar ( felicia修改自superstar修改自mystar ) 集成进去。
想要自己编译newstar,就必须搭建一个交叉编译(cross-compile)平台
也有一种说法是cross compile toochain,交叉编译工具链
反正一个意思:就是能在你现在用的机器上(一般是x86)编译出mips架构的目标代码,很NB。
网上搜了一下,发现有一个好东西阿,它的名字是buildroot
它把制作交叉工具链的整个过程都包干了,你只要选择你想要什么东西就好了
详细介绍和使用见 http://buildroot.uclibc.org/buildroot.html
下面是我的搭建过程:
0. 先安装需要安装的东西
包括: build-essential bison flex ...
# sudo apt-get install build-essential bison flex
1. 下载buildroot
我下载的是最新的版本
http://buildroo ......
级别: 初级
肖文鹏
(xiaowp@263.net
), 硕士研究生, 北京理工大学计算机系
2004 年 2 月 01 日
流
媒体指的是在网络中使用流技术传输的连续时基媒体,其特点是在播放前不需要下载整个文件,而是采用边下载边播放的方式,它是视频会议、IP电话等应用场合
的技术基础。RTP是进行实时流媒体传输的标准协议和关键技术,本文介绍如何在Linux下利用JRTPLIB进行实时流媒体编程。
一、流媒体简介
随
着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频
(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。通常说来,A/V文件占据的存储空间都比较大,在带宽受限的
网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流式传输的话,声音、影像、动画等多媒体文件将由专门的流媒体服务器负
责向用户连续、实时地发送,这样用户可以不必等到整个文件全部下载完毕,而只需要经过几秒钟的启动延时就可以了,当这些多媒体数据在客户机上播放时,文件
的剩余部分将继续从流媒体服务器下载。
流(Streaming)是近年在In ......
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。
Linux提供了像Microsoft Windows那样的可视的命令输入界面--X Window的图形用户界面(GUI)。它提供了很多窗口管理器,其操作就象Windows一样,有窗口、图标和菜单,所有的管理都是通过鼠标控制。现在比较流行的窗口管理器是KDE和GNOME。
每个Linux系统的用户可以拥有他自己的用户界面或Shell,用以满足他们自己专门的Shell需要。
同Linux本身一样,Shell也有多种不同的版本。目前主要有下列版本的Shell: Bourne Shell:是贝尔实验室开发的。
BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell。
Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。 C Shell:是SUN公司S ......
你想成知道如何成为一个Linux内核开发者么?或者你的老板告诉你,“去为这个设备写一个Linux驱动。“这篇文档的目的,就是通过描述你需要经历的过程和提示你如何和社区一起工作,来教给你为达到这些目的所需要知道的所有知识。本文也尝试解释社区为什么这样工作的一些原因。
内核几乎全是用C写成的,有一些架构相关的部分是用汇编语言写成的。熟练掌握C语言是内核开发的必备条件。汇编语言(任何架构)的了解不是必须的,除非你准备做某个架构的底层开发。虽然下面这些书不能完全代替扎实的C语言教学和/或者成年累月的经验,他们还是不错的参考,如果用得着的话: - "The C Programming Language" 作者: Kernighan and Ritchie [Prentice Hall]- "Practical C Programming" 作者: Steve Oualline [O'Reilly]
内核是用 GNU C 和 GNU 工具链写成的。虽然它符合 ISO C89 标准,它还是使用了一些标准中没有的扩展。内核是自成体系的 C 环境,它并不依赖标准C库,所以某些C语言标准是不支持的。任意长度long long类型除法和浮点数是不被允许的。有时候会很难理解内核对于它所使用的工具链和扩展的假定,而且不幸的是也没有关于它们的绝对的参考。请查阅gcc ......
sys_execve
| - do_execve
|
| - search_binary_handler
|- linux_binfmt= elf_format
|- elf_format-> load_elf_binary
| - elf_entry = load_elf_interp()
|-
| if (BAD_ADDR(elf_entry))
| force_sig(SIGSEGV, current);
| retval =-EINVAL;
binfmt_elf.c: line 1024
elf_entry = loc->elf_ex.e_entry;
if (BAD_ADDR(elf_entry)) {
& ......