首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏AI机器学习与深度学习算法

    机器学习入门 4-8 scikit-learn中的scaler

    本系列是《玩转机器学习教程》一个整理的视频笔记。本小节主要介绍在sklearn中使用数据归一化。

    1.5K00发布于 2019-11-13
  • 来自专栏运维小路

    Linux内核-什么是内核

    让我们了解和熟悉基本的Linux内核相关的信息,Linux内核我们主要从以下几个方面来讲解: Linux内核-什么是内核(本章节) Linux内核-内核参数 Linux内核-proc文件系统 Linux 内核-sys文件系统 Linux内核-tmpfs文件系统 我们都知道安卓手机,但是安卓手机有很多厂商。 什么是Linux内核 Linux 内核是Linux操作系统的核心部分,它是一个自由和开放源代码的类Unix操作系统内核。 升级内核 在智能手机早期,有一个概念叫刷机就是给手机更换操作系统,实际上和升级内核差不多。 Linux内核的官方网址就是https://www.kernel.org/ 本地内核文件 我们在Linux基础-linux目录介绍过/boot目录就是内核相关的的目录,这个是未升级内核之前的目录结构,可以和上面的内核版本进行对应

    5.4K10编辑于 2024-11-01
  • 【Linux内核内核编程】Linux内核的组成

    作为全球应用最广泛的开源操作系统内核,Linux内核不仅支撑着Android系统、云计算平台和超级计算机,更是理解现代操作系统原理的最佳实践样本。 一、源代码目录:打开内核世界的地图​ 典型内核源码目录结构(以Linux 5.15为例): linux-5.15/ ├── arch/ # 硬件架构代码(x86, arm, riscv 3)​ 3.2 内存空间划分(以 32 位系统为例)  +------------------+ 4GB(虚拟地址空间) | 内核空间(3-4GB) | 所有进程共享,存放内核代码/数据 +----- :​ 用户程序执行read(fd, buf, len)​ 触发陷阱指令(x86 的syscall),CPU 切换到内核态​ 内核执行sys_read函数,完成文件读取​ 返回用户态,继续执行用户程序​ 类比:​ 用户空间像普通居民区,内核空间像保护区。

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

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

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

    20.8K50编辑于 2023-03-30
  • 来自专栏HeaiKun

    内核和微内核

    内核 所有的内核代码都编译成一个二进制文件,所有的内核代码都运行在一个大内核地址空间里,内核代码可以直接调用和访问,效率高且性能好。 微内核 把操作系统分成多个独立的功能模块,每个功能模块之间访问需要通过消息来完成,因此效率没那么高。 宏内核和微内核的架构图如下: ? 宏内核和微内核的架构图 现代的操作系统中 windows 采用的就是微内核的方式,内核保留操作系统最基本的功能,进程调度,内存管理,通信等模块,其他功能放到用户态来实现。 Linus当初在设计Linux操作系统时采用的是宏内核架构。但是Linux在20年来的发展中,不断融入微内核的一些精华设计,如模块化设计,抢占式内核,动态加载内核模块等。 和微内核实现的模块化不一样,它和静态编译的内核函数一样,运行在内核中。

    2.8K20发布于 2020-07-07
  • UCOSIII内核 VS FreeRTOS内核

    UCOSIII内核 VS FreeRTOS内核 UCOS-III和FreeRTOS都是优秀的实时操作系统内核,但它们在设计哲学、性能和适用场景上有显著区别。 内核提供丰富、精致的功能,强调对每一个细节的完全掌控。适合用于那些“不允许失败”的场景。 感觉:专业、完整、可控,但学习和配置的门槛稍高。 内存占用与内核裁剪 这是关键区别点,两者都支持裁剪,但方式不同: FreeRTOS: “空白画布” 哲学:从零开始。内核极小,默认只包含最核心的调度器。 结果:即使大幅裁剪,因其内核基础结构更复杂,最终体积通常仍大于最简配置的FreeRTOS(ROM ~15-25KB)。 内核架构 微内核,模块化 宏内核,集成化 FreeRTOS更灵活,UCOS-III更完整。 任务调度 固定时间片轮转 可定制时间片轮转 UCOS-III在调度上更精细。

    69610编辑于 2026-02-02
  • 来自专栏程序IT圈

    Linux 内核 vs Windows 内核

    操作系统核心的东西就是内核,这次我们就来看看,Linux 内核和 Windows 内核有什么区别? ---- 内核 什么是内核呢? 所以,这个中间人就由内核来负责,让内核作为应用连接硬件设备的桥梁,应用程序只需关心与内核交互,不用关心硬件的细节。 ? 内核 内核有哪些能力呢? 还有一种内核叫混合类型内核,它的架构有点像微内核内核里面会有一个最小版本的内核,然后其他模块会在这个基础上搭建,然后实现的时候会跟宏内核类似,也就是把整个内核做成一个完整的程序,大部分服务都在内核中, PE 文件结构 ---- 总结 对于内核的架构一般有这三种类型: 宏内核,包含多个模块,整个内核像一个完整的程序; 微内核,有一个最小版本的内核,一些模块和服务则由用户态管理; 混合内核,是宏内核和微内核的结合体 ,内核中抽象出了微内核的概念,也就是内核中会有一个小型的内核,其他模块就在这个基础上搭建,整个内核是个完整的程序; Linux 的内核设计是采用了宏内核,Windows 的内核设计则是采用了混合内核

    20.7K30发布于 2021-03-07
  • 来自专栏韩曙亮的移动开发专栏

    【Linux 内核】宏内核与微内核架构 ( 操作系统需要满足的要素 | 宏内核 | 微内核 | Linux 内核动态加载机制 )

    文章目录 一、操作系统需要满足的要素 二、宏内核 三、微内核 四、Linux 内核动态加载机制 一、操作系统需要满足的要素 ---- 电脑上运行的 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要 ---- 宏内核 : 内核代码 编译成 二进制文件 , 内核 运行在 一个 大内核 地址空间 中 , 可以 直接 访问 , 调用 内核代码 , 这种内核优点是 效率高 , 性能强 ; 下图中 , 最上层是 " 系统调用 " , 中间是 " 宏内核 " , 最下方是 硬件层 ; 宏内核优点 : 设计简单 , 性能高 ; 三、微内核 ---- 微内核 : 将 操作系统 拆分成 多个 独立功能模块 , 这些 进行通信 , 微内核优点 : 稳定性好 , 实时性好 ; 微内核缺点 : 高度模块化 , 模块之间只能通过消息传递信息 , 效率低 ; 四、Linux 内核动态加载机制 ---- Linux 内核模块动态加载 , 必须 遵守规定的接口 , 来访问内核 , 这样 开发内核模块 , 变得 更加容易 , 方便 ; 与平台无关 : 内核模块 可以 设计成 与 平台无关的 模块 , 如 : 文件系统 ;

    5.8K30编辑于 2023-03-30
  • 来自专栏用户画像

    1.4.1 大内核和微内核

    有关这个 问题的回答,形成了两种主要的体系结构:大内核与微内核。 大内核系统将操作系统的主要内容模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务。 将 操作系统内核分为基本进程管理、 虚存、I/O与设备管理、IPC、文件系统等几个层次,继而定义层次之间的服务结构,提高操作系统内核设计上的模块化。 为解决操作系统的内核代码难以维护的问题,于是提高了微内核的体系结构。它将内核中最基本的功能(如进程管理)保留在内核,而将那些不需要再核心态执行的功能移到用户态执行,从而降低了内核的设计复杂性。 而那些移 除内核的操作系统代码根据分层的原则被划分为若干服务程序,他们的执行相互独立,交互则都借助于微内核进行通信。 微内核有效地分离了内核与服务、服务与服务,使它们之间的接口更加清晰,维护的代价大大降低,各部分可以独立地优化和演进,从而保证了操作系统的可靠性。

    2K40发布于 2018-08-24
  • 来自专栏运维小路

    Linux内核-内核模块&参数

    让我们了解和熟悉基本的Linux内核相关的信息,Linux内核我们主要从以下几个方面来讲解: Linux内核-什么是内核 Linux内核-内核模块&参数(本章节) Linux内核-proc文件系统 Linux 内核-sys文件系统 Linux内核-tmpfs文件系统 Linux内核升级,在运维生涯中,其实并不常见。 内核模块 内核模块是一种可以在运行时动态加载到操作系统内核中的软件组件。 二、常用命令 1.查看内核模块 #查看当前系统加载的内核模块 lsmod #这个目录下就是Linux服务器有的内核模块 /lib/modules/内核版本/kernel 2.添加新的内核模块 [root 内核参数 我们刚刚介绍的内核模块,主要是为了从系统层面支持某个功能,而内核参数,则可以理解为在实现某个具体功能的参数,只是这个参数是内核层面的。

    2.2K10编辑于 2024-11-01
  • 来自专栏【计网】Cisco

    操作系统 | 添加系统调用

    -1至图4-3. 2.记事本打开/usr/src/linux-2.4.22/arch/i386/kernel/entry.S并将254行ni改成sym20202624如图4-4至4-7. 3.重新编译内核 依次输入以下命令如图4-8至图4-10: cd /usr/src/linux-2.4.22 make clean make dep make bzImage make install 使用新内核引导如图4-11. 5.编译并运行test11.c如图4-12至图4-15. 6.编译这个程序:gcc –otest test11.c 7.运行这个程序:. /test 1.4 实验过程 图4-1 图4-2 图4-3 图4-4 图4-5 图4-6 254行ni改成xxx学号 图4-7 编译内核4-8 图4-9 图4-10 重启 图4-11 图4-12 图 文件下添加了系统调用,由于是在核心态下运行因此这里的输出函数使用printk()函数,并且在entry.S文件添加系统调用,将其第254行进行修改,最后使用make dep重新编译并reboot重启,在添加系统调用内核下编写文件后运行我发现会报错

    55010编辑于 2024-02-20
  • 4-8人同服搭建教程详解

    本文详解如何通过搭建专属服务器实现4-8人同服联机,涵盖服务器配置要求、活动页选购、防火墙设置及客户端连接配置,帮助玩家突破人数限制,与好友畅享多人联机体验。 1.2 专属服务器的优势 对比维度 内置联机 专属服务器 最大人数 4人 4-8人 稳定性 依赖主机在线 7×24小时运行 参数自定义 不支持 支持经验倍率、捕获率等调整 隐私性 可能遇到陌生人 仅邀请好友加入 ServerPassword 服务器密码 建议设置 AdminPassword 管理员密码 建议设置强密码 PublicPort 游戏端口 默认8211 ServerPlayerMaxNum 最大玩家数 建议设为4- Restart 重启服务器 /Kick [玩家名] 踢出指定玩家 /Ban [玩家名] 禁止指定玩家加入 /adminpassword [密码] 输入管理员密码获取权限 八、总结 《幻兽帕鲁》想要实现4-

    1.8K10编辑于 2026-07-20
  • 来自专栏韩曙亮的移动开发专栏

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

    文章目录 一、下载 Linux 内核源码 二、使用 VSCode 阅读 Linux 内核源码 一、下载 Linux 内核源码 ---- 参考 【Linux 内核】编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 ) 博客 , 下载 Linux 5.6.18 版本的内核源码 ; 5.x 内核源码下载地址 .x/linux-5.6.18.tar.gz 下载完 Linux 源码后 , 如果在 Windows 系统中解压 , 需要使用管理员权限在 命令行终端 中解压 , 参考 【错误记录】解压 Linux 内核报错 : 其系统调用是相同的 , 新的版本可能会增加新的系统调用 ; 设备文件 : 各内核版本的设备文件都是相同的 , 但是 内部接口 可能不同 ; 二、使用 VSCode 阅读 Linux 内核源码 -- , 点击 " 选择文件夹 " 按钮 , 此时就可以在 VSCode 中阅读 Linux 内核源码 ;

    29.1K30编辑于 2023-03-30
  • 来自专栏Sorrower的专栏

    内核必须懂(四): 撰写内核驱动

    首先是源码部分, 这里由于是内核, 所以c库的函数就不能用了, 比如printf这样的, 要用printk替代, 这里的k就是指kernel. CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel", 很明显这是一个内核编译的参数没生效 dmesg ---- 最后 目前来看, 内核驱动模块好像比用户态程序难不了多少, 但是当程序复杂下去, 调试就会越发困难了, 不比用户态.

    1.8K20发布于 2019-04-01
  • 【Linux内核内核编程】Linux2.6 后的内核特点

    1.2 内核抢占:让内核 “灵活刹车” 2.6 之前的内核只有在用户态才能抢占,内核态代码一旦运行就必须完成,这在实时场景中很危险(比如打印机卡纸时内核可能无法及时响应)。 2.6 实现了完全内核抢占: 即使在内核处理复杂操作(如文件系统读写)时,也能被高优先级任务打断,就像开车时随时能踩刹车。 八、ARM 架构的蜕变:从 “嵌入式小角色” 到 “移动芯片霸主” 8.1 设备树(Device Tree,3.1 引入) 以前 ARM 设备的硬件信息(如引脚配置、外设地址)硬编码在内核中,换个芯片型号就得改内核代码 设备树用 DTS 文件描述硬件,就像给内核一份 “硬件说明书”: 开发新板子时只需修改 DTS 文件,无需改动内核代码,大大加快嵌入式设备开发速度。 2.6 之后内核进化史:

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

    【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 23:25:58 UTC 2018 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

    92.5K60编辑于 2023-03-30
  • 来自专栏机器和智能

    【Linux内核设计思想】二、内核编译及内核开发的特点

    获取内核源码 在Linux内核官方网站即可下载最新Linux源码 http://www.kernel.org 我们一般应该下载最新的稳定版本Linux内核源码进行学习。 内核源码树由很多目录组成,其根目录及描述如下 在内核源码树根目录下还有一些文件,COPYING文件是内核许可证,CREDITS是开发者列表并包含了一些内核代码细节,MAINTAINERS是维护内核子系统和驱动程序的维护者列表 编译内核 内核源码在编译时可以进行配置和定制,我们可以把自己需要的功能和驱动程序编译进内核内核开发的特点 内核编程时不能访问C库,即没有 libc 库。 在用户空间编程时,我们可以调用C库函数,但是在内核编程时,内核无法链接标准C函数库,实际上其他一些库也无法使用。 在内核编程时,所用的头文件都是源码树的内核头文件,内核源码文件不能包含外部头文件。 在内核中也有一些C库函数并没有实现,比如 printf() 函数,但是内核中实现了一个叫 printk() 的函数。

    1.3K10编辑于 2024-08-08
  • 来自专栏PUSDN平行宇宙软件开发者网

    CentOS6内核太老更新内核

    title: CentOS6内核太老更新内核 date: 2020-04-01 23:31:42 tags: [CentOS] categories: [CentOS] ---- 前情提示 centOS6 安装docket或者其他软件比如gitea时候,提示kernel too old 报错截图: 查看当前内核版本 [root@iZ2zedmufcgu9ag37ix8e6Z gitea]# uname 在yum的elrepo源中有ml和lt两种内核,其中ml(mainline)为最新版本的内核,lt为长期支持的内核。 安装ml内核使用如下命令: # yum --enablerepo=elrepo-kernel -y install kernel-ml 安装lt内核使用如下命令: yum --enablerepo =elrepo-kernel -y install kernel-lt 此处选择lt内核 修改文件 内核升级完后需要修改内核的启动顺序,原来是1,需要改为0,vi或者vim vim /etc/grub.conf

    99230编辑于 2023-10-11
  • 来自专栏嵌入式ARM和Linux

    Linux内核24-内核同步理解

    2 如何请求内核服务 为了更好地理解内核是如何工作的,我们把内核比喻成一个酒吧服务员,他响应两种请求服务:一种是来自顾客,另外一种来自多个老板。 仔细研究,就会发现,前3条规则其实与内核中的异常和中断嵌套执行的规则是一样的。第4条规则就对应于内核抢占。 3 内核抢占 给内核抢占下一个完美定义很难。 因此,抢占式内核主要的特性就是运行在内核态的进程可以被其它进程打断而发生替换。 基于这个原因,Linux2.6内核允许用户在编译内核代码的时候,通过配置,可以使能和禁止内核抢占。 4 什么时候需要同步技术? 我们先了解一下内核进程的竞态条件和临界区的概念。 内核控制路径的交错执行给内核开发者带来很大的麻烦:必须小心地在异常处理程序、中断处理程序、可延时处理函数和内核线程中确定临界区。

    1.5K20编辑于 2022-08-15
  • 来自专栏脑电信号科研科普

    theta悖论:4-8 Hz的EEG振荡既反映睡眠压力又体现认知控制

    theta振荡(4—8赫兹)反映了警觉认知控制状态活动和睡眠剥夺,是睡眠状态下压力的标志。本研究中,我们调查了认知任务和睡眠剥夺期间中,脑电位振荡的差异。我们测量了18名年轻健康成年人(9名女性)在3种睡眠剥夺水平下执行6项任务的高密度脑电图。我们发现认知负荷和睡眠剥夺都增加了内侧前额叶皮质区域的theta功率;然而,睡眠剥夺导致了许多额叶其他部位的theta波增加。睡眠剥夺相关的theta(sdTheta)出现位置随任务不同而不同,在视觉空间任务和短时记忆任务中范围最广,在被动音乐学习任务中辅助运动区活动最强,而在空间任务时颞下回皮层最强。此外,任务行为的改变和睡眠剥夺时的theta增加相关,但是相关无任务特异性而且多重校正后不显著。总之,这些结果表示在睡眠剥夺期和认知过程中that a振荡主要发生在与当前行为无关的皮层区域。

    1.1K30编辑于 2023-01-16
领券