Linux知识点整理(持续更新)

1:proc被称为虚拟文件系统,它是一个控制中心,可以通过更改其中某些文件改变内核运行状态,它也是内核提空给我们的查询中心,用户可以通过它查看系统硬件及当前运行的进程信息;

2:linux内核的作用:1、负责进程的创建和销毁,完成进程间的通信,以及进程的输入和输出;2、进行内存管理;3、进行文件系统管理;4、负责设备控制,内核中包含访问平台上硬件设备的驱动代码;5、负责网络功能。

3: ctrl+shift+t---打开终端,

pwd-显示当目录

cat nl vim均可以查看文件

su -切换root

clear清屏-但仍可以查看之前的,reset-清屏且清除历史

find 路径 -name 文件名  greb -n 字符串 文件名

4: tar.gz  格式解压为 tar -zxvf   xx.tar.gz

tar.bz2  格式解压为  tar -jxvf  xx.tar.bz2

5:DTS--在内核编译的过程中,

被编译为.dtb 的二进制文件。在开机启动阶段,dtb 会被 bootloader(如 U-Boot)加载到 RAM 的某个地址空间,并且将该地址作为参数传递给 Kernel space。内核解析整个 dtb 文件,提炼每个设备信息以初始化。

6:buildroot可以用来定制文件系统,主要路径是output/***********/target

7:/etc/init.d/rcS用于存放要启动的脚本

8:vmalloc kmalloc malloc

(1)vmalloc()分配的内存虚拟地址是连续的,而物理地址无须连续。而kmalloc()确保页在物理地址上是连续的,自然虚拟地址也是连续的。硬件设备用的的任何内存区都必须是物理上连续的块,而不仅仅是虚拟地址连续上的块;

(2)vmalloc()相比较于kmalloc()效率不高,因为获得的页必须转换为虚拟地址空间上连续的页,必须专门建立页表项,可能会导致translation lookaside buffer 抖动,所以一般只有需要分配大块内存时才是用vmalloc;

(3)vmalloc()仅在不得已时才使用,其典型的就是为了申请大块内存。该函数可能睡眠,因此不能从终端上下文中调用,也不能从其他不允许阻塞的情况下进行调用;

(4)kmallloc(kernel malloc),内核级的程序运行需要注重效率,因此需要物理地址连续,但分配的内存不会很大一般最大128KB;

9:内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。

那么uImage又是什么的?它是uboot专用的映像文件,它是在zImage之前加上一个长度为64字节的“头”,说明这个内核的版本、加载位置、生成时间、大小等信息;其0x40之后与zImage没区别。

 10:共享内存

1:共享内存就是允许多个不同的进程访问同一个逻辑内存,由一个进程创建,但可被多个进程使用;

2:如果某段进程对你共享内存进行改动,那么会立即影响到与该内存块相关的其他进程;

3:每一个进程都有属于自己的进程控制块以及地址空间,也有与之对应的页表,负责将虚拟空间与物理地址相映射;

4:管道和消息队列

 

对于共享内存来说,AB两个进程块均通过指针来访问数据,减少了拷贝的次数,提高效率

5:也没有传输的概念,相应的效率也提高了;

6:

7:函数

shmget:得到一个共享内存标识符或创建一个共享内存对象,返回共享内存标识符;

shmat:把共享内存区对象映射到调用进程的地址空间,返回附加好的共享内存的地址;

shmdt:断开共享内存连接,成功返回0;

shmctl:共享内存管理,成功返回0;

11:信号量

1:操作系统用来解决并发中互斥和同步问题的一种方法;

2:信号量就是一个计数器,准确的说,是一个具有原子性的计数器。当使用资源时,计数器减一,表示外界的可用资源减少一个;当释放资源时,计数器加一,表示使用完后将资源还回去,使得外界可用资源增加一个。

3:

12:PV操作是一种实现进程互斥与同步的有效方法。PV操作与信号量的处理相关。P(passeren)通过,理解为申请资源,V(vrijgeven)释放,理解为释放资源。

12:ioctl函数式设备驱动程序中对设备的io通道进行管理的函数,即对设备进行控制;

13:递归更改文件及子文件夹的下的权限chmod -R 777 ./

14:grep -r "MIPI error: phy:"

Makefile--------------------------------------------------------------------------------------------------------

1:Makefile 文件描述了整个工程的编译、连接等规则;

2:编译生成.o,链接生成可执行文件

3:静态库:又称为文档文件(Archive File),它是多个.o 文件的集合,为.a文件;

4:每一个命令行必须以Tab作为开始;

5:可以将一个较长行使用反斜线(\)来分解为多行,caution \后不能有空格;

6:clean仅仅是一个动作标识;

7:make命令执行的是第一个规则;

8:单目标,多依赖。就是说尽量要做到一个规则中只存在一个目标文件,可有多个依赖文件。

  尽量避免使用多目标,单依赖的方式。

9:在一个完整的 Makefile 中,包含了 5 个东西:显式规则、隐含规则、变量定义、

  指示符和注释

10:隐含规则:根据目标文件自动推导出来的规则;

11:只有命令行的双冒号去更新文件称为无条件执行;

12:GNU-make分为两个阶段:

  1;读取所有的makefile文件,内建所有的变量、明确规则和隐含规则,

  并建立所有目标和依赖之间的依赖关系结构链表。

  2:根据第一阶段已经建立的依赖关系结构链表决定哪些目标需要更新,

  并使用对应的规则来重建这些目标

13:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. Linux 是一种开源的操作系统,最初由芬兰的林纳斯·托瓦兹(Linus Torvalds)创建并发布。 2. Linux 分为内核(kernel)和发行版(distribution)。内核是操作系统的核心组件,而发行版则是将内核与其他软件包整合在一起并提供给用户使用的版本。 3. 常见的 Linux 发行版有 Ubuntu、Debian、Fedora、CentOS、SUSE 等。 4. Linux文件系统采用层次式结构,以根目录(/)作为起始,其下有各种目录,例如 /bin(存放可执行二进制文件)、/etc(存放配置文件)、/home(存放用户文件夹)等。 5. Linux 支持多用户和多任务的操作。每个用户都有自己的用户名和密码,并且可以在同一时间进行多个任务。 6. Linux 使用 shell 来与用户进行交互,常见的 shell 有 Bash、Zsh 等。通过 shell,用户可以执行命令、管理文件和目录、配置系统等。 7. Linux 支持各种网络协议,可以作为服务器来提供各种服务,例如 Web 服务器(如 Apache)、邮件服务器(如 Postfix)、数据库服务器(如 MySQL)等。 8. Linux 提供了丰富的命令行工具和脚本语言,可以进行自动化任务、批量处理等操作。 9. Linux 提供了强大的安全性和权限控制机制,可以对文件、目录和用户进行权限管理,以保护系统的安全。 10. Linux 社区庞大活跃,有大量的开源软件和工具可供使用和学习,并且有丰富的文档和在线资源可供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

warren@伟_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值