Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何检测Linux内核中的安全增强选项

如何检测Linux内核中的安全增强选项

作者头像
FB客服
发布于 2021-07-30 08:44:13
发布于 2021-07-30 08:44:13
2.4K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

关于kconfig-hardened-check

kconfig-hardened-check是一款功能强大的安全检测工具,可以帮助广大研究人员检测Linux内核中的安全增强选项。

Linux内核中提供了很多安全增强选项,其中有很多选项在主要的Linux发行版系统中都默认不会开启。因此,我们如果想要让自己的系统变得更加安全的话,我们则需要手动开启这些安全增强选项。

但是,谁都不想手动去检查这些配置选项,因此kconfig-hardened-check便应运而生,它可以自动帮我们检查自己Linux系统内核中的相关安全增强选项。在检查的过程中,kconfig-hardened-check.py 将根据下列参考配置来进行检查:

1、KSPP推荐设置;

2、CLIP操作系统内核配置;

3、最新公开的grsecurity修复方案;

4、SECURITY_LOCKDOWN_LSM修复方案;

5、Linux内核维护团队的直接反馈;

除此之外,我们还创建了一份Linux内核防御图,它是安全强化特性和相应漏洞类或攻击技术之间关系的图形表示。

支持的操作系统架构

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
X86_64
X86_32
ARM64
ARM

工具安装

由于本项目基于Python开发,因此我们首先需要在本地系统中安装并配置好Python环境。接下来,我们就可以直接使用下列pip命令完成工具包的下载和安装了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install git+https://github.com/a13xp0p0v/kconfig-hardened-check

或者,我们也可以使用下列命令将该项目源码克隆至本地之后,运行安装脚本:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/a13xp0p0v/kconfig-hardened-check.git

./bin/kconfig-hardened-check

工具使用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
usage: kconfig-hardened-check [-h] [--version] [-p {X86_64,X86_32,ARM64,ARM}]

                              [-c CONFIG]

                              [-m {verbose,json,show_ok,show_fail}]



A tool for checking the security hardening options of the Linux kernel



optional arguments:

  -h, --help            show this help message and exit

  --version             show program's version number and exit

  -p {X86_64,X86_32,ARM64,ARM}, --print {X86_64,X86_32,ARM64,ARM}

                        print security hardening preferences for the selected architecture

  -c CONFIG, --config CONFIG

                        check the kernel config file against these preferences

  -m {verbose,json,show_ok,show_fail}, --mode {verbose,json,show_ok,show_fail}

                        choose the report mode

针对Ubuntu 20.04 LTS (Focal Fossa)内核配置的输出样例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ ./bin/kconfig-hardened-check -c kconfig_hardened_check/config_files/distros/ubuntu-focal.config

[+] Config file to check: kconfig_hardened_check/config_files/distros/ubuntu-focal.config

[+] Detected architecture: X86_64

[+] Detected kernel version: 5.4

=========================================================================================================================

                 option name                 | desired val | decision |       reason       |   check result

=========================================================================================================================

CONFIG_BUG                                   |      y      |defconfig |  self_protection   |   OK

CONFIG_SLUB_DEBUG                            |      y      |defconfig |  self_protection   |   OK

CONFIG_GCC_PLUGINS                           |      y      |defconfig |  self_protection   |   FAIL: not found

CONFIG_STACKPROTECTOR_STRONG                 |      y      |defconfig |  self_protection   |   OK

CONFIG_STRICT_KERNEL_RWX                     |      y      |defconfig |  self_protection   |   OK

CONFIG_STRICT_MODULE_RWX                     |      y      |defconfig |  self_protection   |   OK

CONFIG_REFCOUNT_FULL                         |      y      |defconfig |  self_protection   |   FAIL: "is not set"

CONFIG_IOMMU_SUPPORT                         |      y      |defconfig |  self_protection   |   OK

CONFIG_RANDOMIZE_BASE                        |      y      |defconfig |  self_protection   |   OK

