首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Linux 内核】Linux 内核源码目录说明 ① ( arch 目录 | block 目录 | certs 目录 | crypto 目录 | Documentation 目录 )

文章目录 一、arch 目录 二、block 目录 三、certs 目录 四、crypto 目录 五、Documentation 目录 在上一篇博客 【Linux 内核】Linux 内核源码结构 ( 下载...Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 ) , 使用了 Visual Studio Code 查看 Linux 内核源码 , 本篇博客开始分析 Linux 内核源码结构...; 一、arch 目录 ---- arch 目录是 针对 不同 CPU 体系架构平台 代码 , 将 与 平台 相关代码 放在该目录 , 如某些代码只针对 x86 架构平台 , 那么放在 arch..., 其中存储了 块设备驱动 相关代码 ; 三、certs 目录 ---- certs 目录存储了 认证 和 签名 相关代码 ; 四、crypto 目录 ---- crypto 目录存储了 内核中常用...加密 , 压缩 等算法 相关代码 ; 五、Documentation 目录 ---- Documentation 目录存储了 内核中常用 协议规范 , 功能模块 相关代码 ;

12.1K30

美轮美奂Arch, 详解Arch虚拟机安装

lsblk 格式化并挂载硬盘 更改镜像源, 正式安装Arch vi /etc/pacman.d/mirrorlist # 添加网易和阿里镜像源 Server = http://mirrors.../mnt >> /mnt/etc/fstab 文件系统信息 配置Arch 进入arch控制台 arch-chroot /mnt /bin/bash 切换控制台后, 仔细看,会有小变化...> /etc/hostname 把主机名设置到/etc/hosts 设置主机名到文件 为root用户设置密码 passwd 退出已经暂时配置好系统 exit 解除u盘挂载, 重启虚拟机...umount -R /mnt reboot 为arch安装图形化界面 使用root登录arch 登录arch 安装xorg pacman -S xorg pacman -S xterm...是自由度极高Linux发行版 ,版本更新极快, 好玩地方特别多, 坑也很多,希望新手玩家谨慎入坑… (2018年4月29日第一次更新, 未完待续,欢迎收藏...)

