操作系统学习笔记
文章平均质量分 66
荆赤潮
这个作者很懒,什么都没留下…
展开
-
32位保护模式的笔记2
image.png image.png【0x0000:0x7C00~0x0000:0x7E00】实模式下boot的加载地址,512=0x200。【0x000B8000】显存的起始位置。【0x000A0000~0x000FFFFF】ROM BIOS,硬件专有的。GDT:全局描述符表(Global Descriptor Table)。GDT中的元素是描述符(De...原创 2018-07-09 22:14:00 · 182 阅读 · 0 评论 -
【面试练习题】线程相关:来自《后台开发技术应用实践》 + 其他
【1】线程的状态:默认为非绑定、非分离、1MB大小的堆栈(ubuntu 2.6的内核线程栈的默认大小为8M),与父进程具有同样的优先级【2】等待线程——pthread_join 功能:阻塞等待,知道子线程结束运行,然后得到子线程退出码,回收子线程的资源。 如果不使用pthread_join回收线程,可能会导致类似僵尸进程一样的问题,导致内存泄漏。 【3】线程分离...原创 2019-07-09 10:58:01 · 543 阅读 · 0 评论 -
【面试练习题】进程间通信方式的区别
【1】管道 亲缘关系(父子、兄弟) 单向通信,如果需要双工通信,则需要建立两个管道 管道缓冲区大小受限制(由操作系统内核设定) 管道传输的是无格式的字节流,需要输入输出双方事先约定好数据的格式 是一个只存在在内存中的文件 【2】有名管道(又叫FIFO) 有名 +非亲缘 可以一个服务器接收多个客户端的管道。比如客户先把自己的进...原创 2019-07-09 10:42:17 · 840 阅读 · 0 评论 -
【读书笔记】《深入理解计算机操作系统》第七章
【1】预处理编译汇编过程预处理器(预处理,生成ASCII码中间文件)——》编译器(编译,生成ASCII码汇编语言文件)——》汇编器(汇编,生成可重定位目标文件)——》链接器(链接,生成可执行目标文件)【2】ELF格式的可重定位目标文件格式:——————|ELF头|——————|.text| —— 已经编译程...原创 2019-06-25 20:59:35 · 588 阅读 · 0 评论 -
32位保护模式笔记2(2018.7.9写于简书)
image.pngimage.png【0x0000:0x7C00~0x0000:0x7E00】实模式下boot的加载地址,512=0x200。【0x000B8000】显存的起始位置。【0x000A0000~0x000FFFFF】ROM BIOS,硬件专有的。GDT:全局描述符表(Global Descriptor Table)。GDT中的元素是描述符(De...原创 2019-05-31 15:23:28 · 533 阅读 · 0 评论 -
Python爬取图片练习
项目遇到瓶颈,所以上周的学习笔记也没有写。周五周六花了两天,打算看一下python调节一下心情。Python语言创始于1989年,是一门脚本语言,在数据处理方面很有优势。Python是一个轻量级工具,安装很方便。Windows下安装见教程:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac927076...原创 2017-11-26 11:38:00 · 357 阅读 · 0 评论 -
关于32位保护模式下的进程调度
前几篇学习笔记非常简短,因为想等现在手头工作差不多了来个总结性大招,但转眼一个月过去了,关于系统在保护模式下的操作实在是“仰之弥高,钻之弥坚”……心累,大招也放不出来了。这一个月时间里,我主要是依靠这基本书在学保护模式和操作系统,有几本上一篇学习笔记中提到过了,再提一下表达我对作者大大们的谢意。还有CSDN上的博客,尤其是《30天》的笔记,也给了我很大帮助:http://www.cnb...原创 2017-11-10 23:41:00 · 226 阅读 · 0 评论 -
制作Linux可识别的软盘映像文件(FAT12格式)
一张可以被Linux识别的软盘映像很有好处的,我们可以在Linux下对软盘里的文件进行操作,Linux会在软盘映像中自动补充根目录,便于软盘中文件的组织。如果想知道软盘中有没有某个文件,只要在目录中搜索文件名就行。(FAT12格式的软盘,摘自《Orange'S:一个操作系统的实现》)(摘自《Orange'S:一个操作系统的实现》)上一篇学习笔记中说过,采用dd指令,可以制作一个...原创 2017-11-10 12:56:00 · 1698 阅读 · 0 评论 -
计算机硬件基础之重学8086
好久不发学习笔记了,一部分是因为中秋后这周感冒了,过得实在怠惰,另一部分是因为之前领到老板布置的任务后,实在是很懵逼。上周一再次和导师沟通了一波,还是很懵逼,没有揣度出来老板究竟想让我们干什么,好像是要做一个实时进程调度的实验方案?直到上周四晚上,队友徐老板一语点醒梦中人:“老板可能会想‘让你们看点书就这么难吗?’要不然为什么我们都问了他两次了,他都在给我们介绍基础?”哦哦哦哦,好...原创 2017-11-04 14:33:00 · 236 阅读 · 0 评论 -
NASM环境搭建+创建虚拟软盘镜像
这周项目进展缓慢,学习笔记上也只是写了点环境的搭建和虚拟软盘镜像img的创建,不过dd指令的灵活使得我对Linux系统颇有好感。NASM是一个不错的汇编语言编译器,不过愿你们一辈子不需要用到它。NASM的下载与安装(Windows):1.下载进入官网http://www.nasm.us/,选择“Thelatest stable version of NASM is 2....原创 2017-11-04 14:31:00 · 1262 阅读 · 0 评论 -
C与汇编合作编程+Makefile
这周主要学习了保护模式下操作系统的加载与运行,但还没有完全学完。其中有个知识点是汇编语言与C语言合作实现一段程序。大概流程是这样:image.png(图来自《Orange'S:一个操作系统的实现》) image.png 在Linux上实现,具体实现大致是:①在写.asm程序的时候使用“extern”表示使用的函数来自外部文件,使用“global”表示函数可以被外...原创 2017-12-12 11:18:00 · 1059 阅读 · 0 评论 -
linux popen与pclose的demo
采用popen打开执行一个shell指令。// proc1.cpp#include <string>#include <iostream>#include <stdio.h>using namespace std;int main(){ string str = "hello"; cout<<str<<e...原创 2018-06-18 16:02:00 · 194 阅读 · 0 评论 -
unix系统中的信号量(alarm+pause)demon
Demo1:#include <unistd.h>#include <signal.h>#include <stdio.h>using namespace std;void handler(int) { printf("Hello\n"); signal(SIGALRM,handler); //让内核做好准备,一旦接受到SIGALA...原创 2018-05-21 14:23:00 · 251 阅读 · 0 评论 -
一天速读《Unix网络编程》(上):TCP/UDP/IP + select/poll/epoll
Unix网络编程里面的5种IO分类 阻塞IO 非阻塞IO 信号驱动IO IO复用模型 异步IO 前四种都是同步IO,最后一种是异步的。(信号驱动IO因为数据从内核空间复制到用户空间的时候仍然会被阻塞,因此算也是同步的)。 同步IO——导致请求进程阻塞(请求进程:调用IO API的那个进程) 异步IO——不会导致请求进程阻塞 ...原创 2019-07-04 16:32:08 · 726 阅读 · 0 评论