CONFIG_THREAD_INFO_IN_TASK                   |      y      |defconfig |  self_protection   |   OK

CONFIG_VMAP_STACK                            |      y      |defconfig |  self_protection   |   OK

CONFIG_MICROCODE                             |      y      |defconfig |  self_protection   |   OK

CONFIG_RETPOLINE                             |      y      |defconfig |  self_protection   |   OK

CONFIG_X86_SMAP                              |      y      |defconfig |  self_protection   |   OK

CONFIG_SYN_COOKIES                           |      y      |defconfig |  self_protection   |   OK

CONFIG_X86_UMIP                              |      y      |defconfig |  self_protection   |   OK: CONFIG_X86_INTEL_UMIP "y"

CONFIG_PAGE_TABLE_ISOLATION                  |      y      |defconfig |  self_protection   |   OK

CONFIG_RANDOMIZE_MEMORY                      |      y      |defconfig |  self_protection   |   OK

CONFIG_INTEL_IOMMU                           |      y      |defconfig |  self_protection   |   OK

CONFIG_AMD_IOMMU                             |      y      |defconfig |  self_protection   |   OK

CONFIG_SECURITY_DMESG_RESTRICT               |      y      |   kspp   |  self_protection   |   FAIL: "is not set"

CONFIG_BUG_ON_DATA_CORRUPTION                |      y      |   kspp   |  self_protection   |   FAIL: "is not set"

CONFIG_DEBUG_WX                              |      y      |   kspp   |  self_protection   |   OK

CONFIG_SCHED_STACK_END_CHECK                 |      y      |   kspp   |  self_protection   |   OK

CONFIG_SLAB_FREELIST_HARDENED                |      y      |   kspp   |  self_protection   |   OK

CONFIG_SLAB_FREELIST_RANDOM                  |      y      |   kspp   |  self_protection   |   OK

CONFIG_SHUFFLE_PAGE_ALLOCATOR                |      y      |   kspp   |  self_protection   |   OK

CONFIG_FORTIFY_SOURCE                        |      y      |   kspp   |  self_protection   |   OK

CONFIG_DEBUG_LIST                            |      y      |   kspp   |  self_protection   |   FAIL: "is not set"

CONFIG_DEBUG_SG                              |      y      |   kspp   |  self_protection   |   FAIL: "is not set"

CONFIG_DEBUG_CREDENTIALS                     |      y      |   kspp   |  self_protection   |   FAIL: "is not set"

CONFIG_DEBUG_NOTIFIERS                       |      y      |   kspp   |  self_protection   |   FAIL: "is not set"

CONFIG_INIT_ON_ALLOC_DEFAULT_ON              |      y      |   kspp   |  self_protection   |   OK

CONFIG_GCC_PLUGIN_LATENT_ENTROPY             |      y      |   kspp   |  self_protection   |   FAIL: not found

CONFIG_GCC_PLUGIN_RANDSTRUCT                 |      y      |   kspp   |  self_protection   |   FAIL: not found

CONFIG_HARDENED_USERCOPY                     |      y      |   kspp   |  self_protection   |   OK

CONFIG_HARDENED_USERCOPY_FALLBACK            | is not set  |   kspp   |  self_protection   |   FAIL: "y"

CONFIG_MODULE_SIG                            |      y      |   kspp   |  self_protection   |   OK

CONFIG_MODULE_SIG_ALL                        |      y      |   kspp   |  self_protection   |   OK

CONFIG_MODULE_SIG_SHA512                     |      y      |   kspp   |  self_protection   |   OK

CONFIG_MODULE_SIG_FORCE                      |      y      |   kspp   |  self_protection   |   FAIL: "is not set"

CONFIG_INIT_STACK_ALL_ZERO                   |      y      |   kspp   |  self_protection   |   FAIL: not found

