snifer

【原创】Linux系统调用及用户编程接口

系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”接口获得操作系统内核提供的服务。例如用户可以通过进程控制相关的系统调用来创建进程、实现进程之间的通信等。在Linux中,用户编

【原创】嵌入式Linux串口应用编程

串口是计算机一种常用的接口,常用的串口有RS-232-C接口。它是于1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准,它的全称是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技

【原创】Linux 系统之平衡树(红黑树)

之所以称为红黑树的原因就在于它的每个节点都被着色为红色或黑色。这些节点颜色被用来检测树的平衡性。但需要注意的是,红黑树并不是严格意义上的平衡二叉树,恰恰相反,红黑树放松了平衡二叉树的某些要求,由于一定限度的不平衡,红黑树的性能得到了提升。从根节点到叶

【原创】ARM Linux中链表使用实例

链表是一种常见的重要数据结构,它可以动态地进行存储分配,根据需要开辟内存单元,还可以方便地实现数据的增加和删除。链表中的每个元素都由两部分组成:数据域和指针域。其中,数据域用于存储数据元素的信息,指针域用于存储该元素的直接后继元素的位置。在ARMLinux中

【原创】嵌入式Linux系统之系统服务

最近又接了个Linux相关的培训,把这个内容又重温一遍,其中对系统服务有了更深入的认识,与大家分享。INIT进程的一个重要作用就是启动Linux系统服务(也就是运行在后台的守护进程)。Linux的系统服务包括两种,第一种是独立运行的系统服务,它们常驻内存中,自开机后一

【原创】 linux-2.6.22.6内核的编译和配置

今天用到了linux-2.6.22.6内核,不得不重新编译一遍,把这个过程写下来与大家分享。环境:1、Ubuntu10.10发行版2、u-boot-2010.033、FS2410平台4、交叉编译器arm-none-linux-gnueabi-gcc-4.3.2【实验步骤】1、将实验代码中的rootfs.tar.b

【原创】Linux下Shell编程之进阶

上一个博客写了shell编程的一些内容,很多同学感兴趣跟我交流,乘热打铁,就在写写这方面的内容。1、如何使用shell函数实现shell编程;下面我用一个例子说明欢迎界面的实现:2、Shell控制结构的实现:第一种方式:中括号[]、test、&&与||结合使用动手做一做:是

【原创】Linux下Shell编程全解析

今天,我们从一个问题开始:一台计算机要播放出”music”,需要些什么呢?1、需要有“声卡芯片”硬件设备,否则怎么会有声音。2、操作系统的核心可以支持这个芯片集,当然还需要提供芯片的驱动程序。3、需要用户(就是你)输入发生声音的命令。操作系统是一个系统资源的管

【原创】Linux启动过程全解析

linux是如何启动的,很多童鞋能说的清楚,我今天就把这个问题详细梳理一下,与大家分享。我先画一张图,这个就是启动的大体过程:其中,内核引导阶段,分成了四步:1、bootsect阶段2、setup阶段3、head.S阶段4、main.c阶段init阶段(1)主要完成:1。确定用户登录模式&n

[原创]linux-3.9.8移植全过程

linux已经发展到了3.9.8,不过仍然摆脱不了嵌入式专用操作系统的尴尬位置,虽然目前在很多领域都取得了斐然的成绩,但是远远没有达到作用的最大化,今天就这个新版本的移植过程给大家分享一下。1、下载地址,当然是:https://www.kernel.org二、解压源码#ta

【嵌入式】【原创】嵌入式系统S3C2410的Linux内核移植新体验

嵌入式系统中经常需要进行内核移植,很多童鞋对这方面的知识认识的深入,会造成一些问题,今天我就把我的移植过程给大家分享一下,希望能给大家带来新的启发。Linux内核移植主要包括:1、配置内核2、编译内核3、下载、运行、调试内核配置Linux内核包括:1、makeconfig2

[原创]Linux/Windows系统之间文件共享—Samba

嵌入式竞赛进行中。。。。很多时候都要在嵌入式系统和widows系统之间进行文件共享,今天我就写写这方面的内容。首先做一下知识普及:1.Samba的组成一个Samba服务器实际上包括两个守护进程:smbd和nmbd。2.安装

【技术分享】【原创】与DMA控制器对话

嵌入式系统中最常见的就是DMA的控制,下面乘着博客竞赛的风,讲讲这方面的问题。注册完成后,驱动程序的主要工作是为正确的操作来配置DMA控制器。这项工作并不简单,好在核心引出了所有典型驱动程序所需的函数。在read或write被调用,或者在预备异步传送时,驱动程序都

【技术分享】【原创】基于linux的网络高级编程

上面介绍了Linux的基础编程,下面在介绍Linux的网络高级编程。由于在前面介绍的函数如connet、recv、send都是阻塞性函数,若资源没有准备好,则调用该函数的进程将进入休眠状态,这样无法实现I/O多路复用了,下面介绍两种I/O多路复用的解决方案。1、fcntl函数实现(非阻

【技术分享】【原创】linux网络编程应用

嵌入式设计竞赛开始了,进行的如火如荼啊,写写这方面的基础知识。linux中的网络编程通过socket接口实现。Socket既是一种特殊的IO,它也是一种文件描述符。一个完整的Socket都有一个相关描述{协议,本地地址,本地端口,远程地址,远程端口};每一个Socket有一个本