首页 > 系统相关 >linux源码趣读总结

linux源码趣读总结

时间:2023-12-01 20:57:04浏览次数:46  
标签:初始化 shell 趣读 源码 0.11 内存 linux

总结 linux源码趣读

花了半个月左右,看完了闪客的 linux 源码趣读。感觉之前上的操作系统原理课程只能给你一个模糊的印象,啊,有这个概念来着,有这个算法来着。比起从理论到实践的文字游戏,我还是更喜欢从实践讲理论的脚踏实地。从阅读 linux-0.11 源码,了解操作系统的构成。
所谓的总结就是放到能够随时索引的地方。

盲总结

在进入 c 语言之前,用汇编进行了从实模式到 32位保护模式的转换。操做系统的构成是与理论息息相关的。我们需要在构建操作系统的同时不足操做系统原理知识,需要一些额外的参考书。
还有一些内存管理。
对于 linux 内核来说,一个 main 函数就是全部了。
分为几部分

  • 初始化,是下面所有操做系统模块的基石。内存管理。
  • fork 与进程管理
  • shell、文件系统、文件从硬盘导入内存的过程、缓冲区。第三部分比较过程化,把几个系统的使用过程汇总在一起了。

linux-0.11 不涉及图形化界面的操做系统代码,这部分我们可以通过《30天自制操做系统》了解并且实践。
很多系统调用函数都是用汇编写的,能否用别的语言呢?
文章中提到的几个问题,能否通过自己的语言和代码实现和解决。

明总结

博客框架总结,目录

  • 汇编
    • 加载启动区,
    • 载入代码,
    • GDT,
    • 转换实模式到保护模式,
    • 分段与分页,
    • 跳转到 main
  • 初始化
    • 内存规划,
    • 内存位图等初始化,
    • 中断初始化,
    • 块请求初始化,
    • tty 初始化,
    • 计时器 cmos 初始化,
    • 进程调度初始化,
    • 缓冲区初始化,
    • 硬盘初始化
  • 进程
    • 从内核态到用户态
    • 进程调度设计
    • 定时器滴答时的进程调度过程
    • fork、系统调用
    • fork 中的进程信息复制
    • fork 中的进程内存规划
    • 写时复制的原理
  • shell
    • 硬盘信息
    • 根文件系统
    • 打开终端设备文件
    • 进程2
    • execve 系统调用
    • 缺页中断
    • 跑通 linux-0.11
  • shell 命令的执行
    • 键盘输入
    • shell 读取
    • 输入处理途中进程的阻塞与唤醒
    • 解析执行 shell 命令
    • 读取硬盘数据
    • 信号
      查看一下 linux-0.11 的源码,把源码加上注释成为自己的源码。
      感觉一篇篇看好无聊。不如开始着手写

操作系统编写计划

参考资料

  1. 30天自制操作系统
  2. linux-0.11
  3. xv6

命名:
dchgos

首先根据《30天自制操作系统》一步步做,完成一个 demo。
同时参考 linux-0.11、xv6、linux 更高版本的相应模块的实现,学习,优化 demo。
每天写项目进度报告。

标签:初始化,shell,趣读,源码,0.11,内存,linux
From: https://www.cnblogs.com/DchGplay/p/17870845.html

相关文章

  • 小市值选股策略代码分享(附python源码)
    小市值选股策略的核心在于通过综合分析公司的基本面、行业定位、财务健康状况以及市场趋势,来寻找那些被市场低估但具备显著成长潜力的股票,同时也要重视风险管理和投资组合的多样化。 今天来给大家分享下小市值策略代码如下:#显式导入BigQuant相关SDK模块frombigdatas......
  • Linux磁盘管理心得
    Linux的磁盘管理主要分为5个步骤:①在Linux服务器上添加相应的硬盘(如/dev/sda、sdb、sdc…);②对全新的服务器(没有操作系统)做RAID(raid0、raid1、raid5等模式)或逻辑卷LVM;③对磁盘进行分区;④创建完分区后对该分区作格式化操作;⑤最后作挂载操作,将分区挂载到Linux文件系统中即......
  • Linux系统中查看当前文件夹下文件的个数
    在linux系统中,可以使用ls命令查看有多少个文件,该命令用于显示指定目录下的内容,当参数设置为“wc-c”时,可显示目录下的文件个数,语法为“ls目录路径|wc-c”;可用“sudols/*|wc-c”查看整个电脑的目录数目。1.统计当前目录下文件的个数(不包含目录或子文件夹):ls-l|......
  • 首次部署Linux系统的经历
    我是一名电子信息工程专业的学生,有次在图书馆上自习的时候无意间看到其他同学的电脑屏幕,黑色的屏幕上显示着一行一行的代码,勾起了我无限的好奇,经过询问得知他是用的Linux操作系统,是和Windows完全不同的系统,看着手敲的shell命令唤起一个又一个功能,我也决定要学习下Linux系统。 ......
  • 初识Linux
    在当今数字化时代,云计算作为一项重要的技术,正深刻地改变着我们对计算和数据存储的认识。而要深入了解云计算,Linux作为其核心操作系统则成为必不可少的一环。本文将带你一探云计算的奥秘,介绍Linux的基本概念,并指导你如何在虚拟机中安装Linux系统。云计算简介云计算是一种基于互联......
  • linux安装neo4j
    下载neo4j安装包:从官网下载最新的neo4j版本,可以选择tar.gz格式:1.下载neo4j安装包:从官网下载最新的neo4j版本,可以选择tar.gz格式:wgets://neo4j/artifact.php?name=neo4j-community-3.5.14-unix.tar.gz2.解压安装包:tar-xzfneo4j-community-3.5.14-unix.tar......
  • Linux常用基础命令
    一、文件相关1、ls命令:显示当前目录的文件信息格式:ls[参数]-a:显示所有的文件和目录2、cp命令:复制文件或目录格式:cp[参数]源文件名,目标文件名-r:复制目录-f:复制已有文件3、mkdir命令:创建目录格式:mkdir[参数]目录名-m:指定权限-p:创建多级目录4、mv命令:移动或重命名......
  • kprobes源码走读
    粗略看了下kernel/kprobes.c下的register_kprobe方法。逻辑:调用kprobe_addr方法来根据symbol或者addr+offset来获取需要劫持的地址,symbol和addr不能同时设置,symbol是利用kprobe_lookup_name->kallsyms_lookup_name来查找内核中的符号地址。检查这个kprobe是否重注册了?......
  • Linux MySQL 配置文件
    MySQL服务配置文件1、配置文件位置MySQL服务端的进程mysqld在启动时,会默认按照以下顺序来读取mysql的配置文件:/etc/my.cnf/etc/mysql/my.cnf编译安装时通过编译选项指定的位置如果不想让mysqld按照这个顺序读取配置文件,可以通过mysqld的--defaults-file选项来指定......
  • 韩顺平老师 一周学会Linux课堂资料分享
    谢谢韩老师hsp感恩链接:https://pan.baidu.com/s/1FYOxZDH2wM1_SVy2r-cASg?pwd=Jhsp提取码:Jhspps:csdn劣币驱逐良币......