简单的linux内核,构造一个简单的Linux内核的MenuOS

本文主要介绍了Linux内核的关键组件,包括arch/x86目录下的代码、fs/文件系统、init/内核启动、start_kernel函数、mm/内存管理和中断处理。此外,还探讨了如何使用gdb进行内核调试,如冻结内核和水平分割窗口。重点解析了init_task、kernel_init和rest_init等关键过程,它们在Linux系统启动和进程管理中的作用。
摘要由CSDN通过智能技术生成

---恢复内容开始---

一、Linux内核源代码简介

arch/x86目录下的代码是我们最重点关注的

fs/文件系统

init/内核启动相关的代码

start_kernel函数相当于C语言的main函数

kernel/Linux内核的核心代码

mm/内存管理代码

二、构造一个简单的Linux系统

使用实验楼构造的实验截图:

6819f8f67db94353aa41bbfa8c0f3a4f.jpg

自己搭建实验楼的过程:

fd35cfe0c4b547bcadc07907adf78330.jpg  

1ea55772b462479e947088ef8c2f9037.jpg

ee4f1fa2129549bb97e43c060f6e632e.jpg

三、使用gdb跟踪调试Linux内核的方法

一、使用gdb跟踪调试Linux内核的方法

(1)使用gdb跟踪调试内核,冻结起来

ba50495348b04841a876a407ca6c442b.jpg

(2)使用水平分割,新创建一个窗口使用gdb

a807f8f1ecc14961aa4ddc8c8eafed9d.jpg

01a98dd7596a407ba35e4a585aabea41.jpg

5be42fd80dab431aa8e4f52d18c76eed.jpg

二、简单分析一下Start_Kernel

init_task 即手工创建的PCB,0号进程即最终的Idle进程。

trap_init 初始化中断,设置中断门,系统陷阱门。

init_process Linux系统的第一个用户态进程,根目录下的init程序(作为1号进程)由kernel_init创建。

rest_init 0号进程,一直存在的进程,创建1号进程。

当系统没有进程需要执行时就调度到idle进程。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
enuetOS一个为x86(IBM兼容)计算机开发的业余操作系统,它是一款完全由汇编语言(32位)写成的迷你操作系统,因此它更小、更快,并且系统本身用应用程序占用很少的系统资源。   项目最初是芬兰人 Ville Turjanmaa(赫尔辛基大学) 利用业余时间开发完成。现在世界各地都有 MenuetOS 的开发者,他们正在不断完善这个操作系统。    这个项目目前由 Jarek Pelczar(jarekp3[@]wp[.]pl) 接管。项目的中文版由本站站长 E-mean X. 开发。   MenuetOS 并不像现在流行的 Linux 及其它如 FreeBSD、Minix 一样是一个类 Unix 的操作系统,它完全由32位汇编语言编写的系统。Menuet 及其应用程序不基于当前任何一款流行的操作系统而运作,主要是为在开发过程中避免复杂的编程及各种不可预料的 Bug。   尽管Menuet是完全用 32位汇编写成的,但它的系统程序构架并不完全是为汇编语言而保留,它的接口实际上可用于任何程序设计语言。尽管如此,系统开发的目的还是为更简化 Asm程序设计而设计,系统下 GUI编程尤其体现这一点。 ·Menuet OS 的特点   - 多任务,多线程  - 图形用户界面,可以达到 32bit color,1280x1024 分辨率  - 程序开发比 Windows 和 Linux 之类的系统更容易  - IDE环境:自带应用程序及内核编辑编译工具  - 完全开放的源代码(GPL)  - TCP/IP 协议栈、PPP 及 局域网络  - HTTP,MP3,Mail 服务器,3D迷宫  - irc, http, nntp 及 tftp客户端  - 自由的界面,窗口可换“皮肤”  - 仅一张 1.44M 软盘可以装下! ·Menuet OS 对硬件的基本要求  CPU : 386 或与之相兼容的 CPU 显示: 支持 VESA 2.0(建议使用) 或 VESA 1.2 的显卡,VGA/EGA 显示器。 声卡: Creative SB(Sound blaster) 16或兼容声效卡 硬盘: ATA LBA 模式 FAT32文件系统 网络: Realtech 8029/8139, Intel 8255x, 3com, PCNET32 Ethernet PCI cards PPP dialup 鼠标: PS/2 或 COM 内存: 至少32M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值