如何才能自己写一个简单的linux *** 作系统

如何才能自己写一个简单的linux *** 作系统,第1张

只要你学过汇编和C,只满足于写个“简单的 *** 作系统",一两天就能搞定。

随便把你写过的小程序,用直接写硬盘软件(或者自己编一个,调用winapi的WriteFile函数就可以),写进硬盘/U盘引导区。记住,起始地址是7c00。

这就好了。注意,引导区只有440个字节给你用,程序不能太大,所以这部分基本要用汇编写。440字节后面是硬盘/U盘分区信息,不可以乱动。乱动以后bios可能没法识别硬盘/U盘。

引导区最后两个字节必须是55AA,不过一般你不用管,硬盘/U盘格式化的时候都已经给你写好了。

这样你的程序就在开机的时候直接运行了。

想调用大程序也没问题,你需要写个不超过440字节的程序,负责把第二个扇区的内容载入内存并执行,由第二个扇区的代码负责把所有代码载入内存。后面的部分用C写或者别的高级语言写都没什么问题了。

至于你想要具体作什么,就写什么,屏幕上画个画,管管硬盘上的文件,和用户互动一下,你随意。和你平常写程序没啥两样。总之一个能完成任务的简单 *** 作系统就完事了。

最多几天时间你就能搞定。这差不多能搞个接近dos1.0的“简单 *** 作系统”。

不过接下来才是你真正要学的。例如文件管理,内存管理,保护模式,进程管理啥的。麻烦归麻烦,但解放了自由了,终于可以编写内核态才准用的代码了,做的事情全部都是用户态下面不让做的事情。 *** 作系统的学习,从这里才算真正开始。

逻辑管理器(英语:Logical Volume Manager,缩写为LVM),又译为逻辑卷宗管理器、逻辑扇区管理器、逻辑磁盘管理器,是Linux核心所提供的逻辑卷管理(Logical volume management)功能。它在硬盘的硬盘分区之上,又创建一个逻辑层,以方便系统管理硬盘分割系统。

最先由IBM开发,在AIX系统上实现,OS/2 *** 作系统与 HP-UX也支持这个功能。在1998年,Heinz Mauelshagen 根据在 HP-UX 上的逻辑卷管理器,写作出第一个 Linux 版本的逻辑卷管理器。

LVM基本术语:

我们可以通过LVM灵活便捷的管理系统中的磁盘,并且根据需求快速、无感得扩容目标磁盘,并且几乎不会影响性能。

创建lvm分区的方法其实非常的简单,主要分为以下几个步骤:

目前做LVM分区比较推荐的工具还是fdisk,不是说parted不能做,而是fdisk可能更加方便一点。流程如下:

在分区完成之后需要做的就是创建物理卷,直接将刚才创建的分区进行pvcreate:

在创建玩物理卷之后,需要对该磁盘进行虚拟卷的创建。需要注意的是一个虚拟卷可以由多个物理卷构成。例如:

该命令的意义就在于创建一个叫做nvme的虚拟卷,由 /dev/nvme0n1p1 、 /dev/nvme1n1p1 、 /dev/nvme2n1p1 三个做了pv的分区构成

到了这一步,基本上LVM的创建已经到了尾声了,最后一步就是从虚拟卷中创建一个逻辑卷。如下:

这条命令的意思为从虚拟卷nvme中创建一个2.91T的逻辑卷作为lvm分区并命名为data,如果想一次性全部用完所有的容量,也可以这样:

此时在linux的 /dev/ 文件夹下面我们可以看到有 /nvme/data 的文件结构。

在创建完lvm分区后,我们需要将分区挂在到系统中的路径中。假设需要挂载的路径是 /data 。

之后通过 blkid 命令获取这个新的lvm分区的UUID,然后更新到 /etc/fstab 中就可以了

上述的LVM实现过程可以直接通过shell脚本进行实现:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7611009.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存