linux
文章平均质量分 84
erbort
嵌入式操作系统μCOS-μCLinuxLinuxQTandroidARM7ARM9Cortex M3 A9
展开
-
linux之fstab
/etc/fstab详解1 fstab文件的作用文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过mount /directoryname命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、 mount、umount的等命令都利用该程序。当系统启动的时候,系统会自动地从这个文件读取信息,并且会自动将此原创 2014-02-20 17:18:25 · 605 阅读 · 0 评论 -
linux编写驱动常使用的头文件
关于linux驱动(应用)程序头文件使用 收藏 驱动程序: #include 是在linux-2.6.29/include/linux下面寻找源文件。#include 是在linux-2.6.29/arch/arm/include/asm下面寻找源文件。#include 是在linux-2.6.29/arch/arm/mach-s3c2410/include/mach转载 2013-11-09 19:05:25 · 534 阅读 · 0 评论 -
linux之netlink
Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE),1-wire 子系统(NETLINK_W1),用户态 socket 协议(NETLINK_USERSOCK),防火转载 2013-11-08 19:22:40 · 490 阅读 · 0 评论 -
linux环境变量
Linux 的变量可分为两类:环境变量和本地变量环境变量,或者称为全局变量,存在与所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了。Linux 的环境变量具有继承性,即子shell 会继承父shell 的环境变量。本地变量,当前shell 中的变量,很显然本地变量中肯定包含环境变量。Linux 的本地变量的非环境变量不具备继承性。Linux 中环境变量的文件转载 2013-11-18 16:16:27 · 543 阅读 · 0 评论 -
linux中文件描述符fd和文件指针flip的理解
简单归纳:fd只是一个整数,在open时产生。起到一个索引的作用,进程通过PCB中的文件描述符表找到该fd所指向的文件指针filp。文件描述符的操作(如: open)返回的是一个文件描述符,内核会在每个进程空间中维护一个文件描述符表, 所有打开的文件都将通过此表中的文件描述符来引用; 而流(如: fopen)返回的是一个FILE结构指针, FILE结构是包含有文件描述符的,FILE结构函数转载 2013-11-15 13:56:31 · 555 阅读 · 0 评论 -
C语言字节对齐(以32位系统为例)
1. 什么是对齐? 现代计算机中内存空间都是按照字节(byte)划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序地一个接一个地排放,这就是对齐。2.计算机为什么要对齐? 各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能转载 2013-10-23 22:40:07 · 894 阅读 · 0 评论 -
嵌入式linux启动时运行的inittab文件
嵌入式系统下的linux启动配置文件,不同与普通的PC linux启动配置,启动相关文件与文件的内容也要少得多。嵌入式系统下的linux启动过程一般是: 1 在bootloader中制定各种要求传给linux内核的参数,制作ramdisk或ramfs文件系统,并在开机后首先mount上,该文件系统主要负责包含启动运行的配置文件,嵌入式系统主要是/etc/inittab和/etc/rc转载 2013-10-23 23:42:13 · 1294 阅读 · 0 评论 -
浅谈 Linux 内核开发之网络设备驱动
网络设备介绍网络设备是计算机体系结构中必不可少的一部分,处理器如果想与外界通信,通常都会选择网络设备作为通信接口。众所周知,在 OSI(Open Systems Interconnection,开放网际互连)中,网络被划分为七个层次,从下到上分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。我们所讲的网络设备也包括两个层次,一层叫做 MAC(Media Access Contr转载 2013-10-22 19:05:52 · 861 阅读 · 0 评论 -
linux之slab
动态内存管理内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享。内存管理方法应该实现以下两个功能:最小化管理内存所需的时间最大化用于一般应用的可用内存(最小化管理开销)内存管理实际上是一种关于权衡的零和游戏。您可以开发一种使用少量内存进行管理的算法,但是要花费更多时间来管理可用内存。也可以开发一个算法来有效地管理内存,但却要使用更多的内存。最终,特定应用程序的转载 2013-10-28 19:34:46 · 530 阅读 · 0 评论 -
linux之phy
MII即媒体独立接口,也叫介质无关接口。它包括一个数据接口,以及一个MAC和PHY之间的管理接口(图1)。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。RMII口是用两根线来传输数据的,M转载 2013-10-22 21:52:56 · 2167 阅读 · 0 评论 -
linux线程
Linux--线程编程进程 系统中程序执行和资源分配的基本单位 每个进程有自己的数据段、代码段和堆栈段 在进行切换时需要有比较复杂的上下文切换 线程 减少处理机的空转时间,支持多处理器以及减少上下文切换开销, 比创建进程小很多 进程内独立的一条运行路线 处理器调度的最小单元,也称为轻量级进程可以对进程的内存空间和资源进行访问,并与同一转载 2013-10-17 11:48:30 · 843 阅读 · 0 评论 -
linux内核打印级别问题
函数printk的使用方法和printf相似,用于内核打印消息。printk根据日志级别(loglevel)对消息进行分类。日志级别用宏定义,日志级别宏展开为一个字符串,在编译时由预处理器将它和消息文本拼接成一个字符串,因此printk 函数中日志级别宏和格式字符串间不能有逗号。 下面是两个printk的例子,一个用于打印调试信息,另一个用于打印临界条件信息。pri转载 2013-11-27 15:28:49 · 4736 阅读 · 0 评论 -
linux之sync和fsync,fsync和fflush的区别和联系
传统的U N I X实现在内核中设有缓冲存储器,大多数磁盘I / O都通过缓存进行。当将数据写到文件上时,通常该数据先由内核复制到缓存中,如果该缓存尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓存以便存放其他磁盘块数据时,再将该缓存排入输出队列,然后待其到达队首时,才进行实际的I / O操作。这种输出方式被称之为延迟写(delayed write)(Bach 〔1 9 8转载 2013-11-15 14:25:45 · 6185 阅读 · 0 评论 -
vim高级命令
高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的::qx 开始记录宏,并将结果存入寄存器xq 退出记录模式@x 播放记录在x寄存器中的宏命令稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,转载 2014-02-15 23:49:52 · 613 阅读 · 0 评论 -
关于linux系统缓存的问题
当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有看到有什么很好解决的办法。那么我来谈谈这个问题。一、通常情况先来说说free命令:# free -mtotal used free shared buffers cachedMem: 249 163 86 0 10 94转载 2014-02-24 16:27:01 · 3763 阅读 · 1 评论 -
事件驱动模型
事件代表过去发生的事件,事件既是技术架构概念,也是业务概念。以事件为驱动的编程模型称为事件驱动架构EDA。 EDA是一种以事件为媒介,实现组件或服务之间最大松耦合的方式。传统面向接口编程是以接口为媒介,实现调用接口者和接口实现者之间的解耦,但是这种解耦程度不是很高,如果接口发生变化,双方代码都需要变动,而事件驱动则是调用者和被调用者互相不知道对方,两者只和中间消息队列耦合。 事件驱转载 2014-02-11 11:46:12 · 2420 阅读 · 0 评论 -
哈希表
哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。实际上,这只需要几条机器指令。 对哈希表的使用者一一人来说,这是一瞬间的事。哈希表运算得非常快,在计算机程序中,如果需要在一秒种内查找上千条记录通常使用哈希表(例如拼写检查器)哈希表的速度明显比树快,树转载 2014-01-19 17:24:12 · 610 阅读 · 0 评论 -
sync,fsync,fdatasync的区别
之前在研究MySQL的一个参数innodb_flush_method时,就涉及到了fsync/fdatasync这些系统调用[system call](什么是系统调用?它与库函数的区别在哪?参见这里)。接下来就简单的分析一下sync/fsync/fdatasync的区别。 (1)sync():int sync( void )这就是它的原型,A call to this fun转载 2014-01-14 10:54:19 · 1218 阅读 · 0 评论 -
DDNS的实现
DDNS 的工作原理及其在 Linux 上的实现DDNS (Dynamic DNS) 扩展了 DNS 将客户端 IP 与其域名进行静态映射的功能,它可以将同一域名实时地解析为不同的动态 IP,而不需要额外的人工干预。这在客户端 IP 地址不断发生变化的情况下,尤其是在无线网络和 DHCP 环境中,都有着极其重要的意义。本文通过分析 DDNS 的工作原理,简单演示了其在 Linu转载 2013-12-20 19:04:38 · 5393 阅读 · 0 评论 -
linux之man
Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可。 Linux的man手册共有以下几个章节: 1、Standard commands (标准命令) 2、System calls (系统调用) 3、Library functions (库函数) 4、Special devices (设备说明)转载 2013-12-19 23:49:25 · 660 阅读 · 0 评论 -
linux之终端tty
c_cflag用于设置控制参数,除了波特率外还包含以下内容: EXTA External rate clockEXTB External rate clockCSIZE Bit mask for data bitsCS5 5个数据位CS6 6个数据位CS7 7个数据位CS8转载 2013-12-17 11:28:33 · 991 阅读 · 0 评论 -
Linux下通过ioctl系统调用来获取和设置网络信息
#include #include #include #include #include #include #include #include #include // 获取IP地址,子网掩码,MAC地址 int GetLocalNetInfo( const char* lpszEth, char* szIpAddr, char*转载 2013-12-03 10:15:44 · 821 阅读 · 1 评论 -
HTML页面加载和解析流程
1. 用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件。 2. 浏览器开始载入html代码,发现标签内有一个标签引用外部CSS文件。 3. 浏览器又发出CSS文件的请求,服务器返回这个CSS文件。 4. 浏览器继续载入html中部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了。 5. 浏览器在代码中发现转载 2013-12-02 13:41:21 · 651 阅读 · 0 评论 -
linux之RTC
linux RTC 驱动模型分析 RTC(real time clock)实时时钟,主要作用是给Linux系统提供时间。RTC因为是电池供电的,所以掉电后时间不丢失。Linux内核把RTC用作“离线”的时间与日期维护器。当Linux内核启动时,它从RTC中读取时间与日期,作为基准值。在运行期间内核完全抛开RTC,以软件的形式维护系统的当前时间与日期,并在需要时将时间回写RTC芯片转载 2013-10-15 15:12:14 · 887 阅读 · 0 评论 -
uClinux下,一种合并uzImage.bin和cramfs.bin的方法
以下这种方法最后合并出的文件不是通常uClinux“认为”的标准镜像文件,而且一定要修改bootload代码。请慎用此方法。(一)、为什么要合并uzImage.bin和cramfs.bin?一、为了升级时安全、方便安全。当系统升级程序拿到升级文件时,它必然要判断该文件合法性。uzImage.bin有crc检查,判断起来很容易,cramfs.bin是不带的,有难度。如果两转载 2013-10-15 19:20:14 · 689 阅读 · 0 评论 -
busybox
BusyBox - The Swiss Army Knife of EmbeddedLinux. BusyBox 是一个集成了一百多个常用Linux命令和工具的应用程序。它不仅包含了一些简单的命令,如 cat 、echo和ls等,而且还包含了一些更大、更复杂的工具,例如 grep、find、mount 以及 telnet等。简单地说,BusyBox就好像是个大工具箱,集成了许多Linux转载 2013-09-25 14:23:47 · 795 阅读 · 0 评论 -
Linux输入子系统(Input Subsystem)
Linux 的输入子系统不仅支持鼠标、键盘等常规输入设备,而且还支持蜂鸣器、触摸屏等设备。本章将对 Linux 输入子系统进行详细的分析。一 前言 输入子系统又叫 input 子系统。其构建非常灵活,只需要调用一些简单的函数,就可以将一个输入设备的功能呈现给应用程序。转载 2013-08-08 10:57:45 · 1022 阅读 · 0 评论 -
解析linux根文件系统的挂载过程
转载请注明出处:http://ericxiao.cublog.cn/二:rootfs的种类总的来说,rootfs分为两种:虚拟rootfs和真实rootfs.现在kernel的发展趋势是将更多的功能放到用户空间完成。以保持内核的精简。虚拟rootfs也是各linux发行厂商普遍采用的一种方式。可以将一部份的初始化工作放在虚拟的rootfs里完成。然后切换到真实的文件系统.在虚拟ro转载 2013-05-23 17:06:05 · 480 阅读 · 0 评论 -
linux initrd
1.什么是 Initrdinitrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 linux内核启动前, boot loader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。在 boot loader 配置了 initrd转载 2013-05-23 13:29:46 · 552 阅读 · 0 评论 -
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;find命令的参数;pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print: find命令将匹配的文件输出到标准输出。-exec: find命令对匹配的文件执行该参数所给出转载 2013-04-19 14:46:19 · 452 阅读 · 0 评论 -
vmlinuxz initrd system.map
一、vmlinuzvmlinuz是可引导的、压缩的内核。“vm”代表“Virtual Memory”。Linux 支持虚拟内存,不像老的操作系统比如DOS有640KB内存的限制。Linux能够使用硬盘空间作为虚拟内存,因此得名“vm”。vmlinuz是可执行的Linux内核,它位于/boot/vmlinuz,它一般是一个软链接。vmlinuz的建立有两种方式。一是编译内核时通过“m转载 2013-04-18 11:37:15 · 648 阅读 · 0 评论 -
linux /sys
sysfs 与 /syssysfs 文件系统总是被挂载在 /sys 挂载点上。虽然在较早期的2.6内核系统上并没有规定 sysfs 的标准挂载位置,可以把 sysfs 挂载在任何位置,但较近的2.6内核修正了这一规则,要求 sysfs 总是挂载在 /sys 目录上;针对以前的 sysfs 挂载位置不固定或没有标准被挂载,有些程序从 /proc/mounts 中解析出 sysfs 是否被挂载转载 2013-04-17 10:45:11 · 1406 阅读 · 0 评论 -
Qt下的模态和非模态对话框
模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在。又有叫法是称为模式对话框,无模式对话框等。 所谓模态对话框就是在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭。对于非模态对话框,当被打开时,用户既可选择和 该对话框进行交互,也可以选择同应用程序的其他窗口交互。在Qt中,显示一转载 2013-04-14 19:20:02 · 583 阅读 · 0 评论 -
剖析Linux系统启动过程
阅读Linux源代码,无疑是深入学习Linux的最好方法。在本文对Linux启动过程的介绍中,我们也尝试从源代码的视角来更深入的剖析Linux的启动过程,所以其中也简单涉及到部分相关的Linux源代码,Linux启动这部分的源码主要使用的是C语言,也涉及到了少量的汇编。而启动过程中也执行了大量的shell(主要是bashshell)所写脚本。为了方便读者阅读,笔者将整个Linux启动过程分转载 2013-04-14 17:34:22 · 543 阅读 · 0 评论 -
Line in和mac in 的区别
Line in和Mic in两个接口,翻译成中文就是“线性输入”和“麦克风输入”,这两个都是输入端口。1、Line in端口:该端口主要用于连接电吉他、电子琴、合成器等外界设备的音频信号输出的录音,由于这些设备本身输出功率就比较大,因此需要连接到Line in端口录音,当然使用它们录音从某种程度上也可以被称为外部设备的“内录”。一般您使用的声卡越好,Line in里的噪音就会越低,录制效果也会原创 2013-04-13 18:00:04 · 4707 阅读 · 0 评论 -
ubuntu12.10下更新安装包过程中失败解决方法
1:首先运行apt-get install -f,若是出现依赖包关系就要考虑卸载已经安装的包(不完整的包);2:若遇到上述情况,可先清空之前下载或是安装的被破坏文件,清空命令如下:sudo apt-get cleansudo apt-get updatesudo apt-get upgrade原创 2013-04-13 17:55:41 · 781 阅读 · 0 评论 -
linux系统/sys目录解析
/sys/devices该目录下是全局设备结构体系,包含所有被发现的注册在各种总线上的各种物理设备。一般来说,所有的物理设备都按其在总线上的拓扑结构来显示,但有两个例外,即platform devices和system devices。platform devices一般是挂在芯片内部的高速或者低速总线上的各种控制器和外设,它们能被CPU直接寻址;systemdevices不是外设转载 2013-08-15 23:47:47 · 1897 阅读 · 0 评论 -
linux下passwd文件
一、/etc/passwd/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式: name:password:uid:gid:comment:home:shell name 用户登录名 password 用户口令。此域中的口令是加密的,常用x表示。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。转载 2013-09-29 14:46:57 · 1024 阅读 · 0 评论 -
关于linux字体
linux下主要使用xtt freetype xfs xft这四种字体引擎,以下是这四种字体引擎的区别,xtt, freetype, xfs, xft等的区别 X Window是所谓client-server结构,这里的server管显示(输出)、键盘和鼠标(输入)部分,而client则是你正在用的程序,比如编辑器。Server收集键盘和鼠标的输入,送到编辑器这一client,编辑器经过处转载 2013-09-24 17:18:46 · 1121 阅读 · 0 评论 -
bashrc
建立交叉编译环境是嵌入式开发的一个重要的步骤,安装交叉编译环境就是为交叉编译工具设置环境变量。下面就是安装交叉编译环境的一个例子:首先:安装工作目录。把解压后的交叉编译工具链arm-linux-gcc 3.4.1版本复制到/usr/local/arm/3.4.1/其实:设置环境变量。#gedit /root/.bashrc编辑/root/.bashrc文件,在最后一行exp转载 2013-09-24 13:39:02 · 6810 阅读 · 0 评论