ICode9

精准搜索请尝试: 精确搜索
  • 操作系统期末复习——第四章 线程2022-06-09 21:07:29

    第四章 线程 1 线程概述 1.1为什么引入线程 有的进程可能需要同时满足许多功能,引入线程增加并发度 进程上下文切换系统开销大,线程降低系统开销 进程的创建相对困难,线程创建相对简单——只需要复制栈和寄存器的内容 1.2多线程进程 一个进程可以拥有多个线程,多个线程间共享以下内

  • Docker从入门到精通——内核兼容性2022-06-08 14:03:04

    内核兼容性   如果您的内核版本低于 3.10 版或缺少某些模块,则 Docker 无法正常运行。要检查内核兼容性,您可以下载并运行该check-config.sh 脚本。 curl https://raw.githubusercontent.com/docker/docker/master/contrib/check-config.sh > check-config.sh bash ./check-co

  • golang 并发编程2022-06-07 21:00:14

    一、goroutine GMP 模型: M:machine。一个M对应一个内核级线程,相当于内核级线程在go中的映射,执行代码的线程(CPU)P:processor 一个P代表执行go代码所需要的上下文环境,Processer 调度,上下文的切换,内存申请G:goroutine,是一个代码片段,相当于用户级线程,例程,goroutineMPG:1、每个M都会与一个

  • 零拷贝2022-06-07 01:03:57

    在业务场景中,我们的数据会存放在多种空间中,也需要在多种空间中传输来实现系统的功能以及保证系统的安全性. 数据存放的空间有:内核缓冲区,用户空间,磁盘,网络缓冲区. 其中网络缓冲区,磁盘的数据是有设备驱动来实现的.其中设备和内核缓冲区的访问可以使用cpu来发送指令也可以适用

  • Kernel pwn基础教程之double_fetch2022-06-06 18:32:57

    一、前言 ​ Double Fetch是一种条件竞争类型的漏洞,其主要形成的原因是由于用户态与内核态之间的数据在进行交互时存在时间差,我们在先前的学习中有了解到内核在从用户态中获取数据时会使用函数copy_from_user,而如果要拷贝的数据过于复杂的话则内核会选择引用其指针而将数据暂存于

  • Linux进程调度2022-06-06 17:04:25

    目录背景调度策略调度程序原则相关概念I/O消耗型和处理器消耗型的进程进程的优先级时间片进程抢占Linux调度算法可执行队列优先级数组重新计算时间片schedule()计算优先级和时间片睡眠和唤醒负载平衡程序抢占和上下文切换用户抢占内核抢占实时与调度相关的系统调用与调度策略和优

  • Linux进程管理2022-06-05 23:36:17

    目录背景进程描述符及任务结构分配进程描述符进程的描述符存放进程状态设置当前进程状态进程上下文进程家族树进程创建写时拷贝(Copy-on-write)fork()vfork()线程在Linux中的实现内核线程进程终结删除进程描述符孤儿进程进程小结 背景 进程主要分为两部分: 1)进程管理,见Linux进程管理

  • Linux内核机制—rwsem2022-06-05 04:01:45

    基于linux-5.10.66 一、相关结构 1. rwsem 表示结构体 struct rw_semaphore /* * 对于无竞争的 rwsem,count 和 owner 是任务在获取 rwsem 时需要触及的唯一字段。 * 因此,它们彼此相邻放置,以增加它们共享相同cacheline的机会。 * * 在竞争 rwsem 中,owner 可能是此结构中最常访

  • Linux Kill命令说明2022-06-05 02:31:07

    kill 从字面来看,就是用来杀死进程的命令,但事实上,这个或多或少带有一定的误导性。从本质上讲,kill 命令只是用来向进程发送一个信号,至于这个信号是什么,是用户指定的。也就是说,kill 命令的执行原理是这样的,kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系

  • 文件系统_debugfs2022-06-03 17:34:25

    概述 DebugFS,顾名思义,是一种用于内核调试的虚拟文件系统,内核开发者通过debugfs和用户空间交换数据。类似的虚拟文件系统还有procfs和sysfs等,这几种虚拟文件系统都并不实际存储在硬盘上,而是Linux内核运行起来后才建立起来。 通常情况下,最常用的内核调试手段是printk。但printk并不

  • linux系统进程查看管理工具2022-05-30 14:04:04

    init----sysv init;upstart;systemd,所以在不同的Linux发行版上看到的进程数量是不同的 1,pstree-----  display a tree of processes 2,  ps---------report a snapshot of the current processes                   查看运行此命令的那一时刻的进程              

  • 句柄,文件描述符的理解2022-05-30 00:33:54

    有些是转载的。讲的应该很清楚了 什么是句柄 句柄就是一个标识符,只要获得对象的句柄,我们就可以对对象进行任意的操作。 句柄不是指针,操作系统用句柄可以找到一块内存,这个句柄可能是标识符,map的key,也可能是指针,看操作系统怎么处理的了。fd算是在某种程度上替代句柄吧;Linux 有相应

  • 龙芯内核主控ssd2022-05-29 21:32:00

    内容在贴吧发过,内容错误,大概搬一些内容吧。 https://tieba.baidu.com/p/7831360122?pid=144076710157&cid=144079733702#144079733702 国科微 310c-y    小黄鱼无意找到,放硬盘盒当大号U盘。毕竟只是ngff 的sata协议不是nvme m2。   龙芯内核主控 gk2302 v100     紫光4g缓

  • Linux内核_下载和编译2022-05-29 09:35:19

    概述 该文章主要目的是为了学习linux内核代码,非替换系统内核 内核下载 wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.9.tar.xz 编译 解压 tar -xf linux-5.9.tar.xz 编译环境 sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils

  • Ubuntu14.04系统升级内核版本并且增加系统调用2022-05-28 20:31:16

    一、升级内核版本 1、下载linux源码 在https://www.kernel.org/上下载最新内核源码 2、解压 sudo tar -xvf linux-4.19.245.tar.xz 3、配置新内核的.config cp  /usr/src/linux-headers-3.13.0-32-generic  linux-4.19.245 4、安装一些必要的包openssl、之类的,缺什么补什么,每个

  • 迅为iTOP-RK3568开发板编写LED驱动2022-05-27 10:04:33

    我们在 ubuntu 的 home/nfs/07 目录下新建 led.c 文件,可以在上次实验的驱动代码基础上进行修改,以 下代码为完整的驱动代码。我们已经学会了杂项设备驱动编写的基本流程,其实需求已经完成了一半了,我们已经注册了杂项设 备,并生成了设备节点。接下来我们要完成控制 BEEP 的逻辑操作,那

  • 微信小程序的内核2022-05-26 19:34:11

    小程序的运行环境 在 iOS 上,小程序的 javascript 代码是运行在 JavaScriptCore 中 在 Android 上,小程序的 javascript 代码是通过 X5 内核来解析 在 开发工具上, 小程序的 javascript 代码是运行在 nwjs(chrome内核) 中 JavaScriptCore 你知道吗,JavaScriptCores是开源的,下载

  • eBPF学习笔记(一)概述2022-05-26 15:31:39

    eBPF技术简述       eBPF 是起源于内核的革命性技术,从 2011 年开发至今,eBPF 社区依然非常活跃 。eBPF 可以通过热加载的sandbox程序到内核中而不需要insmod module的方式,避免内核模块的方式可能会引入宕机风险,并具备堪比原生代码的执行效率。eBPF程序不会引起系统宕机,Just-In-

  • AlmaLinux、CentOS、Rocky Linux 8 更新到 Linux 内核2022-05-26 11:04:38

    请访问原文链接:AlmaLinux、CentOS、Rocky Linux 8 如何更新到 Linux 内核 5.15,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org 以前使用 ELRopo 更新 CentOS 内核比较常见,AlmaLinux 和 Rocky Linux 如何更新内核呢,方法是一样的。 请注意:Linux Kernel 5.15 当前在

  • Linux中级——“驱动” 控制硬件必须学会的底层知识2022-05-25 22:31:48

    驱动认知 1. 什么是驱动 驱动就是对底层硬件设备的操作进行封装,并向上层提供函数接口。 设备分类: linux系统将设备分为3类:字符设备、块设备、网络设备。 字符设备:指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后顺序。字符设备是面向流

  • (十八)Linux启动流程2022-05-25 17:05:11

    1.系统启动 (1)开启开机按钮,系统自动加载主板上的bios(基本输入输出系统)进行自检。 检测系统硬件链接,显卡,内存,磁盘。"检测目的是将设备信息提供给操作系统"。 寻找启动磁盘,(光盘启动)(硬盘启动)(软驱启动)采取优先级最高的启动向进行启动。 找到启动磁盘后,会找第一个启动扇区“主引导记录

  • Ubuntu 20.04 升级最新内核、安装指定内核版本2022-05-24 19:33:03

    Ubuntu 20.04 升级最新内核、安装指定内核版本 https://cdmana.com/2021/12/202112290531351544.html 查看目前版本 uname -rs     #查看当前内核版本uname -r#查看软件库中可下载的内核sudo apt list | grep linux-generic*     #下载最新的内核(不用和我一样,但我的这个版本

  • 北航操作系统课程lab4实验报告2022-05-24 17:00:42

    OS lab4实验报告 实验思考题 Thinking 4.1 思考并回答下面的问题: 内核在保存现场的时候是如何避免破坏通用寄存器的? 系统陷入内核调用后可以直接从当时的$a0-$a3参数寄存器中得到用户调用msyscall留下的信息吗? 我们是怎么做到让sys开头的函数“认为”我们提供了和用户调用ms

  • 嵌入式Linux环境下的内核探测工具【转】2022-05-24 16:33:51

    转自:https://codeleading.com/article/50686270686/ 简单Linux系统环境下的内核探测 在笔者之前的文章中提到,基于内核eBPF探针的常用工具主要bpftrace、bcc,二者复杂的依赖库使得其在嵌入式Linux系统环境下常常是不可用的。截止目前,一些嵌入式SDK(例如buildroot及openwrt等)未提供

  • read/fread write/fwrite 的实现原理2022-05-23 16:33:37

    fread就是通过read来实现的,fread是C语言的库,而read是系统调用。 差别在read每次读的数据是调用者要求的大小,比如调用者要求读取10个字节数据,read就会从内核缓冲区(操作系统开辟的一段空间用来存储磁盘上的数据)读10个字节数据到数组中,所以每次调用read会涉及到用户态与內核态之间的

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有