首页
学习
活动
专区
工具
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.3K30

美轮美奂的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
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    arch系的bumblebee安装

    arch系的bumblebee安装 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 中的

    1K20

    浅析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.5K10

    雕刻在NT内核中的LINUS故事

    我们曾经介绍过Linux内核中的SYSC_reboot函数,它是reboot API对应的系统服务。更有趣的是,这个函数里面雕刻着Linus大神的生日和三个爱女的生日。...在LxCore中,也可以看到这一组神秘的数字,反汇编名为LxpSyscall_REBOOT的函数,便可以看到。 ?...截图中从#05栈帧起的下半部分对应的应用程序的栈,目前WinDBG还不能回溯出其中的函数名字,但是已经在计划内了,在LXCORE模块块中已经准备了一个名为PicoWalkUserStack的函数。...说到这里,大家应该坚信,WSL中并没有使用真正的Linux内核,而是克隆了一份。...于是问题来了,严格说来,狭义的Linux就是指Linux内核,Linux上的各种应用很多都来自GNU或者其它源头。

    92920

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

    提到自旋锁那就必须要说链表,在上一篇《驱动开发:内核中的链表与结构体》文章中简单实用链表结构来存储进程信息列表,相信读者应该已经理解了内核链表的基本使用,本篇文章将讲解自旋锁的简单应用,自旋锁是为了解决内核链表读写时存在线程同步问题...,解决多线程同步问题必须要用锁,通常使用自旋锁,自旋锁是内核中提供的一种高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中

    34310

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

    提到自旋锁那就必须要说链表,在上一篇《驱动开发:内核中的链表与结构体》文章中简单实用链表结构来存储进程信息列表,相信读者应该已经理解了内核链表的基本使用,本篇文章将讲解自旋锁的简单应用,自旋锁是为了解决内核链表读写时存在线程同步问题...,解决多线程同步问题必须要用锁,通常使用自旋锁,自旋锁是内核中提供的一种高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_entry中PLIST_ENTRY

    30020

    雕刻在 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内核代码中

    78820
    领券