首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

操作系统 | 编写内核

操作系统实验之编写内核 1.1 实验目的 学习和掌握Linux内核编译过程 1.2 实验内容 完成Linux内核编译过程 1.3 实验步骤 实验步骤如下: 1.将U盘挂载到redhat虚拟机如图3-...16.输入make -install如图3-31图3-32. 17.输入vi /boot/grub/menu.lst并修改如图3-33图3-34. 18.输入reboot重启如图3-35. 19.选择新内核如图...27 图3-28 图3-29 图3-30 图3-31 图3-32 图3-33 图3-34 输入reboot 图3-35 图3-36 图3-37 1.5 心得体会 此次实验成功在虚拟机读取U盘内容并编写了内核...在编写内核重启时未命名自己的名字而重新又做了一遍,所以在使用reboot指令在选择内核页面会出现3个内核,在使用make modules编译内核模块以及make modules_install安装内核花了大量时间

12710

操作系统内核之争

1、内核分类 内核(Kernel)在计算机科学中是操作系统最基本的部分,主要负责管理系统资源。 中文版维基百科上将内核分为四大类: 单内核(宏内核); 微内核; 混合内核; 外内核。...这些非常模块化的用户态服务器用于完成操作系统中比较高级的操作,这样的设计使内核中最核心的部分的设计更简单。...然而后来的实验证明,纯微内核的系统实际上也可以是高效率的。大多数现代操作系统遵循这种设计范畴,微软公司开发的Windows操作系统就是一个很好的例子。...外内核内核系统,也被称为纵向结构操作系统,是一种比较极端的设计方法。...“老一点的操作系统都是宏内核的,也就是说,整个操作系统是一个运行在核心态的单独的a.out文件, 这个二进制文件包含进程管理,内存管理,文件系统以及其他。

