感悟,原来在virtualbox中弄得系统是一场梦幻,在真机上是不能运行的,真的很……
在virtualbox弄的图形模式,一旦到真是环境下运行,就什么也没有了,原来之前一年多所做的努力都特么的很傻很天真了。当然这也是决心迁移到bochs中继续弄下去的原因之一,希望这次能够有所进步,不再是梦幻一场了。最后,再见了virtualbox,毕竟是给了我首次启发灵感的虚拟机系统!
天书一般的gcc嵌入汇编(内联汇编),似乎没有选择,硬着脑瓜皮学下去吧!
运行结果:(参考书籍《LInux内核完全注释》,赵炯编著) 仿照手中自己编写的代码:
#include <stdio.h>
#define mystrcpy(dest, source) \
({ \
register char *mydest __asm__("edi"); \
__asm__("cld; \
pushl %%edi; \
1: \
movsb; \
cmpb $0, (%%esi); \
jne 1b; \
popl %%edi" \
:"=D
下载了ucore os,在virtualbox——ubuntu——qemu虚拟机上运行(是不是很绕),据说这是清华的教学用系统,呵呵今天收获不小
我最会发效果图了 为什么国内大学的教学系统不早发出来! 若是在2003年时有这样的系统! 我菜鸟队哪里会走那么多弯路!
看来嵌入汇编还是挺有魅力的,让我来晒晒今天实验的代码吧!(也算文章凑数吧,无所谓了怎么说都行了!)
这是运行效果: 代码:这段代码是内存linux0.11中学来的,语义大概是从后面搜索每字节,如果找到1就把它改成2,然后返回改动处前一个字节的地址。(可以看到显示字符串的起始地址是0x404004,后面显示的地址为404009,因为是从后往前检索)
#include <stdio.h>
#define edi_val(edi) ({ \
register unsigned int __res; \
__asm__ __volatile__("std; repne; scasb; \
mo
加入了基于简单优先级的任务调度,看着好像跟时间片轮转没什么区别
int k_reenter = -1;
// Descriptor
typedef struct descriptor {
short limit_low;
short base_low;
char base_mid;
char access_right;
char limit_high;
char base_high;
}descriptor, *Descriptor;
typedef struct gate {
short offset_low;
short selec
在bochs下的图形模式也是挺好看的,哈哈!
晒图: multiboot2.h
/* multiboot2.h - Multiboot 2 header file. */
/* Copyright (C) 1999,2003,2007,2008,2009,2010 Free Software Foundation, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software
上一篇仅是晒了图,但没有给代码,这一片把代码晒出来。
/* multiboot2.h - Multiboot 2 header file. */
/* Copyright (C) 1999,2003,2007,2008,2009,2010 Free Software Foundation, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated doc
mysql出现ncorrect string value: '\xF0\x9F...' for co
mysql出现ncorrect string value: '\xF0\x9F...' for column 'XXX' at row 1
PGSQL查询数据出现错误:ERROR: could not read block 0 in fil
PGSQL查询数据出现错误:ERROR: could not read block 0 in file "base/16389/17624"
ubuntu离线安装docker及问题解决
包下载链接https://apt.dockerproject.org/repo/pool/main/d/docker-engine/docker-engine_1.12.3-0~xenial_amd64.deb上传服务器并安装# dpkg -i docker-engine_1.12.3-0-xenial_amd64.deb 启动服务# service docker start出错1:启动
跟我学Spring Cloud(Finchley版)-07-Ribbon入门
经过前文讲述,我们已经实现了服务发现。本节来解决跟我学SpringCloud(Finchley版)-02-构建分布式应用提到的如下问题:负载均衡如何考虑?难道得在电影微服务和用户微服务之间加个NGINX做负载均衡吗?听起来是可行的,但如果有10000+服务(这并不夸张,我司的微服务数目是这个数字乘以N,N>=m,哈哈哈)那这个NGINX的配置得有多复杂……一般来说,提到负载均衡,大家一般很容
windows机器使用python出错:ImportError: No module named b
windows机器使用python出错:ImportError: No module named bs4
Django web开发系列(一)图书借阅管理系统之需求分析
一 前言Python selenium系列文章之后,一直想写关于Django的,把python web开发相关的知识理一理,但却忙于各种事,拖到了现在。元旦前,部门新进一批图书,突然,灵光一现,这些书籍如果以后就这样随意借出去,散落在几十号兄弟姐妹手里,估计,以后找书、借书都要靠喊了。于是,就想开发一个内部图书借阅管理系统吧,整好解决一下实际问题。 有了目标就会有动力,刚好借着元旦放假,
今日推荐
周排行