E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Linux0.11
Linux内核0.11学习
Linux0.11
内核虽然是三十多年前的产物,就像孙子兵法、黄帝内经等古书一样,不代表它们没有学习的价值
九阳道人
·
2024-09-06 22:13
linux
学习
内核
linux0.1x内核代码学习笔记-boot启动
linux0.11
上电时把启动盘第1扇区bootsect.s的代码拷贝到0x7c00位置处,这段代码自己把自己拷贝到0x90000这个位置然后开始执行,利用bios预先设置好的中断函数,把第2扇区setup
守护安静星空
·
2024-02-12 08:30
linux内核代码学习笔记
gnu
操作系统
linux
c语言
架构
码农新闻】 像小说一样品读 Linux 0.11 核心代码......中国亲戚称呼计算器
目录【码农新闻】像小说一样品读
Linux0.11
核心代码......中国亲戚称呼计算器中国亲戚称呼计算器视搭浏览器工作原理与实践10.9KStar!
顶子哥
·
2024-01-27 19:36
码农新闻
linux
运维
服务器
游戏机
正则表达式
python
django
深入理解
Linux0.11
内核之文件系统一
写在前面:很久很久没更新了,最近会持续更新
Linux0.11
内核相关的文章,全程用官方书籍+内核源码+intel手册论证。首先,为什么要学习
Linux0.11
呢?
程序员李哈
·
2024-01-19 16:11
深入理解Linux0.11内核
源码解读
Linux内核
操作系统
c语言
Linux0.11
操作系统实验4:基于内核栈完成进程切换
一、参考《操作系统原理、实现与实践》李治军、刘宏伟编著二、实验目标
Linux0.11
中进程切换是依靠任务状态段(taskstructsegment,TSS)的切换来实现的,本实践项目要修改
Linux0.11
忆昔z
·
2024-01-13 21:55
哈工大操作系统实验
linux
c语言
《
Linux0.11
源码趣读》学习笔记day7
这次操作系统会对内存布局做最后一次大调整这张图是上次学习时的内存布局进入setup.s文件现在程序跳转到了0x90200这个位置开始执行,这个位置的代码就位于setup.s的开头start:movax,#0x9000;thisisdoneinbootsectalready,but...movds,axmovah,#0x03;readcursorposxorbh,bhint0x10;saveitin
d0ublεU0x00
·
2024-01-13 12:25
学习
linux
运维
linux内核怎么学?需要多久才能读完linux内核源码?
先说说最早的内核
linux0.11
,下面这本书可以说很多驱动工程师都学习过,我花了大概1个半月,勉强看了一遍。再来看看内核代码量的统计。
linux大本营
·
2023-12-27 03:28
linux
linux内核
进程管理
内存管理
文件系统
linux0.11
内核分析-setup
章节目录上一节讲解了bootsect,由bootsect加载setup进入内存,最后jmpi0,SETUPSEG跳转到setup程序处。INITSEG=0x9000!wemoveboothere-outofthewaySYSSEG=0x1000!systemloadedat0x10000(65536).SETUPSEG=0x9020!thisisthecurrentsegmentmovax,#IN
CODERLIHAO
·
2023-12-19 02:29
linux内核完全注释v3.0——第5章
5.1Linux内核模式层次式的为内核模式整体式的单内核模式
Linux0.11
内核,采用但内核模式优点:内核代码结构紧凑、执行速度快缺点:层次结构性不强流程:应用主程序使用指定的参数值执行系统调用指令(
airuoshahen
·
2023-11-24 08:40
linux
Linux学习之旅一:从开机到执行main函数
本系列是学习《Linux内核设计的艺术》等的读书笔记,有理解错误或不当的地方欢迎指出序言该书选用
Linux0.11
源代码,虽然源码只有约两万行,但却是一个实实在在,不折不扣的现代操作系统。
luyuantaolll
·
2023-11-22 15:23
Linux内核学习之旅
linux
LInux-0.11
文章目录前言学习资料正文前言B站视频链接
linux0.11
内核代码学习资料正文一个山区512字节
泰勒朗斯
·
2023-11-06 17:52
硬件
汇编
Linux0.11
内核源码解析-exec.c
主要实现对二进制可执行文件和shell文件的加载和执行,其中主要的函数是do_execve(),它是系统中断调用int0x80的功能号__NR_execve()调用,是exec()函数的主要实现以下几点功能:1.执行对参数和环境参数空间页面的初始化操作,初始化空间页面指针数组,根据执行文件名取执行对象的i节点,计算参数个数和环境变量个数,检查文件类型、执行权限2.根据执行文件开始部分的头数据结构,
天才小C
·
2023-11-03 08:20
linux0.11内核源码
linux内核0.11
Linux0.11
内核源码解析-malloc
malloc介绍Linux内核版本0.11中的`malloc.c`文件实现了内存分配的功能。在这个版本的Linux内核中,`malloc.c`文件包含了内核级别的内存分配函数,用于分配和释放内核中的内存。这些函数可以帮助内核管理可用的内存,并允许内核动态地分配和释放内存,以便在运行时满足不同模块或进程的内存需求。基本上,它实现了类似C标准库中的`malloc()`和`free()`函数的功能,但是
天才小C
·
2023-11-02 08:04
linux0.11内核源码
linux
linux内核0.11
《操作系统》by李治军 | 实验4 - 进程运行轨迹的跟踪与统计
process.c下载2、stat_log.py下载四、实验过程(一)编写样本程序process.c1、什么是样本程序2、process.c3、修改process.c4、编译并运行process.c(二)在
Linux0.11
Amentos
·
2023-10-30 09:01
操作系统
linux
操作系统
进程运行轨迹的跟踪与统计
操作系统实验1
1、主要平台和工具简介硬件:IA-32架构的计算机软件:Bochs、gcc、IDE、
Linux0.11
源代码、Ubuntu、hit-oslab集成环境*PS:Bochs是一个免费且开放源代码的IA-32
CSDN729180099
·
2023-10-23 12:49
操作系统实验
linux
在 Alpine Linux 上编译
Linux0.11
内核
本文转自我的个人博客:https://zetaoyang.github.io,欢迎大家来访哦。近日,想在Windows系统下编译Linux-0.11内核。于是就在VirtualBox中安装了AlpineLinux3.4。其中VirtualBox下的网络配置如下:使用2块网卡,第一块设置为host-only方式:第二块设置为nat方式:其中,VirtualBoxHost-OnlyEthernetAd
Zetao_Yang
·
2023-10-22 04:07
linux
tools
virtualbox
linux
内核
给
Linux0.11
添加网络通信功能 (Day4: 完成 MIT6.S081 最终实验 网卡驱动(2. 启动 xv6 net 分支))
url:https://pdos.csail.mit.edu/6.S081/2020/labs/guidance.htmllabguidance介绍了调试技巧。这种玩意儿可得好好看看啊!!!!!!!!我们先把xv6跑起来吧,待会儿再专门出个番外了解调试技巧看https://pdos.csail.mit.edu/6.S081/2020/labs/util.html执行gitclonegit://g.
shimly123456
·
2023-10-07 14:00
给
Linux0.11
添加网络通信功能
网络
给
Linux0.11
添加网络通信功能 (Day3: 完成 MIT6.S081 最终实验 网卡驱动(1. 安装工具链和依赖))
url:https://pdos.csail.mit.edu/6.S081/2020/labs/net.html首先看tools章节:https://pdos.csail.mit.edu/6.S081/2020/tools.html浏览了一下,就是要我们安装依赖执行以下命令sudoapt-getinstallgitbuild-essentialgdb-multiarchqemu-system-mi
shimly123456
·
2023-10-07 14:30
给
Linux0.11
添加网络通信功能
网络
给
Linux0.11
添加网络通信功能 (Day1: 确认 qemu-system-i386 提供了虚拟网卡)
感觉单纯读闪客的文章,以及读
Linux0.11
源码,而不亲自动手做点什么,很难学会,还是得写代码定个大目标:给
Linux0.11
添加网络通信功能今日的小目标:先确认qemu-system-i386提供了网卡功能
shimly123456
·
2023-10-07 14:59
给
Linux0.11
添加网络通信功能
网络
抄写Linux源码(Day6:读闪客文章第一回 “最开始的两行代码”)
按照Day1完成了
Linux0.11
的运行之后,可以在~/oslab/linux-0.11找到
linux0.11
的源码根据闪客的文章第一回:https://mp.weixin.qq.com/s/LIsqRX51W7d_yw-HN-s2DALinux0.11
shimly123456
·
2023-10-06 05:54
抄写Linux内核源码
系统安全
抄写Linux源码(Day8:
Linux0.11
调试方法)
按照Day1成功运行
Linux0.11
之后在~/oslab下可以看到如下图:此时除了直接运行run来运行
Linux0.11
之外,还可以配合使用dbg-c和rungdb,使用gdb连接bochs,来调试
Linux0.11
shimly123456
·
2023-10-06 05:54
抄写Linux内核源码
linux
bochs 对
Linux0.11
进行调试 (TODO: 后面可以考虑集成 vscode+gdb+qemu)
我在阅读
Linux0.11
源码时,对一个指令LDS感到困惑。看了下intel指令集手册,能猜到LDS的功能,但不确定。于是决定搭建调试环境,看看LDS的功能是否真如自己猜测。
shimly123456
·
2023-10-05 20:51
抄写Linux内核源码
linux
Linux0.11
——操作系统怎么把自己从硬盘搬到内存
这里先直接给出答案:中断此时,操作系统用短短几行代码,将数据段寄存器ds和代码段寄存器cs设置为了0x9000,方便之后的程序访问代码和数据,并且将栈顶地ss:sp设置在了远离代码的位置0x9000足够遥远的0x9FF00,保证了栈向下发展时不会轻易覆盖掉操作系统的代码。简单来说,就是设置了如何访问数据段、如何访问代码段以及如何访问栈段,也就是做了一次初步的内存规划。因为从CPU的角度出发,访问内
~Old
·
2023-09-27 07:11
Linux学习
linux
哈工大-操作系统-HitOSlab-李治军-实验0-在自己电脑上搭建实验环境
哈工大李治军老师的操作系统实验课程是一门不可多得的好课程,该课程基于
linux0.11
让学生们编写代码实现:系统启动、系统调用、进程切换、内核级线程等操作系统的基本功能。
garbage_man
·
2023-09-25 10:10
操作系统OS
操作系统
ubuntu
linux
Linux0.11
——第二回 从0x7c00到0x90000
上一讲,讲了CPU执行操作系统的最开始的两行代码:movax,0x07c0movds,ax这两行代码将数据段寄存器ds的值变成了0x07c0,方便之后访问内存时,利用这个段基址进行寻址。接下来的代码:movax,0x9000moves,axmovcx,#256subsi,sisubdi,direpmovw此时,ds寄存器的值已经是0x07c0了,然后又通过同样的方式将es寄存器的值变成0x9000
~Old
·
2023-09-24 02:13
Linux学习
java
开发语言
Linux0.11
——第一回 最开始的两行代码
按下开机键后究竟发生了什么官方教科书说法:BIOS按照“启动顺序”,把控制权转交给排在第一位的存储设备:硬盘。然后在硬盘里寻找主引导记录的分区,这个分区告诉电脑操作系统在哪里,并把操作系统被加载到内存中,然后你就能看到经典的启动界面了,这个开机过程也就完成了。我们需要明确3点:内存是存储数据的地方,给出一个地址信号,内存可以返回该地址所对应的数据。CPU的工作方式就是不断从内存中取出指令,并执行。
~Old
·
2023-09-24 02:43
Linux学习
linux
Linux0.11
——第三回 做好访问内存的最基础准备工作
前面两回是把启动区的代码复制来复制去的,这里我们要讨论的就是操作系统怎么为程序访问内存的方式做初步规划的?操作系统的代码最开头的512字节的数据,先从硬盘的启动区移动到了内存0x7c00处,然后又立刻被移动到0x90000处,并且跳转到0x90000加上go这个标签所代表的偏移量。接下来就是关注后续的代码:go:movax,csmovds,axmoves,ax;putstackat0x9ff00.
~Old
·
2023-09-24 02:41
Linux学习
Linux
理清
Linux0.11
启动流程
1.上电,CPUPC指向0xfff02.执行BIOS,检查存储设备第一个512字节的内容,末尾有0x55AA的就是可启动设备。找到启动设备后把第一个扇区(512字节)加载到0x7c00内存地址处,随后PC跳转到0x7c003.执行0x7c00的代码,也就是MBR的代码,首先把自身512字节的代码复制到0x90000,随后跳转到0x90000:go继续执行代码TODO:
shimly123456
·
2023-09-22 11:45
抄写Linux内核源码
系统安全
【项目分析】仿
linux0.11
的操作系统内核
系列综述:目的:本系列是个人整理为了秋招面试的,整理期间苛求每个知识点,平衡理解简易度与深入程度。来源:材料主要源于《操作系统真象还原》及各大佬博客进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。结语:如果有帮到你的地方,就点个赞和关注一下呗,谢谢!!!【C++】秋招&实习面经汇总篇操作系统开发过程专栏文章目录概述1.加电启动2.加载内核上述过程详述完善内
逆羽飘扬
·
2023-09-13 15:56
秋招面试
系统架构
面试
从零编写
linux0.11
- 第十一章 可执行文件
从零编写linux0.11-第十一章可执行文件编程环境:Ubuntu20.04、gcc-9.4.0代码仓库:https://gitee.com/AprilSloan/linux0.11-projectlinux0.11源码下载(不能直接编译,需进行修改)本章目标本章会加载并运行elf格式可执行文件,但是功能还不够完善,不支持动态编译,不能运行太大的文件。1.elf可执行文件介绍本节的内容主要参考《
皓空Fly
·
2023-09-12 14:06
linux0.11
操作系统
linux
操作系统
从零编写
linux0.11
- 第十章 文件系统(二)
从零编写linux0.11-第十章文件系统(二)编程环境:Ubuntu20.04、gcc-9.4.0代码仓库:https://gitee.com/AprilSloan/linux0.11-projectlinux0.11源码下载(不能直接编译,需进行修改)本章目标完善文件系统,提供文件的增删改等功能。能够更改文件以及创建删除文件和文件夹。1.write-更改普通文件上一章中,write函数已经能够
皓空Fly
·
2023-09-12 14:05
linux0.11
操作系统
操作系统
linux
实现基于内核栈切换的进程切换-linux011
实验过程:本次实践项目就是将
Linux0.11
中采用的TSS切换部分去掉,取而代之的是基于堆栈
perfect Yang
·
2023-09-11 21:57
Linux
linux
如何在Ubuntu上编译
Linux0.11
2023年9月10日,周日上午昨天晚上按照博客园的这篇文章试了一下,很快就成功在Ubuntu上编译运行了Linux0.11https://www.cnblogs.com/chaoguo1234/p/16883932.html
巨龙之路
·
2023-09-10 10:33
Linux
笔记
linux
linux0.11
与linux2.6.0两个版本内核启动流程——学习笔记
一、
linux0.11
内核启动流程1.1bootsect上电后bios把bootsect放到了0x7c00的的地方;然后他自己又把自己移到了0x90000的地方,它是磁盘引导块程序,在磁盘的第一个扇区中的程序
西邮小菜机
·
2023-08-30 15:52
linux
linux
运维
服务器
Linux0.11
内核源码解析-truncate.c
truncate文件只要实现释放指定i节点在设备上占用的所有逻辑块,包括直接块、一次间接块、二次间接块。从而将文件节点对应的文件长度截为0,并释放占用的设备空间。索引节点的逻辑块连接方式释放一次间接块staticvoidfree_ind(intdev,intblock){structbuffer_head*bh;unsignedshort*p;inti;if(!block)return;//读取一
天才小C
·
2023-08-20 04:39
linux0.11内核源码
truncate
linux0.11
释放逻辑块
Linux0.11
内核--进程的调度(运行态(就绪态)和睡眠态之间的转换)
一、Linux进程的状态二、基本信息1---侧重C语言描述当进程等待资源或者事件时,就进入睡眠状态。有两种睡眠态:不可中断睡眠态(TASK_UNINTERRUPTIBLE)可中断睡眠态(TASK_INTERRUPTIBLE)处于不可中断睡眠态的进程:可以由wake_up直接唤醒处于可中断睡眠态的进程:不光可以由wake_up直接唤醒,还可以由信号唤醒。#defineTASK_RUNNING
高原低谷
·
2023-08-16 07:26
李志军老师实验
p2p
网络协议
网络
Linux0.11
内核源码解析-open.c
目录概述m_inode节点介绍fs/sys_utime设置文件访问和修改时间fs/sys_access检查访问权限fs/sys_chdir改变当前工作目录fs/sys_chroot改变根目录fs/sys_chmod修改文件属性fs/sys_chown修改文件宿主lib/open用户层文件打开函数,调用sys_openfs/sys_open内核层打开、创建文件fs/sys_create创建文件fs/
天才小C
·
2023-08-12 15:44
linux0.11内核源码
c语言
linux
算法
Linux内核完全注释(基于
Linux0.11
)_笔记_linux/Makefile
文章目录作用执行流程示意图解析代码解析变量定义Image生成规则编写常用规则作用Makefile文件相当于程序编译过程中的批处理文件,是GNUmake的的输入文件,其作用是能够自动地编译工程文件linux/Makefile文件的主要作用是配合独立编译链接的linux/tools/build.c将所有内核编译代码链接和合并成一个可运行的内核映像文件Image执行流程示意图解析代码解析变量定义#定义R
柳家山头号矿工
·
2023-08-12 15:13
操作系统
linux
Linux0.11
内核源码解析-fcntl.c/iotcl.c/stat.c
fcntlfcntl.c实现了文件控制系统调用fcntl和两个文件句柄描述符的复制系统调用dup()和dup2()。dup返回当前值最小的未用句柄,dup2返回指定新句柄的数值,句柄的复制操作主要用在文件的标准输入、输出重定向和管道方面。dupfd复制文件句柄,参数fd是要复制的文件句柄,arg是新文件句柄的最小数值,返回值是新文件句柄或者错误码staticintdupfd(unsignedint
天才小C
·
2023-08-12 15:12
linux0.11内核源码
linux内核0.11
stat
ioctl
dup
【linux源码学习】【实验篇】使用bochs运行
linux0.11
系统(搭建一个自己的工作站)
linux内核完全注释》,然后在最后一个习题里面看到使用bochs跑一下0.11的内核代码,本来觉得很难,但是如果做过一遍就会发现其实很简单,这个是学计算机最容易发现的感觉,接下来记录一下我如何运行的
linux0.11
元空间
·
2023-08-07 20:24
源码鉴赏
linux
学习
抄写Linux源码(Day2:在 MBR 打印字符串)
闪客
Linux0.11
解读:https://github.com/dibingfa/flash-linux0.11-talk完成闪客文章1的阅读
shimly123456
·
2023-08-01 16:18
系统安全
抄写Linux源码(Day1:获取并运行
Linux0.11
)
Day1:获取并运行
Linux0.11
参考资料:https://zhuanlan.zhihu.com/p/438577225这是我参考的一个别人写的
Linux0.11
解读:https://github.com
shimly123456
·
2023-08-01 16:46
linux
运维
服务器
哈工大操作系统实验三(整理自用)
实验内容基于模板process.c编写多进程的样本程序,实现如下功能:+所有子进程都并行运行,每个子进程的实际运行时间一般不超过30秒;+父进程向标准输出打印所有子进程的id,并在所有子进程都退出后才退出;在
Linux0.11
小蓝的快乐学习之旅
·
2023-07-17 08:03
linux
运维
服务器
Linux如何被启动(二)
Linux如何被启动(一)引导程序(bootsect)利用int0x13中断(对应磁盘服务程序中断服务程序)加载从第6个扇区开始的240个扇区的system模块到内存指定位置,在
Linux0.11
中,这个位置就是
WongKyunban
·
2023-07-16 16:44
linux
运维
服务器
Linux0.11
内核源码解析-pipe.c
目录什么是PIPE?PIPE注意事项有名和匿名管道内核管道通信管道读函数管道写函数管道创建什么是PIPE?进程间通信(IPC,Inter-ProcessCommunication)是指在不同进程间进行数据通信和交换的过程。管道(pipe)是一种进程间通信的机制,它是一种单向、先进先出的通信方式。一个进程将数据写入管道,而另一个进程从管道中读取数据。在Linux或Unix系统中,进程间还可以使用共享
天才小C
·
2023-06-20 19:48
linux0.11内核源码
linux
驱动开发
Linux0.11
内核源码解析-block_dev.c
目录block_dev.c文件的作用intblock_write(intdev,long*pos,char*buf,intcount)intblock_read(intdev,unsignedlong*pos,char*buf,intcount)block_dev.c文件的作用block_dev.c文件就包含两个函数,分别是block_read和block_write函数,提供给read和writ
天才小C
·
2023-06-20 19:18
linux0.11内核源码
c语言
开发语言
Linux0.11
内核源码解析-bitmap.c
目录bitmap.c在内核中的作用什么是位图操作?代码介绍clear_block(addr)set_bit&clear_bit(nr,addr)find_first_zero(addr)查找第一位为0free_block(intdev,intblock)释放blockintnew_block(intdev)分配一个新的数据块free_inode(structm_inode*inode)清空节点的内
天才小C
·
2023-06-20 19:17
linux0.11内核源码
c语言
开发语言
Linux0.11
内核源码解析-file_dev.c
目录功能描述intfile_read(structm_inode*inode,structfile*filp,char*buf,intcount)intfile_write(structm_inode*inode,structfile*filp,char*buf,intcount)功能描述该文件主要是由两个函数file_read()和file_write()组成,提供系统调用函数read()和wr
天才小C
·
2023-06-20 19:45
linux0.11内核源码
linux
驱动开发
编译
linux0.11
内核
编译
linux0.11
内核一、实验环境二、下载文件三、配置
Linux0.11
所需环境四、编译内核五、运行
linux0.11
六、说明1、setup.sh脚本里进行了什么操作?
贰拾肆画生
·
2023-06-12 00:35
OS
git
ubuntu
linux
linux0.11
的目录结构,
linux0.11
文件目录结构
1.boot目录:主要功能是计算机上电后,引导内核启动,将代码加载到内存中,并做一些进入32位保护运行方式前的系统初始化工作。1.1.bootsect.s:程序是磁盘引导块程序。编译后会驻留在磁盘的第一个扇区中,PC上电ROMBIOS自检后,将被BIOS加载到内存0x7C00处进行执行。1.2.setup.s:程序主要用于读取机器的硬件配置参数,并把内核模块system移动到适当内存位置处。1.3
深具世界眼光
·
2023-04-18 06:32
linux0.11的目录结构
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他