嵌入式Linux中文站

linux命令码(_IO宏)

阅读(128)

在ioctl.h头文件中定义了命令码 命令码用一个32位的整型数表达 bit29~31表示命令传输的方向,bit16~29记录要传输的数据的大小,bit8~15表示设备类型(一般用一个ASCII表示),bit0~7表示命令编号 其中数据大小可以和方向的bit29重叠 #ifndef _SPARC_IOCTL_H #define _SPARC_IOCTL_H #define _IOC_NRBITS 8 // 命令 #define _IOC_TYPEBITS 8 // 设备类型 #define _IOC_SI

Linux目录结构、Linux分区大小、挂载点和如何分区

阅读(135)

一、关于硬盘种类、物理几何结构及硬盘容量、分区大小计算; 1、硬盘种类、物理几何结构 硬盘的种类主要是SCSI 、IDE 、以及现在流行的SATA等;任何一种硬盘的生产都要一定的标准;随着相应的标准的升级,硬盘生产技术也在升级;比如 SCSI标准已经经历了SCSI-1 、SCSI-2、SCSI-3;其中目前咱们经常在服务器网站看到的 Ultral-160就是基于SCSI-3标准的;IDE 遵循的是ATA标准,而目前流行的SATA,是ATA标准的升级版本;IDE是并口设备,而SATA是串口,SATA的发展目

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

阅读(121)

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

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

阅读(117)

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

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

阅读(157)

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

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

阅读(211)

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

Linux systemctl 命令完全指南

阅读(133)

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

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

阅读(284)

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