2.8K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    看小说能写操作系统内核

    最近逛开源社区,发现一个开源项目 flash-linux0.11-talk 把学习操作系统源码,写成了一部小说,把内核当小说看,挺爽的。...简介 品读 Linux 0.11 核心代码这个开源项目,作者以写小说的方式进行介绍操作系统核心代码,深入浅出的介绍了操作系统是怎样写出来的。...部分章节标题: 大纲 项目主要分为6大模块: 第一部分:进入内核前的苦力活 第二部分:大战前期的初始化工作 第三部分:一个新进程的诞生 第四部分:shell 程序的到来 第五部分:从一个命令的执行看操作系统各模块的运作...第六部分:操作系统哲学与思想 细节 该开源项目每章的内容都写的简洁明了,就比如第一回,写到的就两行代码: mov ax,0x07c0 mov ds,ax 图文并茂的讲解了具体是什么意思 可见作者是很用心的讲解操作系统源码...小结 想想我们看小说的时候是不是很爽,看这个开源项目也是一样,作者也是想要像写小说一样的把操作系统源码,生动有趣的展现给我们。快看起来像刷小说一样,一口气刷完它。

    47130

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

    文章目录 一、操作系统需要满足的要素 二、宏内核 三、微内核 四、Linux 内核动态加载机制 一、操作系统需要满足的要素 ---- 电脑上运行的 操作系统 , 是一个 软件 ; 设备管理 : 操作系统需要...为 用户 和 应用程序 管理并分配电脑的 硬件资源 , 如 CPU , 磁盘 , 内存 , 网络 等 ; 开发环境 : 操作系统 要为 应用程序 开发 提供配套环境 ; 执行环境 : 操作系统...要为 应用程序 执行 提供配套环境 ; 虚拟性支持 : 支持多进程 , 每个运行的应用程序进程 , 都可以感觉到有专门的处理器提供系统服务 ; 并发性支持 : 操作系统需要有 执行多个线程的能力..., 线程是独立运行 , 独立调度的最基本单位 ; 二、宏内核 ---- 宏内核 : 内核代码 编译成 二进制文件 , 内核 运行在 一个 大内核 地址空间 中 , 可以 直接 访问 , 调用 内核代码...- 微内核 : 将 操作系统 拆分成 多个 独立功能模块 , 这些 独立功能模块 之间通过 " 消息 " 进行通信 , 微内核 效率低 ; 下图中 , 进程 , 文件系统 , 设备驱动 , 与 微内核

    4.4K30

    ubuntu降低内核版本后网络_Ubuntu换内核为旧版

    1、最近原来写的测试代码在Ubuntu18 可以内核版本,在新的安装的Ubuntu20 上无法运行,各种操作后想排除下是否是因为内核版本过高的原因,因此用到降低ubuntu内核版本的操作: 原ubuntu18...内核版本 Ubuntu20内核版本 2、首先通过apt-cache search linux| grep 5.4.0-80 查看目前的版本 3、然后 输入下面命令进行安装: sudo apt-get...install linux-headers-5.4.0-80-generic linux-image-5.4.0-80-generic 安装对应的内容即可 4、安装完成后可以查看此时内核版本有几个:...sudo update-grub 6、重启后可进入ubuntu高级选项 (此图为随意摘抄,按照自己版本来) 7、此时选择刚才设置的低版本的内核,不要选择recovery mode 8、重新进入ubuntu...系统后,可查看内核版本 到此ubunt内核版本降低完成 本次参考的链接:ubuntu降低你使用的内核到指定版本_良知犹存的博客-CSDN博客 后续可能出现问题: 按照上述过程重启后进行加载驱动,执行命令

    1.8K30

    操作系统』微内核结构的操作系统几何?(优缺点)

    内核操作系统内核操作系统,即实现了一个可在其上构建通用 OS 的基础内核,该内核程序运行在核心态,开机常驻内存。...当前微内核操作系统结构仍没有一致公认的定义,但可从以下4方面进行描述: 足够小的内核:微内核并非一个完整的OS。...与此同时,也必然改善系统的灵活性,不仅可在操作系统中增加新的功能,还可修改原有功能,以及删除已过时的功能,以形成一个更为精干有效的操作系统。...3) 可移植强 在微内核结构的操作系统中,所有与特定CPU和I/O设备硬件有关的代码,均放在内核内核下面的硬件隐藏层中,而操作系统其它绝大部分(即各种服务器)均与硬件平台无关,因而,把操作系统移植到另一个计算机硬件平台上所需作的修改是比较小的...缺点 效率相对较低: 在微内核OS中,由于采用了非常小的内核,以及客户/服务器模式和消息传递机制,这些虽给微内核OS带来了许多优点,但由此也使微内核OS存在着潜在的缺点。

    2.1K20

    操作系统分为用户态和内核态_内核态 用户态

    操作系统内核并不知道它的存在,它完全是在用户空间中创建。 用户级线程有很多优势,比如。 管理开销小:创建、销毁不需要系统调用。 切换成本低:用户空间程序可以自己维护,不需要走操作系统调度。...可以利用多核 CPU 优势:内核拥有较高权限,因此可以在多个 CPU 核心上执行内核线程。 操作系统级优化:内核中的线程操作 I/O 不需要进行系统调用;一个内核线程阻塞了,可以立即让另一个执行。...切换成本较高:切换的时候,也同样存在需要内核操作,需要切换内核态。 用户态线程和内核态线程之间的映射关系 线程简单理解,就是要执行一段程序。程序不会自发的执行,需要操作系统进行调度。...相当于进程主线程的延展,使用的是操作系统分配给进程主线程的时间片段。内核线程由内核维护,由操作系统调度。...内核线程可以独立执行,操作系统会分配时间片段。因此内核态线程更完整,也称作轻量级进程。内核态线程创建成本高,切换成本高,创建太多还会给调度算法增加压力,因此不会太多。

    2.2K21

    【Linux 内核 内存管理】Linux 内核内存布局 ① ( 查看 Linux 操作系统位数 | 查看 Linux 操作系统软硬件信息 )

    文章目录 一、查看 Linux 操作系统位数 二、查看 Linux 操作系统软硬件信息 一、查看 Linux 操作系统位数 ---- 在 64 位的 Linux 中 , 使用 48 位 表示 "...虚拟地址空间 " ; 使用 45 位 表示 " 物理地址空间 " ; 执行 getconf LONG_BIT 命令 , 可以查看 Linux 操作系统 是 32 位还是 64 位的 ;...得到结果 64 , 说明该系统是 64 位 Ubuntu Linux 操作系统 ; 二、查看 Linux 操作系统软硬件信息 ---- 执行 cat /proc/cpuinfo 命令 , 可以查看..." Linux 内核位数 “ 和 ” 系统的软硬件信息 " ; 输出内容解析 : vendor_id : GenuineIntel CPU 制造商 GenuineIntel cpu family :...CPU 中的编号 cpu cores : 1 逻辑核心 所在的 物理核心数 apicid : 0 区分不同的逻辑核心编号 , 该编号不一定连续 ; bogomips : 5807.99 Linux 内核启动时测量的

    32K20

    操作系统内核中的初始化工作

    看完了进入内核前的工作后,我网络编程课的抄写作业自然是可以圆满完成啦,不过看了一部分后觉得确实很有意思,所以也是决定继续看下去,并且计划看完linux源码后跟着MIT6.s081写一个小的操作系统内核,...操作系统内核中的初始化工作 概览main函数 现在我们已经进入操作系统内核啦,上篇文章我们说道,我们将main函数push到栈顶,而cs:eip是CPU执行下一条指令的地址,此时指向栈顶,所以接下来就开始执行...操作系统实质上是一个中断驱动的死循环,就像我们之前概览main函数里面看到的一样,最后是进入一个死循环,操作系统主要通过提前注册的中断机制和其对应的中断处理函数来进行一些事件的处理,比如说点击鼠标,按下键盘或者是执行程序...定时器和时钟中断函数是操作系统主导进程调度的关键,操作系统进行进程管理很多时候就需要这样的外部信号出发中断,来对进程进行控制。...比如java的一些文件io的实现,是依赖操作系统底层的sys_read方法的,在操作系统层面java的文件流io的代码会通过运行汇编指令int 0x80去调用系统调用这个中断,从而执行操作系统内核态的方法

    72730

    写一个操作系统_03 引导内核

    操作系统引导 MBR   接上一篇BIOS启动,BIOS完成了基础的硬件检测和硬件的中断向量表的初始化,然后BIOS找到MBR并且把MBR加载在内存中,跳转到该位置。...MBR引导扇区的内容是: 446字节的引导程序及参数 64字节的分区表(每个分区表项16字节,因此只能有4个主分区) 2字节的结束标志0x55和0xaa   MBR只是操作系统引导的其中一个环节,并不是最直接的引导代码...,MBR的主要作用是加载操作系统提供的bootloader。...为了方便MBR找到内核加载器,约定好加载器就存储在各分区的开始扇区,这个扇区被称为操作系统引导扇区也称为OBR(OS Boot Record), 扇区里面的程序便是内核加载器,比如我们常见的x86平台上的...最后,Bootloader 就将控制权转交到 Linux 内核,然后由内核开始执行。

    1.1K20

    操作系统性能提升之内核锁优化

    例如,内核旁路通过在用户空间中移动多个操作来实现这个目标,还有就是为某些类别的应用程序重构底层操作系统....虽然,应用程序专有化和内核绕过了存储、网络化和加速器,但是,内核中的并发控制可能是整体性能的关键。 1. 操作系统的性能:内核内核锁是一种用于控制进程访问共享资源的机制。...用户首先编写自己的代码来根据用例修改内核中的锁协议,然后操作系统替换内核内部带注释的锁函数,流程示意如下: 用户指定了一个锁策略(1),eBPF验证者在编译后验证它,同时考虑到eBPF限制和互斥安全属性...4.1 API 各种API支持了锁策略的灵活实现,同时保障了安全,操作系统底层实现依赖于eBPF来修改内核锁。通过使用eBPF和锁API,为内核中的一组锁实例实现了所需的策略。...没有CPU的操作系统 一种编译器视角下的python性能优化 操作系统中的系统抽象 温故知新:从计算机体系结构看操作系统操作系统看Docker 感知人工智能操作系统 Linux 内核裁剪框架初探

    25930

    Linux操作系统原理—内核网络协议栈

    前言 本文主要记录 Linux 内核网络协议栈的运行原理 数据报文的封装与分用 image.png 封装:当应用程序用 TCP 协议传送数据时,数据首先进入内核网络协议栈中,然后逐一通过 TCP/IP...image.png 分用:当目的主机收到一个以太网数据帧时,数据就开始从内核网络协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议都会检查报文首部中的协议标识,以确定接收数据的上层协议。...毫无疑问,这是整个内核网络协议栈的核心。这一层主要实现了各种网络协议,最主要的当然是 IP,ICMP,ARP,RARP,TCP,UDP 等。...image.png sock_init() 包含了内核协议栈的初始化工作: sock_init:Initialize sk_buff SLAB cache,注册 SOCKET 文件系统。...在中断服务子程序中,数据会从硬件的缓冲区复制到内核的空间缓冲区,并包装成一个数据结构(sk_buff),然后调用对驱动层的接口函数 netif_rx() 将数据包发送给设备无关层。

    3.2K00
    领券