- 反汇编一个简单的C程序并分析 C 源码: int g(int x) { return x+1; } int f(int x) { return g(x); } int main(void) { return f(2) + 3; } 1234567891011121314 汇编源码: 1 g: 2 pushl %ebp 3 movl %esp, %... 反汇编一个简单的C程序并分析 C 源码: int g(int x) { return x+1; } int f(int x) { return g(x); } int main(void) { return f(2) + 3; } 1234567891011121314 汇编源码: 1 g: 2 pushl %ebp 3 movl %esp, %...
- 写在最前 笔者在动手写此操作系统时是一名大学本科大二的学生,可能文章中会有好多地方我没有解释清楚,可能也会有许多地方出现错误,我恳请各位读者能提出质疑和纠正我的错误,谢谢! 参考书籍: 《30天自制操作系统》川合秀实《ORANGE’S:一个操作系统的实现》 开发环境 笔者采用以下开发环境 Apple Macbook AirUbuntu 12.04 ... 写在最前 笔者在动手写此操作系统时是一名大学本科大二的学生,可能文章中会有好多地方我没有解释清楚,可能也会有许多地方出现错误,我恳请各位读者能提出质疑和纠正我的错误,谢谢! 参考书籍: 《30天自制操作系统》川合秀实《ORANGE’S:一个操作系统的实现》 开发环境 笔者采用以下开发环境 Apple Macbook AirUbuntu 12.04 ...
- 上几篇文章,我们一直在讨论的都是 GDT 相关的一些问题,现在我们知道在系统在从实模式向保护模式跳转时,GDT 是必须要准备的结构。在介绍这一跳转之前,这篇文章我们来介绍两个概念:一致代码段和非一致代码段。 首先,我们先来看几个问题: 一致代码段和非一致代码段是什么?为什么要有一致代码段和非一致代码段?系统提供怎样的机制来使用户程序访问内核数据?程序如何在... 上几篇文章,我们一直在讨论的都是 GDT 相关的一些问题,现在我们知道在系统在从实模式向保护模式跳转时,GDT 是必须要准备的结构。在介绍这一跳转之前,这篇文章我们来介绍两个概念:一致代码段和非一致代码段。 首先,我们先来看几个问题: 一致代码段和非一致代码段是什么?为什么要有一致代码段和非一致代码段?系统提供怎样的机制来使用户程序访问内核数据?程序如何在...
- 内核编程语言和环境 1. as86汇编器 语法: as[option] –o objfile srcfile .表示编译过程中的位置计数器 Objfile分为三个段(区):正文段(.text):程序的执行代码和只读数据 数据段(.data):可读/写的数据 未初始化数据段(.bss... 内核编程语言和环境 1. as86汇编器 语法: as[option] –o objfile srcfile .表示编译过程中的位置计数器 Objfile分为三个段(区):正文段(.text):程序的执行代码和只读数据 数据段(.data):可读/写的数据 未初始化数据段(.bss...
- 在上一篇文章《环境搭建以及第一个Hello-World》中,笔者讲了如何安装 bochs 以及运行一个 helloworld 操作系统,但是使用上一篇文章中的方法安装的 bochs 是不支持调试的,下面我讲介绍如何使用源码编译的方法来安装 bochs,以及使用 bochs 来调试操作系统。 编译安装 Bochs 下载 bochs 源码 http://so... 在上一篇文章《环境搭建以及第一个Hello-World》中,笔者讲了如何安装 bochs 以及运行一个 helloworld 操作系统,但是使用上一篇文章中的方法安装的 bochs 是不支持调试的,下面我讲介绍如何使用源码编译的方法来安装 bochs,以及使用 bochs 来调试操作系统。 编译安装 Bochs 下载 bochs 源码 http://so...
- 关于系统架构你不知道的那些事之架构设计的历史背景 前言机器语言(1940 年之前)汇编语言(20世纪40年代)高级语言第一次软件危机与结构化程序设计(20 世纪 60 年代~20 世纪 70 年代)第二次软件危机与面向对象(20 世纪 80 年代)软件架构的历史背景总结 前言 我认为,如果想要深入理解一个事物的本质,最好的方式就是去追寻这个事物出现... 关于系统架构你不知道的那些事之架构设计的历史背景 前言机器语言(1940 年之前)汇编语言(20世纪40年代)高级语言第一次软件危机与结构化程序设计(20 世纪 60 年代~20 世纪 70 年代)第二次软件危机与面向对象(20 世纪 80 年代)软件架构的历史背景总结 前言 我认为,如果想要深入理解一个事物的本质,最好的方式就是去追寻这个事物出现...
- 在Windows上,通过Cygwin编译的c程序在运行时,若有内存错误也会产生类似Linux上的core文件,但是该文件一般是以stackdump为后缀的文本文件,且文件提供的信息有限,只包含了程序coredump时函数调用的栈信息,不能像Linux一样使用gdb调试。所以,在Windows平台调试Cygwin编译的c程序不太方便。本文介绍一种方法,通过反汇编c程序,结合程序coredump... 在Windows上,通过Cygwin编译的c程序在运行时,若有内存错误也会产生类似Linux上的core文件,但是该文件一般是以stackdump为后缀的文本文件,且文件提供的信息有限,只包含了程序coredump时函数调用的栈信息,不能像Linux一样使用gdb调试。所以,在Windows平台调试Cygwin编译的c程序不太方便。本文介绍一种方法,通过反汇编c程序,结合程序coredump...
- 本节书摘来自华章计算机《汇编程序设计与计算机体系结构:软件工程师教程》一书中第2章,第2.7节,作者是布莱恩·R. 霍尔(Brian R. Hall)[美] 凯文·J.斯隆卡(Kevin J. Slonka),爱飞翔 译。 本节书摘来自华章计算机《汇编程序设计与计算机体系结构:软件工程师教程》一书中第2章,第2.7节,作者是布莱恩·R. 霍尔(Brian R. Hall)[美] 凯文·J.斯隆卡(Kevin J. Slonka),爱飞翔 译。
- 本节书摘来自华章计算机《汇编程序设计与计算机体系结构:软件工程师教程》一书中第1章,第1.5节,作者是布莱恩·R. 霍尔(Brian R. Hall)[美] 凯文·J.斯隆卡(Kevin J. Slonka),爱飞翔 译。 本节书摘来自华章计算机《汇编程序设计与计算机体系结构:软件工程师教程》一书中第1章,第1.5节,作者是布莱恩·R. 霍尔(Brian R. Hall)[美] 凯文·J.斯隆卡(Kevin J. Slonka),爱飞翔 译。
- 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第2章,第2.4.2节,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第2章,第2.4.2节,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。
- 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第1章,第1.6节,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。 本节书摘来自华章计算机《计算机组成与体系结构(原书第4版)》一书中第1章,第1.6节,作者是[美] 琳达·纳尔(Linda Null)朱莉娅·洛博(Julia Lobur)宾夕法尼亚州立大学,张 钢 魏继增 李雪威天津大学 李春阁 何 颖天津大学仁爱学院 译。
- 本节书摘来自华章计算机《Python语言程序设计》一书中第1章,第1.1.1节,作者是王恺 王志 李涛 朱洪文。 本节书摘来自华章计算机《Python语言程序设计》一书中第1章,第1.1.1节,作者是王恺 王志 李涛 朱洪文。
- 本文转载自公众号 码农翻身1第一天上帝看到人类发明了计算机,但一直在用汇编语言艰难地写程序,很是伤心,就把编译器的秘密告诉了约翰·巴科斯,让他带领大家写出了编译器,从此人类可以用高级语言写程序,然后编译成机器语言去运行了。上帝还教会了人类使用顺序、循环、分支这三种基本的程序结构来编写程序。人类很高兴,写的代码越来越长。2第二天但是人类经常写下臭长臭长的代码,然后把代码Copy得到处都是。上帝... 本文转载自公众号 码农翻身1第一天上帝看到人类发明了计算机,但一直在用汇编语言艰难地写程序,很是伤心,就把编译器的秘密告诉了约翰·巴科斯,让他带领大家写出了编译器,从此人类可以用高级语言写程序,然后编译成机器语言去运行了。上帝还教会了人类使用顺序、循环、分支这三种基本的程序结构来编写程序。人类很高兴,写的代码越来越长。2第二天但是人类经常写下臭长臭长的代码,然后把代码Copy得到处都是。上帝...
- 计算机已成为现代人日常工作、学习和生活中必不可少的工具。操作系统是计算机之魂,作为用户使用计算机的接口,它负责调度执行各个用户程序,使计算机完成特定的任务;作为计算机硬件资源的管理者,它负责协调计算机中各类设备高效地工作。操作系统的重要性不言而喻。对于软件工程师,理解操作系统的工作原理和关键机制是设计高质量应用程序的前提,但要做到这一点是十分困难的。一方面,操作系统设计涉及计算机科学与工程学... 计算机已成为现代人日常工作、学习和生活中必不可少的工具。操作系统是计算机之魂,作为用户使用计算机的接口,它负责调度执行各个用户程序,使计算机完成特定的任务;作为计算机硬件资源的管理者,它负责协调计算机中各类设备高效地工作。操作系统的重要性不言而喻。对于软件工程师,理解操作系统的工作原理和关键机制是设计高质量应用程序的前提,但要做到这一点是十分困难的。一方面,操作系统设计涉及计算机科学与工程学...
- 前言 在学习深入学习Go语言的过程中,需要大量阅读Go语言的汇编代码来查看Go运行的运行原理,那么本文将简单介绍Go语言的汇编指令语法,让大家后续可以简单读懂Go的汇编指令。 简介 Go语言的汇编是基于Pan9汇编语言的风格(https://9p.io/sys/doc/asm.html) 大部分情况我们是不需要写汇编代码的,所以下面主要简单介绍一下Go的汇编语法 生成汇编 前言 在学习深入学习Go语言的过程中,需要大量阅读Go语言的汇编代码来查看Go运行的运行原理,那么本文将简单介绍Go语言的汇编指令语法,让大家后续可以简单读懂Go的汇编指令。 简介 Go语言的汇编是基于Pan9汇编语言的风格(https://9p.io/sys/doc/asm.html) 大部分情况我们是不需要写汇编代码的,所以下面主要简单介绍一下Go的汇编语法 生成汇编
上滑加载中
推荐直播
-
GaussDB管理平台TPOPS,DBA高效运维的一站式解决方案
2024/12/24 周二 16:30-18:00
Leo 华为云数据库DTSE技术布道师
数据库的复杂运维,是否让你感到头疼不已?今天,华为云GaussDB管理平台将彻底来改观!本期直播,我们将深入探索GaussDB管理平台的TPOPS功能,带你感受一键式部署安装的便捷,和智能化运维管理的高效,让复杂的运维、管理变得简单,让简单变得可靠。
回顾中 -
走进数据库:数据库基础知识精讲
2024/12/27 周五 16:00-17:30
Steven 华为云学堂技术讲师
数据管理是数据库的核心任务,本期直播将带领大家一起走进数据库,了解期发展趋势、基础模型、架构演进及相关的技术特点。同时还会介绍数据库对象和相关概念,帮助开发者对数据库使用和实践夯实基础。
去报名
热门标签