随笔分类 -  操作系统

上一页 1 2

linux内存管理(三)进程地址空间
摘要:以下是基于v5.0。 每个进程都有自己的虚拟机地址空间。在task_struct数据结构中有一个mm_struct专门用来描述进程的虚拟地址空间。 struct task_struct { ... struct mm_struct *mm; ... } struct mm_struct { stru 阅读全文

posted @ 2024-01-28 12:23 半山随笔 阅读(93) 评论(0) 推荐(0) 编辑

监控malloc时brk系统调用
摘要:我们都知道malloc底层是调用brk系统调用实现的,但是不是每次malloc都会调用brk。我们来使用bpftrace验证以下。 写一个malloc的程序。 #include "stdio.h" #include <stdlib.h> int main() { void *p; p = mallo 阅读全文

posted @ 2024-01-28 10:58 半山随笔 阅读(42) 评论(0) 推荐(0) 编辑

seccomp初探
摘要:早就听说过seccomp,只是知道他是控制syscall的。因为解一个bug,对seccomp了解多了一丢丢,记录一下。 seccomp是linux用来控制用户进程系统调用使用的。有三种模式: SECCOMP_SET_MODE_STRICT: 严格限制系统调用的使用,只允许read,write,_e 阅读全文

posted @ 2023-12-01 10:26 半山随笔 阅读(410) 评论(0) 推荐(0) 编辑

linux kernel调用efi runtime service时的内存上下文切换
摘要:本文以linux 6.5.2为基础,只讨论arm64平台。 当linux kernel从UEFI启动之后尽管boot service退出了但是仍然可以使用runtime service。这就引发了一个问题:存在于uefi内存空间的code如何被kernel调用。 首先找一个调用efi runtime 阅读全文

posted @ 2023-10-25 12:34 半山随笔 阅读(651) 评论(0) 推荐(1) 编辑

linux kernel的启动参数是怎么拿到的-以arm64为例
摘要:linux kernel拿到启动参数一定是在boot阶段,那就必须从start_kernel找起。 asmlinkage __visible __init __no_sanitize_address __noreturn __no_stack_protector void start_kernel( 阅读全文

posted @ 2023-10-17 22:26 半山随笔 阅读(976) 评论(0) 推荐(0) 编辑

mpam linux kernel源码分析
摘要:MPAM (Memory System Resource Partitioning and Monitoring)是Armv8.4的feature,用于cache和内存带宽的监控和限制。截至现在,该feature在linux kernel的实现还在推进,最新一版参见https://git.kerne 阅读全文

posted @ 2023-09-12 20:39 半山随笔 阅读(1226) 评论(0) 推荐(0) 编辑

上一页 1 2
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示