分类目录归档:Linux系统

linux上container_of宏使用

1.简介

  在Linux上container_of宏使用较为常见,该宏的作用是通过知道结构体中一个成员的地址,从而
计算出,整个结构体的地址,在linux上很多结构体中都包含有struct list_head结构体,通过该list,就可以
得到整个结构体的地址,从而进行操作。

2.解释

  在知道container_of之前,首先需要先知道一个offsetof(TYPE, MEMBER)

#define offsetof(TYPE, MEMBER)  ((size_t)&((TYPE *)0)->MEMBER)

上述结构是计算出MEMB

Read more

ALSA音频框架简述

1. ALSA概述

ALSA(Advanced Linux Sound Architecture,高级linux声音体系)简写,是linux上主流 音频体系架构,提供了音频和MIDI的支持。是Linux系统下一套标准的音频驱动框架。

2. ALSA框架

ALSA框架分层在内核空间部分和应用空间部分。

2.1 Linux内核空间的alsa驱动

在Linux2.6后已经集成进入linux源码。 备注:在内核层使用alsa驱动时,请保证内核编译时,支持上 CONFIG_SYSVIPC=y 如果没有支持上该选项,使用时,会出现错误

ALSA lib pcm_dmix.c:1038:(snd_pcm_d

Read more

Linux上进程fork和vfork

1.简介

  正在执行的一个程序或者命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用
一定的系统资源。
linux上进程有5中状态:

1.运行(正在运行或在运行队列中等待)
2.中断(休眠中,在等待某个条件的形成或接受到信号)
3.不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生)
4.僵死状态(进程已经终止,但进程描述符存在,直到父进程调用wait系统调用后释放)
5.停止(进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止运行)

查看系统当前进程

ps aux(查看当前时间点进程信息)
ps aux | grep xx

Read more

Linux上安装python3

1.说明

  本文记录从源码安装python3指定版本,安装python3之前切记安装好必要的依赖,例如openssl,如果没有
openssl,后续使用python3导入ssl模块会报问题

2.安装

2.1 安装依赖选项

sudo apt-get install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

要保证openssl安装成功。如果上述ssl安装不成功,可以源码进行安装。
Openssl下载路径:openssl下载

2.2 从源码安

Read more

Linux上环境变量

1.简介

在Linux上一样有很多和windows上一样的环境变量,在Linux上环境变量是用来定义系统运行环境的一些参数,
比如常见的HOME,SHELL等。

2.参考表格

变量名称 作用
HOME 用户的主目录
SHELL shell解释器
PATH 定义命令行解释器搜索用户执行命令的路径
EDITOR 用户默认的文本解释器
RANDOM 生成一个随机数字
LANG 系统语言、语系名称
HISTSIZE 输出的历史命令记录条数
HISTFILESIZE 保存的历史命令记录条数
PS1 Bash解释器的提示符
MAIL 邮件保存路径
LIB

Read more