嵌入式Linux中文站

Linux namespace - Docker 背后的故事

阅读(153)

名称空间是在OS之上实现容器与主机隔离,以及容器之间互相隔离的Linux内核核心技术。根据《Docker最初的2小时(Docker从入门到入门)》一文,名称空间本质上就是在不同的工作组里面封官许愿,让大家在各自的部门里面都是manager,而且彼此不冲突。本文接下来从细节做一些讨论。 由于本文敲的命令既有可能位于主机,又有可能位于新的名称空间(模拟容器),为了避免搞乱你的脑子,下面主机命令一概采用 本颜色 ,而模拟容器类的命令一概采用 本颜色 。色盲读者,敬请谅解。 名称空间是什么? 名称空间(Names

HACKRF初级教程之:WBFM发射

阅读(289)

随着普通电脑性能逐渐提高,DSP能力越来越强。因此Software Define Radio越来越受到大家的关注。本文介绍hackrf是目前最廉价的支持发射的SDR,只可惜是半双工的。hackrf是一个完全开源的项目,从软件到硬件,全部开源,因此已经国产化。可以在淘宝买到,大概1200元左右

学会用core dump调试程序错误

阅读(201)

最来在项目中遇到大型程序出现SIGSEGV ,一直不知道用core dump工具来调试程序,花了近一周的时间,才定位问题,老大很生气,后果很严重,呵呵,事后仔细学习了这块的知识,了解一点core dump的知识。 在使用半导体作为内存的材料前,人类是利用线圈当作内存的材料(发明者为王安),线圈就叫作core ,用线圈做的内存就叫作core memory。(线圈的单词应该是coil,呵呵)如今,半导体工业澎勃发展,已经没有人用线圈当内存了,不过,在许多情况下,人们还是把内存叫作core。 所以注意了:这里的

Linux input子系统编程、分析与模板

阅读(169)

输入设备都有共性:中断驱动+字符IO ,基于分层的思想,Linux内核将这些设备的公有的部分提取出来,基于cdev提供接口,设计了输入子系统,所有使用输入子系统构建的设备都使用 主设备号13 ,同时输入子系统也 支持自动创建设备文件 ,这些文件采用阻塞的IO读写方式,被创建在 /dev/input/ 下。如下图所示。内核中的输入子系统自底向上分为 设备驱动层,输入核心层,事件处理层 。由于每种输入的设备上报的事件都各有不同,所以为了应用层能够很好识别上报的事件,内核中也为应用层封装了标准的接口来描述一个事

uboot的配置流程分析

阅读(276)

简单介绍一下uboot的基本配置流程。和绝大多数源码编译安装一样,uboot在执行 make 之前需要执行 make XXXconfig 来配置相关信息,而且uboot本身是针对多种平台的bootloader,所以编译的过程也会有一点小麻烦,需要对它的源码结构有一点了解。移植uboot,大体上的流程是:配置uboot-编译-配置相关平台的启动程序-烧录 选平台工具链 平台就是CPU的架构,即exynos4412的平台就是arm,所以 ARCH=arm ,交叉编译工具链我这里用的是 arm-none-lin

Linux IPC POSIX 信号量

阅读(222)

模型 # include semaphore.h # include sys/stat.h # include fcntl.h sem_open() //初始化并打开有名信号量 sem_init() //创建/获得无名信号量 sem_wait()/sem_trywait()/sem_timedwait()/sem_post()/sem_getvalue() //操作信号量 sem_close() //退出有名信号量 sem_unlink() //销毁有名信号量 sem_destroy() //销毁无名信号

Linux 多线程可重入函数

阅读(235)

Reentrant和Thread-safe 在单线程程序中,整个程序都是顺序执行的,一个函数在同一时刻只能被一个函数调用,但在多线程中,由于并发性,一个函数可能同时被多个函数调用,此时这个函数就成了临界资源,很容易造成调用函数处理结果的相互影响,如果一个函数在多线程并发的环境中每次被调用产生的结果是不确定的,我们就说这个函数是不可重入的/线程不安全的。为了解决这个问题,POSIX多线程库提出了一种机制,用来解决多线程环境中的线程数据私有化问题,这套机制的主要思想是利用同步和互斥维护一个 同名不同值 的表,

C标准头文件<stdio.h>

阅读(233)

是很多人学C语言接触的第一个头文件,顾名思义,stdio就是标准输入输出,其中声明了一组关于输入输出的类型,宏和函数,其中就包括了打印著名的hello,world!的printf(),但是,这并不意味着这个头文件就很简单,相反,这个头文件是C标准库里唯二包罗万象的一个库(另一个是 )。好,让我们从头审视一下这个头文件 概念 文件描述符file descriptor 似于Windows系统的文件句柄,Unix/Linux系统用来描述文件的一个正整数,OS负责分发文件描述符给程序员,并把关于这个文件细节的控制