随笔分类 - OS
linux/windows/other_os
    
摘要:编者按】一位独立开发者Gusc准备开发自己的系统了,但是今天他准备分享一下具体怎样开发的步骤。对于初学者来说,就是让你的代码成功在CPU上运行,且不需要任何底层操作系统,但首先你得有个计划:一.计划1. 瞄准现代架构,Intel 64,比如Ivy Bridge, 酷睿3rd i5 CPU 集成Intel HD 4000 GPU 以及 B75 Express芯片组2.避免遗留数据,尽快的删除它们,甚至可以跳过保护模式而直接进入长模式3. 尽快跳到C语言4. 忘掉旧PCI、IDE、PS/2、串行/并行端口;也忘掉BIOS( Basic Input Output System)、UEFI,我自己准备
        阅读全文
                
摘要:利用bochs调试内核(转载)利用bochs调试内核(主要是在windows下调试)Bochs具有非常强大的操作系统内核调试功能。这也是本文选择Bochs作为首选实验环境的主要原因之一。有关Bochs调试功能的说明参见前面14.2节,这里基于Linux 0.11内核来说明Windows环境下Bochs系统调试操作的基本方法。14.8.1 运行Bochs调试程序我们假设Bochs系统已被安装在目录“C:\Program Files\Bochs-2.1.1\”中,并且Linux 0.11系统的Bochs配置文件名称是bochsrc-hd.bxrc。现在在包含内核Image文件的目录下建立一个简单的
        阅读全文
                
摘要:向下舍入: 先从向下舍入说起,111以10为单位向下舍入为110,以100为单位舍入为100,从中不难发现所谓向下舍入,就是把最后几位数字强制变为0.,所以以4kbs为单位进行向下舍入为:t &= 0xfffff000; 向上舍入: 以4KB为例,向上舍入,先加0xfff判断进位,再向下舍入操作:t = (t + 0xfff) & 0xfffff000; 十进制数不能用...
        阅读全文
                
摘要:1.显示目前终端支持的语言2.修改LANGLANG=en_us//注意无空格3.Ctrl+d:终端输入结束4.man帮助命令标示含义执行man date 后出现如下图示:DATE(1)代号:1:用户在shell环境中可操作的命令或可执行文件。5:配置文件或某些文件格式。8:系统管理员可使用的管理命令。man帮助页大致分成下面几个部分:NAMESYNOPSIS:简短命令执行语法简介。DESCRIPTION:对命令完整的描述。OPTIONS:列举所有可用选项说明。COMMANDS:当这个程序在执行时,可以在此程序中下达指令。FILES:这个程序或数据所使用或单靠或连接到的某些档案。SEE ALSO
        阅读全文
                
摘要:Linux基本常用知识整理Linux启动过程1.BIOS自检。2.启动Grub。3.运行Linux内核并检测硬件。4.运行系统第一个进程init。5.init读取系统引导配置文件/etc/inittab中的信息进行初始化。6./etc/rc.d/rc.sysinit 系统初始化脚本。7./etc/rc.d/rcx.d/[ks]* 根据运行级别x配置服务。a)终止以”k”开头服务。b)启动以”s”开头的服务。8./etc/rc.d/rc.local 执行本地特殊服务。9. 其他特殊服务。 Linux指定运行级别 命令:#/sbin/init [0123456] runlevel :查看当前用户.
        阅读全文
                
摘要:含有后台运行功能,日后会不定期加入管道功能,历史记录功能#include <stdio.h>
#include <unistd.h>
#define MAX_LINE 80
void setup(char inputBuffer[], char *args[],int *background)
{ int length, i, start, ct; ct = 0; length = read(STDIN_FILENO, inputBuffer, MAX_LINE); start = -1; if (length == 0) exi...
        阅读全文
                
摘要:#include <stdio.h>
#include <sys/shm.h>
#include <sys/stat.h>
int main(void)
{ int segment_id; char* shared_memory; const int size = 4096; unsigned short mode; struct shmid_ds shmbuffer; segment_id = shmget(IPC_PRIVATE, size, S_IRUSR|S_IWUSR); shared_memory = (char*)shmat(segment_i
        阅读全文
                
摘要:子进程生成fibnacii 父进程输出 #include <sys/types.h>
#include <sys/shm.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#define MAX_SEQUENCE 10
typedef struct { int fib_sequence[MAX_SEQUENCE]; int sequence_size; }shared_data;
int main(int 
        阅读全文
                
摘要:#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
int value = 5;
int main(void)
{ pid_t pid; pid = fork(); if (pid == 0) { value += 15; } else if (pid > 0) { wait(NULL); printf("PARENT: value = %d", value); exit(0); }
}输出PARENT: value = 5 // (各个进程有独立存储空间)通过
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号