博客首页
注册
建议与交流
排行榜
加入友情链接
宝宝相册的专门空间
推荐
投诉
搜索:
帮助
jiuzhuaxiong
创造属于你的天空,有了问题可以跟大家一起讨论! 在LINUX和VXWORKS嵌入式开发中学到了一些经验跟大家分享!
jiuzhuaxiong.cublog.cn
管理博客
发表文章
留言
收藏夹
· 下载搜索
· 电子博客好友
博客圈
音乐
· 家乡音乐
相册
· 开发照片
导入文章
文章
· C语言技巧讨论
· 前辈经验
· 嵌入式LINUX开发
}
· AT9200 LINUX2.6.10内核移植
· S2C2410LINUX2.6.20内核移植
· U-BOOT移植
· AT91RM9200开发笔记
· LINUX交叉编译器的制作
· SHELL命令学习
· U-BOOT POWERPC移植
· UCLINUX开发笔记
· JFFS2文件系统制作
· 在嵌入式Linux系统中挂载 jffs2 根文件系统
· RAMDISK系统的制作
· LINUX系统启动
}
· LINUX驱动开发笔记
· LINUX内核移植
· ARM嵌入式开发
· MAKEFILE制作
· AVR在LINUX平台下开发
· 嵌入式VXWORKS开发
}
· VXWORKS BSP开发
· VXWORKS在AT91RM9200上的移植
· VXWORKS在MPC860上的移植
· VXWORKS启动过程
· VXWORKS多任务机制
· TCP IP 网络协议
首页
关于作者
姓名:HugBear2008 QQ:280051265 年龄:25 位置:中国.广州 E-MAIL:jiuzhuaxiong@163.com
||
<<
>>
||
我的分类
文章列表 - LINUX系统启动
嵌入式linux启动信息完全注释
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#a5bd6b cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <DIV id=art style="MARGIN: 15px"> <DIV> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25><FONT color=#ff9900 size=4><B>嵌入式linux启动信息完全注释(自学存档用)</B></FONT></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <P width=100%><FONT size=3><B>嵌入式linux启动信息完全注释</B><BR>from:http://www.embedlin……
查看全文
发表于:2008-06-03 ┆
阅读(65)
┆
评论(0)
嵌入式linux启动信息完全注释
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#a5bd6b cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <DIV id=art style="MARGIN: 15px"> <DIV> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25><FONT color=#ff9900 size=4><B>嵌入式linux启动信息完全注释(自学存档用)</B></FONT></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <P width=100%><FONT size=3><B>嵌入式linux启动信息完全注释</B><BR>from:http://www.embedlinux.cn/ShowPost.asp?ThreadID=377<BR><BR></P></FONT> <P width=100%><B><FONT size=3>摘要</FONT></B></P> <P width=100%><FONT size=3>我们在这里讨论的是对嵌入式linux系统的启动过程的输出信息的注释,通过我们的讨论,大家会对嵌入式linux启动过程中出现的、以前感觉熟悉的、但却又似是而非的东西有一个确切的了解,并且能了解到这些输出信息的来龙去脉。</FONT></P> <P width=100%><FONT size=3>嵌入式linux的启动信息是一个很值得我们去好好研究的东西,它能将一幅缩影图呈现在我们面前,来指导我们更加深入地理解linux内核。</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%><FONT size=3><B>关键字</B>:linux,嵌入式,启动,bootloader</FONT></P> <P width=100%><B><FONT size=3>正文</FONT></B></P> <P width=100%><FONT size=3>作为一名嵌入系统开发者,你一定遇到过下面的情景:</FONT></P> <P width=100%><FONT size=3>在某论坛上看到一篇帖子,上面贴着嵌入式linux开发板启动时的有关信息,然后大家在帖子里讨论着这个启动过程中出现的问题,随机举例如下:</FONT></P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>Linux version 2.4.20-uc0 (root@Local) (gcc version 2.95.3 <BR>20010315 (release)(ColdFire patches - 20010318 from http://f <BR>(uClinux XIP and shared lib patches from http://www.snapgear.com/)) #20 三 6月 1 <BR>8 00:58:31 CST 2003 <BR>Processor: Samsung S3C4510B revision 6 <BR>Architecture: SNDS100 <BR>On node 0 totalpages: 4096 <BR>zone(0): 0 pages. <BR>zone(1): 4096 pages. <BR>zone(2): 0 pages. <BR>Kernel command line: root=/dev/rom0 <BR>Calibrating delay loop... 49.76 BogoMIPS <BR>Memory: 16MB = 16MB total <BR>Memory: 14348KB available (1615K code, 156K data, 40K init) <BR>Dentry cache hash table entries: 2048 (order: 2, 16384 bytes) <BR>Inode cache hash table entries: 1024 (order: 1, <BR>Mount-cache hash table entries: 512 (order: 0, 4096 bytes) <BR>Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) <BR>Page-cache hash table entries: 4096 (order: 2, 16384 bytes) <BR>POSIX conformance testing by UNIFIX <BR>Linux NET4.0 for Linux 2.4 <BR>Based upon Swansea University Computer Society NET3.039 <BR>Initializing RT netlink socket <BR>Starting kswapd <BR>Samsung S3C4510 Serial driver version 0.9 (2001-12-27) with no serial options en <BR>abled <BR>ttyS00 at 0x3ffd000 (irq = 5) is a S3C4510B <BR>ttyS01 at 0x3ffe000 (irq = 7) is a S3C451 <BR>Blkmem copyright 1998,1999 D. Jeff Dionne <BR>Blkmem copyright 1998 Kenneth Albanowski <BR>Blkmem 1 disk images: <BR>0: BE558-1A5D57 [VIRTUAL BE558-1A5D57] (RO) <BR>RAMDISK driver initialized: 16 RAM disks of 1024K size 1024 blocksize <BR>Samsung S3C4510 Ethernet driver version 0.1 (2002-02-20) <mac@os.nctu.edu.tw> <BR>eth0: 00:40:95:36:35:34 <BR>NET4: Linux TCP/IP 1.0 for NET4.0 <BR>IP Protocols: ICMP, UDP, TCP <BR>IP: routing cache hash table of 512 buckets, 4Kbytes <BR>TCP: Hash tables configured (established 1024 bind 1024) <BR>VFS: Mounted root (romfs <BR>Freeing init memory: 40K</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>上面的这些输出信息,也可能包括你自己正在做的嵌入式linux开发板的输出信息,其中的每一行,每一个字的含义,你是否深究过,或者说大部分的含义你能确切地知道的?本人想在这里结合本人在实践中一些体会来和广大嵌入式linux的开发者一起读懂这些信息。</FONT></P> <P width=100%><FONT size=3>我们在这里将以一个真实的嵌入式linux系统的启动过程为例,来分析这些输出信息。启动信息的原始内容将用标记标出,以区别与注释。</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%><FONT size=3>嵌入式linux的启动主要分为两个阶段:</FONT></P> <P width=100%><FONT size=3>① 第一部分bootloader启动阶段</FONT></P> <P width=100%><FONT size=3>② 第二部分linux 内核初始化和启动阶段</FONT></P> <P width=100%><FONT size=3>第一节:start_kernel</FONT></P> <P width=100%><FONT size=3>第二节:用户模式( user_mode )开始,start_kernel结束</FONT></P> <P width=100%><FONT size=3>第三节:加载linux内核完毕,转入cpu_idle进程</FONT></P> <P width=100%><B><FONT size=3></FONT></B> </P> <P align=center width=100%><FONT size=3><B>第一部分 : bootloader</B><B>启动</B></FONT></P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>Boot loader v0.12</FONT></P> <P><FONT size=3>NOTE: this boot loader is designed to boot kernels made with the</FONT></P> <P><FONT size=3>2.4.xx releases</FONT></P> <P><FONT size=3>bootloader for XV</FONT></P> <P><FONT size=3>Built at Nov 20 2005 10:12:35</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>Bootloader头信息,版本,编译时间等,这个因不同的bootloader的设计而有所不同,由此你能看出bootloader的版本信息,有很多使用的是通用的bootloader,如u-boot,redboot等。</FONT></P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>Loaded to 0x90060000</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>将bootloader加载到内存ram中的0x90060000处,即将bootloader加载到内存的高端地址处。</FONT></P> <P width=100%><FONT size=3>Linux内核将被bootloader加载到0x90090000处。</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>Found boot configuration</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>查找到了启动boot的配置信息</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>Booted from parallel flash</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>从flash中启动代码,此处的flash为并行闪存。Flash的分类列举如下:</FONT></P> <P width=100%><FONT size=3>闪存分三类:并行,串行,不可擦除。</FONT></P> <P width=100%><FONT size=3>①并行Parallel flash</FONT></P> <P width=100%><FONT size=3> NOR Flash,Intel于1988年发明.随机读取的速度比较快,随机按字节写,每次可以传输8Bit。一般适合应用于数据/程序的存贮应用中.NOR还可以片内执行(execute-in-place)XIP.写入和擦除速度很低。</FONT></P> <P width=100%><FONT size=3> NAND Flash,1989年,东芝公司发明.是以块和页为单位来读写的,不能随机访问某个指定的点.因而相对来说读取速度较慢,而擦除和写入的速度则比较快,每次可以传输16Bit,一般适用在大容量的多媒体应用中,容量大。如:CF,SM.</FONT></P> <P width=100%><FONT size=3>②串行Serial Flash 是以字节进行传输的,每次可以传输1-2Bit.如:MMC,SD,MS卡.串行闪存器件体积小,引脚也少,成本相对也更低廉。 </FONT></P> <P width=100%><FONT size=3>③不可擦除Mask Rom Flash的特点是一次性录入数据,具有不可更改性,经常运用于游戏和需版权保护文件等的录入。其显著特点是成本低。 </FONT></P> <P width=100%><FONT size=3><B>注意:</B>任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。</FONT></P> <P width=100%><FONT size=3>从上面的信息,我们可以对flash类型特点有个比较明确的了解。</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>CPU clock rate: 200 MHz</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>开发板上所使用的CPU的主频为200MHZ.</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%> <TABLE cellSpacing=0 cellPadding=0 border=1> <TBODY> <TR> <TD vAlign=top width=657> <P><FONT size=3>DRAM size is 128MB (128MB/0MB)</FONT></P></TD></TR></TBODY></TABLE></P> <P width=100%><FONT size=3>动态内存ram大小为128M。这里我们列举一下内存的类型及工作原理。</FONT></P> <P width=100%><FONT size=3>根据内存的工作原理可以划分出两种内存:DRAM和SRAM</FONT></P> <P width=100%><FONT size=3>①DRAM表示动态随机存取存储器。这是一种以电荷形式进行存储的半导体存储器。DRAM中的每个存储单元由一个晶体管和一个电容器组成。数据存储在电容器中。电容器会由于漏电而导致电荷丢失,因而DRAM器件是不稳定的。为了将数据保存在存储器中,DRAM器件必须有规律地进行刷新。 </FONT></P> <P width=100%><FONT size=3>②SRAM是静态的,因此只要供电它就会保持一个值。一般而言,SRAM 比DRAM要快,这是因为SRAM没有刷新周期。每个SRAM存储单元由6个晶体管组成,而DRAM存储单元由一个晶体管和一个电容器组成。相比而言,DRAM比SRAM每个存储单元的成本要高。照此推理,可以断定在给定的固定区域内DRAM的密度比SRAM 的密度要大。 </FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%><FONT size=3>SRAM常常用于高速缓冲存储器,因为它有更高的速率;而DRAM常常用于PC中的主存储器,因为其拥有更高的密度。 </FONT></P> <P width=100%><FONT size=3>在嵌入式系统中使用DRAM内存的设计比较广泛。</FONT></P> <P width=100%><FONT size=3></FONT> </P> <P width=100%><FONT size=3>地址辅助说明:</FONT></P> <P width=100%><FONT size=3>先说明一下内存地址数字情况,主要是为了方便记忆。</FONT></P> <P width=100%><FONT size=3>可以访问的内存为4G。</FONT></P> <P width=100%><FONT size=3>0x40000000是1GB处;0x00040000是256K处,0x00020000是128K处,0x90000000是2GB多的地方。</FONT></P> <P width=100%><FONT size=3>1M->0x00100000, </FONT></P> <P width=100%><FONT size=3>2M->0x00200000,</FONT></P> <P width=100%><FONT size=3>8M->0x00800000</FONT></P> <P width=100%><FONT size=3>16M->0x01000000, </FONT></P> <P width=100%><FONT size=3>32M->0x02000000</FONT></P> <P width=100%><FONT size=3>256M->0x10000000</FONT></P> <P width=100%><FONT size=3>64K->0x
查看全文
发表于:2008-06-03 ┆
阅读(65)
┆
评论(0)
嵌入式linux启动信息完全注释
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#a5bd6b cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <DIV id=art style="MARGIN: 15px"> <DIV> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25><FONT color=#ff9900 size=4><B>嵌入式linux启动信息完全注释(自学存档用)</B></FONT></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> %3
查看全文
发表于:2008-06-03 ┆
阅读(67)
┆
评论(0)
嵌入式linux启动信息完全注释
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#a5bd6b cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD> <DIV id=art style="MARGIN: 15px"> <DIV> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25><FONT color=#ff9900 size=4><B>嵌入式linux启动信息完全注释(自学存档用)</B></FONT></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <P width=100%><FONT size=3><B>嵌入式linux启动信息完全注释</B><BR>from:http://www.embedlin……
查看全文
发表于:2008-06-03 ┆
阅读(43)
┆
评论(0)
Linux驱动开发学习的一些必要步骤
<DIV> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <DIV id=art style="MARGIN: 15px" width="100%"> <DIV> 1. 学会写简单的makefile <P> 2. 编一应用程序,可以用makefile跑起来</P> <P> 3. 学会写驱动的makefile</P> <P> 4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod, rmmod. 在驱动的init函数里打印hello world, insmod后应该能够通过dmesg看到输出。</P> <P> 5. 写一完整驱动, 加上read, write, ioctl, polling等各种函数的驱动实现。 在ioctl里完成从用户空间向内核空间传递结构体的实现。</P> <P>&n……
查看全文
发表于:2008-06-03 ┆
阅读(70)
┆
评论(0)
arm开发经验[转载]
<DIV> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <DIV id=art style="MARGIN: 15px" width="100%"> <DIV> <P><FONT size=2>第一章 STARTUP <BR>1 ARM的启动 <BR>一般的嵌入式系统在主程序执行之前都需要执行一些初始化的过程以创造嵌入式程序运行的环境,尤其是一些高级的嵌入式系统,由于核心芯片使用内存映射、内存保护等机制以及编程使用高级语言C,C++甚至JAVA语言,都需要先创建一个适合程序运行的硬件环境,然后初始化或者配置或者剪裁run-time library, 这些工作都必须在主程序运行前完成,所以一个startup程序或者程序组对于一个嵌入式系统来说是非常重要的。要编写startup程序,需要对编译器、链接器和汇编器的细节有一……
查看全文
发表于:2008-06-03 ┆
阅读(65)
┆
评论(0)
sd卡驱动移植到2.6.24内核时出错
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" align=center border=0> <TBODY> <TR> <TD align=middle bgColor=#bbf0ff> </TD> <TR> <TD> <TABLE style="BORDER-COLLAPSE: collapse" borderColor=#bbf0ff cellSpacing=1 cellPadding=0 width="100%" border=1> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width=650 border=0> <TBODY> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width=650> <DIV id=art style="MARGIN: 15px"> <DIV>[root@localhost6 Kernel]# make zImage<BR> CHK include/linux/version.h<BR>make[1]: “include/asm-arm/mach-types.h”是最新的。<BR> CHK include/linux/utsrelease.h<BR> CALL scripts/checksyscalls.sh<BR><stdin>:1097:2: warning: #warning syscall fadv……
查看全文
发表于:2008-06-03 ┆
阅读(98)
┆
评论(0)
linux内核启动地址,解压缩,内核参数问题探讨
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD vAlign=top align=middle width="100%" bgColor=#dddddd colSpan=3> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="96%" border=0> <TBODY> <TR> <TD align=middle bgColor=#f3f3f3 colSpan=3> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <DIV id=art style="MARGIN: 15px" width="100%"><BR><FONT style="FONT-SIZE: 14pt" color=#000066><B>linux内核启动地址的确定</B></FONT> <DIV><BR><A href="http://www.eetop.cn/blog/?11145/action_viewspace_itemid_562.html"></A></D……
查看全文
发表于:2008-04-02 ┆
阅读(259)
┆
评论(0)
Super server系列1: inetd和xinetd
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD vAlign=top align=middle width="100%" bgColor=#dddddd colSpan=3> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="96%" border=0> <TBODY> <TR> <TD align=middle bgColor=#f3f3f3 colSpan=3> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <DIV id=art style="MARGIN: 15px" width="100%"> <DIV> 使用busybox自带的inetd来启动自带的telnetd,总是无法成功。但是telnetd单独启动,倒是没有问题。这里肯定存在一个配置的问题,或者说busybox的tel……
查看全文
发表于:2008-04-01 ┆
阅读(158)
┆
评论(0)
SSH系列1: OpenSSH移植
<DIV> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD vAlign=top align=middle width="100%" bgColor=#dddddd colSpan=3> <TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width="96%" border=0> <TBODY> <TR> <TD align=middle bgColor=#f3f3f3 colSpan=3> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <DIV id=art style="MARGIN: 15px" width="100%"> <DIV> SSH使用公钥密码学进行端到端通信的加密,并且相当容易使用和部署。我现在移植的是openssh,参考的文章主要是:<A href="http://blog.chinaunix.net……
查看全文
发表于:2008-04-01 ┆
阅读(109)
┆
评论(0)
Telnet系列1:busybox telnetd的移植与配置
<DIV> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD align=middle height=25></B></FONT><BR></TD></TR> <TR> <TD bgColor=#d2dee2 height=1></TD></TR> <TR> <TD bgColor=#ffffff height=1></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD width="100%"> <DIV id=art style="MARGIN: 15px" width="100%"> <DIV> Telnet协议是登陆远程网络主机最简单的方法之一,只是安全性非常低。对target board来说,必须执行telnet监控程序,这样才可以远程登陆到target board。同时,如果想从开发板通过telnet远程登陆其他host,就需要具备telent client。</DIV> <DIV> </DIV> <DIV> 在嵌入式Linux系统上的telnet的工具有:</DIV> <DIV> </DIV> <DIV> ·telnet client</DIV> <DIV> </DIV> <DIV> busybox telnet client。busybox本身就是为嵌入式系……
查看全文
发表于:2008-04-01 ┆
阅读(305)
┆
评论(0)
initrd概述
<DIV> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width=760 bgColor=#ffffff border=0> <TBODY> <TR> <TD align=middle height=25><BR></TD></TR> <TR> <TD align=middle height=9><IMG height=9 alt="" src="http://blog.chinaunix.net/templates/default/images/right_line.gif" width=502 border=0></TD></TR> <TR> <TD align=middle> <TABLE style="BORDER-COLLAPSE: collapse; WORD-WRAP: break-word" cellSpacing=0 cellPadding=0 width=740 border=0> <TBODY> <TR> <TD width=740> <DIV id=art style="MARGIN: 15px; LINE-HEIGHT: 150%" width="560"> <P><A name=N10059><SPAN class=atitle>什么是初始 RAM 磁盘?</SPAN></A></P> <P><I> 初始 RAM 磁盘(initrd)</I>是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd 与内核绑定在一起,并作为内核引导过程的一部分进行加载。内核然后会将这个 initrd 文件作为其两阶段引导过程的一部分来加载模块,这样才能稍后使用真正的文件系统,并挂载实际的根文件系统。</P> <P><EM> ……
查看全文
发表于:2008-04-01 ┆
阅读(109)
┆
评论(0)