CONFIG_INIT_ON_FREE_DEFAULT_ON               |      y      |   kspp   |  self_protection   |   OK: CONFIG_PAGE_POISONING_ZERO "y"

CONFIG_GCC_PLUGIN_STACKLEAK                  |      y      |   kspp   |  self_protection   |   FAIL: not found

CONFIG_DEFAULT_MMAP_MIN_ADDR                 |    65536    |   kspp   |  self_protection   |   OK

CONFIG_DEBUG_VIRTUAL                         |      y      |  clipos  |  self_protection   |   FAIL: "is not set"

CONFIG_STATIC_USERMODEHELPER                 |      y      |  clipos  |  self_protection   |   FAIL: "is not set"

CONFIG_EFI_DISABLE_PCI_DMA                   |      y      |  clipos  |  self_protection   |   FAIL: not found

CONFIG_SLAB_MERGE_DEFAULT                    | is not set  |  clipos  |  self_protection   |   FAIL: "y"

CONFIG_RANDOM_TRUST_BOOTLOADER               | is not set  |  clipos  |  self_protection   |   FAIL: "y"

CONFIG_RANDOM_TRUST_CPU                      | is not set  |  clipos  |  self_protection   |   FAIL: "y"

CONFIG_GCC_PLUGIN_RANDSTRUCT_PERFORMANCE     | is not set  |  clipos  |  self_protection   |   FAIL: CONFIG_GCC_PLUGIN_RANDSTRUCT not "y"

CONFIG_STACKLEAK_METRICS                     | is not set  |  clipos  |  self_protection   |   FAIL: CONFIG_GCC_PLUGIN_STACKLEAK not "y"

CONFIG_STACKLEAK_RUNTIME_DISABLE             | is not set  |  clipos  |  self_protection   |   FAIL: CONFIG_GCC_PLUGIN_STACKLEAK not "y"

CONFIG_INTEL_IOMMU_DEFAULT_ON                |      y      |  clipos  |  self_protection   |   FAIL: "is not set"

CONFIG_INTEL_IOMMU_SVM                       |      y      |  clipos  |  self_protection   |   OK

CONFIG_UBSAN_BOUNDS                          |      y      |    my    |  self_protection   |   FAIL: CONFIG_UBSAN_TRAP not "y"

CONFIG_RESET_ATTACK_MITIGATION               |      y      |    my    |  self_protection   |   OK

CONFIG_AMD_IOMMU_V2                          |      y      |    my    |  self_protection   |   FAIL: "m"

CONFIG_SECURITY                              |      y      |defconfig |  security_policy   |   OK

CONFIG_SECURITY_YAMA                         |      y      |   kspp   |  security_policy   |   OK

CONFIG_SECURITY_WRITABLE_HOOKS               | is not set  |    my    |  security_policy   |   OK: not found

CONFIG_SECURITY_LOCKDOWN_LSM                 |      y      |  clipos  |  security_policy   |   OK

CONFIG_SECURITY_LOCKDOWN_LSM_EARLY           |      y      |  clipos  |  security_policy   |   OK

CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY|      y      |  clipos  |  security_policy   |   FAIL: "is not set"

CONFIG_SECURITY_SAFESETID                    |      y      |    my    |  security_policy   |   OK

CONFIG_SECURITY_LOADPIN                      |      y      |    my    |  security_policy   |   FAIL: "is not set"

CONFIG_SECURITY_LOADPIN_ENFORCE              |      y      |    my    |  security_policy   |   FAIL: CONFIG_SECURITY_LOADPIN not "y"

CONFIG_SECCOMP                               |      y      |defconfig | cut_attack_surface |   OK

CONFIG_SECCOMP_FILTER                        |      y      |defconfig | cut_attack_surface |   OK

CONFIG_STRICT_DEVMEM                         |      y      |defconfig | cut_attack_surface |   OK

CONFIG_ACPI_CUSTOM_METHOD                    | is not set  |   kspp   | cut_attack_surface |   OK

