0.11专题

Linux 环境下编译 0.11版本内核 kernel

我的系统配置:   UBUNTU 9.04 +gcc 4.33 最近在看《linux内核0.11完全注释》一书,尝试下了个0.11版本的 kernel下来尝试编译一把。 linux-0.11.tar.gz 下载地址:ftp://ftp.kernel.org/pub/linux/kernel/Historic/old-versions/ 下面开始工作: 参照是网上的帖子说明的

Linux 环境下编译 0.11版本内核 kernel(部分转载,加上自己修改的部分(绿色注释))

我的系统配置:   UBUNTU 9.04 +gcc 4.33 最近在看《linux内核0.11完全注释》一书,由于书中涉及汇编语言的地方众多,本人在大学时汇编语言学得一塌糊涂,所以实在看不下去了,头都大了只 好匆匆看了个头尾(前面几章和最后一章)。看来即使有《九阴真经》这样的武功秘籍,内功不够也是修炼不出来神马来的。于是索性下了个0.11版本的 kernel下来尝试编译一把。 linu

linux 0.11 内核学习 -- head.s

# # 这段代码被连接到system模块的最前面,这也是它为什么称之为head.s的原因。 # 从这里开始内核完全运行在保护模式下。head.s采用的是at&t格式的 # 汇编。注意的是代码中的赋值方向是从左到右。 # # 这段程序实际上是出于内存的绝对地址0开始处。首先是加载各个数据段寄存器。 # 重新设置全局描述符表gdt --> 检测a20地址线是否真的开启,没有开启,loo

linux内核0.11阅读

第1章 概述 1.1 Linrx的诞生和发展 1.1.1 UNIX、MINIX、GNU和POSIX 1.1.2 Linux操作系统的诞生和版本的变迁 1.2 内容综述 1.3 本章小结 1.4 习题 第2章 Linux内核体系结构 2.1 Linux内核模试和体系结构 2.2 Linrx中断机制 2.3 Linrx系统定时 2.4

结合 linux 0.11 源码分析为什么 fork 函数会返回两个值

#(1)学习资料是这些书 以及赵炯博士的完全剖析。谢谢这些大师与网上优秀的文章。 #(2)看 linux 0.11 源码是 sourceinlight 4.这里附上一个安装包。 由本图可知, main 函数对 fork 函数的调用。 fork 函数实际是定义在 main.c 文件中的内联函数。编译时候,不存在对 fork 的调用。直接抽取 fork 中的代码就是那些汇编代码,进入了 ma

ubuntu1804下安装bochs2.6.9运行linux_0.11

ubuntu1804下安装bochs2.6.9运行linux_0.11 bochs2.6.9的安装过程安装过程1. 依赖项的安装2. 下载源代码压缩文件3. 编译并安装 运行linux-0.111. 创建配置文件2. 打开 bochs 感谢 谨以此博文纪念我今天的折腾!! bochs2.6.9的安装过程 重要的话一定要写在前面:想用 .rpm 文件在ubuntu上安装boc

linux Ubuntu下log4cxx-0.11.0编译及使用

2020年8月,log4cxx终于更新了一个新版本0.11 解决了如此多的bug 包括多线程下偶发崩溃的问题. 记录下编译log4cxx的整个过程,遇到的问题及解决办法 OS : Ubuntu 16.04 1.环境安装  apr: http://apr.apache.org/download.cgi (Version 1.7.0) apr-util: http://apr.apache.o

【分布式Tensorflow(0.11.0)问题 未解决】Segmentation fault (core dumped)

