- 博客(35)
- 资源 (8)
- 收藏
- 关注
原创 自己动手写操作系统:4.模拟软盘的数据结构,加载指定软盘扇区中的数据
前面两节介绍了如何在系统加载的时候在屏幕上打印出Hello OS! 我们是使用汇编直接对cpu进行操作,我们的数据容量只有启动扇区的512字节,这样的空间显然不够以后的开发使用。本节我们引入软盘的数据结构,对软盘的数据结构进行模拟,并加载软盘中指定扇区的内容。本节按照一下结构组织:1.介绍软盘的物理以及逻辑结构2.根据软盘逻辑结构,使用C语言创建软盘映像文件,并
2017-08-13 10:21:39 1233
原创 自己动手写操作系统:3.搭建虚拟机并验证系统bootloader
本次我制作操作系统 所有的程序编译都运行在 ubuntu 14中,虚拟机也是安装在ubuntu中的,我们把ubuntu作为我们的编译运行环境,程序的编写我们在windows中。前面在第一节中介绍了怎么搭建samba环境,现在我们介绍写怎么搭建虚拟机环境。在ubuntu中使用命令 sudo apt-get install libvirt-bin virt-manager bri
2017-08-11 23:49:13 954
原创 自己动手写操作系统:1.cpu中寄存器、汇编语言及其它基础知识
这些是16位寄存器 AX accumulator 累加寄存器 AH 高八位 AL 低八位CX counter 计数寄存器CH 高八位 CL 低八位DX data 数据寄存器实模式 寻址方式 16BX base 栈指针寄存器 BH 高八位 BL 低八位16位的段寄存器汇编指令介绍启动区内容装载地址
2017-08-10 05:48:50 661
原创 【k8s】docker 容器云 学习资源
1.专栏学习 2.实验广场docker 与 k8s 环境搭建实操https://labs.play-with-k8s.com编写了一个给 kubeadm 用的 YAML 文件apiVersion: kubeadm.k8s.io/v1alpha1kind: MasterConfigurationcontroller...
2018-11-02 14:56:30 272
原创 自己动手写操作系统:2.C语言文件操作,制作系统引导程序
目标:2.指定A的内容:由汇编程序生成,写入到B中,且在B文件的255字节和256字节赋值 0x55 0xaa开始学习:一、c语言文件的操作模式:r:可读w:可写a:在文件后面追加b:二进制文件 int fflush(FILE *stream); int flushall(); int fread(void *ptr,int size,int nitems,FILE *stream); int fwrite(void *ptr,int size,int nitems,FILE *stre
2017-08-11 07:34:32 1474
原创 自己动手写操作系统:0.环境搭建
使用notepad++ 编译java程序http://blog.sina.com.cn/s/blog_1510dfa980102vu0b.html安装sambahttp://www.linuxidc.com/Linux/2011-07/38996.htm链接的时候选择\\192.168.0.180\share 用户名 xujun 密码 174242[share]
2017-08-09 07:18:40 308
转载 C++ 封装 继承 多态 (重点多态的实现)
C++封装继承多态总结面向对象的三个基本特征面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!封装
2016-07-17 15:07:16 327
转载 C++智能指针 相关知识
一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::share
2016-07-17 14:47:40 234
转载 深拷贝与浅拷贝区别
先说总结一下深拷贝浅拷贝的区别:如果实行位拷贝,也就是把对象里的值完全复制给另一个对象,如A=B。这时,如果B中有一个成员变量指针已经申请了内存,那A中的那个成员变量也指向同一块内存。这就出现了问题:当B把内存释放了(如:析构),这时A内的指针就是野指针了,出现运行错误。 具体先说下自己的理解吧,浅拷贝,即在定义一个类A,使用类似A obj; A obj1(obj);或者A
2016-07-16 22:46:03 736
转载 C语言 volatile 修饰 变量作用 总结
volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatile int i=10; int j = i; ... int k = i;
2016-07-16 22:20:09 4231
原创 C编程—找单链表是否存在环,并找出环起点所在的节点位置
/*开始时间: 2016-07-14 14:44:32实现功能:找环 并找出在那个节点*/\#include#include#include#includeusing namespace std;typedef struct NodeList{ int value; struct NodeList *Next;}Node;Node * CreatList(Nod
2016-07-14 21:25:04 698
原创 C编程—找1000以内的素数
/*开始时间: 2016-07-14 13:51:58实现功能: 素数即除了本身和1以外不能被其他比他小的数整除的数*/#include#include#include#includeusing namespace std;int main(void){ int shuru=0,i,j; scanf("%d",&shuru); if(shuru<=0) p
2016-07-14 21:19:51 7283
原创 华为OJ—字符串排序
/*开始时间: 2016-07-14 20:38:30实现功能:编写一个程序,将输入字符串中的字符按如下规则排序。规则1:英文字母从A到Z排列,不区分大小写。 如,输入:Type 输出:epTy规则2:同一个英文字母的大小写同时存在时,按照输入顺序排列。 如,输入:BabA 输出:aABb规则3:非英文字母的其它字符保持原来的位置。 如,输入:By?e 输出:
2016-07-14 21:18:32 1311
原创 链表相关的操作整理(二)
/*开始时间: 2016-07-12 10:18:37实现功能:*/#include#include#include#includeusing namespace std;typedef struct nodelist{ int value; struct nodelist *next;}Node;int ListTotal=0;Node * CreatLi
2016-07-12 14:33:02 260
原创 翻转字符串中的单词
/*开始时间: 2016-07-11 21:03:09实现功能:单词翻转通过输入英文句子,将每个单词反过来,标点符号顺序不变。非26个字母且非标点符号的情况即可标识单词结束。标点符号包括,.!?样例输入 Hello, I need an apple.样例输出 olleH, I deen na elppa.*/#include#include#include#include
2016-07-11 22:01:30 478
转载 TCP/IP学习(3)
IP 网际协议IP 协议位于网络层,它是 TCP/IP 协议族中最为核心的协议,所有的 TCP、UDP、ICMP 及 IGMP 数据都以 IP 数据报格式传输。IP 协议提供的是 不可靠 、 无连接 的数据报传送服务。不可靠(unreliable):IP 协议不能保证数据报能成功地到达目的地,它仅提供传输服务。当发生某种错误时,IP 协议会丢弃该数据报。传输的可靠性全由上层协议来提
2016-06-29 22:18:02 554
转载 TCP/IP学习(2)
链路层介绍一、简介上一节已经介绍过,网络层协议的数据单元是 IP 数据报 ,而数据链路层的工作就是把网络层交下来的 IP 数据报 封装为 帧(frame)发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。 为达到这一目的,数据链路必须具备一系列相应的功能,主要有:将数据封装为帧(frame),帧是数据链路层的传送单位;控制帧的传输,包括处理传输差错,调节
2016-06-28 23:07:23 333
转载 TCP/IP学习(1)
TCP/IP 简介一、实验说明1. 环境登录无需密码自动登录,系统用户名 shiyanlou2. 环境介绍本实验环境采用 Ubuntu Linux 桌面环境,实验中会用到桌面上的程序:1.命令行终端: Linux 命令行终端,打开后会进入 Bash 环境,可以使用 Linux 命令;2.Gedit:简单、便捷的代码编辑器。3.
2016-06-28 23:01:55 344
原创 使用字符串对 字符串进行加密
要求如下所示:有一种技巧可以对数据进行加密,它使用一个单词作为它的密匙。下面是它的工作原理:首先,选择一个单词作为密匙,如TRAILBLAZERS。如果单词中包含有重复的字母,只保留第1个,其余几个丢弃。现在,修改过的那个单词死于字母表的下面,如下所示: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 ZT R A I L B Z E S
2016-06-06 22:36:08 4785
原创 sort() 排序函数 入门学习
对 整型数组 和 结构体数组 进行排序:包含 : 1. #include 2.using namespace std; // c++ sort()函数的使用.cpp : 定义控制台应用程序的入口点。//#include#include#includeusing namespace std;int comp(int a,int b){ return a<b;
2016-06-06 21:18:05 361
转载 数组指针与指针数组 及相关的内存偏移
数组指针和指针数组的区别数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4
2016-06-06 10:46:36 3057
转载 const 关键字总结
const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable)。我们来分情况看语法上它该如何被使用。1、函数体内修饰局部变量。例:void func(){const int a=0;}首先,我们先把const这个单词忽略不看,那么a是一个int类型的局部自动变量,我们给它赋予初始值0。然后
2016-06-06 09:59:10 446
转载 C语言 声明的一般 解读 方法
1.C语言声明的单独语法成份 声明器是C语言声明的非常重要成份,他是所有声明的核心内容,简单的说:声明器就是标识符以及与它组合在一起的任何指针、函数括号、数组下表等,为了方便起见这里进行分类表示。 1)指针 (1)* (2)* const (3)* volatile (4)* const volatile (5)* volatile
2016-06-06 09:44:50 348
转载 static 关键字 使用总结
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不
2016-06-06 09:02:48 432
原创 删除字符串中出现次数最少的字符
首次使用C++函数 sort(); // 删除字符串中出现次数最少的字符.cpp : 定义控制台应用程序的入口点。//#include#include#includeusing namespace std;int main(void){ char shuru[30]={0}; int book[255]={0},book2[255]={0},i,j; scanf("
2016-06-04 22:44:50 397
原创 大写字母统计
// 大写字母个数.cpp : 定义控制台应用程序的入口点。//#include#include#includeint main(void){ char shuru[100]; int i=0,sum=0; gets(shuru); if(strlen(shuru)==0) { printf("0\n"); return 0; } for(i=0;i
2016-06-04 21:19:50 343
原创 字符串的加密和解密
加密:数字加一 1变2 9变0 小写转大写后面一个字母 a变B z变A 大写转小写 A变b Z变a解密:相反// 字符串加解密.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#includevoid Encrypt (char aucPassword[], char aucResu
2016-06-03 20:09:45 625
原创 在一系列数中 找“7”
给定一个数N 从1到N 找到其中是7的倍数的数 和 包含数字‘7’的数 的总和:#include#includeint sum=0;int findseven(int shuzi);int main(void){ int target=0,i; scanf("%d",&target); for(i=1;i<=target;i++) { if(i%7==0)//注意 0%
2016-06-02 22:06:36 595
原创 名字的美丽度
问题描述:1.问题描述一个名字用一个漂亮度来衡量,名字均是字母组成,不区分大小写,字母‘A’~‘Z’每个字母1~26的漂亮度,字母的漂亮数值不定,名字最大的漂亮值作为名字的漂亮度。2.题目分析字符串处理问题,字母的漂亮值不定,所以根据字母出现次数,次数越多的则为大的漂亮值分五个步骤 1.读取字符串放在二维数组中 2.对字符大小写归一化 3.对重复字符进行统计 4.根据出现次
2016-06-01 23:18:47 554
原创 按照ASCIIl码 对元素进行从小到大排序
采用冒泡排序// 冒泡排序.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#includeint main(void){ char shuru[1024]; char *zifu; zifu=shuru; char temp; int len=0,i,j; scanf("%s",zifu);
2016-05-31 22:01:08 782
原创 C语言 链表相关 操作
今天对单链表的相关操作做了学习,掌握了链表操作的基本知识,做一个记录:// 链表操作.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"//预编译头 没关系#include#include#includetypedef struct node{int element;struct node * next;}Node;Node *
2016-05-31 21:10:18 322
原创 字符串最后一个单词长度
#include//gets printf#include//strlen#include//system(“pause”)int main(void)//改进 避免使用void main(){char shuru[200];char * a;//可以求长度的字符串输入int len=0,i,index=-1;a=shuru;gets(a);//原来使用scanf不能得到空格
2016-05-30 23:22:13 197
原创 字符串最后一个单词的长度
输入 hello world输出 5以空格为单词分隔符最大128个输入#include#include#includeint main(void){char shuru[200];char * a;int len=0,i,index=-1;a=shuru;gets(a);len=strlen(a);if(len==0) return 0
2016-05-30 23:14:28 236
ThoughtWorks林帆-白话Kubernetes网络
2018-01-25
腾讯云容器服务基于kubernetes的应用编排实践-final
2018-01-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人