linux-0.11调试教程,源起,从linux内核完全注释的几处错误说起

2024-01-02 21:48

本文主要是介绍linux-0.11调试教程,源起,从linux内核完全注释的几处错误说起,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        本系列文章调试linux-0.11,大部分都是一些新内容,小部分是对代码的一些印证。

        另写了一些调试工具,比如readizone,readblock,readinode这些工具对学习linux-0.11操作系统很有帮助。当然还需要stat和hexdump工具的配合。

       fdisk for linux-0.11

         开始到-13/3/15的文章导出的pdf文件下载

        http://pan.baidu.com/share/link?shareid=382827&uk=453348606    

       另写了一些工具源代码分析,比如mkfs.c源代码分析和df.c源代码分析,从这些工具的源代码可以更好的认识文件系统。

下面是linux内核完全注释的电子版(3.0)中的一个插图


        图中说将信号处理程序句柄插入到用户堆栈中。从linux-0.11调试教程,task3(04),restore函数可以看出插入到用户堆栈的并不是信号处理程序句柄sa_handler,而是sa_restore和oldeip!

          但是,linux内核完全注释的电子版2003的1.1到现在3.0已有近十年的历史,这个错误还没有人指出,可见大家代码的深度不够,或者说光读而不实践得不到真东西。可以说,“纸上得来终觉浅,绝知此事要躬行”下面是本系列文章作者修改后的图:






        如有问题可以发帖子到百度贴吧oldlinux贴吧,大家一起讨论。

转载请注明来自:linux-0.11调试教程

调试软件包下载


第二处错误(2013/1/21发现by sitelist:chenghao0511##gmail.com)

应该改为:第一个硬盘参数表的地址。详细参见:linux-0.11调试教程,setup.s中的硬盘参数表


第三处:敢指出linus的一处注释错误(main.c中)

linux-0.11,任务1的用户态堆栈,copy-on-write之后的堆栈!

查看硬盘分区表信息工具fdisk0 for linux-0.11

百度网盘下载地址:http://pan.baidu.com/share/link?shareid=218125&uk=453348606

第四处错误:(2013/1/29发现by sitelist:chenghao0511##gmail.com)


3.0版的515页,上图中第二行”对应的i节点0都闲置不用“是错误的。其实没有i节点0,根目录对应的1号i节点放置在了第一个i节点块的头32个字节。

详细请看:linux-0.11调试教程,mkfs.c源代码分析(1



bash-1.05 by gcc-1.40 in minix-386 百度网盘共享下载:

http://pan.baidu.com/share/link?shareid=254696&uk=453348606

you can run in linux-0.11

cp bash /bin/sh 


处错误:(2013/2/07发现by sitelist:chenghao0511##gmail.com)

电子版3.0,310页,把SIGCHILD的值弄错了,不是18应该是17

#define SIGCHLD        17

具体请看:linux-0.11调试教程,信号处理方式


第六处:关于s_log_zone_size的值,

(2013/12/31发现by sitelist:chenghao0511##gmail.com)参加下面的链接:

linux-0.11调试教程,df.c源代码分析,自己写了个super for linux-0.11

第七处:bmap()函数block的含义不对。

(2013/12/31发现by sitelist:chenghao0511##gmail.com)


第八处:关于用shoelace启动linux-0.11时的映像img参数的问题,其实和硬盘的参数(c h s)没有关系。

fdisk in minix 源代码分析

(2014/1/4发现by sitelist:chenghao0511##gmail.com)     



bash源代码分析【readline部分】中的比较重要的文章:

http://blog.csdn.net/sitelist/article/details/8607523

这篇关于linux-0.11调试教程,源起,从linux内核完全注释的几处错误说起的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/563731

相关文章

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

在Linux终端中统计非二进制文件行数的实现方法

《在Linux终端中统计非二进制文件行数的实现方法》在Linux系统中,有时需要统计非二进制文件(如CSV、TXT文件)的行数,而不希望手动打开文件进行查看,例如,在处理大型日志文件、数据文件时,了解... 目录在linux终端中统计非二进制文件的行数技术背景实现步骤1. 使用wc命令2. 使用grep命令

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文