有三个测试,主函数是基本一样的,就是模型不同,但是均以 Segmentation fault (core dumped) 出错。 在我上一篇问题记录里,是以dummy数据集测试的,只有前向计算,没有参数更新和优化等操作,因此重新写了一个脚本,使用真实的数据集。 train数据集: 960831张图片(224*224),已转换为97个tfrecords文件,如下所示: [ro

【分布式Tensorflow(0.11.0)问题 未解决】 alexnet_v2/pool1/MaxPool : tensor_in must be 4-dimensional

系统:linux Centos 7.1 Tensorflow版本:0.11.0 whl 安装 出错信息: tensorflow.python.framework.errors_impl.InvalidArgumentError: tensor_in must be 4-dimensional[[Node: alexnet_v2/pool1/MaxPool = MaxPool[T=D

阅读赵炯博士的Linux内核分析0.12完全注释笔记(A heavily Commented Linux Kernel Source Code Linux Version 0.11)...

Read the fucking source code  -Linus Bendict Torvalds 基础:   具备一些基本的 C 语言知识和 Intel CPU 汇编语言知识 有关 C 语言最佳   参考资料仍是 Brain W. Kernighan 先生和 Dennis M. Ritchie 先生合著的《The C Programming Language》一书。而汇编语言的资料则可

Typora最后的免费版本0.11.15,需要自取

链接:https://pan.baidu.com/s/1g9g7M_dOUnd710yye4xrDg  提取码:7777

【码农新闻】 像小说一样品读 Linux 0.11 核心代码......中国亲戚称呼计算器

目录 【码农新闻】 像小说一样品读 Linux 0.11 核心代码......中国亲戚称呼计算器 中国亲戚称呼计算器视搭浏览器工作原理与实践10.9K Star!超酷的 Linux 桌面状态栏工具像小说一样品读 Linux 0.11 核心代码 文章所属专区 码农新闻 欢迎各位编程大佬,技术达人,以及对编程充满热情的朋友们,来到我们的程序员新闻专栏!这里是你获取最新、最

linux 0.11 内核完全注释V3.0学习笔记(一)

linux 0.11 内核完全注释V3.0学习笔记(一) 第1章 概述 1.1 Linux的诞生和发展 Linux操作系统是UNIX操作系统的一种克隆系统,诞生于1991年10月5日(第一次对外公布时间),Linux操作系统的诞生、发展和成长过程依赖以下5大支柱:UNIX操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。目前Linux内核版本已经开发到4.13.

linux-0.11调试教程,task2参数所在内存页的页目录项和页表项

此文内容在do_execve()函数的change_ldt()函数之后create_table()函数运行之前的情形。change_ldt()函数会调用put_page()函数把参数内存页放置到当前任务的线性地址的末端。 第一步:在页目录表里找到任务2的参数内存页所在的页目录项,算出页表所在的地址0xffd000,因为每个进程64M对应16个字的空间任务2的在第32-47个字处。

linux-0.11调试教程,task2的参数,copy_strings()函数和create_tables()函数的关系

下面是create_tables运行之前的用户栈的情况 下面是create_tables运行之后的用户栈的情况 init/main.c文件部分内容: static char * argv_rc[] = { "/bin/sh", NULL }; static char * envp_rc[] = { "HOME=/", NULL }; 0x002f3d45

linux-0.11调试教程,setup.s中的硬盘参数表

setup.s获取显卡信息和硬盘信息,因为硬盘信息的地址在中断向量int0x41处既0x0000:0104处,所以bootsect.s中把Image中的system部分移到了0x10000开始的地方,(而不是直接移到0x0000处,防止覆盖掉硬盘参数表的地址和硬盘参数表,因为硬盘参数表的地址在0x9fc0:0x003d处!),setup.s里面的代码取得硬盘参数表后再把0x1000

linux-0.11调试教程,con_init函数和右上角的EGAc

最后4个字母是EGAc对应8个字节0x07470745      0x07630741。 因为是EGAc,所以0xb8000是显存的起始地址,而这时origin 也设置为video_mem_start既0xb8000。 所以可以在0xb8030既第24个字母处(每个字母用2个字节表示),设置badc。 #define O

linux-0.11调试教程,minix文件系统1.0上篇(01),硬盘基本参数hd_info

下面是在mount_root下断点。 地址0x191e4是hd_info[0]的结构地址,而0x90080是setup.s中设置的。 相关代码是: for (drive=0 ; drive<2 ; drive++) {         hd_info[drive].cyl = *(unsigned short *) BIOS;         hd_info[drive].head

linux-0.11调试教程,minix文件系统1.0,上篇(02)sys_setup

下面在mount_root下断点的情形。 下图可以看出为0x1fa58的buffer_head结构中设备号为0x300,块号为0。既硬盘的第一个块。上面有分区信息。 高速缓存区块的地址为0x3ffc00。 上图可以看出硬盘的第一个块的分区信息,从第二行的最后两个字可以看出nr_sects为0x1d87f。 struct partition {     unsi

linux-0.11调试教程,timer_interrupt,内核态发生的时钟中断(01)

下面的是进程1,mount_root()时发生时钟中断的情形。 第一行和第二行和第三行的前两个字是时钟中断压入堆栈的 第四行最后一个字,0x000120f9 是sys_setup()函数中mount_root()调用后的返回地址。 第四行的前3个字和第三行的后2个字,共5个字是mount_root函数中压入堆栈的,分别是ebp,未知,edi,esi和e

linux-0.11调试教程,task3(04),sa_restore函数

返回用户态之后,先运行的是用户定义的信号处理程序,既sa_handler,然后sa_handler函数最后是ret!!!ret之后运行sa_restore函数,sa_restore函数最后也是ret!!!再返回到int 0x80下面的语句,既old_eip位置处继续运行。 所以第一需要改变的是信号处理所在的用户程序的

关于linux-0.11文件属组为4096的问题与解答

ls -l 为什么出现了4096? chown root:root mtools.howto也不管用! 如果删除了mtools.howto 就会出现 哪里出了问题?系统工具出了问题。系统工具是linux-0.12下的,不适合linux-0.11 linux-0.11\include\sys下的types.h 里面 typedef unsigned short uid

我的2013--linux-0.11调试之路

2013我的linux-0.11调试之路    开始是先对minix-1.15升级到minix386进行了研究,参考了oldlinux论坛的linux内核创建仿古游里面的文章。站长现在也已经不记得具体的步骤到了,特别是一些关键的步骤。 自己摸索后终于升级到了386保护模式。并发布了一个360k的系统镜像。     后来对linux-0。11中的分区工具进行了分析包括fdisk和mkfs还有df。

linux-0.11硬盘集成盘的制作方法

2014年1月9日 by chenghao0511@gmail.com 制作方法:把bootsect 替换 原来的 make dd bs=8192 if=Image of=/dev/hd5  c  h  s  60 16 63 之后需要更改img的分区表,需要你先备份然后再拷贝回去 0x1BE到0x1CF是这个分区1的数据 00042C0081001C1E2C010

linux-0.11调试教程,minix-386-fd0-by-chenghao0511,最小的操作系统,只有360k。

http://pan.baidu.com/share/link?shareid=269130&uk=453348606 minix-386-fd0-by-chenghao0511,最小的操作系统,只有360k。 CSDN下载地址: minix-386-fd0-by-chenghao0511,最小的unix操作系统 需要下载Bochs,下载安装后。解压下载的文件,直