首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏一个会写诗的程序员的博客

    Linux 内核4 大 IO 调度算法

    Linux 内核包含4个IO调度器,分别是 Noop IO scheduler、Anticipatory IO scheduler、Deadline IO scheduler 与 CFQ IO scheduler IO调度器在内核栈中所处位置如下: ? ? 块设备最悲剧的地方就是磁盘转动,这个过程会很耗时间。 从Linux 2.6.18起,CFQ作为默认的IO调度算法。对于通用的服务器来说,CFQ是较好的选择。 4、ANTICIPATORY CFQ和DEADLINE考虑的焦点在于满足零散IO请求上。对于连续的IO请求,比如顺序读,并没有做优化。 We see that the in the mixed read/write workloads (2 and 4) the NOOP scheduler has a negative impact

    6.6K31发布于 2020-04-16
  • Linux内核内核编程】Linux内核的组成

    作为全球应用最广泛的开源操作系统内核Linux内核不仅支撑着Android系统、云计算平台和超级计算机,更是理解现代操作系统原理的最佳实践样本。 一、源代码目录:打开内核世界的地图​ 典型内核源码目录结构(以Linux 5.15为例): linux-5.15/ ├── arch/ # 硬件架构代码(x86, arm, riscv 虚拟地址空间(32 位系统),通过页表映射到物理内存​ 分区:​ 用户空间(0-3GB):存放进程的代码、数据、堆、栈(比如你打开的 Word 文档数据)​ 内核空间(3-4GB):内核代码和数据,所有进程共享 3)​ 3.2 内存空间划分(以 32 位系统为例)  +------------------+ 4GB(虚拟地址空间) | 内核空间(3-4GB) | 所有进程共享,存放内核代码/数据 +----- Linux内核的设计哲学——模块化、可扩展性、性能优化——不仅体现在代码结构中,更渗透着Unix"做一件事并做好"的工程智慧。

    1.7K11编辑于 2026-01-21
  • 来自专栏韩曙亮的移动开发专栏

    Linux 内核Linux 内核源码结构 ( 下载 Linux 内核源码 | 使用 VSCode 阅读 Linux 内核源码 )

    文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 ) 博客 , 下载 Linux 5.6.18 版本的内核源码 ; 5.x 内核源码下载地址 : https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/ Linux 内核 5.6.18 版本 : https://mirrors.edge.kernel.org 不同版本的 Linux 内核 区别 : 系统调用 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用 按钮 , 此时就可以在 VSCode 中阅读 Linux 内核源码 ;

    29.1K30编辑于 2023-03-30
  • 来自专栏运维小路

    Linux内核-什么是内核

    让我们了解和熟悉基本的Linux内核相关的信息,Linux内核我们主要从以下几个方面来讲解: Linux内核-什么是内核(本章节) Linux内核-内核参数 Linux内核-proc文件系统 Linux 什么是Linux内核 Linux 内核Linux操作系统的核心部分,它是一个自由和开放源代码的类Unix操作系统内核。 文件系统支持:Linux内核支持多种文件系统,包括本地文件系统(如ext4, Btrfs等)和网络文件系统(如NFS)。 Linux内核的官方网址就是https://www.kernel.org/ 本地内核文件 我们在Linux基础-linux目录介绍过/boot目录就是内核相关的的目录,这个是未升级内核之前的目录结构,可以和上面的内核版本进行对应 5.4.278-1.el7.elrepo.x86_64.rpm: 头V4 DSA/SHA256 Signature, 密钥 ID baadae52: NOKEY 准备中...

    5.4K10编辑于 2024-11-01
  • 来自专栏嵌入式智能硬件

    LINUX内核

    一、Linux内核2.6特点: 1.新的调度器 2.内核抢占 3.改进线程模型 4.虚拟内存 5.文件系统 6.音频:音频体系结构ALSA.支持USB音频和MIDI设备,并支持全双工重放功能。 二、LINUX内核的组成 1.LINUX内核源代码目录结构 1)arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。如i386,arm,powerpc,mips等。 4)Documentation:内核各部分通用解释和注释。 2)内存管理:控制多个内存安全的使用主内存的区域,当CPU提供内存管理单元时,Linux内存完成每个虚拟内存到物理内存的转换的过程 ? 3)虚拟文件系统 4)网络接口 ? 3.Linux内核空间与用户空间 Linux只能通过系统调用和硬件中断来完成用户空间到内核空间的控制转移

    18.8K30发布于 2020-08-28
  • 来自专栏韩曙亮的移动开发专栏

    Linux 内核】编译 Linux 内核 ② ( 解压内核源码 | 查询当前 Linux 内核版本号 | 进入并查看 linux 内核源码目录 )

    文章目录 一、解压内核源码 二、查询当前 Linux 内核版本号 三、进入并查看 linux 内核源码目录 一、解压内核源码 ---- 将 下载的 Linux 内核源码 linux-5.6.14.tar.gz 拷贝到 Ubuntu 虚拟机中 , 执行 tar xvf linux-5.6.14.tar.gz 命令 , 解压 Linux 内核源码 ; 解压完毕后 , linux-5.6.14 目录中就是解压后的 Linux 内核源码 ; 二、查询当前 Linux 内核版本号 ---- 执行 uname -a 命令 , 查询当前 Ubuntu 系统的 Linux 内核版本号 , 执行过程如下 : root@ubuntu x86_64 x86_64 x86_64 GNU/Linux root@ubuntu:~/kernel# root@ubuntu:~/kernel# 当前的内核版本号是 4.13.0 ; 三 、进入并查看 linux 内核源码目录 ---- 进入之前解压的 linux-5.6.14 内核源码目录 ; root@ubuntu:~/kernel# ls linux-5.6.14 linux-5.6.14

    92.5K60编辑于 2023-03-30
  • 来自专栏CU技术社区

    4岁小女孩给Linux内核贡献提交

    今天在reddit上看到一个有趣的讨论,一个4岁的小女孩给Linux提交了一个补丁,并且这个补丁合并到了代码中。 链接如下: https://www.reddit.com/r/linux/comments/2pqqla/kernel_commit_4_year_old_girl_fixes_formatting_to /cmzfvpl/ 我们看看她修改了什么 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/? 1、Linux 内核可以让所有人参与进来。 2、Linux 内核非常严谨,只要有错误,任何人都可以修改它。 我认为,写代码更重要的是一种思想,小女孩发现了这个问题,说明她肯定阅读过那份文档,对于我们很多人,都不能做到详细的阅读内核文档。 不说了,我也要去找个出错的字符提交一下。

    1.2K30发布于 2019-12-27
  • 来自专栏程序IT圈

    Linux 内核 vs Windows 内核

    对于服务器使用的操作系统基本上都是 Linux,而且内核源码也是开源的,任何人都可以下载,并增加自己的改动或功能,Linux 最大的魅力在于,全世界有非常多的技术大佬为它贡献代码。 操作系统核心的东西就是内核,这次我们就来看看,Linux 内核和 Windows 内核有什么区别? ---- 内核 什么是内核呢? 现代操作系统,内核一般会提供 4 个基本能力: 管理进程、线程,决定哪个进程、线程使用 CPU,也就是进程调度的能力; 管理内存,决定内存的分配和回收,也就是内存管理的能力; 管理硬件设备,为进程与硬件设备之间提供通信能力 完成第一版 Linux 后,Linux Torvalds 就在网络上发布了 Linux 内核的源代码,每个人都可以免费下载和使用。 Monolithic Kernel Monolithic Kernel 的意思是宏内核Linux 内核架构就是宏内核,意味着 Linux内核是一个完整的可执行程序,且拥有最高的权限。

    20.8K30发布于 2021-03-07
  • Linux内核内核编程】Linux2.6 后的内核特点

    2003 年发布的 Linux 2.6 内核是一个里程碑,它标志着 Linux 从 “极客玩具” 向全场景操作系统的蜕变。 如果说 2.4 内核Linux 进入企业级市场的起点,那么 2.6 及后续版本则是一场从内到外的 “现代化革命”,不仅让 Linux 在服务器、桌面、嵌入式领域全面开花,更奠定了移动互联网和云计算时代的技术基石 4K 电影或大型数据集。 ALSA(高级 Linux 声音架构)免费开源,支持: 多通道音频(5.1、7.1 声道),在家看电影有影院级体验。 软件合成器(如 FluidSynth),音乐制作爱好者可以用 Linux 编曲。 8.2 big.LITTLE 架构支持(3.10 引入) ARM 的大小核设计(如 4 个 Cortex-A53 小核 + 4 个 Cortex-A73 大核)需要内核智能调度: 看小说、刷微博时用小核

    49510编辑于 2026-01-21
  • 来自专栏韩曙亮的移动开发专栏

    Linux 内核】编译 Linux 内核 ⑦ ( 安装内核模块 | 安装内核 | 重启系统 | 查看当前内核版本 )

    文章目录 一、安装内核模块 二、安装内核 三、重启系统 四、查看当前内核版本 一、安装内核模块 ---- 确保 Linux 内核编译完成 , 没有任何报错之后 ; 参考 【Linux 内核】编译 Linux 内核 ⑥ ( 安装 OpenSSL | 安装其它依赖库 | 内核编译完成 ) 博客 ; 进入 Linux 内核源码的根目录 , 执行 sudo make modules_install 命令 , 安装编译好的内核模块 ko INSTALL crypto/lz4hc.ko INSTALL crypto/md4.ko INSTALL crypto/michael_mic.ko INSTALL crypto -5.6.14# root@ubuntu:~/kernel/linux-5.6.14# 二、安装内核 ---- 内核模块安装完成后 , 执行 sudo make install 命令 , 安装内核 ; 下面的内核安装过程会持续很长时间 ; 内核安装过程 : root@ubuntu:~# cd kernel/linux-5.6.14 root@ubuntu:~/kernel/linux-5.6.14

    20.8K50编辑于 2023-03-30
  • 来自专栏txp玩Linux

    Linux内核学习(一)之Linux内核源码目录

    root root 4096 سبت 29 2010 security drwxrwxr-x 21 root root 4096 سبت 29 2010 sound drwxrwxr-x 4 这个文件就是linux内核特有的内核编译体系需要用到的文件 MAINTAINERS:这个文件主要是介绍了维护人员列表以及如何提交内核更改 Makefile:这个是linux内核的总makefile,整个内核工程用这个 init:init是初始化的意思,这个目录下的代码就是linux内核启动时初始化内核的代码。 ipc:ipc就是inter process commuication,进程间通信,里面都是linux支持的IPC的代码实现 kernel:kernel就是内核,就是linux内核,所以这个文件夹下放的就是内核本身需要的一些代码文件 scripts:脚本,这个目录下全部是脚本文件,这些脚本文件不是linux内核工作时使用的,而是用来辅助对linux内核进行配置编译生产的。

    14.4K51编辑于 2022-03-21
  • Linux内核模块】Linux内核模块简介

    你是否好奇过,为什么 Linux 系统可以在不重启的情况下支持新硬件?为什么修改一个驱动程序不需要重新编译整个内核? 这一切都离不开 Linux 的 "模块化魔法"—— 内核模块(Kernel Module)。 作为 Linux 内核最灵活的特性之一,内核模块让开发者可以动态扩展内核功能,今天就来揭开这个神秘组件的面纱。​ 一、什么是内核模块? 1.1 先打个比方:给内核装 "插件"​ 如果把 Linux 内核比作一台电脑主机,那么内核模块就是可以随时插拔的外设:​ 整个内核:像预装了主板、CPU、基础外设的主机,提供最核心的运行环境​ 内核模块 查看内核日志(验证初始化函数执行) dmesg | tail # 4. 卸载模块 sudo rmmod hello_module.ko # 5.

    64110编辑于 2026-01-21
  • 来自专栏机器和智能

    Linux内核设计思想】一、Linux内核相关概念

    什么是Linux内核 Linux系统的基础包括内核、C库、编译器、工具集和系统的基本工具,比如登陆程序和shell。当我们说到Linux这个词时,一般指的是Linux内核Linux内核是一个单内核,它运行在单独的内核地址空间,但是它汲取了微内核的精华,相对于Unix内核Linux内核有很多新的特性: Linux支持动态加载内核模块。 虽然Linux内核也是单内核,但是在需要的时候可以动态的卸载和加载部分内核代码; Linux支持对称多处理(SMP)机制; Linux内核可以抢占,允许在内核运行的任务优先执行; Linux内核不区分线程和其他一般的进程 ,对内核来说,所有进程都一样,只不过有的共享资源; Linux提供具有设备类的面向对象的设备模型、热插拔事件,以及用户空间的设备文件系统(sysfs); Linux忽略了一些拙劣的Unix特性,并且很好的体现了自由的特性 ; 内核版本号与开发者社区 Linux内核版本号总共包含三个数字,用 .

    3.2K10编辑于 2024-08-08
  • 来自专栏运维小路

    Linux内核-内核模块&参数

    我们的Linux进阶部分,到目前为止,已经讲过:硬件,日常运维,基础软件,日志,进阶命令,防火墙,Shell编程,以及本章将要讲解的内核相关内容,和最后一章Linux系统。 让我们了解和熟悉基本的Linux内核相关的信息,Linux内核我们主要从以下几个方面来讲解: Linux内核-什么是内核 Linux内核-内核模块&参数(本章节) Linux内核-proc文件系统 Linux 内核-sys文件系统 Linux内核-tmpfs文件系统 Linux内核升级,在运维生涯中,其实并不常见。 查看内核参数 sysctl -a 修改内核参数 sysctl -w net.ipv4.ip_forward=1 echo 1 > /proc/sys/net/ipv4/ip_forward 持久化内核参数 vi /etc/sysctl.conf #添加格式如下 net.ipv4.ip_forward=1 #执行该命令,或者重启也可以生效 sysctl -p 常见的内核参数分类介绍 sysctl

    2.2K10编辑于 2024-11-01
  • 来自专栏Debian中国

    Alpine Linux 3.11更新发布:基于Linux 5.4内核 支持树莓派4

    开发者Natanael Copa今天正式推出了Alpine Linux 3.11.0重大版本更新,在修复BUG、更新组件和进行安全升级的同时引入了大量新功能。 新版本基于最新的Linux Kernel 5.4内核,添加了对树莓派4 Model B单板计算机的支持,可以使用AArch64 (ARM 64-bit)和ARMv7架构镜像进行安装。 ? Alpine Linux 3.11.0还初步支持了GNOME和KDE Plasma桌面环境,用户可以从各大软件储存库中进行安装,支持下一代Vulkan图形API,以及为Direct3D 9/10/11提供基于 Alpine Linux 3.11.0还对诸多组件进行了更新,包括Busybox 1.31.1,Crystal 0.31.1,Erlang 22.1,GCC 9.2.0,Git 2.24.1,Go 1.13.4 在后台性能方面删除了linux-vanilla,官方推荐在从此前版本升级的时候安装 linux-lts,并弃用了对Python 2软件包的支持,该软件包将在下一版本中完全删除。

    2.1K20发布于 2020-01-21
  • 来自专栏charlieroro

    Linux 内核参数

    /proc/sys/net/ipv4: ip_local_port_range:限制了作为TCP或UDP对目标发起连接所选择的本地端口范围,其定义受内核版本影响。 和centos的实现是不一样的,如linux内核3.10版本的初始接收窗口定义为10mss,但centos 3.10内核中的初始窗口大小定义为TCP_INIT_CWND * 2,即20*MSS大小。 net.ipv4.tcp_orphan_retries的默认值为0,内核计算时会重置为8。 在高版本的Linux中,默认为1 tcp_reordering:通知内核在一条TCP中需要重组的报文数目,此时不考虑报文丢失。如果大于该值,会认为有报文丢失,TCP栈会自动切换到慢启动。 TCP下设置为net.ipv4.tcp_rmem的默认值 wmem_default:设置了TCP/UDP/Unix等socket的发送缓存区默认值,由内核自动调整,不建议修改。

    10.2K32发布于 2020-03-23
  • 来自专栏m0w3n

    linux内核编译

    linux内核下载: https://mirrors.edge.kernel.org/pub/linux/kernel/ https://elixir.bootlin.com/linux/v4.14.34 /source http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/ 查看系统位数: getconf LONG_BIT ? 查看内核版本: cat /proc/version ? uname -a ? 下载内核4.4.38.tar.gz ? 树莓派使用 wget https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.4.38.tar.gz 下载到 /home/pi 路径下 解压 tar -zxvf linux-4.4.38.tar.gz ?

    12.6K10发布于 2020-02-28
  • 来自专栏技术进阶

    linux 内核优化

    sshd_config PermitRootLogin no 增加sudoer组 /etc/sudoers %sysadm ALL=(ALL) NOPASSWD: ALL 优化系统内核参数 /etc/sysctl.conf net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_abort_on_overflow = 1 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_probes = 3 net.ipv4.tcp_tw_reuse = 1 net.ipv4.ip_local_port_range = 10000 65000 net.ipv4.ip_forward = 0 net.ipv4 = 0 net.ipv4.conf.all.secure_redirects = 0 net.ipv4.conf.default.secure_redirects = 0 net.core.netdev_max_backlog

    1.8K21编辑于 2021-12-24
  • 来自专栏CSDN搜“看,未来”

    Linux内核概述

    文章目录 Linux内核简介 操作系统与内核简介 Linux内核与传统Unix内核的比较 Linux内核版本 在什么地方找源码 内核没有内存保护机制 同步和并发 Linux内核简介 本专栏,用于记录我对 Linux内核与传统Unix内核的比较 当Linus和其他内核开发者设计Linux内核时,他们并没有完全彻底地与Unix诀别。 以下是对Linux 内核与Unix各种变体的内核特点所作的分析比较: ●Linux支持动态加载内核模块。尽管Linux内核也是整体式结构,可是允许在需要的时候动态地卸除和加载部分内核代码。 Linux内核版本 Linux内核有两种:稳定的和处于开发中的。稳定的内核具有工业级的强度,可以广泛的应用和部署。新推出的稳定内核大部分都只是修正了一些Bug或是加入了一些新的设备驱动程序。 在什么地方找源码 1、内核源码通常安装在 /usr/src/linux下。 2、去Linux内核开发者社区找,只要你的英文水平够高。

    1.7K20发布于 2020-08-25
  • 来自专栏腾讯技术工程官方号的专栏

    Linux内核解读

    1.os运行态 X86架构,用户态运行在ring3,内核态运行在ring0,两个特权等级。 (1)内核、一些特权指令,例如填充页表、切换进程环境等,一般在ring0进行。 内核态crash,整机需要重启。 (4)通过页表做进程隔离,进程之间内存一般不可见(共享内存除外)。而内核态内存全局可见。 执行抢占,分为用户态抢占和内核态抢占。一般只打开用户态抢占,只有实时性要求非常高的场景,考虑打开内核态抢占。 内核态抢占,则是在内核态运行时,触发异常后,执行抢占,例如中断、tick等到来可以执行抢占。 4.一些特殊情况。

    72910编辑于 2024-02-06
领券