嵌入式Linux中文站

最新发布

系统开发

linux的cache memory解析

阅读(109)

有时候你会发现没有什么程序在运行,但是使用top或free命令看到可用内存free项会很少,此时查看系统的 /proc/meminfo 文件,会发现有一项 Cached Memory: 输入cat /proc/meminfo查看: MemTotal: 16425996 kB MemFree: 5698808 kB Buffers: 380904 kB Cached: 9389356 ...

系统开发

Linux中CPU与内存性能监测

阅读(173)

在系统维护的过程中,随时可能有需要查看 CPU 使用率内存使用情况的需要,尤其是涉及到JVM,程序调优的情况,并根据相应信息分析系统状况的需要。 top命令 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。...

系统开发

linux syscall系统调用获取线程PID

阅读(84)

线程id Linux中,每个进程有一个pid,类型pid_t,由getpid()取得。Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id由线程库维护,其id空间是各个进程独立的(即不同进程中的线程可能有相同的id)。Linux中的POSIX线程库实现的线程其实也是一...

新手入门

linux 磁盘调度、磁盘类型、top以及iostat 参数

阅读(131)

利用rotational 查看磁盘类型以及调度方式 前两行查看磁盘调度方式: 当前方式为cfg,调度方式见底部引用 最后一行查看磁盘类型: 返回值0即为SSD, 返回1即为HDD。 利用iostat查看磁盘利用率 rrqm/s:每秒合并读操作的次数,针对相邻的数据块wrqm/s:每秒合并写操作的次...

内核驱动

Linux IIC设备驱动剖析

阅读(161)

写在前面 由于IIC总线只需要两根线就可以完成读写操作,而且通信协议简单,一条总线上可以挂载多个设备,因此被广泛使用。但是IIC总线有一个缺点,就是传输速率比较低。本文基于Linux-2.6.36版本,说说IIC子系统在Linux中的实现。 IIC子系统框架分为3各部分: 1. I2C核...

系统开发

简单的linux杂项设备驱动的写法

阅读(196)

linux将设备驱动分成几大类:字符设备、杂项设备、块设备、网络设备 本篇文章介绍杂项设备驱动的编写,杂项设备与字符设备本质上没什么区别,但是写法和相关函数的使用上有区别。 除此之外杂项设备主设备号都为10,设备间通过次设备号来进行区分,与字符设备相比节约了...

系统开发

linux中fork()函数详解

阅读(149)

一、fork入门知识 一个进程,包括代码、数据和分配给进程的资源。fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可以做完全相同的事,但如果初始参数或者传入的变量不同,两个进程也可以做不同的事。 一个进程调用fork()函数后,系统...

系统开发

Linux 系统错误码及其说明

阅读(57)

#defineEPERM 1/* Operation not permitted */ #defineENOENT 2/* No such file or directory */ #defineESRCH 3/* No such process */ #defineEINTR 4/* Interrupted system call */ #defineEIO 5/* I/O error */ #defineENXIO 6/* No such device or address */ #defi...

系统开发

linux 用户空间与内核空间——高端内存详解

阅读(194)

摘要:Linux 操作系统和驱动程序运行在 内核空间 ,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据可能被换出,当内核空间使用用户空间指针时,对应的数据可能不在内存中。用户空间的内存映射采用段页式,而内...

新手入门

Linux系统编程总结

阅读(143)

Linux下的多线程编程 1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程...

系统开发

Linux/Unix ulimit命令详解

阅读(203)

Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数 可以用ulimit -a 来显示当前的各种用户进程限制。 下面我把某linux用户的最大进程数设为10000个: ulimit -u 10240 对于需要做许多 socket 连接并使它们处于...

系统开发

Linux安装ARM交叉编译器步骤

阅读(188)

安装交叉编译环境 ==================================== gcc是linux环境下的asm和c语言编译器,生成的是可以在x86平台上运行的可执行程序; 而在开发板上运行的程序则需要arm平台专用的编译器,也称为交叉编译器; 交叉编译器可以由开发人员手工定制,也可用使用别人已...

系统开发

linux启动优化:mdev -s

阅读(53)

linux启动优化:mdev -s自从创建节点,启动时间比较长 标签: linux 优化 mdev it 分类: 工作中遇到的问题 转载请说明出处:http://control.blog.sina.com.cn/admin/article/article_add.php 近期工作中遇到的问题如下: linux启动后加载根文件系统时,会停留时间很久...

线程进程

对linux进程的理解

阅读(191)

进程是UNIX操作系统抽象概念中最基本的一种,其中涉及进程的定义以及相关的概念,比如线程;它们在内核中如何被列举?如何创建?最终又如何消亡?让我们通过下面的分析,一步步解开内核进程的神秘面纱。 1. 进程和线程 进程和线程是程序运行时状态,是动态变化的,进程...

系统开发

写linux驱动程序的步骤

阅读(60)

第一步:建立Linux驱动的骨架 linux内核使用驱动时候,需要先初始化,包括建立设备文件,分配内存地址空间等,退出的时候要释放资源,删除设备文件,释放内存地址空间等。所以在linux驱动中需要提供两个函数来分别处理驱动初始化和退出的工作,这两个函数分别用module_i...

系统开发

Linux中readl和writel函数的使用方法

阅读(183)

readX/writeX() are used to access memory mapped devices. On some * architectures the memory mapped IO stuff needs to be accessed * differently. On the simple architectures, we just read/write the * memory location directly. writel() 往内存映射的 I/O ...