binder(一)Linux必备知识篇

本文介绍了Linux操作系统的基础知识,包括进程、进程隔离和内核空间的共享机制,阐述了设备文件、虚拟设备和设备驱动的工作原理。特别讨论了Android中的Binder作为虚拟设备的角色,及其在Linux内核中的动态加载方式。
摘要由CSDN通过智能技术生成

对linux操作系统中某些概念做简单预习,旨在为后续Android学习提供前提铺垫。例如学习binder、锁机制等等。

进程

Linux操作系统将运行中的程序成为进程。而Linux内核控制这Linux操作系统如何管理运行在系统上的所有进程。

内核创建了第一个进程(init进程)来启动系统上所有其他进程。 当内核启动时,他会将init进程加载到虚拟内存中。内核在启动任何进程时都会在虚拟内存中为该进程分配一块专有区域用于存储该进程用到的数据和代码。

进程隔离

  • Linux中为每一个进程分配内存时都将内存划分为2部分:用户空间内核空间
  • Linux中一个进程在运行时cpu的运行状态是用特权等级来区分,以arm64为例分为4个等级,从低到高分别是EL0~EL3。我们常接触的等级是EL0和EL1,EL0为用户态,EL1为内核态。当cpu处于用户态时不能访问内核空间的数据(除非通过系统调用将当前cpu状态转入内核态),但是反之如果cpu处于内核态时可以访问用户空间也可以访问内核空间。
  • Linux中每个进程之间是相互隔离的,进程之间不能直接进行通信,这样保证了进程的安全性。
  • 2个用户进程想要相互通信必须借助内核空间来完成,大概原理就是在内核空间中开辟出一块内存缓存区域,各个进程通过操作这块区域达到通信的目的。这就涉及到了用户进程想要访问内核空间的情况,此时只能通过系统调用(例如copy_from_user就是一个系统调用) 使cpu从用户态转入内核态,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值