linux
文章平均质量分 93
扶我起来我还要写代码
经世致用
展开
-
Network Management
原文地址:Network Management — The Linux Kernel documentation (linux-kernel-labs.github.io)目录Network Management Overview Sockets Implementation Overview Sockets Families and Protocols Network processing phases Packet Routing Netfilter Network packets转载 2021-12-08 16:12:51 · 757 阅读 · 0 评论 -
overcommit_memory
目录overcommit_memory Overcommit Accounting CommitLimit and Committed_AS overcommit_kbytes orovercommit_ratioovercommit_memory:Documentation for /proc/sys/vm/ — The Linux Kernel documentationovercommit_memory这个vm参数用于控制malloc、mmap这些用于在进程虚拟地址空间申请虚拟..原创 2021-09-27 12:54:16 · 790 阅读 · 0 评论 -
Filesystem Management
原文地址:SO2 Lecture 08 - Filesystem Management — The Linux Kernel documentation (linux-kernel-labs.github.io)目录Filesystem Abstractions Filesystem Operations Mounting a filesystem Opening a file Querying file attributes Reading data from a file W转载 2021-09-25 13:10:12 · 310 阅读 · 0 评论 -
Memory Management
原文地址:SO2 Lecture 07 - Memory Management — The Linux Kernel documentation (linux-kernel-labs.github.io)目录Physical Memory Management Memory zones Non-Uniform Memory Access Page allocation Small allocations Virtual memory management Fault page.转载 2021-09-25 12:56:48 · 527 阅读 · 0 评论 -
Address Space
原文地址:Address Space — The Linux Kernel documentation目录X86 MMU Selectors Segment descriptor Segmentation in Linux x86 Paging Page tables Linux paging Translation Look-aside Buffer Linux address space Address space options for 32bit syste转载 2021-09-22 09:24:24 · 472 阅读 · 0 评论 -
Processes
原文地址:SO2 Lecture 03 - Processes — The Linux Kernel documentation目录Processes and threads Overview of process resources structtask_struct Threads The clone system call Namespaces and "containers" Accessing the current process Context switc.转载 2021-09-12 21:49:07 · 889 阅读 · 0 评论 -
System calls
原文地址:SO2 Lecture 02 - System calls — The Linux Kernel documentation (linux-kernel-labs.github.io)目录Lecture objectives Linux system calls implementation System call table System call parameters handling Virtual Dynamic Shared Object (VDSO) Acces转载 2021-08-30 12:18:39 · 440 阅读 · 0 评论 -
Linux kernel architecture
原文地址:Introduction — The Linux Kernel documentation (linux-kernel-labs.github.io)Linux kernel architecturearchArchitecture specific code May be further sub-divided in machine specific code Interfacing with the boot loader and architecture specif转载 2021-08-25 21:27:43 · 499 阅读 · 0 评论 -
【随笔】设置min_free_kbytes会影响系统的可用内存
PerformanceWhat is vm.min_free_kbytes and how to tune it?byLinux Wolfman原文地址:https://linuxhint.com/vm_min_free_kbytes_sysctl/这篇文章对min_free_kbytes的测试很有意思,通过这篇文章我才发现设置这个参数不仅仅是影响Linux内存回收中的water_mark,尤其是direct reclaim回收方式,还会影响系统的可用内存available memory。.原创 2021-01-13 17:49:36 · 4870 阅读 · 0 评论 -
【随笔】Linux刷脏页
一、脏页的由来前情摘要:1. 在多级存储系统中,上一级高速设备会成为下一级低速设备的缓存。相较之内存,磁盘是一个低速设备,因此Linux中会通过一种叫“磁盘高速缓存”的软件机制来允许将磁盘上的一些数据保留在内存中,以加快访问速度。页高速缓存page cache就是Linux内核所使用的主要磁盘高速缓存。几乎所有的文件读写都依赖磁盘高速缓存,除非你设置了O_DIRECT标志;2. Linux中文件系统主要分成三类:磁盘文件系统(例如ext系列)、基于内存的特殊文件系统(例如devtmpfs、bde原创 2021-01-08 17:46:46 · 2322 阅读 · 3 评论 -
【随笔】配置Linux IO scheduler算法
一、概述Unix操作系统从一开始就将设备看作文件,纳入文件系统的范畴,允许通过文件系统接口来访问设备。厂商的设备驱动程序是一个ko文件,Linux将其视为一个内核模块,可以通过insmod指令手动加载到内核中;现代Linux进一步抽象了设备驱动模型能做到自动加载和热插拔,主要依赖于二、运行时修改(临时修改)三、通过启动时内核参数修改参考资料《understanding the linux kernel 3rd》https://rollout.io/blog/linux-io.原创 2021-01-07 22:40:12 · 756 阅读 · 0 评论 -
【随笔】地址空间布局随机化randomize_va_space
内核文档:Documentation for /proc/sys/kernel/ — The Linux Kernel documentation https://www.kernel.org/doc/Documentation/sysctl/kernel.txt 3.15.1Address Space Layout Randomization (oracle.com)randomize_va_spaceThis option can be used to select the typ..原创 2020-12-04 23:28:44 · 2136 阅读 · 0 评论 -
【随笔】Linux进程调度概要
零、进程分类及调度原则实时进程 实时的含义和分类 调度原则 交互进程 交互的特点以及补偿 调度原则 batch进程 Linux版本号 Linux重要版本及特性算法概要:设计 O(N):SMP所有核心竞争任务队列 O(1):NUMA每个核心一个runqueue CFS:NUMA每个核心一颗红黑树 数据结构 O(n):链表 O(1):bitmap+基于数组的优先级队列 CFS:红黑树 task_struct中主要字段 O(n):policy原创 2020-11-21 12:12:42 · 225 阅读 · 0 评论 -
【随笔】几个VFS系统调用
一、mountmount的文件系统在内核面会组织成一颗mount树,根节点是root filesystem的struct mount。(注:图来自《趣谈Linux操作系统》)struct mount { struct hlist_node mnt_hash; struct mount *mnt_parent; struct dentry *mnt_mountpoint; struct vfsmount mnt; union { struct rcu_head mnt_rcu;原创 2020-10-29 14:17:12 · 434 阅读 · 0 评论 -
【随笔】虚拟内存的理解
什么是操作系统?操作系统的本质是一组软件,但不是随便什么软件都能叫操作系统。操作系统是一组管理计算机软软硬件资源、以方便用户使用计算机的软件集合。所以,怎么管理计算机软硬件资源就是操作系统的核心。操作系统管理计算机软硬件资源,是将物理资源抽象成虚拟资源,以达到时分复用或空分复用的目的。所以,操作系统管理资源的核心点又三个:抽象、虚拟和复用(时分复用和空分复用)。什么是虚拟内存?从OS来看,虚拟内存是这样一种技术,“将物理内存抽象成虚拟内存,以空分复用和时分复用的方式让每个运行中的进.原创 2020-10-05 11:08:30 · 424 阅读 · 2 评论 -
【随笔】虚拟地址空间上内核区间和用户区间的划分
一、概述Linux内存管理有三大块——物理内存、虚拟内存和内存映射。内存分配的流程是这样的:一开始申请内存,分配的是虚拟地址空间内存:malloc、mmap等分配虚拟内存; 等到寻址发生映射的时候才会由缺页异常来分配物理内存:缺页异常; 如果内存不够,分配失败,那就要走回收内存流程:kswapd+LRU/active/inactive/watermark+swap(anno page)/swap cache/swap entry+cache(file-backed page和slab obj原创 2020-10-03 20:09:39 · 968 阅读 · 0 评论 -
【随笔】Linux drop_caches
内核文档:https://www.kernel.org/doc/Documentation/sysctl/vm.txtdrop_caches==============================================================drop_cachesWriting to this will cause the kernel to drop clean caches, as well asreclaimable slab objects like de原创 2020-09-13 13:00:50 · 1117 阅读 · 0 评论 -
【随笔】Linux oom_killer
前情摘要:https://blog.csdn.net/reliveit/article/details/106291631内核文档:https://www.kernel.org/doc/Documentation/sysctl/vm.txt当Linux发生out of memory的时候,会根据panic_on_oom的配置,启用或禁用panic机制。panic_on_oomThis enables or disables panic on out-of-memory feature.原创 2020-09-06 16:34:22 · 957 阅读 · 1 评论 -
【随笔】linux swappiness
linux swappniess1. 基础概念swappiness:https://www.kernel.org/doc/Documentation/sysctl/vm.txt==============================================================swappinessThis control is used to define how aggressive the kernel will swapmemory pages. Hi原创 2020-09-04 23:42:47 · 604 阅读 · 0 评论 -
【随笔】thread_info
看ULK3rd讲进程抢占提到thread_info.flags(调度基础、主动调度和被动调度),所以追了一下。32bit机器上是这样定义的(https://elixir.bootlin.com/linux/v2.6.39.4/source/arch/x86/include/asm/thread_info.h#L26):struct thread_info { struct task_struct *task; /* main task structure */ __u32 flags原创 2020-08-27 22:13:34 · 807 阅读 · 0 评论 -
【随笔】Linux PID
一、IDtask_struct结构体里面设计task id的有三个字段:pid_t pid;pid_t tgid;struct task_struct *group_leader; 源码地址:https://elixir.bootlin.com/linux/latest/source/include/linux/sched.h#L804其中pid_t就是一个int:1. PIDPID就是process ID。任何一个、不管是进程还是线程(Linux线程也是用的tas原创 2020-08-19 20:42:33 · 794 阅读 · 0 评论 -
【随笔】linux内存管理概览和线程内核栈
一、内存管理学什么Linux内存管理的三个大点:虚拟内存(体系对内存的需求) 内存映射(虚拟内存映射物理内存) 物理内存(页面的供应)二、知识点进程PCB:task_struct 虚拟内存结构:task_struct -> mm_struct -> vm_area_struct 页表映射:mm_struct -> pgd、分段、分页、多级页表、pte(page table entry) 物理内存结构:mem_map、pglist_data、zone、free_.原创 2020-05-22 22:07:47 · 692 阅读 · 0 评论 -
linux swap partition应该设置多大
一、redhat官网地址(redhat8):https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/installation_guide/sect-disk-partitioning-setup-x86#sect-partitioning-advice官网地址(redhat6):https://access.redhat.com/documentation/en-us/red_hat_enterpr原创 2020-05-19 17:21:29 · 886 阅读 · 0 评论 -
fdisk和parted磁盘分区工具命令
本文转载自:点击打开链接(http://blog.163.com/nancainvmao_bq/blog/static/106573742013101253730555/)补充:parted支持2T以上的磁盘做分区,但是fdisk不支持,因此存储性服务器通常使用parted来做分区fdisk分区工具一、fdisk分区工具的命令格式: fdisk是传统的Linux硬盘分区工转载 2015-03-24 23:27:55 · 2806 阅读 · 0 评论 -
【Linux】Linux文件系统的实现
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Linux文件管理从用户的层面介绍了Linux管理文件的方式。Linux有一个树状结构来组织文件。树的顶端为根目录(/),节点为目录,而末端的叶子为包含数据的文件。当我们给出一个文件的完整路径时,我们从根目录出发,经过沿途各个目录,最终到达文件。我们可以对文转载 2015-04-11 23:17:28 · 762 阅读 · 0 评论 -
【Linux】Linux数组
转载:点击打开链接数组的声明:1)array[key]=value # array[0]=one,array[1]=two复制代码2)declare -a array # array被当作数组名复制代码3)array=( value1 value2 value3 ... )复制代码4)arr转载 2015-04-23 15:44:55 · 924 阅读 · 0 评论 -
【Linux】分区工具parted
转载:点击打开链接(http://blog.itpub.net/12129601/viewspace-735520/)昨天准备安装一套新的rac数据库,需要对阵列上的存储做分区,一开始采用常用的fdisk工具来分区,出现告警信息:WARNING: The size of this disk is 6.8 TB (6784974585856 bytes).DOS pa转载 2015-04-24 12:04:14 · 1758 阅读 · 0 评论 -
【Linux】浅谈Linux内存管理机制
原文链接:点击打开链接经常遇到一些刚接触Linux的新手会问内存占用怎么那么多?在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方面,区别于Windows的内存管理。主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高转载 2015-04-21 23:23:46 · 686 阅读 · 0 评论 -
【linux】free、vmstat、top“三贱合璧”追查内存
一、监控概述 参看点击打开链接 监控基本上分为机器监控和服务监控,本文主要谈的是机器监控,服务监控和特定的服务有关,对外没法谈···二、内存监控 linux就是个操作系统,他就是一组程序的集合,一组管理计算机软硬件资源、合理组织工作流程,以方便用户使用计算机的程序的集合,操作系统离不开服务器de三、linux内存之缓存机制四原创 2015-05-26 02:16:38 · 4598 阅读 · 1 评论 -
【Linux】性能监控指令vmstat
一、概述 监控通常分为机器监控和服务监控,机器监控是基础监控,目的是为了获得系统当前的运行状态,服务监控则是主要目的,也是最应该关心的监控,机器监控也是为了更好的服务监控而存在,简单来说,服务监控和系统上部署的具体服务有关,但监控模式可以统一。 监控是为了获得相关的目标数据,获得数据是为了异常情况下作出分析,分析的目的是为了解决线上case以及性能调优。这基本上原创 2015-04-10 08:46:07 · 2055 阅读 · 0 评论 -
【Linux】完全解读Linux环境变量
一、概述 环境变量:bash shell用一个称作“环境变量(environment variables)”的特性来存储有关shell会话和工作环境的信息,它允许你在内存中存储数据,以便运行在shell上的程序和脚本访问,这些数据可以用来识别用户、账户、系统、shell特性以及任何其他你需要存储的数据。 shell中的环境变量有全局环境变量和局部环境变量,通过K原创 2015-04-23 17:38:23 · 9324 阅读 · 0 评论 -
【Linux】IFS是个什么鬼
一、IFS引入 IFS(Internal Field Seprator),即内部域分隔符,完整定义是“The shell uses the value stored in IFS, which is the space, tab, and newline characters by default, to delimit words for the read and set co原创 2015-04-25 16:34:19 · 7968 阅读 · 2 评论 -
Linux系统下安装rz/sz命令及使用说明
转自:点击打开链接(http://www.lihuai.net/linux/commands/558.html)对于经常使用Linux系统的人员来说,少不了将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很多Linux系统初始并没有这两个命令。今天,我们就简单的讲解一下如何安装和使用rz、sz命令。1.软件安装(1)转载 2015-03-18 22:20:49 · 605 阅读 · 0 评论