博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入linux内核架构读书笔记
阅读量:4214 次
发布时间:2019-05-26

本文共 1439 字,大约阅读时间需要 4 分钟。

通过ps 可以知道在中括号内的是内核线程系统调用可以分为六类:进程管理/信号/文件/目录和文件系统/保护机制/定时器函数kernel中使用register_binfmt来增加支持的二进制格式进程用exit系统调用终止,其函数是do_exit调度器分为主调度器和周期调度器可以通过proc/sys/kernel/sched_child_runs_first来让子进程先运行通过pglist_data来表示一个内存节点应用程序可以使用mlock系统调用通知内核页不能从物理内存移除到硬盘可以通过cat /proc/buddyinfo查新当前系统伙伴系统信息内存使用的反碎片就是就是基于将具有相同可移动的页组分支的思想,例如不可以移动页/可回收页/可移动页,内存还提供了虚拟内存域zone_movable来防止内存碎片,只要指定kernelcore或者movablecore这个内存区域才会存在memmap_init_zone负责处理内存域的page实例,会将所有页标记为可以移动的acl的全称是access control list ,是针对文件和目录的访问控制列表,可以针对任意指定的用户或者组分配rwx权限,acl 要文件系统支持,可以通过mount 命令开查询mount 参数中是否包含acl来判断当前是否支持acl。在linux中 可以直接使用setfacl/getfacl/chfacl 来操作单个文件或者命令的acl.用户空间的内存布局通过arch_pick_mmap_layout来完成通过sys_remap_file_pages可以重新排列映射中的页,使得内存域中间中的顺序不在等价,实现所谓的非线性映射堆在mm_struct中的起始地址和结束地址分别是start_brk和brk,可以通过brk来指定对在虚拟地址空间中新的结束地址缺页异常的入口是do_page_fault必须要通过rcu_dereference(ptr)来引用rcu指针,如果要修改指针的内容需要通过rcu_assign_pointer来操作,synchronize_rcu()等待所有现存的读访问完成,call_rcu()可用于注册一个函数,在所有针对共享资源的读访问完成之后调用.互斥量分为经典mutex互斥量和实时rt_mutex,这个必须打开config_rt_mutex针对多核可以采用per-CPU技术来减少锁操作3中进程间通信机制:信号量,消息队列,共享内存,其他的还有信号,管道,套接字struct genhd用来管理块设备的分区,通过fs/partitions/check.c中的add_partition 来向通用数据结构中添加一个新的分区usb是根据D+/D- 来检测设备插入,usb的四种传输模式:控制传输/块传输/中断传输/同步传输在fs/super.c中通过register_filesystem来注册文件系统扩展属性就是与文件系统对象关联的一个名称/值 对,是存在innode上的netlink 是一种基于网络的机制,允许内核内部以及内核与用户层之间进行通信,类似的方法还设有procfs/sysfs,netlink 包含很多协议族,每个协议族需要在内核中注册一个net_proto_family实例通过slab_is_available可以判断释放可以使用slab使用clocksource_register函数来注册始终到全局的clocksource_list中

 

转载地址:http://oinmi.baihongyu.com/

你可能感兴趣的文章
pycharm2019版本去掉下划线的方法
查看>>
九度OJ 1091:棋盘游戏 (DP、BFS、DFS、剪枝)
查看>>
leetcode 13: Roman to Integer
查看>>
a标签中调用js方法
查看>>
js函数中传入的event参数
查看>>
[hive]优化策略
查看>>
c++14现代内存管理
查看>>
右值引用,move语义和完美转发
查看>>
c++使用宏检测类是否包含某个函数或者变量属性
查看>>
CSS之Multi-columns的column-gap和column-rule
查看>>
CSS之Multi-columns的跨列
查看>>
CSS之浮动(一)
查看>>
CSS之浮动(二)
查看>>
AtomicInteger源码解析
查看>>
CopyOnWriteArraySet源码学习
查看>>
Openfiler 配置 NFS 示例
查看>>
Oracle 11.2.0.1 RAC GRID 无法启动 : Oracle High Availability Services startup failed
查看>>
Oracle 18c 单实例安装手册 详细截图版
查看>>
Oracle Linux 6.1 + Oracle 11.2.0.1 RAC + RAW 安装文档
查看>>
Oracle 11g 新特性 -- Online Patching (Hot Patching 热补丁)说明
查看>>