CONFIG_COMPAT_BRK                            | is not set  |   kspp   | cut_attack_surface |   OK

CONFIG_DEVKMEM                               | is not set  |   kspp   | cut_attack_surface |   OK

CONFIG_COMPAT_VDSO                           | is not set  |   kspp   | cut_attack_surface |   OK

CONFIG_BINFMT_MISC                           | is not set  |   kspp   | cut_attack_surface |   FAIL: "m"

CONFIG_INET_DIAG                             | is not set  |   kspp   | cut_attack_surface |   FAIL: "m"

CONFIG_KEXEC                                 | is not set  |   kspp   | cut_attack_surface |   FAIL: "y"

CONFIG_PROC_KCORE                            | is not set  |   kspp   | cut_attack_surface |   FAIL: "y"

CONFIG_LEGACY_PTYS                           | is not set  |   kspp   | cut_attack_surface |   FAIL: "y"

CONFIG_HIBERNATION                           | is not set  |   kspp   | cut_attack_surface |   FAIL: "y"

CONFIG_IA32_EMULATION                        | is not set  |   kspp   | cut_attack_surface |   FAIL: "y"

CONFIG_X86_X32                               | is not set  |   kspp   | cut_attack_surface |   FAIL: "y"

CONFIG_MODIFY_LDT_SYSCALL                    | is not set  |   kspp   | cut_attack_surface |   FAIL: "y"

CONFIG_OABI_COMPAT                           | is not set  |   kspp   | cut_attack_surface |   OK: not found

CONFIG_MODULES                               | is not set  |   kspp   | cut_attack_surface |   FAIL: "y"

CONFIG_DEVMEM                                | is not set  |   kspp   | cut_attack_surface |   FAIL: "y"

CONFIG_IO_STRICT_DEVMEM                      |      y      |   kspp   | cut_attack_surface |   FAIL: "is not set"

CONFIG_LEGACY_VSYSCALL_NONE                  |      y      |   kspp   | cut_attack_surface |   FAIL: "is not set"

CONFIG_ZSMALLOC_STAT                         | is not set  |grsecurity| cut_attack_surface |   OK

CONFIG_PAGE_OWNER                            | is not set  |grsecurity| cut_attack_surface |   OK

CONFIG_DEBUG_KMEMLEAK                        | is not set  |grsecurity| cut_attack_surface |   OK

CONFIG_BINFMT_AOUT                           | is not set  |grsecurity| cut_attack_surface |   OK: not found

CONFIG_KPROBES                               | is not set  |grsecurity| cut_attack_surface |   FAIL: "y"

CONFIG_UPROBES                               | is not set  |grsecurity| cut_attack_surface |   FAIL: "y"

CONFIG_GENERIC_TRACER                        | is not set  |grsecurity| cut_attack_surface |   FAIL: "y"

CONFIG_PROC_VMCORE                           | is not set  |grsecurity| cut_attack_surface |   FAIL: "y"

CONFIG_PROC_PAGE_MONITOR                     | is not set  |grsecurity| cut_attack_surface |   FAIL: "y"

CONFIG_USELIB                                | is not set  |grsecurity| cut_attack_surface |   FAIL: "y"

CONFIG_CHECKPOINT_RESTORE                    | is not set  |grsecurity| cut_attack_surface |   FAIL: "y"

CONFIG_USERFAULTFD                           | is not set  |grsecurity| cut_attack_surface |   FAIL: "y"

CONFIG_HWPOISON_INJECT                       | is not set  |grsecurity| cut_attack_surface |   FAIL: "m"

CONFIG_MEM_SOFT_DIRTY                        | is not set  |grsecurity| cut_attack_surface |   FAIL: "y"

CONFIG_DEVPORT                               | is not set  |grsecurity| cut_attack_surface |   FAIL: "y"

CONFIG_DEBUG_FS                              | is not set  |grsecurity| cut_attack_surface |   FAIL: "y"