2.3K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    archbumblebee安装

    archbumblebee安装 bumblebee有什么用 bumblebee是用来进行双显卡切换工具,专用于具有NVDIA独立显卡以及CPU核显双显卡方案笔记本来说可以有效节约电源 有效地进行双显卡快速切换使用...安装bumblebee archlinux sudo pacman -S bumblebee mesa lib32-virtualgl lib32-nvidia-utils manjaro 使用自带硬件管理工具...pci video-hybrid-intel-nvidia-bumblebee 允许服务 sudo systemctl enable bumblebeed 添加用户组并重启 将$USER替换为自己用户名...设置NVIDIA optirun -b none nvidia-settings -c :8 wine支持 optirun wine application.exe steam支持 在steam游戏启动选项添加如下...optirun %command% 在某些情况下,这些都不起作用(例如在Team Fortress 2),所以可以使用: LD_PRELOAD="libpthread.so.0 libGL.so.1"

    1.4K40

    在计算机安装Arch Linux

    安装准备 2G以上空闲U盘 最新ArchLinux安装镜像 启动盘制作工具,推荐rufus 关闭BIOS安全启动选项 有网并且网络质量很好 然后制作一个Arch启动盘。...制作好启动盘之后,将其插入电脑之中,重启进入BIOS并设置U盘为第一启动顺序,然后然后再次重启,就可以进入到Arch安装环境了。记着关闭BIOS安全启动选项,否则无法安装。...另外Arch Linux在安装过程需要全程联网下载最新包。因此必须在有网环境下才能安装。 安装过程 确定UEFI启动 我选择是UEFI启动方案。...但是如果以后更改了内核配置的话,可能就需要重新生成一下ramdisk环境了。...这一步会探测系统上已经安装系统并写入到配置文件。但是由于在安装介质环境,此时Windows系统可能会探测不到。

    4.2K10

    Windows内核内存管理

    内存管理要点 内核内存是在虚拟地址空间高2GB位置,且由所有进程所共享,进程进行切换时改变只是进程用户分区内存 驱动程序就像一个特殊DLL,这个DLL被加载到内核地址空间中,DriverEntry...和AddDevice例程在系统system进程运行,派遣函数会运行在应用程序进程上下文中所能访问地址空间是这个进程虚拟地址空间利用_EPROCESS结构可以查看该进程相关信息 当程序中断级别在...,只在debug版本中生效,用于判断当前中断请求级别,当级别高于DISPATCH_LEVEL(包含这个级别)时会产生一个断言 内核堆申请函数 PVOID ExAllocatePool(..., IN TYPE Type, IN PCHAR Field ); 这个宏返回自定义结构体首地址,传入是第一个参数是结构体某个成员地址,第二个参数是结构体名,第三个参数是我们传入第一个指针类型在结构体对应成员变量值...在内核,对于内存读写要相当谨慎,稍不注意就可能产生一个新漏洞或者造成系统蓝屏崩溃,有时在读写内存前需要判断该内存是否合法可供读写,DDK提供了两个函数来判断内存是否可读可写 VOID ProbeForRead

    1.4K20

    Arch Linux正确使用方法

    Arch Wiki 提供了一条龙服务,刚安装完系统 Arch 是不带桌面的,但是 Arch Wiki 提供了详细桌面配置过程,以及输入法配置过程。...我推荐 Arch 其实是把自己置于一个相对窘迫境地(但是其实笔者不觉得这是困境,我当时对 Arch 是一见钟情,怀着极大兴趣把 Arch 收下了),只有这样才会激活你动力,战胜它,你就赢了自己...最后祝各位能在接下来学习之路,奋勇向前。 以上是正文部分,下面是我在Arch使用过程遇到过一些问题,这些问题有的已经解决,有的仍是悬案。...其中ifconfig、route在net-tools包,nslookup、dig在dnsutils包,ftp、telnet等在inetutils包,ip命令在iproute2包。...~/.fonts目录然后重启WPS即可。

    5.6K70

    Linux内核递归漏洞利用

    6月1号,我提交了一个linux内核任意递归漏洞。如果安装Ubuntu系统时选择了home目录加密的话,该漏洞即可由本地用户触发。...接下来导致ecryptfs读取 /proc/$A/environ ,最后导致进程A进程错误。如此循环往复,最终溢出内核栈,使内核崩溃。内核栈如下: [...]...这些空洞足够用来存放从SRACK_END_MAIC到flags所有数据。这一点可以通过一个安全递归和一个内核调试模块来实现,这个内核调试模块将栈所有空洞标绿便于观察: ?...这个函数可以使用管道向任意内核地址写数据,因为 copy_to_user()地址检查已经失效。...在我写漏洞报告,我有提到给内核增加内存保护页,移除栈底部 thread_info结构体,这样缓解这类漏洞利用,有其他操作系统就是这么干

    2.1K60

    Arch Linux推荐、介绍与理由

    Arch 安装脚本 2012 年 7 月 Arch Linux 安装介质 弃用了 基于菜单 Arch 安装框架(AIF),改为使用Arch 安装脚本 (arch-install-scripts)。...Systemd 时代 2012 到 2013 年间 Arch 用 Systemd 替换了 System V init :[1][2][3][4] 抛弃 i686 支持 鉴于在开发者和社区 i686 架构使用程度逐渐式微...用法(Arch Wiki) 软件仓库 现时存在以下官方仓库: core,包含启动系统所必需、链接互联网时可能需要、编译软件包时需要、检查、修复文件系统工具、在安装过程可能用到软件包和它们依赖...准备软件包 尚处于开发阶段 GNOME 和 KDE 有时会被放在以下专门测试仓库: gnome-unstable,包含不稳定版 GNOME 软件包 kde-unstable,包含不稳定版...KDE 软件包 staging、multilib-staging和community-staging被用来进行一些软件包重新构建,以避免损坏testing软件包。

    1.9K20

    【Binder 机制】分析 Android 内核源码 Binder 驱动源码 binder.c ( googlesource Android 内核源码 | 内核源码下载 )

    文章目录 一、查看 Android 内核源码 Binder 驱动源码 binder.c 二、分析 Binder 驱动源码 binder.c 1、binder_ioctl 2、binder_ioctl_set_ctx_mgr...三、博客资源 一、查看 Android 内核源码 Binder 驱动源码 binder.c ---- Android 内核源码地址 : https://android.googlesource.com...service_manager.c main 函数 , 调用了 binder_become_context_manager(bs) , 将自己注册成 Binder 进程上下文 , 其中调用...ioctl 方法是内核方法 , 这是 IO Control 简称 ; int binder_become_context_manager(struct binder_state *bs) {...return ioctl(bs->fd, BINDER_SET_CONTEXT_MGR, 0); } 上面调用 ioctl 方法 , 就是下面的内核 Binder 驱动源码 binder.c

    92920

    浅析linux内核idr机制

    这个机制最早是在2003年2月加入内核,当时是作为POSIX定时器一个补丁。现在,在内核很多地方都可以找到idr身影。 idr机制适用在那些需要把某个整数和特定指针关联在一起地方。...举个例子,在I2C总线,每个设备都有自己地址,要想在总线上找到特定设备,就必须要先发送该设备地址。...如果我们PC是一个I2C总线上主节点,那么要访问总线上其他设备,首先要知道他们ID号,同时要在pc驱动程序建立一个用于描述该设备结构体。...最简单方法当然是通过数组进行索引,但如果ID号范围很大(比如32位ID号),则用数组索引显然不可能;第二种方法是用链表,但如果网络实际存在设备较多,则链表查询效率会很低。...指针 id: 由内核自动分配ID号 ptr: 和ID号相关联指针 start_id: 起始ID号。

    1.9K20

    实战最精简 linux -- arch linux 安装

    正是因为 arch 高度定制与简洁,加上他滚动升级机制以及庞大社区 AUR,让他成为了越来越火热 linux 发行版,本文,我们就来通过安装 arch 讲解一下 linux 一些基本命令行配置方法...设置字体 也许你和我一样,发现显示器上显示字体太小了,你可以通过 setfont 命令更换另一个字体来解决,在 arch 启动盘,字体都位于 /usr/share/kbd/consolefonts...配置 pacman 更改软件源 pacman 配置文件位于 /etc/pacman.conf ,首先你可以搜索 Color 并取消注释,从而让软件安装过程打印信息可以高亮显示。...安装基础组件 执行 pacstrap 指令就可以安装已打包好软件了: pacstrap /mnt base linux linux-firmware 这个指令安装了内核基础依赖、linux 内核,以及硬件驱动...执行 chroot 指令即可: arch-chroot /mnt 此时你就已经进入到系统了,然而,你马上会发现,安装好 arch 系统里什么都没有,这其实正是 arch linux 一个吸引人地方,

    7.3K10

    驱动开发:内核自旋锁结构

    提到自旋锁那就必须要说链表,在上一篇《驱动开发:内核链表与结构体》文章简单实用链表结构来存储进程信息列表,相信读者应该已经理解了内核链表基本使用,本篇文章将讲解自旋锁简单应用,自旋锁是为了解决内核链表读写时存在线程同步问题...,解决多线程同步问题必须要用锁,通常使用自旋锁,自旋锁是内核中提供一种高IRQL锁,用同步以及独占方式访问某个资源。...,解决多线程同步问题必须要用锁,通常使用自旋锁,自旋锁是内核中提供一种高IRQL锁,用同步以及独占方式访问某个资源。...NonPagedPoolExecute, sizeof(pMyStruct));// 赋值testA->x = 100;testA->y = 200;testB->x = 1000;testB->y = 2000;// 向全局链表插入数据...my_list_header, (PLIST_ENTRY)&testB->lpListEntry, &my_list_lock);}function_ins();// 移除节点A并放入到remove_entryPLIST_ENTRY

    29620

    雕刻在 Linux 内核 Linus 故事

    但是如果真是遇到一个“特别显赫”鸡蛋,很多人还是想看看能生出这颗神蛋母鸡,或者想听听这只母鸡故事。 其实,在Linux内核代码里,就隐藏着关于Linus大神一个美妙故事。...$ sudo gdb --core /proc/kcore 然后在GDB执行如下命令加载内核符号信息: (gdb) file /home/ge/work/linux-3.12.2/vmlinux...这样说有点不精确,精确说法是从Linux内核2.1.17版本开始,第二个参数也可以是0x5121996。查阅kernel.org上内核发布历史,2.1.17应该发布于1996年12月22日。...在内核代码,上述规则是在reboot.c强制,代码如下: /* For safety, we require "magic" arguments. */ if (magic1 !...000> .formats 0n85072278 Evaluate expression: Hex: 00000000`05121996 如此看来,Linus大神不仅把这些常量写在Linux内核代码

    78220

    聊聊内核关键概念之上篇

    虚拟地址空间为进程提供了假象(虚拟内存),每个进程以为自己在执行过程独占了整个内存,虚拟内存是由内核内存管理和CPUMMU协调实现。...,保存旧进程状态(拷贝当前进程涉及到寄存器状态到PCB),加载已经保存进程状态新进程(从进程PCB拷贝到寄存器),上下文切换时间时依赖于硬件。...进程描述符 进程从创建到退出过程都是有内核进程管理子系统进行管理。一个进程在内存还被分配一个称为描述符数据结构,内核用进程描述符来识别、管理和调度进程。...一个进程从产生到退出一直出于不同状态,这个也叫做进程状态,它们定义了进程当前不同状态。...,字段每一位对应于一个进程生命周期中各个字段。

    28510

    驱动开发:内核自旋锁结构

    提到自旋锁那就必须要说链表,在上一篇《驱动开发:内核链表与结构体》文章简单实用链表结构来存储进程信息列表,相信读者应该已经理解了内核链表基本使用,本篇文章将讲解自旋锁简单应用,自旋锁是为了解决内核链表读写时存在线程同步问题...,解决多线程同步问题必须要用锁,通常使用自旋锁,自旋锁是内核中提供一种高IRQL锁,用同步以及独占方式访问某个资源。...,解决多线程同步问题必须要用锁,通常使用自旋锁,自旋锁是内核中提供一种高IRQL锁,用同步以及独占方式访问某个资源。...pMyStruct)); // 赋值 testA->x = 100; testA->y = 200; testB->x = 1000; testB->y = 2000; // 向全局链表插入数据...my_list_header, (PLIST_ENTRY)&testB->lpListEntry, &my_list_lock); } function_ins(); // 移除节点A并放入到remove_entry

    34110
    领券