avatar
文章
324
标签
40
分类
15

Helloeuler
搜索
Linux kworker线程作用详解
发表于2025-02-28|deepseek
Linux kworker的作用 Linux 中的 kworker(全称 “kernel worker”)是内核工作线程(worker thread),用于异步处理内核中的后台任务。这些线程是内核多线程机制的一部分,负责执行延迟处理或需要避免阻塞关键路径的任务,例如硬件中断的后半部(bottom half)、定时器回调、文件系统操作、设备驱动任务等。 kworker 的主要作用 处理中断的“后半部”(Bottom Half) 当硬件中断触发时,内核需要快速响应,但某些中断处理任务可能较耗时。为了避免阻塞其他中断,内核会将中断处理分为: 上半部(Top Half):快速处理关键部分(如记录中断状态),立即返回。 下半部(Bottom Half):耗时的操作(如数据处理)会被推迟,由 kworker 线程异步执行。 例如:网卡接收数据包时,上半部标记数据到达,下半部由 kworker 处理数据包。 执行工作队列(Workqueue)任务 内核模块(如设备驱动)可以通过工作队列(workqueue)将任务提交给 kworker 线程异步执行。 工作队列分为两种类型: 标准优先级 ...
Linux Page Cache 机制详解
发表于2025-02-27|deepseek
Linux pagecache介绍 Linux 的 Page Cache 是内核用于缓存磁盘数据的一种机制,通过将磁盘文件的内容暂存到内存中,显著提升系统性能。以下是其核心要点: 1. 基本概念 作用:减少磁盘 I/O 操作,加速文件读写。 存储内容:缓存磁盘文件的数据块(以内存页为单位,通常 4KB)。 归属:由内核管理,对用户透明,应用程序无需直接操作。 2. 工作原理读操作 当应用程序读取文件时,内核优先检查 Page Cache: 命中缓存:直接从内存返回数据,无需访问磁盘。 未命中:从磁盘读取数据,并缓存到 Page Cache 供后续使用。 写操作 默认使用 Writeback(延迟写) 策略: 数据先写入 Page Cache,标记为“脏页”(Dirty Page)。 内核定期(或触发同步条件时)将脏页写回磁盘。 后台线程(如 kswapd)负责刷脏页,确保数据最终持久化。 同步写入:通过 fsync() 或 O_SYNC 标志强制立即写回磁盘,牺牲性能保障一致性。 3. 内存管理 内存回收: 当系统内存不足时,内核根据 LRU(最近最少使用 ...
openEuler上包构建
发表于2025-02-15|openEuler
3 执行构建3.1 新建一个用于所有软件构建的顶层目录(创建一次即可)mkdir ~/rpmbuild/SOURCES -p 3.2 进入源码目录cd ~/open_source/musl 3.3 根据各软件包内容按需将源码、patch、配置文件等复制到构建目录cp *.patch *.gz ~/rpmbuild/SOURCES/注: 如果拷贝文件不对,构建时会报缺少文件的错误,此时重新拷贝过去即可 3.4 在当前目录执行如下命令进行软件包构建rpmbuild -bb musl.spec 3.5 构建成功显示结果如下,构建结果存储在/root/rpmbuild/RPMS/目录下(截图需要根据软件包不同进行更新)。
介绍一下HarmonyOS
发表于2025-02-05|deepseek
介绍一下HarmonyOS HarmonyOS(鸿蒙操作系统)是华为公司自主研发的一款面向全场景的分布式操作系统,旨在为智能手机、智能家居、可穿戴设备、车载系统等多种终端设备提供统一的操作系统平台。它于2019年正式发布,是华为应对全球技术挑战、构建自主生态的重要战略布局。 核心特点 分布式架构HarmonyOS采用分布式技术,将不同设备(手机、平板、电视、汽车等)虚拟化为一个“超级终端”,实现硬件能力的跨设备调用(如共享计算能力、摄像头、屏幕等),提升多设备协同效率。 一次开发,多端部署开发者可通过一套代码适配多种设备形态(基于ArkUI框架和ArkTS语言),降低开发成本,提升跨平台应用的开发效率。 微内核设计采用微内核架构(相比传统宏内核),核心功能模块化,安全性更高,系统响应更快,且支持灵活扩展。 流畅体验通过确定性时延引擎和高性能IPC(进程间通信)技术,优化资源调度,保障系统流畅运行,尤其适合物联网设备。 生态兼容性早期版本兼容安卓应用(通过AOSP),但HarmonyOS NEXT版本将彻底脱离安卓,构建独立生态,未来依赖鸿蒙原生应用。 应用场景 智能家居 ...
内存管理参考链接
发表于2025-01-12|Linux kernel
slab内存回收流程:https://www.cnblogs.com/binlovetech/p/17434311.html
openEuler embedded构建
发表于2024-09-16|openEuler
https://pages.openeuler.openatom.cn/embedded/docs/build/html/openEuler-24.03-LTS/oebuild/userguide/install/index.html oebuild init -b openEuler-24.03-LTS openeuler_2403 oebuild update oebuild generate -p qemu-aarch64 -d build_aarch64 oebuild generate -p qemu-aarch64 -f openeuler-mcs -f systemd -d build_arm64-mcs-systemd 进入构建容器oebuild bitbake 8<——– 进入容器环境 ——– 构建 openEuler Embedded 镜像bitbake openeuler-image-tiny 构建 openEuler Embedded 的 SDKbitbake openeuler-image -c do_populate_sdk 构建完成后,退出容器环境e ...
kernel-hardening-checker
发表于2024-05-24|安全/工具
背景: Linux发展至今,总代码已有3000W+,代码量非常庞大,那些模块能够加固Linux,使之更加安全越来越重要,尤其是对安全要求特别高的场景。 工具: https://github.com/a13xp0p0v/kernel-hardening-checker
安全工具
发表于2024-05-24|安全
安全测试工具: https://github.com/kernelslacker/trinityTrinity是一款linux系统调用fuzz工具,用来测试linux系统调用接口即linux syscall https://github.com/google/syzkallersyzkaller是Google团队开发的一款针对Linux内核进行模糊测试的开源工具,目前还在不断的维护之中。它使用了类似AFL的代码路径覆盖检测机制来达到尽可能大的代码覆盖率,因此,与trinity、IoFuzzer这些上一代的fuzz工具相比,能发现更多的问题。 https://nmap.org/ https://www.greenbone.net/GSM作为开源工具OpenVAS的商用版,由德国公司Greenbone维护和发布,相比OpenVAS使用的开源漏洞规则库有更丰富的商业漏洞规则库,而且具备安全配置相关扫描能力。 http://www.rapid7.com/products/nexpose/Nexpose 是一项统一漏洞解决方案,可扫描网络以识别出在这些网络中运行的设备以及测试设备是否有漏洞。漏洞 ...
loadpin介绍
发表于2023-05-27|安全
什么是loadPin模块LoadPin是一个基于LSM架构,主要用于限制内核模块来源的安全模块。LoadPin是一个新的Linux安全模块,可确保内核加载的所有文件(内核模块,固件,kexec映像,安全策略)都来自同一文件系统,并期望这样的文件系统由只读设备支持。这旨在简化嵌入式系统(不需要复杂的签名机制),如果系统被配置为从只读设备引导,那么嵌入式系统不需要任何内核模块签名基础设施/检查。 内核4.7开始引入, loadpin原理loadpin的原理是:安全敏感文件(包括内核模块)保存在只读存储器中,在系统引导之前,对该存储进行整体验证。因此从只读分区加载模块是安全的,无论它们是否已经签名,同时拒绝从其他地方加载模块。他们的来源确定且不能被修改,因此确认了来源安全。 参考资料1.理解linux下的loadPin https://zhuanlan.zhihu.com/p/354893466
Linux安全相关文章
发表于2023-05-24|安全
Linux安全10年: https://grsecurity.net/10_years_of_linux_security.pdf http://www.stxletto.com/posts/漫谈Linux系统安全缺陷缓解机制/ Randomizing structure layout: https://lwn.net/Articles/722293/
Linux访问控制
发表于2023-05-24|安全
SELinuxmac访问控制 AppArmor与selinux类似,号称使用更简单,但安全性下降。 概述AppArmor是一种MAC技术,与Selinux类似,相对于Selinux 官网:https://apparmor.net/ 内核相关配置选项CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_DEFAULT_SECURITY_APPARMOR=y CONFIG_DEFAULT_SECURITY=”apparmor 对系统底噪的影响分析经过测试,添加AppArmor后体积增加约28K。 与selinux对比 比较点 AppArmor SELinux 访问控制 使用基于路径的安全配置文件。 使用基于文件标签的安全策略。 可用性 适用于任何发行版,但主要用于 SUSE 和 Ubuntu。 适用于任何发行版,但主要用于 RHEL/Fedora 系统。 ...
Linux访问控制
发表于2023-05-24|安全
SELinuxmac访问控制 AppArmor与selinux类似,号称使用更简单,但安全性下降。 概述AppArmor是一种MAC技术,与Selinux类似,相对于Selinux 官网:https://apparmor.net/ 内核相关配置选项CONFIG_SECURITY_APPARMOR=y CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_SECURITY_APPARMOR_HASH=y CONFIG_DEFAULT_SECURITY_APPARMOR=y CONFIG_DEFAULT_SECURITY=”apparmor 对系统底噪的影响分析经过测试,添加AppArmor后体积增加约28K。 与selinux对比 比较点 AppArmor SELinux 访问控制 使用基于路径的安全配置文件。 使用基于文件标签的安全策略。 可用性 适用于任何发行版,但主要用于 SUSE 和 Ubuntu。 适用于任何发行版,但主要用于 RHEL/Fedora 系统。 ...
Linux s和t权限
发表于2023-05-24|安全
s权限(suid、nosuid、sgid)、t权限(Sticky,粘滞位) 1.概述s权限:强制位,包括suid、sgid t权限:粘滞位,包括sticky S_ISUID只能用于二进制可执行文件,shell脚本不能添加该权限。 S_ISGID可用于二进制可执行文件和目录。 4:SUID 2:SGID 1:VTX 粘滞位 2.表示1)s权限位:所属用户的S_IXUSR(x位)为S_ISUID/S_ISGID所共用,当S_IXUSR和S_ISUID/S_ISGID共存时,用小写s表示,当只设置了S_ISUID/S_ISGID时,用大写S表示: 12[_ rws ___ ___] //S_IXUSR和S_ISUID均具备[_ rwS ___ ___] //只具备S_ISUID 2)t权限位: 所属用户的S_IXOTH(x位)为S_ISVTX所共用,当S_IXOTH和S_ISVTX共存时,用小写t表示,当只设置了S_ISVTX时,用大写T表示: 12[_ ___ ___ rwt] //S_IXOTH和S_ISVTX均具备[_ ___ ___ rwT] ...
Linux scripts工具
发表于2023-05-14|Linux Kernel
Linux Kernel代码目录scripts下工具 1 bloat-o-meter统计二进制函数、数据、只读数据的变化,可用于统计函数代码量。 效果如下: 1234567891011hostname@linux:~/work/kernel/linux-nex/scripts> ./bloat-o-meter -c test test2add/remove: 1/0 grow/shrink: 0/0 up/down: 7/0 (7)Function old new deltatest - 7 +7Total: Before=355, After=362, chg +1.97%add/remove: 0/0 grow/shrink: 0/0 up/down: 0/0 (0)Data old new de ...
社区提交
发表于2023-05-14|个人
一、已经合入的commit:Linux Kernel: 2019-04-19: usb:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9bcb762ce02db5cc99e6705f0fcfab6b097a9bc8 2022-04-13: bpf:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2900005ea287b11dcc8c1b9fcf24893b7ff41d6d abi-dumper: 2021-7-31: https://github.com/lvc/abi-dumper/commit/a07c8d16f4cfeb01a0f0b503b4c7d39bed266154 shadow: 2022-4-4: https://github.com/shadow-maint/shadow/pull/515 busybox: 2023- ...
1…161718…22
avatar
juyin
文章
324
标签
40
分类
15
最新文章
Linux 5.10内核__vfs_getxattr函数用法2025-07-30
Linux __vfs_getxattr函数用法及示例,要求不能2025-07-30
Linux内核vfs_getxattr接口不使用睡眠函数的实现2025-07-30
Linux内核接口__vfs_getxattr的用法及示例2025-07-30
Linux读取文件扩展属性方法总结2025-07-30
分类
  • Linux2
  • Linux Kernel2
  • Linux kernel1
  • Linux命令20
  • deepseek240
  • openEuler4
  • 个人1
  • 内存管理1
标签
LinuxSSHuseraddvdsoLinux Kernel内存管理virt_to_page物理地址转换TensorFlow深度学习openEulerwslopenEuler embeddedqemu社区提交安全LSM工具makefileglibc, musl一致性软件依赖命令C调试libclilog4cplus生长因子GRE协议编码风格栈溢出磁盘阵列GCCgcc插件Linux加固KASLRSELinuxMACdeepseek
归档
  • 七月 202590
  • 六月 202551
  • 五月 202557
  • 四月 202533
  • 三月 20259
  • 二月 20254
  • 一月 20251
  • 九月 20241
网站资讯
文章数目 :
324
本站访客数 :
本站总访问量 :
Copyrigh ©2016 - 2025 By juyin
Powered by Hexo Theme(Butterfly)
搜索
数据库加载中