CONFIG_NOTIFIER_ERROR_INJECTION              | is not set  |grsecurity| cut_attack_surface |   FAIL: "m"

CONFIG_X86_PTDUMP                            | is not set  |grsecurity| cut_attack_surface |   OK

CONFIG_DRM_LEGACY                            | is not set  |maintainer| cut_attack_surface |   OK

CONFIG_FB                                    | is not set  |maintainer| cut_attack_surface |   FAIL: "y"

CONFIG_VT                                    | is not set  |maintainer| cut_attack_surface |   FAIL: "y"

CONFIG_AIO                                   | is not set  |grapheneos| cut_attack_surface |   FAIL: "y"

CONFIG_STAGING                               | is not set  |  clipos  | cut_attack_surface |   FAIL: "y"

CONFIG_KSM                                   | is not set  |  clipos  | cut_attack_surface |   FAIL: "y"

CONFIG_KALLSYMS                              | is not set  |  clipos  | cut_attack_surface |   FAIL: "y"

CONFIG_X86_VSYSCALL_EMULATION                | is not set  |  clipos  | cut_attack_surface |   FAIL: "y"

CONFIG_MAGIC_SYSRQ                           | is not set  |  clipos  | cut_attack_surface |   FAIL: "y"

CONFIG_KEXEC_FILE                            | is not set  |  clipos  | cut_attack_surface |   FAIL: "y"

CONFIG_USER_NS                               | is not set  |  clipos  | cut_attack_surface |   FAIL: "y"

CONFIG_X86_MSR                               | is not set  |  clipos  | cut_attack_surface |   FAIL: "m"

CONFIG_X86_CPUID                             | is not set  |  clipos  | cut_attack_surface |   FAIL: "m"

CONFIG_IO_URING                              | is not set  |  clipos  | cut_attack_surface |   FAIL: "y"

CONFIG_X86_IOPL_IOPERM                       | is not set  |  clipos  | cut_attack_surface |   OK: not found

CONFIG_ACPI_TABLE_UPGRADE                    | is not set  |  clipos  | cut_attack_surface |   FAIL: "y"

CONFIG_EFI_CUSTOM_SSDT_OVERLAYS              | is not set  |  clipos  | cut_attack_surface |   OK: not found

CONFIG_LDISC_AUTOLOAD                        | is not set  |  clipos  | cut_attack_surface |   FAIL: "y"

CONFIG_X86_INTEL_TSX_MODE_OFF                |      y      |  clipos  | cut_attack_surface |   OK

CONFIG_EFI_TEST                              | is not set  | lockdown | cut_attack_surface |   FAIL: "m"

CONFIG_BPF_SYSCALL                           | is not set  | lockdown | cut_attack_surface |   FAIL: "y"

CONFIG_MMIOTRACE_TEST                        | is not set  | lockdown | cut_attack_surface |   OK

CONFIG_TRIM_UNUSED_KSYMS                     |      y      |    my    | cut_attack_surface |   FAIL: not found

CONFIG_MMIOTRACE                             | is not set  |    my    | cut_attack_surface |   FAIL: "y"

CONFIG_LIVEPATCH                             | is not set  |    my    | cut_attack_surface |   FAIL: "y"

CONFIG_IP_DCCP                               | is not set  |    my    | cut_attack_surface |   FAIL: "m"

CONFIG_IP_SCTP                               | is not set  |    my    | cut_attack_surface |   FAIL: "m"

CONFIG_FTRACE                                | is not set  |    my    | cut_attack_surface |   FAIL: "y"

CONFIG_VIDEO_VIVID                           | is not set  |    my    | cut_attack_surface |   FAIL: "m"

CONFIG_INPUT_EVBUG                           | is not set  |    my    | cut_attack_surface |   FAIL: "m"

CONFIG_INTEGRITY                             |      y      |defconfig |userspace_hardening |   OK

