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.12
浅谈C语言inline关键字
在
Linux0.12
版本内核代码中也用到了该关键字。今天码哥浅谈一下这个关键字的作用和使用。inline的作用浅显一点说,就是将声明了该关键字的函数不以call指令调用的方式来调用
码哥比特
·
2023-12-30 13:48
c语言
汇编
经验分享
程序人生
学习
linux
后端
linux系统调用原理分析
写这篇文章是看到一个as汇编器里编写的汇编代码,有一个指令int80h没有搞懂,然后自己查资料发现不少东西,本文旨在浅显的分析linux的系统调用,主要是
linux0.12
内核来说!
nginux
·
2023-11-22 04:15
linux内核初探
linux内核初探
linux
服务器
运维
Linux内核学习系列(5)——内存管理
前言本章记录一下个人对
linux0.12
内存管理的理解。主要涉及物理内存页分配与回收,页表复制等具体操作。同样的,笔记仍然由上而下地进行知识点梳理,而不是单纯介绍函数及其作用。
DaHuangXiao
·
2023-11-09 06:36
内核
linux
深入
Linux0.12
第二章
知识点小结CMOS:存放实时时钟,系统硬件配置信息ROM:存放BIOSI/O寻址方式CPU通过系统总线与其他部分进行数据通信端口统一编址:映射为内存操作端口独立编址:有独立的I/O指令进行操作cat/proc/ioports系统总线系统总线,包含:地址线:I/O寻址数据线控制信号线系统总线.png计算机主要组件及作用控制卡(适配器)通过扩展插槽与系统总线相连南北桥硬件架构.pngI/O传输方式程序
Kuchikikakashi
·
2023-09-05 14:25
bt/bts/btr 指令
起因
Linux0.12
版本mm/swap.c中有一个bitop宏用到了bt/bts/btr这三个指令:#definebitop(name,op)\staticinlineintname(char*addr
ql07
·
2023-08-10 14:32
汇编
IA
汇编
linux
Linux内核源代码分析一(
Linux0.12
)
Linux内核源代码分析一(
Linux0.12
)Linux内核主要由5个模块构成,它们分别是:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。
ch132
·
2023-06-24 11:34
Linux
linux
Ubuntu18.04下编译
Linux0.12
笔记(编译+调试学习---升级版)
mirrors.edge.kernel.org/pub/linux/kernel/Historic/old-versions/二、chenhao@chenhao-VirtualBox:~/chenhao/
linux0.12
chaoshuaihaohao
·
2020-09-12 23:20
Linux 0.12 内核对内存的管理
Linux0.12
内核对内存的管理其着重点在于分段,用分段的机制把进程间的虚拟地址分隔开。每个进程都有一张段表LDT,整个系统有一张GDT表,且整个系统只有一个总页表。
yang_yulei
·
2020-08-26 08:48
操作系统
UNIX/Linux
Linux内核0.12完全注释
推荐一本书
Linux0.12
内核完全注释先把麻雀解剖了,再去研究老鹰和飞机可能会更好。
写代码的篮球球痴
·
2020-08-26 08:26
Linux0.12
源码阅读 —— 需求加载和写时复制
参考资料1.Linux内核完全注释v5.0修正版实验环境bochs模拟x86硬件平台下的
Linux0.12
操作系统实验环境地址:http://www.oldlinux.org/Linux.old/bochs
大西瓜qaz
·
2020-08-26 07:33
自己动手搭建 Linux 0.12 编译环境 — Linux主机
上篇我用极简模式说完了关于
Linux0.12
的模拟环境Bochs,这篇同样沿袭上篇的思路,不过主要内容是关于Linux主机。
Hony杨
·
2020-08-21 18:36
Linux
0.12
自己动手搭建
Linux
0.12
编译环境
Linux0.12
内核分析之十三——进程初探(理论篇)
提起进程,想必你定会有一些认识,教科书式的理论不是我擅长的表达方式,如果你是一个理论者,那么请你去参考相关的书籍,几乎所有的操作系统相关书籍都会有详细的论述。也许你已经对进程的概念有了深刻理解,但是我还是希望你可以阅读下面的文字,我想你多少会有一些收获。在前面的文章中我们讨论了计算机异常处理的相关概念,解决了系统异常处理的问题,本人也提到执行流的概念在现代操作系统中有着重要的意义,它是进程概念的坚
coolphxnuaa
·
2020-07-30 14:24
Linux
0.12实现与分析
C可变参数实现原理
近日,在读
Linux0.12
源代码的过程中
dacxu
·
2020-07-05 17:51
C&C++
Programming
linux
0.12
STOSL指令
2.STOSL指令相当于将EAX中的值保存到ES:EDI指向的地址中,若设置了EFLAGS中的方向位置位(即在STOSL指令前使用STD指令)则EDI自减4,否则(使用CLD指令)EDI自增4;3.在
linux0.12
linpeng1577
·
2020-07-04 21:25
硬件体系
虚拟地址、线性地址和物理地址之间的关系
1.内核代码和数据的地址对于
Linux0.12
内核代码和数据来说,在head.s程序的初始化操作中已经把内核代码段和数据段都设置成为长度为16MB的段。
Edmond.shen
·
2020-07-04 15:50
linux内核研究
推荐阅读:Just for Fun --- Linus Torvalds 自传
转载时请注明出处和作者联系方式:http://blog.csdn.net/mimepp作者联系方式:YUTAO推荐阅读:JustforFun---LinusTorvalds自传
linux0.12
为一个德国的用户解决了在
mimepp
·
2020-07-02 12:52
50.
linux/uclinux
我是如何学习写一个操作系统(二):操作系统的启动之Bootloader
然后增加对
Linux0.12
源码的一些学习。所以离标题可能比较远了一
Claire_ljy
·
2020-06-27 19:18
Linus Torvalds - Just for fun The Story of an Accidental Revolutionary
1992年1月5日,
Linux0.12
版本随同采用GPL许可证的版权声明发布,使得开源的Linux商用成为可能。
RGiant
·
2020-06-26 11:24
Ubuntu
对"革命"路线的一些修正 以及些许感悟
2018年11月12日星期一雨今天又下雨了,这两天气温升升降降,像是挣扎着拒绝入冬.前段时间的工作(就叫工作吧,一下子想不起来用什么词好)并不是很顺利,一上来就啃
Linux0.12
的源码,在保护模式折腾了很久不说
寒江独钓.
·
2018-11-12 15:27
闲来无事
操作系统学习:
Linux0.12
初始化详细流程-首个子进程
本文参考书籍1.操作系统真相还原2.Linux内核完全剖析:基于0.12内核3.x86汇编语言从实模式到保护模式4.Linux内核设计的艺术ps:基于x86硬件的pc系统
Linux0.12
初始化续在上一篇博文中根据
qq_33339479
·
2018-06-12 19:52
操作系统
第一次作业:基于Linux进程模型分析
1.前言本文主要基于
Linux0.12
的源代码,分析该Linux内核版本的进程模型及其调度器的算法。
蔡大力
·
2018-04-28 20:00
Linux内核(0.12)-Makefile分析
下面通过对
Linux0.12
内核中的Makefile文件的注释讲解,来介绍
Linux0.12
内核中Makefile的知识点和Linux内核的组织结构,剩下没讲到的Makefile基本上都是照样画葫芦,大家可以自行阅
daiyibo123
·
2016-01-16 10:00
linux
kernel
内核
阅读
linux0.12
复制页目录项和页表
复制页目录项和页表的函数是 1 int copy_page_tables(unsigned long from,unsigned long to,long size) 2 { 3 unsigned long * from_page_table; 4 unsigned long * to_page_table; 5 unsigned long this_
·
2015-11-13 20:50
linux
linux0.12
系统调用
系统调用是一个软中断,中断号是0x80,它是上层应用程序与Linux系统内核进行交互通信的唯一接口。 这个中断的设置在kernel/sched.c中443行函数中 1 void sched_init(void) 2 { 3 int i; 4 struct desc_struct * p; 5 6 if (sizeof(struct sigact
·
2015-11-13 20:50
linux
linux系统中堆栈的使用方法
第一遍看书时不明白,今天偶然又看到了这一点,顿时豁然开朗
linux0.12
系统中共用了四种堆栈 1. 系统引导初始化时临时使用的堆栈,此时我的理解是系统还在实模式 2.
·
2015-11-13 20:47
linux
寒假结束
再过两天就要回学校了,在家花了差不多半个月时间(边玩边看)终于把《自己动手写操作系统》的前六章看完了,感觉还不错,因为之前一段时间看了
linux0.12
内核不少时间,基础知识差不多已经打好了。
·
2015-11-13 20:44
linux0.12
---memory.c
free_page()释放物理地址addr处的一页内存 本帖最后由 Gen216ius 于 2011-8-14 21:26 编辑 具体解读对着图片看,图片的英文就是代码的变量,注意这里的from是线性地址 int free_page_tables (unsigned long from, unsigned long size) {
·
2015-11-13 20:27
memory
Linux 0.12的编译与链接
昨天花了很长时间去编译链接
linux0.12
版的kernel,发现在64位ubuntu下,这位兄台的文章写得最全最好,几乎涵盖了我遇到的所有问题,在此记录一下。
alada007
·
2015-10-05 16:16
linux
linux0.12
编译过程
感谢这篇文章的作者:http://www.cnblogs.com/strugglesometimes/p/4231359.html编译是个很蛋疼的事情,本想把
linux0.12
在bochs上跑起来然后就可以各模块的学习
微信公众号--共鸣圈
·
2015-05-21 23:00
Linux 0.12 sched.c代码理解
最近看看
linux0.12
,对自己理解内核有很大帮助,但是有些东西也确实需要时间去认真分析,今天看看了sched.c的代码,和大家分享一下。
WSRspirit
·
2015-05-19 21:00
linux
schedule
调度算法
sleep_on
sched.c
创建子进程函数
linux0.12
/kernel/fork.cfork()系统调用函数用于创建子进程,Linux中的所有进程都是进程0的子进程在这里我们伟大的linus运用了写时复制技术(copy-on-write),
u013412535
·
2014-10-23 16:00
数据结构
内核
《第二篇 linux 0.12 fork系统调用分析》
sys_fork函数的进入如何从用户态进入系统态,并执行sys_call对应的功能函数,请参考《
linux0.12
系统调用(int0x80)详解》。
maowenl
·
2014-06-19 09:10
linux
0.12
《第一篇 linux 0.12 系统调用(int 0x80)详解》
《第一篇
linux0.12
系统调用(int0x80)详解》系统调用初始化在系统启动时,会在sched_init(void)函数中调用set_system_gate(0x80,&system_call),
maowenl
·
2014-06-19 09:54
linux
0.12
Linux 0.12内核学习之(1)――用MASM编写Boot Sector引导扇区
最近在学习
Linux0.12
内核,正在读《Linux内核完全剖析》。一开始就被ax86写的引导扇区弄晕了。于是Google了很多资料。最终实验了一晚上终于搞定。
山鹰Sniper03
·
2014-06-09 11:32
Boot
sector
引导扇区
Linux 0.12 内核对内存的管理
Linux0.12
内核对内存的管理其着重点在于分段,用分段的机制把进程间的虚拟地址分隔开。每个进程都有一张段表LDT,整个系统有一张GDT表,且整个系统只有一个总页表。
yang_yulei
·
2014-04-24 23:00
自己动手搭建 Linux 0.12 编译环境 — 编译
自己动手搭建
Linux0.12
编译环境 —编译篇作者:MTK_蛙蛙鱼写作时间:2013年11月13日更新时间:2013年11月18日CentOS-6.4版本:Linuxlocalhost.localdomain2.6.32
HuiyuYang_fish
·
2013-11-15 16:00
自己动手搭建 Linux 0.12 编译环境 — Makefile
自己动手搭建
Linux0.12
编译环境——Makefile篇作者:MTK_蛙蛙鱼写作时间:2013年11月13日更新时间:2013年11月15日序:时隔几个月,我又开始了
Linux0.12
的征程,现在的我变得更加成熟
HuiyuYang_fish
·
2013-11-15 09:00
linux内核栈与用户栈
Linux0.12
系统中共使用了4种堆栈。第1种是
tongsean
·
2013-06-03 20:00
linux内核栈与用户栈
Linux0.12
系统中共使用了4种堆栈。第1种是系统引导初始化时临时使用的堆栈;第2种是进入保护模式之后提供内核程序初始化使用的堆栈,位于内核代码地址空间固定位置处。该堆栈也是后来任务0使用的用
dandelionj
·
2013-05-08 20:00
bochs安装备忘
看到网上有发的博文(http://blog.csdn.net/pingjiang2003/article/details/7251693)介绍编译的,基本按照他列的步骤进行的,相对比较顺畅,就是在执行
linux0.12
w122079514
·
2013-03-31 09:00
自己动手搭建 Linux 0.12 编译环境 — Bochs
Linux0.12
已经是一个可以运行起来的OS,它需要一个Intel386的硬件环境来支撑,选择Bochs作为虚拟环境完全是因为当初学习Oldlinux的缘故,慢慢地也就懒得去尝试其他的虚拟机了,这部分我会在闲下来后或者觉得有必要尝试更优秀的软件的时候去做它
HuiyuYang_fish
·
2013-03-26 19:00
linux内核栈与用户栈
Linux0.12
系统中共
kyokowl
·
2013-01-08 10:00
bochs:资料整理
2.bochs+gdb源码级调试
linux0.12
内核测试环境构建 http://blog.csdn.net/snowwalf/article/d
johnson4303
·
2012-12-22 13:00
关于
linux0.12
临界资源的一点理解和猜测
今天看代码时突然发现,好像看到linus在写代码时的一些准则了,再根据赵博士的一句话"内核开发者不可能总是关注这些细节问题的!“,然后参照自己的理解总结出来一些准则,本人初学,如果有问题还请留言指正。 1.在关于锁的操作上,希望是原子操作,所以不管什么先关中断再说 2.在互斥资源上,如果下面可能睡眠,那么先上锁再说,这点可以从inode.c中的read_inode函数中
findstr
·
2012-03-12 20:00
linux
关于
linux0.12
文件系统目录大小的一个发现
今天看到empty_dir函数发现他并不是比较i_size==32来判断是否为空,而是去读所有的块来判断是否为空,然后就觉得很奇怪,不过总觉得事出必有因,翻来覆去的找了一下,终于有了点发现,去看了一下add_entry和sys_rmdir这两个函数终于发现了一个事实!那就是目录文件的大小只会增大不会减小。下面是实验的截图:在这个实验里我们可以看到当我建立了test2test3test4四个文件后t
findstr
·
2012-03-11 15:00
linux
linux内核栈与用户栈
Linux0.12
系统中共使用了4种堆栈。第1种是系统引导初始化时临时使用的堆栈;第2种是进入保护模式之后提供内核程序初始化使用的堆栈,位于内核代码地址空间固定位置处。该堆栈也是后来任务0使用的
cbl709
·
2012-03-10 21:00
数据结构
linux
struct
user
任务
linux内核
Linux0.12
任务调度与进程切换
1.schedule():选择系统中下一个要运行的进程(1)循环检测就绪队列中的每个任务 若任务的超时定时器超时&&状态为可中断睡眠,则超时计时器清0,状态置为就绪 若任务的定时器过期,则定时器清0,SIGALARM信号置位(定时器!=超时定时器) 若任务除了阻塞信号外还有其它信号&&状态为可中断睡眠,则状态置为就绪(2)选择counter值(剩余执行时间)最大的任务
mishifangxiangdefeng
·
2012-03-08 20:00
数据结构
linux
任务调度
任务
关于
linux0.12
中的add_entry中bread中的些猜测
今天看到文件系统namei.c中的add_entry部分了,发现一个问题block=create_block(dir,i/DIR_ENTRIES_PER_BLOCK); if(!block) returnNULL; if(!(bh=bread(dir->i_dev,block))){ i+=DIR_ENTRIES_PER_BLOCK; continue; } de=(structdir_entry
findstr
·
2012-03-08 16:00
linux
struct
测试
磁盘
linux0.12
中文件系统的一些理解
在看文件系统始终觉得有点理解不了,今天偶有所悟还是赶紧记下来为好!看文件系统时要搞清以下几点:1.文件系统是用专门的工具来格式化的,也就是说内核中文件系统的代码是不含文件系统的初始化的。其实所谓的操作系统安装就是通过一个工具来制作文件系统然后将系统文件拷入最后再加个引导,但是这个过程比单纯的格式化要麻烦许多,因为安装时要制作根文件系统而不是仅仅格式化,但原理相似!2.要搞明白在设备中,各种设备也是
findstr
·
2012-03-04 20:00
linux
存储
工具
Linux0.12
初始化程序
1.main()(1)设置系统的根文件设备号以及一些内存全局变量(2)所有方面的硬件初始化工作:陷阱门、块设备、字符设备、tty、开机启动时间、调度程序、硬盘、软驱(3)开中断,切换到任务0中运行(4)切换到用户模式(5)创建一个用于init()的子进程(6)循环执行pause()、2.init()(1)安装根文件系统(2)打开tty0,产生输入输出设备(3)显示系统信息(4)创建进程2(5)进程
mishifangxiangdefeng
·
2012-02-28 19:00
上一页
1
2
下一页
按字母分类:
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
其他