linux系统
文章平均质量分 55
记事本
linux驱动/汽车电子
展开
-
音频基础知识
###ASLA – Advanced Sound Linux Architecture###OSS – 以前的Linux音频体系结构,被ASLA取代并兼容###Codec – Coder/Decoder###I2S/PCM/AC97 – Codec与CPU间音频的通信协议/接口/总线###DAI – Digital Audio Interface 其实就是I2S/PCM/AC97###DAC – Digit to Analog Conversion###ADC – Analog to Digit原创 2020-07-17 13:29:41 · 460 阅读 · 0 评论 -
【linux性能优化】09-如何理解软中断
中断的概念中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求。中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力。由于中断处理程序会打断其他进程的运行,所以,为了减少对正常进程运行调度的影响,中断处理程序就需要尽可能快地运行。如果中断本身要做的事情不多,那么处理起来也不会有太大问题;但如果中断要处理的事情很多,中断服务...原创 2019-12-24 23:14:14 · 515 阅读 · 0 评论 -
【linux性能优化5】某个应用CPU使用率很高
CPU使用率的概念CPU使用率是单位时间内CPU的使用情况,以百分比的方式展示。Linux是一个多任务的操作系统,将每个CPU的时间划分为很短的时间片,再通过调度器轮流分配给各个任务,为了维护CPU时间,Linux通过事先定义的节拍率,内核中用HZ表示,触发时间中断,并使用全局变量Jiffies记录开机以来的节拍数。每发生了一次中断,节拍数Jiffies就加1.节拍率HZ是内核的配置选项,可以...原创 2019-12-16 23:09:21 · 448 阅读 · 0 评论 -
【linux性能优化15】Linux内存是怎么工作的
Linux的内存管理,是操作系统的最核心的功能 之一。内存主要用来存储系统和应用程序的指令数据和缓存等。内存映射通常我们所说的计算机内存大小如4Gb/8Gb,是指物理内存。当进程要访问内存时时如何访问的呢?是直接访问物理内存 吗?当然不是,linux系统给每一个进程都提供了一个独立的虚拟地址空间,而且这个空间是连续的,这样进程就可以很方便的访问内存空间,确切的是说是虚拟内存空间,也就是说...原创 2019-11-05 21:21:24 · 308 阅读 · 0 评论 -
linux----自旋锁
什么是自旋锁?自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成busy-waiting。它是为实现保护共享资源而提出一种锁机制。其实,自旋锁与互斥锁比较类似,它们都是为了解决对某项资源的互斥使用。无...原创 2019-05-22 21:17:33 · 184 阅读 · 0 评论 -
【Linux性能优化4】CPU上下文切换
如何查看系统的CPU上下文切换情况vmstat可以查看系统的CPU上下文切换情况。它是一个常用的系统性能分析工具,主要用来分析系统的内存情况,也常用来分析系统的CPU上下文切换和中断的次数。执行如下的命令:vmstat 5 (每隔5s输出一组数据)这里需要重点关注以下几列的具体内容:cs:即context switch 每秒钟上下文切换的次数,如上图中红色框。in:每秒钟中断的次数。...原创 2019-06-22 22:02:34 · 953 阅读 · 0 评论 -
【Linux性能优化2】平均负载
什么是平均负载当系统响应变慢时,一般使用top或者uptime来查看系统负载情况。运行uptime命令的输出信息如下:其中 23:12:21 为当前系统时间up 42 min:为系统已经运行的时间2 users:当前登录的用户数load average:则是过去 1 分钟、5 分钟、15 分钟的平均负载。***平均负载***是单位时间内系统处于可运行状态和不可中断状态的平均进程数,也...原创 2019-07-05 20:38:45 · 2029 阅读 · 0 评论 -
Linux进程数据结构详解
Linux系统中无论是进程还是线程都统一叫任务,有一个统一的结构task_struct进行管理。linnux中关于task_struct的定义如下Struct task_struct{ /* -1 unrunnable, 0 runnable, >0 stopped: */ volatile long state; /* * This begins the randomiz...原创 2019-08-08 21:20:24 · 1612 阅读 · 0 评论 -
linux内核初始化
Linux内核的启动从入口函数start_kernel开始,在init/main.c中,start_kernel就相当于内核的main函数。该函数中调用了很多的xxx_init函数。创建0号进程set_task_stack_end_magic(&init_task);init_task是系统创建第一个进程,也称为0号进程,这也是唯一一个没有使用fork或者kernel_thread...原创 2019-08-12 07:22:24 · 624 阅读 · 0 评论 -
Linux设置进程的调度策略和优先级
系统调用接口/** * sched_setscheduler - change the scheduling policy and/or RT priority of a thread. * @p: the task in question. * @policy: new policy. * @param: structure containing the new RT priority...原创 2019-09-18 22:11:29 · 1427 阅读 · 0 评论 -
github上传本地代码的基本步骤
git init //把这个目录变成Git可以管理的仓库git add README.md //文件添加到仓库git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了git commit -m “first commit” //把文件提交到仓库git remote add origin [email protected]:xxx/...原创 2019-01-12 21:04:02 · 163 阅读 · 0 评论 -
Linux Kernel 信号量、互斥锁、自旋锁
1.信号量1.1 概念信号量又称为信号灯(semaphore),它是用来协调不同进程间的数据对象的,本质上信号量是一个计数器,它用来记录对某个资源(如共享内存)的存取状况。一般说来,为了获得共享资源,进程需要执行下列操作: (1) 测试控制该资源的信号量。 (2) 若此信号量的值为正,则允许进行使用该资源。进程将信号量减1。 (3) 若此信号量为0,则该资源目前不可用,进程进...转载 2018-11-06 08:57:49 · 475 阅读 · 0 评论 -
ubuntu14.04系统开发环境搭建
工作中的开发环境主要就是ubuntu系统,今天在新买得笔记本上重新搭建了ubuntu的开发环境,并将搭建步骤记录如下,仅供参考。1、 软件下载链接,百度网盘。 系统版本Ubuntu 14.04,VMware-workstation-full-12.0.0-2985596.https://pan.baidu.com/s/1hrDdT3I#list/path=%2F%E5%9B%BD%E5%B5%8原创 2017-07-27 21:41:38 · 935 阅读 · 1 评论 -
Github上传本地代码
重点内容工作中经常会上传代码,github作为托管代码的工具其使用跟平时工作是一样的,以前很少用,现在有时间想把github利用起来,自己平时写的代码就也可以做到版本管控了,今天就把github代码托管步骤记录下来。1、github上创建Repository首先去github上创建自己的Repository,创建页面如下图所示:点击 new repository。没有github账户的要先注册一下。原创 2017-07-27 21:14:16 · 452 阅读 · 0 评论 -
windows配置安装adb的一些方法
adb是Android的一个很重要的调试工具,熟练掌握后可实现很多功能,比如有些手机的解锁、ROOT就会用到adb工具。可很多朋友都说不会安装,今天就从最开始的安装方法说起。adb工具其实不用安装,下载后解压就可使用,之所以有些朋友感觉没安装好,是因为没有掌握最开始的使用方法。adb工具解压后通常有如图的几个文件,以前的一些教程都让大家把这几个文件复制到C:\Windows\Syste...转载 2018-06-01 15:41:58 · 53628 阅读 · 4 评论 -
解决SDM660代码编译报错问题
今天在linux服务器 编译高通sdm660的代码时有如下的报错信息出现.Traceback (most recent call last): File "/home/yuewen/project/workspace/PL2O/PL2O_0312/LINUX/android/bootable/bootloader/edk2/BaseTools/BinWrappers/PosixLike...原创 2018-06-01 15:17:48 · 1962 阅读 · 0 评论 -
linux用户空间与内核空间通信——Netlink通信机制
一、什么是Netlink通信机制Netlink是linux提供的用于内核和用户态进程之间的通信方式。但是注意虽然Netlink主要用于用户空间和内核空间的通信,但是也能用于用户空间的两个进程通信。只是进程间通信有其他很多方式,一般不用Netlink。除非需要用到Netlink的广播特性时。那么Netlink有什么优势呢?一般来说用户空间和内核空间的通信方式有三种:/proc、i...转载 2018-07-09 17:59:10 · 381 阅读 · 0 评论 -
【Linux系统】mmap系统调用
一、mmap系统调用(功能)函数原型void* mmap ( void * addr , size_t len , int prot , int flags ,int fd , off_t offset )内存映射函数mmap, 负责把文件内容映射到进程的虚拟内存空间, 通过对这段内存的读取和修改,来实现对文件的读取和修改,而不需要再调用read,write等操作。参数: ...原创 2018-07-11 11:16:19 · 715 阅读 · 0 评论 -
Ubuntu下新建用户以及远程登录问题
1 添加新用户1.1 添加新用户sudo useradd go -d /home/go -m //第一个go,指用户名 //-d /home/go 指定用户登录系统时的主目录,宿主目录 /-m 如果/home/go路径不存在,自动创建 1.2 查看新建的用户cat /etc/passwd | grep go 1.3 给新用户设置密码sudo passw...转载 2018-07-05 09:07:32 · 2257 阅读 · 0 评论 -
基于Android系统的多点触摸屏(MultiTouchScreen)驱动
理论:输入子系统由来在Linux中, 应用层对于输入设备(鼠标、键盘、触摸屏等)的操作无非都是open、read、write、ioctl,然后调用驱动层的xxx_open、xxx_read、xxx_write、xxx_ioctl去操作具体的硬件输入设备。如果按照传统的思路,每个输入设备都按照这个套路写这些open、read等,是不是太过于累赘了。所以Linux就定义了一套标准,来标准化这些输入...转载 2018-10-24 15:30:30 · 1248 阅读 · 0 评论 -
linux下 tar解压 gz解压 bz2等各种解压文件使用方法
linux下 tar解压 gz解压 bz2等各种解压文件使用方法 .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ——————————————— .gz 解压1:gunzip FileName.gz 解压2:gzip -d FileN转载 2018-01-18 16:29:07 · 395 阅读 · 0 评论