随笔分类 -  linux

摘要:一、嵌入式Linux系统的构成1、硬件2、内核3、应用程序(形成根文件系统)二、构建嵌入式Linux系统的主要任务1、内核部分2、应用程序部分嵌入式Linux的开发大致可分为三个层次:引导装载内核、构造文件系统和图形用户界面。作为操作系统重要组成部分的文件系统,决定了操作系统本身的信息和用户的数据在存储设备上的组织形式。对嵌入式文件系统的研究、设计和开发也逐渐成为嵌入式系 统研究领域的一个方向。三、内核精简在精简内核在编译内核之前,首先要明确需要那些驱动和模块,然后只选择需要的驱动和模块,例如,如果系统不需要网络支持,则可以去掉网络模块 。内核一般是以压缩方式存放的,在系统启动时会自行解压。内 阅读全文

posted @ 2013-10-03 23:37 davy2013 阅读(470) 评论(0) 推荐(1) |

摘要:第1步:编辑得到举例的程序--hello.h、hello.c和main.c; hello.h为该函数库的头文件。hello.c是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello XXX!"。main.c为测试库文件的主程序,在主程序中调用了公用函数hello。第2步:将hello.c编译成.o文件; 无论静态库,还是动态库,都是由.o文件创建的。因此,我们必须将源程序hello.c通过gcc先编译成.o文件。在系统提示符下键入以下命令得到hello.o文件。# gcc -c hello.c第3步:由.o文件创建静态库;静态库文件名的命名规范是以l 阅读全文

posted @ 2013-07-07 13:34 davy2013 阅读(258) 评论(0) 推荐(0) |

摘要:无论是在CPU外部接总线的设备还是在CPU内部接总线的设备都有各自的地址范围,都可以像访问内存一样访问,很多体系结构(比如ARM)采用这种方式操作设备,称为内存映射I/O(Memory-mappedI/O)。但是x86比较特殊,x86对于设备有独立的端口地址空间,CPU核需要引出额外的地址线来连接片内设备(和访问内存所用的地址线不同),访问设备寄存器时用特殊的in/out指令(汇编),而不是和访问内存用同样的指令,这种方式称为端口I/O(PortI/O)。 在x86平台上,硬盘是挂在IDE、SATA或SCSI总线上的设备,保存在硬盘上的程序是不能被CPU直接取指令执行的,操作系统在执行程序时. 阅读全文

posted @ 2013-07-02 21:46 davy2013 阅读(462) 评论(0) 推荐(0) |

摘要:1、Linux函数库介绍函数库可以看做是事先编写的函数集合,它可以与主函数分离,从而增加程序开发的复用性。Linux中函数库可以有3种使用的形式:静态、共享和动态。1) 静态库的代码在编译时就已连接到开发人员开发的应用程序中;2) 而共享库只是在程序开始运行时才载入;3) 动态库也是在程序运行时载入,但与共享库不同的是,动态库使用的库函数不是在程序运行使开始载入,而是在程序中的语句需要使用该函数时才载入。动态库可以在程序运行期间释放动态库所占用的内存,腾出空间供其他程序使用。注:l 由于共享库和动态库并没有在程序中包括库函数的内容,只是包含了对库函数的引用,因此代码的规模比较小。l 系统中可用 阅读全文

posted @ 2013-06-26 23:25 davy2013 阅读(325) 评论(0) 推荐(0) |

摘要:简介在进行服务器端开发的时候需要考虑一些算法和性能问题,经过了几年的开发,对这方面有了一些经验,现在写下来跟大家分享和讨论。我主要是在Linux下进行C语言的开发,所以后面的实现都是基于Linux操作系统并用C语言来讲解。其它平台和语言需要考虑的问题是类似的只不过可能是实现细节上有一些差异,我尽量减少这些差异吧。注意一下讲解的所有内容都是基于32位系统的开发!服务器程序开发核心是稳定,在稳定的前提下需要考虑效率。其中主要的公共模块是内存池和线程池。因为服务器程序一般都会长时间的运行,而且频繁的进行创建和释放内存的操作,这时如果使用系统的malloc和free方法,则会使系统中产生很多内存碎片, 阅读全文

posted @ 2013-06-24 13:47 davy2013 阅读(322) 评论(0) 推荐(1) |

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3