嵌入式Linux中文站

如何更改 Linux 的 I/O 调度器

阅读(119)

Linux 的 I/O 调度器是一个以块式 I/O 访问存储卷的进程,有时也叫磁盘调度器。Linux I/O 调度器的工作机制是控制块设备的请求队列:确定队列中哪些 I/O 的优先级更高以及何时下发 I/O 到块设备,以此来减少磁盘寻道时间,从而提高系统的吞吐量。 目前 Linux 上有如下几种 I/O 调度算法: noop - 通常用于内存存储的设备。 cfq - 完全公平调度器。进程平均使用IO带宽。 Deadline - 针对延迟的调度器,每一个 I/O,都有一个最晚执行时间。 Anticipato

Linux 平台相关代码的 C++ 解决方案

阅读(115)

本文首先提出平台相关代码造成的两个问题,然后针对这两个问题循序渐进依次提出解决方案,在分析了前两个方案弱点的基础上,最后着重介绍一种基于多种 设计模式 的 Linux 平台相关代码的解决方案,并给出此方案的 C++ 实现。 Linux 平台相关代码带来的问题 目前市场上存在着许多不同的 Linux 平台(例如:RedHat, Ubuntu, Suse 等),各大厂商和社区都在针对自己支持的平台进行优化,为使用者带来诸多方便的同时也对软件研发人员在进行编码时带来不少问题: 由于程序中不可避免的存在平台相关代

在 Linux 中如何使用 gdb 调试 C 程序

阅读(157)

无论多么有经验的程序员,开发的任何软件都不可能完全没有 bug。因此,排查及修复 bug 成为软件开发周期中最重要的任务之一。有许多办法可以排查 bug(测试、代码自审等等),但是还有一些专用软件(称为调试器)可以帮助准确定位问题的所在,以便进行修复。 如果你是 C/C++ 程序员,或者使用 Fortran 和 Modula-2 编程语言开发软件,那么你将会很乐意知道有这么一款优秀的调试器 -GDB- 可以帮你更轻松地调试代码 bug 以及其它问题。在这篇文章中,我们将讨论一下 GDB 调试器的基础知识,

通过轻型线程提高多核设备中的Linux实时性能

阅读(204)

简介 上个世纪,研发人员投入了大量精力提高 Linux 实时性能和行为,最著名的是 PREEMPT_RT Linux 实时扩展。最近,研发人员致力于研究适用于多核设备的 Linux 用户空间解决方案,该解决方案允许从用户空间中直接访问基础硬件,从而可避免因将 Linux 内核引入用户空间应用而带来的额外系统开销。这些用户空间扩展(有多个)已首先由电信/网络高性能 IP 数据包处理系统进行驱动,以实现所谓的裸金属实施,其中,多核设备中的 Linux 用户空间应用可以模拟无操作系统解决方案的执行过程,即在每个

Linux systemctl 命令完全指南

阅读(126)

Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。 Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。 在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。Systemd通常是所有其它守护进程的父进程,但并非总是如此。 使用Systemctl管理Linux服务 本文旨在阐明在运行systemd的系统上如何控制系统和

C语言的关键字,运算符,标识符

阅读(241)

关键字 数据类型修饰相关 auto 按照自动的方式进行变量的存储 const 定义常量或常参数 extern 声明外部变量或函数 register 指定变量的存储类型是寄存器变量 static 指定变量的存储类型是静态变量,或指定函数是静态函数 volatile 变量的值可能在程序的外部被改变 数据类型相关 char 字符型数据 short 定义短整型变量或指针 int 整型数据 long 长整型数据 signed 有符号的整型数据 unsigned 定义无符号的整型变量或数据 float 单精度浮点型数

C语言的数据类型及其对应变量

阅读(186)

声明,定义和初始化 声明 标识符iden是告诉编译器有这么一个变量var,具体var里是什么,你自己去看。声明只需要标识符的类型和标识符名字,C语言的任何标识符在使用前都需要声明,当然变量也不例外;如果标识符的定义代码在使用之前,那么定义的代码可以看作是声明,否则需要声明 定义 标识符iden是告诉编译器这个iden是什么; 初始化 标识符iden是定义iden时给iden赋值,一个没有被赋值的iden里面存的是之前这块内存的值,就可能是任意的值,一不小心使用这样的标识符是十分危险的,所以一个好的习惯是定

表达式,语句,变量与宏的一些概念

阅读(220)

表达式 表达式 C语言中分为常量表达式,算术表达式,关系表达式,逻辑表达式,赋值表达式,逗号表达式和复合表达式etc。表达式可以分为左值和右值 左值(ell-value) 可以出现在赋值运算符的左边或者右边,变量就是一个左值表达式 右值(are-value) 只能出现在赋值运算符的右边,数字字面值就是一个右值表达式。 语句 语句 是C语言用于表达命令逻辑语法结构,主要分为表达式语句,语句块,空语句,控制语句和特殊语句 变量 从语言的角度看,变量是一个左值,可以放在赋值运算符的左边接受一个值或者是右边用来给