CONFIG_ARCH_MMAP_RND_BITS                    |     32      |  clipos  |userspace_hardening |   FAIL: "28"



[+] Config check is finished: 'OK' - 58 / 'FAIL' - 81

项目地址:点击底部【阅读原文】获取

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS简介
全志T113-i是一款双核Cortex-A7国产工业级处理器平台,并内置玄铁C906 RISC-V和HiFi4 DSP双副核心,可流畅运行Linux系统与Qt界面,并已适配OpenWRT系统、Preempt Linux系统。
阿志小管家
2024/11/19
6930
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS简介
深入理解Linux内核之内核抢占
我们或许经常听说过内核抢占,可是我们是否真正理解它呢?内核抢占和抢占式内核究竟有什么关系呢?抢占计数器究竟干什么用?... 本文我们就来好好讨论下,关于内核抢占的一些技术细节,力求让大家理解内核抢占。
用户7244416
2021/08/06
3.2K0
Linux内核调试技术——kprobe使用与实现
Linux kprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。利用kprobes技术,内核开发人员可以在内核的绝大多数指定函数中动态的插入探测点来收集所需的调试状态信息而基本不影响内核原有的执行流程。kprobes技术目前提供了3种探测手段:kprobe、jprobe和kretprobe,其中jprobe和kretprobe是基于kprobe实现的,他们分别应用于不同的探测场景中。本文首先简单描述这3种探测技术的原理与区别,然后主要围绕其中的kprobe技术进行分析并给出一个简单的实例介绍如何利用kprobe进行内核函数探测,最后分析kprobe的实现过程(jprobe和kretprobe会在后续的博文中进行分析)。
233333
2021/09/08
6.1K0
fl2440的内核移植总结
以下是基于fl2440开发板子上的内核移植实验总结 1.      解码内核源码包 2.      修改makefile中的arch和交叉工具链 3.      ARCH            ?= 
用户4148957
2022/06/14
6500
您对 Linux 系统了解多少?
翻译自 What Do You Know about Your Linux System?
云云众生s
2024/03/27
2610
OpenHarmony(鸿蒙南向开发)——Combo解决方案之W800芯片移植案例
本方案基于OpenHarmony LiteOS-M内核,使用联盛德W800芯片的润和软件海王星系列 Neptune100开发板 ,进行开发移植。移植架构采用Board与SoC分离方案,支持通过Kconfig图形化配置编译选项,增加玄铁ck804ef架构移植,实现了HDF、XTS等子系统及组件的适配。
小帅聊鸿蒙
2025/06/27
970
linux内核启动流程(文章最后流程图)
本文以Linux3.14版本源码为例分析其启动流程。各版本启动代码略有不同,但核心流程与思想万变不离其宗。
全栈程序员站长
2022/09/15
1.9K0
鸿蒙系统研究之五:替换 AOSP 预编译库,关闭 SELinux
言归正传,在我的上一篇文章 吐槽一下开源鸿蒙系统 中,我提到过,开源鸿蒙标准系统的系统文件主要来自 AOSP 的预编译文件,这对于追踪启动过程中的问题非常不友好。我在 SeLinux 的问题上就卡壳了很久。
云水木石
2021/08/06
2.8K0
Linux内核调试技术——kprobe使用与实现(一)
Linux kprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。利用kprobes技术,内核开发人员可以在内核的绝大多数指定函数中动态的插入探测点来收集所需的调试状态信息而基本不影响内核原有的执行流程。kprobes技术目前提供了3种探测手段:kprobe、jprobe和kretprobe,其中jprobe和kretprobe是基于kprobe实现的,他们分别应用于不同的探测场景中。
用户5807183
2019/07/15
4.5K0
Linux内核调试技术——kprobe使用与实现(一)
详解Linux内核编译配置(menuconfig)、文件系统制作
分别是: 1、Makefile:分布在 Linux 内核源代码根目录及各层目录中,定义 Linux 内核的编译规则; 2、配置文件(config.in):给用户提供配置选择的功能; 3、配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于 Ncurses 图形界面以及基于 Xwindows 图形界面的用户配置界面,各自对应于 Make config、Make menuconfig 和 make xconfig)。
全栈程序员站长
2022/08/10
8.3K0
详解Linux内核编译配置(menuconfig)、文件系统制作
xmake v2.6.2 发布,新增 Linux 内核驱动模块构建支持
它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
ruki
2021/12/24
2.7K0
xmake v2.6.2 发布,新增 Linux 内核驱动模块构建支持
在全志V851SE开发板TinyVision上 使用 SyterKit 启动 Linux 6.7 主线内核
SyterKit 是一个纯裸机框架,用于 TinyVision 或者其他 v851se/v851s/v851s3/v853 等芯片的开发板,SyterKit 使用 CMake 作为构建系统构建,支持多种应用与多种外设驱动。同时 SyterKit 也具有启动引导的功能,可以替代 U-Boot 实现快速启动
阿志小管家
2024/05/26
1840
在全志V851SE开发板TinyVision上 使用 SyterKit 启动 Linux 6.7 主线内核
ubuntu14.04编译android4.4对应的linux内核
参考资料: [google官方资料] 官方是最权威的,但会有细节缺失。 [如何下载编译android内核] 可以参考别人的动手实践,弥补缺失的细节。
用户2930595
2018/08/23
1.3K0
一种快速移植 OpenHarmony Linux 内核的方法
本文面向希望将 OpenHarmony 移植到三方芯片平台硬件的开发者,介绍一种借助三方芯片平台自带 Linux 内核的现有能力,快速移植 OpenHarmony 到三方芯片平台的方法。
小帅聊鸿蒙
2024/07/28
3350
一种快速移植 OpenHarmony Linux 内核的方法
万字总结,体系化带你全面认识 Linux 系统安全强化
本指南旨在说明如何尽可能地加强 Linux 的安全性和隐私性,并且不限于任何特定的指南。
iMike
2021/07/01
2.7K0
如何使用rdbtools分析redis大key
熟悉redis的朋友都知道,大key是在应用的设计和实践当中应该尽量避免的风险。大key的危险有很多,例如:
于航
2021/03/18
3.5K0
VirtFuzz:一款基于VirtIO的Linux内核模糊测试工具
VirtFuzz是一款功能强大的Linux内核模糊测试工具,该工具使用LibAFL构建,可以利用VirtIO向目标设备的内核子系统提供输入测试用例,广大研究人员可以使用该工具测试Linux内核的安全性。
FB客服
2024/06/12
2190
VirtFuzz:一款基于VirtIO的Linux内核模糊测试工具
Linux内核开发_1_编译LInux内核
System Type arm 占用配置,一般是厂家提供,与第7项代替了原有的Processor type and features
全栈程序员站长
2022/09/15
21.3K0
【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介
转载请出名出处 : http://blog.csdn.net/shulianghan/article/details/38636827
韩曙亮
2023/03/27
2.8K0
【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介
OpenHarmony(鸿蒙南向开发)——轻量系统STM32F407芯片移植案例
介绍基于STM32F407IGT6芯片在拓维信息 Niobe407 开发板上移植OpenHarmony LiteOS-M轻量系统,提供交通、工业领域开发板解决方案。移植架构采用Board与SoC分离方案,使用arm gcc工具链Newlib C库,实现了lwip、littlefs、hdf等子系统及组件的适配,开发了配套应用示例代码,支持通过Kconfig图形化配置编译选项。
小帅聊鸿蒙
2025/06/27
1180
OpenHarmony(鸿蒙南向开发)——轻量系统STM32F407芯片移植案例
推荐阅读
相关推荐
全志T113双核异构处理器的使用基于Tina Linux5.0——RTOS简介
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档