操作系统
2022-07-17
这个作者很懒,什么都没留下…
展开
-
国内下载Linux kernel源码慢解决方法
下载kernel源码慢原创 2022-11-26 08:30:32 · 1991 阅读 · 0 评论 -
基于Qemu搭建x86_64虚拟环境运行Linux内核
主机软件版本信息主机系统:wxer@wxer:~$ lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 20.04.1 LTSRelease: 20.04Codename: focal模拟器版本(Qemu版本):wxer@wxer:~$ qemu-system-x86_64 --versionQEMU emulator version 4.2.0Copyrig原创 2020-09-05 14:28:23 · 7033 阅读 · 0 评论 -
bochs运行bootloader的流程
创建虚拟软盘镜像文件安装好bochs软件后, 自带也安装了bximage工具,通过bximage工具,可以创建虚拟软盘或者硬盘镜像文件。bximage创建虚拟软件镜像文件的步骤如下输入 ** bximage** 命令该命令输出如下信息======================================================================== bximage Disk Image Creation原创 2020-05-19 00:03:46 · 901 阅读 · 0 评论 -
Ubuntu 20.04下bochs安装
下载bochs当前版本:2.6.11下载地址:https://sourceforge.net/projects/bochs/files/bochs/2.6.11/bochs-2.6.11.tar.gz下载命令:wget https://sourceforge.net/projects/bochs/files/bochs/2.6.11/bochs-2.6.11.tar.gz安装解压tar zxvf bochs-2.6.11.tar.gz配置./configure --prefix=原创 2020-05-18 22:44:47 · 2458 阅读 · 0 评论 -
从零开发操作系统(2) —— 实模式下操作显卡内存打印字符串
前一节通过BIOS显示字符串中断实现字符串打印功能。此处修改为通过汇编指令直接操作显卡内存来实现字符串打印功能,实现代码如下#include <inc/boot.h>.code16.global startstart: xorw %ax, %ax movw %ax, %ds movw %ax, %es movw %ax, %fs ...原创 2019-11-30 23:30:16 · 613 阅读 · 0 评论 -
yale_OS(7)——xv6中的文件系统(File System)
一、概述文件系统的作用:组织和存储数据。文件系统的特性:1)支持在用户和应用中间共享数据;2)数据持久存在,当系统重启后,数据仍然可用。xv6文件系统提供类Unix的文件(files)、目录(directory)、路径(pathnames),持久保存数据在IDE磁盘上。那么文件系统主要解决如下几个难题:1)文件系统需要磁盘上的数据结构来表示命名的翻译 2012-10-28 09:40:18 · 6531 阅读 · 2 评论 -
yale_OS(6)——xv6中boot loader的学习
xv6的引导程序当x86的PC启动的时候,它首先执行的程序是BIOS,该段程序存储在主板的flash内存中,BIOS的任务有以下两种:1.为后面程序的运行初始化硬件2.把控制权转移到操作系统,尤其是转移到从boot sector中读取的代码处,该boot sector是boot disk的第一个512字节的sector,BIOS加载扇区的内容到内存的0x7c00处,然原创 2012-06-05 23:07:47 · 2601 阅读 · 0 评论 -
yale_OS(3)——Intel IA32架构
<!--@page {margin:2cm}p {margin-bottom:0.21cm}-->简单介绍Intel IA32 PC架构Intel使用IA32来代表Pentium处理器族,以区别64bit的架构。1.模式IA32处理器有三种操作模式实模式:当PC上电或复位时,处理器处于这种模式,此时可以使用一条简单的指令转换到保护模式保护模式原创 2012-05-29 22:55:15 · 1814 阅读 · 0 评论 -
yale_OS(5)——BIOS提供的服务
下面对yale——OS中使用的BIOS功能进行简单介绍1.显示器内存在PC中,显示器的RAM映射到内存空间,通过写0xb800:0000开始的显示RAM来直接写到显示屏上,显示屏上的每一个位置需要两个bytes,一个用于指定属性(用0x07表示白色),另一个用于字符自身,字符显示屏有25行,每行有80个字符。所以,写到第i行,第j列,需要写2个bytes到偏移((i-1)*80+(j-1)原创 2012-05-30 21:42:34 · 1138 阅读 · 0 评论 -
qemu运行pintos
Pintos:基于80x86架构的一个简单操作系统框架,支持内核线程,加载和运行用户程序,以及一个文件系统,但是所有这些都是以一种简单的方式实现。Pintos理论上可以运行在普通的IBM兼容的PC机上。但是为了便于调试内核代码,Pintos运行在仿真器上,我们将使用Bochs和Qemu仿真器一. qemu安装1. 配置./configure --prefix原创 2015-05-17 10:56:36 · 4830 阅读 · 0 评论 -
使用GNU工具链进行嵌入式编程(一)
使用GNU工具链进行嵌入式编程1. 简介2. 建立ARM实验环境3. Hello ARM4. 更多的ARM汇编原语5. 使用RAM6. 链接器7. 链接器脚本文件8. RAM中数据(举例)9. 异常处理10. C启动程序11. 使用C语言库12. 内联汇编13.....本翻译 2015-08-09 20:34:52 · 3401 阅读 · 0 评论 -
qemu安装
QEMU下载wget http://wiki.qemu-project.org/download/qemu-2.6.1.tar.bz2解压tar jxvf qemu-2.6.1.tar.bz2进入Qemu目录cd qemu-2.6.1/新建build目录并进行build目录进行软件配置,编译,安装mkdir buildcd build原创 2016-08-19 21:59:04 · 6302 阅读 · 0 评论 -
MIT操作系统课程CS6.828实验(1) —— 工具链安装
6.828中使用的工具6.828中使用两类工具:x86模拟器 - Qemu, 用于运行内核编译工具链 - 汇编器,链接器,C编译器和调试器, 用于编译和测试内核本节内容讲述下载和安装这些工具(假设已经熟悉常用Unix命令用法)若是在Windows下搭建开发环境,需要安装Cygwin(确保安装flex和bison包,开发头文件需要)1. Qemu emulator安装翻译 2016-08-13 11:59:26 · 6492 阅读 · 0 评论 -
MIT操作系统课程CS6.828实验(3) —— 启动PC(Lab1)
这是第一列宽度为220这是第一列宽度为420这是第一列宽度为340这是第一列宽度为20翻译 2016-08-14 00:57:02 · 8345 阅读 · 0 评论 -
从零开发操作系统(1) —— 实模式下显示字符串
从零开发操作系统的目标是实现一个简化版本的基于x86架构处理器的操作系统,在实现的过程中,加载对操作系统原理的理解。以及熟悉开发软件功能的使用。本次实验完成如下功能:熟悉操作系统开发软件的使用,包括gcc,ld,qemu,dd等 完成基本操作系统的组织结构 熟悉实模式上电流程操作系统开发软件编译器:gcc链接器:ld仿真器:qemu其他:objcopy,dd上电流...原创 2019-10-04 12:39:46 · 918 阅读 · 0 评论 -
yale_OS(4)——Intel IA32架构CPU的汇编编程
IA32架构CPU下的汇编编程学习通常掌握某一特定机器的汇编编程技术需要一定的时间。然而,如果掌握其他处理器的汇编编程(例如ARM,MIPS等),那么学习IA32结构CPU下的汇编编程将会省去很多时间。以下对IA32架构下的汇编语言编程进行简单的总结,方便以后回头来温习1.指令语法关于IA32架构的CPU的汇编语言的语法和表示有两种约定:Intel和AT&T,大多数的文件使用Intel原创 2012-05-30 21:06:23 · 1955 阅读 · 0 评论 -
yale_OS(2)——OS-xv6的源代码的调试
xv6源代码的调试(源代码的下载,编译,运行如:yale_OS(1)——OS-xv6的源代码的下载,编译和运行所示)在QEMU下远程调试xv6.(学习课程地址如下:http://zoo.cs.yale.edu/classes/cs422/2011/lec/l2-hw)1.打开一个终端,进入xv6目录下,运行如下命令:make qemu-gdb 此时qemu进入等待状态,如下:原创 2012-05-27 22:39:23 · 5200 阅读 · 0 评论 -
现代操作系统特点
<br />现代操作系统的特性:<br />并发、<br />共享、<br />虚拟、<br />异步。<br /> <br />同时具有如下的五个基本功能:<br />存储器管理、<br />处理器管理、<br />设备管理、<br />文件管理、<br />用户接口。<br /> <br />原创 2011-01-04 16:25:00 · 2716 阅读 · 0 评论 -
编写操作系统的建议
<br />编写操作系统的建议<br />1、最基本的知识<br /> 能较好地使用GNU/Linux操作系统<br /> 熟悉C语言和汇编语言<br /> 理解x86处理器的保护模式、段、描述符、逻辑地址转换<br /> <br />2、一些基本的开发工具<br /> GNU/Linux操作系统<br /> Bochs x86模拟器<br /> GCC、nasm、ld等开发工具<br /> <br />3、编程语言的选择<br /> 启动扇区:一般情况下0扇区就是启动扇区<br原创 2011-01-04 16:44:00 · 667 阅读 · 0 评论 -
make的简单使用规则
<br />make的使用<br />1.make基本使用规则<br />make在使用时可以根据一系列预先设定的规则来运行。这些设定的规则可以记录在一个文件中,默认该文件的名字是Makefile。<br />make的使用形式为:<br />make [option] [macrodef] [target]<br />option指出make的工作行为,make的主要选项有:<br />-c dir make在开始运行后的工作目录为指定目录<br />-f filename 使用指定的文原创 2011-01-06 18:31:00 · 1287 阅读 · 0 评论 -
JOS的工具的安装以及源代码的调试
<br />在Unbuntu下运行JOS下编译JOS操作系统需要的工具如下:<br />1)gcc 这个Unbuntu自带,但是版本比较高,因为需要对JOS中一些地方作一下修改,(long long num改为long num)<br />2)nasm<br />3)QEMU<br /> <br />gcc和nasm在Unbuntu中都已经有了,所以就不需要安装了。<br /> <br />QEMU的安装如下:<br />1)在mit的网站上下载打过补丁的QEMU,没有打过补丁的不能用于后面JOS的调试<b原创 2011-01-12 19:16:00 · 2069 阅读 · 0 评论 -
如何在Ubuntu10.04系统手动安装gcc4.5.0编译器(转)
<br /><br />本文教大家如何在Ubuntu10.04系统手动安装gcc4.5.0编译器,ubuntu10.04自带的gcc编译器的版本是4.4.3,而目前的最新版本是4.5.0。 <br /><br /><br /> 因为在配置gcc的过程中出现错误:gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+<br /><br /> 说明要安装gcc需要GMP、MPFR、MPC这三原创 2011-03-08 15:54:00 · 1303 阅读 · 0 评论 -
ubuntu编译VIM7指南
<br /><br /><br />vim7的alpha版本已经出来很久了,增加了很多特性,比如tabpage,自动完成,拼写检查等,改善特别大,为了尝鲜,我们可以自己获取源代码来编译.<br />今天终于编译成功了,非常顺利,真是会者不难,难者不会.<br />我把我的编译过程列在下面,希望能够给想自己编译vim7的朋友提供一些帮助.(注,这是我第一次在linux编译成功软件,也是自己编译的第一个软件,连我都会了,想来大家更是没有问题)<br /><br /> * 首先第原创 2011-03-10 14:35:00 · 959 阅读 · 0 评论 -
实模式简介(翻译自OS Dev)
<br /><br />实模式<br />实模式是所有的Intel x86处理的初始的16比特操作模式,之所以在现代的x86处理器中存在实模式是为了与80386之前的处理器保持兼容。<br /> <br />1. 简介<br />所有现代的操作系统(Windows、Linux…)都运行在保护模式下,由于实模式存在很多限制和问题,比较老的运行在实模式下的操作系统(像DOS)和程序,由于当时这有这一种模式可以使用,可以通过阅读一些文章,获得如何从实模式转换到保护模式。<br /> <br />注意:有一原创 2011-03-23 14:39:00 · 1279 阅读 · 0 评论 -
The bootloader of xv6
图1 PC启动时流程图以及程序执行过程翻译 2011-09-17 15:41:24 · 1198 阅读 · 0 评论 -
OS中的内存管理的发展历史
对于一项技术来说,了解其发展过来的历史和进程其实很重要任何技术的初衷不管多么的复杂,都不是一蹴而就的,都是慢慢发展而来的,其初衷往往都很简单。因此,通过对技术的发展历史的了解,能够理清这项技术的思路。在这里,主要讨论OS如何为各个进程分配运行的内存空间。在孙钟秀的转载 2011-09-27 15:01:59 · 1672 阅读 · 0 评论 -
内存分配原理(转)
内存分配Memory DistributionMemory.{pas|bas|c}Memory.exe内存是计算机重要的资源之一,程序运行的过程中必须对内存进行分配。经典的内存分配过程是这样进行的:内存以内存单元为基本单位,每个内存单元用一个固定的整数转载 2011-10-08 16:17:06 · 1700 阅读 · 0 评论 -
一步一步写嵌入式操作系统学习(一)
学习方法:1)以《一步一步写嵌入式系统》为主线,以其他的本书中未提到的相关知识、参考资料为辅助。2)要多多实践。开发环境的搭建:需要解决四个问题:在什么样的系统环境下开发?使用什么样的编辑工具?怎样编译程序?程序如何运行?1、关于在什么样的系统环境下开发?建议使用Linux操作系统来学习和编写本书的示例。也可以在windows下使用Cygwin工具来运行编译和运原创 2011-10-28 14:16:57 · 2615 阅读 · 2 评论 -
一步一步写嵌入式操作系统中skyEye-1.2.6的安装问题
在最近版的linux中安装skyeye-1.2.6-rc1.tar.bz2时,会出现以下的错误:/usr/include/bits/fcntl2.h:51:error:call to '_open_missing_mode' declared with attribute error:open with O_CREAT in second argument needs 3 arguments.原创 2011-11-03 21:33:15 · 1692 阅读 · 0 评论 -
一步一步写嵌入式操作系统之MMU
MMU——memory management unit的缩写。它代表集成在CPU内部的一个硬件逻辑单元,主要作用是给CPU提供从虚拟地址向物理地址转换的功能,从硬件上给软件提高一种内存保护的机制。物理地址:即硬件自己定义的地址往往是不可更改的。虚拟地址:这个地址在真实的硬件中并不存在,只不过我们可以通过访问虚拟地址而间接实现对物理地址的访问,并且只能使用这种方法进行访问。并且只能使用这种方原创 2011-11-04 13:06:38 · 2096 阅读 · 1 评论 -
yale_OS(1)——OS-xv6的源代码的下载,编译和运行
yale大学的OS课程的源代码下载,编译和运行。课程地址为:http://zoo.cs.yale.edu/classes/cs422/2011/sched一 获取源代码1.下载源代码 命令如下:wget http://zoo.cs.yale.edu/classes/cs422/2011/xv6-rev4.tar.gz2.解压缩下载的源代码 命令如下:tar xz原创 2012-05-27 19:25:15 · 6501 阅读 · 2 评论 -
操作系统学习笔记(一)——存储管理(1)
当装入程序将可执行代码装入内存时,程序的逻辑地址与程序在内存的物理地址一般是不相同的,必须通过地址转换将逻辑地址转换成内存地址,这个过程称为地址重定位,下图说明了重源程序的名地址到内存中的可执行代码的地址变换过程一、地址定位方式:1、固定定位方式由程序员在编写程序时或由编译连接程序对源程序进行编译连接时,直接指定程序在执行时访问的实际存储器地址的方式称为固定定位方式。2、静态重定位方式就是源程序经编译和连接后生成目标代码中的地址是以0为起始地址的相对地址,当需要执行时,由装入程序运行重定位程序模块,根据作业原创 2010-07-02 15:37:00 · 1635 阅读 · 0 评论