Linux
文章平均质量分 67
古道异禀
他山之石可以攻玉
展开
-
Linux 源码编译详解
前言源码要运行,必须先转成二进制的机器码。这是编译器的任务。比如,下面这段源码(假定文件名叫做test.c)。#include<stdio.h>intmain(void){ fputs("Hello,world!\n",stdout); return0;}要先用编译器处理一下,才能运行。$gcctest.c$./a.outHello,world!对于复杂的项目,编译过程还必须分成三步。$./configure$make...转载 2021-02-05 14:35:51 · 3087 阅读 · 0 评论 -
Linux 学习(作者:Vamei 向大佬致敬)
走进Linux01.Linux的架构02.Linux文件管理03.Linux文件管理相关命令04.Linux文本流05.Linux进程基础06.Linux信号基础07.Linux进程关系08.Linux用户09.快速学习Bash深入Linux01.Linux开机启动02.Linux从程序到进程03.Linux进程间通信04.Linux并发与同步05.Linux的调度器06.Linux的内存管理07.Li...原创 2021-01-21 08:38:24 · 162 阅读 · 0 评论 -
Shell中的内建命令,函数,外部命令
Shell识别三种基本命令:内建命令、Shell函数以及外部命令:1)内建命令就是由Shell本身所执行的命令。一种是由于其必要性才内建的,例如cd用来改变目录。另一种内建命令的存在则是为了效率,其中最典型的就是test命令,编写脚本时经常会用到它。另外还有I/O命令,例如echo于printf.2)Shell函数是功能健全的一系列程序代码,以Shell语言写成,它们可以像命令那样引用。3)外部命令就是由Shell副本(新的进程)所执行的命令,基本的过程如下: a. 建立一个新的进程。此进程即为..转载 2021-01-08 09:30:21 · 220 阅读 · 0 评论 -
Linux交换空间(swap space)
每次安装Linux的时候,都会要求配置交换分区,那么这个分区是干嘛的呢?不设置这个分区有什么后果?如果一定要设置,设置多大比较合适?本篇将试图回答这些问题并尽量覆盖所有swap相关的知识。下面的所有例子都在ubuntu-server-x86_64 16.04下执行通过什么是swap?swap space是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。简单点说,当系统物理内存吃紧时,Linux会将内存中不常访问的数据保存到swap上,这样系统就有更多的物理内存为各个进.转载 2021-01-08 08:50:03 · 1783 阅读 · 0 评论 -
Linux 内核空间与用户空间
本文以 32 位系统为例介绍内核空间(kernel space)和用户空间(user space)1 . 内核空间和用户空间对 32 位操作系统而言,它的寻址空间(虚拟地址空间,或叫线性地址空间)为 4G(2的32次方)。也就是说一个进程的最大地址空间为 4G。操作系统的核心是内核(kernel),它独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证内核的安全,现在的操作系统一般都强制用户进程不能直接操作内核。具体的实现方式基本都是由操作系统将虚拟地址空间.转载 2020-12-03 13:57:47 · 199 阅读 · 0 评论 -
UART通讯协议详解(STM32F103)
https://baijiahao.baidu.com/s?id=1665274898041730396&wfr=spider&for=pchttp://www.elecfans.com/emb/jiekou/20171206595886_a.html转载 2020-08-31 14:02:34 · 511 阅读 · 0 评论 -
BSP与HAL关系
板级支持包(BSP)(Board Support Package)是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。硬件抽象层(HAL)是位于操作系统 内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。就我跟人理解而言BSP就是硬件驱动程序,它包含了操控硬件的必要转载 2020-08-31 13:21:57 · 1133 阅读 · 0 评论 -
Linux 文件夹解锁
sudo chown -R $USER 文件夹路径原创 2020-08-20 08:42:30 · 283 阅读 · 0 评论 -
Android编译系统参考手册
build/core/definitions.mk定义了公共的编译系统变量ALL_*,还定义了很多命令用来编译各种各样的目标,其它地方用来构建最终目标,build/core/main.mk,build/core/Makefile将用到这些变量ALL_DOCS所有文档的全路径ALL_DOCS的赋值在droiddoc.mk里:ALL_DOCS+=$(full_target)full_target:=$(calldoc-timestamp-for,$(LOCAL_MODULE...转载 2020-07-08 08:55:19 · 972 阅读 · 0 评论 -
Android与Linux区别
众所周知Google的Android系统跟Linux系统有着千丝万缕的关系,可究竟有什么关系呢?有人说Android是Android,Linux是Linux,两个只是kernel一样调度机制一样,其他没一毛钱关系,有人说Android说到底就是个Linux系统,可如果是这样,那么为什么Android系统能这么火,其他的Linux发行版(Ubuntu/Fedora/centos等)为什么在移动端火不...转载 2020-05-08 09:26:48 · 1794 阅读 · 0 评论 -
SELinux LOG分析及添加权限
adb修改selinuxEnforcing(表示已打开),Permissive(表示已关闭)getenforce; //获取当前selinux状态setenforce 1; //打开selinuxsetenforce 0; //关闭selinux从kernel中彻底关闭修改/linux/android/kernel/arch/arm64/configs/xxx_...转载 2020-04-16 16:17:02 · 1695 阅读 · 0 评论 -
SELinux权限问题解决方法
前言之前做系统应用操作设备节点的时候,出现SELinux权限的问题,即SELinux Policy Exception,查看log可以看到诸如此类的提示avc: denied { read } for name="u:object_r:serialno_prop:s0" dev="tmpfs" ino=11725 scontext=u:r:untrusted_app:s0:c512,c7...转载 2020-04-14 16:38:44 · 3062 阅读 · 0 评论 -
Linux中的SELinux到底是什么
一、前言安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管...转载 2020-03-20 16:28:58 · 239 阅读 · 0 评论 -
Linux中的loop设备
什么是loop设备? loop设备是一种伪设备,是使用文件来模拟块设备的一种技术,文件模拟成块设备后,就像一个磁盘或光盘一样使用。在使用之前,一个 loop 设备必须要和一个文件进行连接,这种结合方式给用户提供了一个替代块特殊文件的接口。因此,如果这个文件包含有一个完整的文件系统,那么这个文件就可以像一个磁盘设备一样被 mount 起来。之所以叫loop设备(回环),其实是从文件系...原创 2020-03-18 08:43:46 · 1625 阅读 · 0 评论 -
Ubuntu和Linux的区别
大家听别人介绍自己的Ubuntu时,会听到 “我的操作系统是Linux的” 。其实,这样介绍是缺乏严谨性滴,我们只要知道两点,基本上就搞清楚Linux和Ubuntu的关系: 1.严格来说,Linux并不是操作系统,而是一个操作系统的内核,严谨一些可以说:linux 一般指 GNU 套件加上 linux 内核 2.Ubuntu基于linux内核的桌面PC操作系统,...转载 2020-03-17 14:51:20 · 4429 阅读 · 0 评论 -
X86和ARM区别
X86和ARM都是指CPU的内核。X86类型的处理器是典型的CISC,指令集丰富,性能强。我们目前在桌面电脑,笔记本电脑中使用的Intel、AMD处理器,就是X86处理器。ARM是一家英国的处理器设计公司,其设计的处理器采用了ARM内核。ARM处理器是典型的RISC,指令集较X86要精简很多,串行性能要远远弱于X86。但ARM指令集少,电路规模小,功耗低,发热低,非常适合于嵌入式、便携式电...原创 2020-03-17 14:31:13 · 4299 阅读 · 0 评论 -
Linux中ramdisk,tmpfs,ramfs比较与说明
mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要访问这个文件夹,就相当于访问该分区了。目前mount已经不仅仅局限于Linux了。在Windows系统下的应用也越来越广了,多用在虚拟光驱类软件上,比如Clone CD,Daemon tool,WinMount等。RamDisk有三种实现方式:在Linux中可以将一部分内存m...转载 2020-03-16 13:46:25 · 691 阅读 · 0 评论 -
ramfs,tmpfs和ramdisk
一、Ramfs:顾名思义是内存文件系统,它处于虚拟文件系统(VFS)层,不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。因而,它无需格式化,可以创建多个,只要内存足够,在创建时可以指定其最大能使用的内存大小。如果你的Linux已经将Ramfs编译进内核,你就可以很容易地使用Ramfs了。创建一个目录,加载Ramfs到该目录即可。缺省情况下,Ramfs被限制最多可使用内存大小的...转载 2020-03-11 08:43:21 · 801 阅读 · 0 评论 -
USB两种挂载方式MTP与UMS
MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议。UMS(USB Mass Storage:大容量存储)是一个计算通信协议的设置 由USB实现者论坛定义,运行于串行总线。标准提供了各种存储设备的界面。UMS和MTP不同UMS模式下,PC操作存储设备的粒度是设备块(FAT block),而非文件系统。什么意思?此处举...转载 2020-03-05 18:49:50 · 4157 阅读 · 0 评论 -
Linux内核的整体架构
1. 前言本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。之后,会介绍Linux内核源文件的目录结构,并和各个软件子系统对应。注:本文和其它的“Linux内核分析”文章都基于如下约定:a) 内核版本为Linux 3.10.29(该版本是一个long term的版本,会被Linux社区持续维护至少2年...转载 2020-03-03 13:14:26 · 129 阅读 · 0 评论 -
Linux设备模型
1. 前言在“Linux内核的整体架构”中,蜗蜗有提到,由于Linux支持世界上几乎所有的、不同功能的硬件设备(这是Linux的优点),导致Linux内核中有一半的代码是设备驱动,而且随着硬件的快速升级换代,设备驱动的代码量也在快速增长。个人意见,这种现象打破了“简洁就是美”的理念,是丑陋的。它导致Linux内核看上去非常臃肿、杂乱、不易维护。但蜗蜗也知道,这不是Linux的错,Linux是一...转载 2020-03-03 13:08:27 · 117 阅读 · 0 评论