
操作系统
2puT
Linux的爱好者,爱开源. Github address: https://github.com/lina-not-linus
展开
-
纯文本浏览器,学习中
使用纯文本浏览器测试网站是一种测试此网站是否容易浏览的好方法。如果使用纯文本浏览器可以方便地浏览到网站的每个地方,那么用户使用屏幕阅读器也可以做到。 方 法 用户可以使用纯文本浏览器Lynx查看网页,在网上上可以找到在线的Lynx浏览器。由于这是一种有用的测试,因此下载和安装Lynx浏览器是免费的。Lynx浏览器提供了一个额外的好处,它能使用户在上传网页之前对其进行测试。 (1)Li原创 2016-07-03 10:39:38 · 1057 阅读 · 0 评论 -
sleep与 wait区别
sleep指线程被调用时,占着CPU不工作,形象地说明为“占着CPU睡觉”,此时,系统的CPU部分资源被占用,其他线程无法进入,会增加时间限制。wait指线程处于进入等待状态,形象地说明为“等待使用CPU”,此时线程不占用任何资源,不增加时间限制。所以sleep(100L)意思为:占用CPU,线程休眠100毫秒wait(100L)意思为:不占用CPU,线程等待100毫秒原创 2016-07-21 08:58:27 · 403 阅读 · 0 评论 -
VM virtualbox好还是 VMware Workstation好
推荐使用VMware Workstation。VMware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚原创 2016-08-30 21:25:53 · 21735 阅读 · 1 评论 -
git的安装与初配置
一. 初次安装git后后配置用户名与邮箱:# 注意:引号内请输入你自己设置的名字,和你自己的邮箱,# 此用户名和邮箱是git提交代码时用来显示你身份和联系方式的,# 并不是github用户名和邮箱git config --global user.name "yourname"git congig --global user.email "youremail@email.com"...原创 2018-03-27 09:29:47 · 464 阅读 · 0 评论 -
观察系统启动过程之观察MBR内容
在系统启动过程系列文章中的观察MBR分区表的内容 系统启动过程:电源 -> BIOS -> (MBR Bootloader) -> GRUB -> kernel -> (rootfs) -> init使用dd读取前512字节的内容写到MBR.in文件,然后使用od采取十六进制格式、ASCII打印 MBR.in文件内容# 运行以下内容...原创 2018-04-02 11:43:34 · 551 阅读 · 0 评论 -
在loongson上编译LFS(英文版):从源码编译构建系统
在loongson上编译LFS(英文版):从源码编译构建系统 前言:在之前中文版的Loongson是编译构建系统的内容基础上,又加入了“系统启动的内容:从电源启动 -> 固件BIOS -> GRUB -> initrd(init)”过程分析,希望读者对系统启动过程有深入的了解与认识。昨天完善之前写的“LFS-BOOK-loongson”,在之前中文版的Loongso...原创 2018-03-29 08:41:52 · 10471 阅读 · 0 评论 -
新手学习计算机,做基础软件开发者
深入计算机,理清方向最近学校的学弟学妹们找我聊时,想让推荐下书单和练手项目,所以写下了这一篇文章。下面的介绍基本是我在大学期间的学习经历和写的项目,下面列举的书籍也都阅读过。起点翁凯老师的 C 语言视频、实验做完。实验楼的Linux操作,选择几个(工作室负责人负责选择好放进来),结合《鸟哥的 Linux 私房菜》去学习,此书一定要看完,实际动手敲击书内讲解的命令、试验操作。当做...原创 2019-03-18 16:01:46 · 29477 阅读 · 1 评论 -
BusyBox 构建 MIPS ramdisk
使用 BusyBox 构建 ramdisk一. 软件准备主机:龙芯3A3000 系统:Fedora28_for_loongson-MATE-Live-2.iso [下载地址](http://172.16.0.16:81/fedora/fedora28-live/Fedora28_for_loongson-MATE-Live-2.iso) 工具链:mips64el-redhat-linux(...原创 2019-04-04 13:38:41 · 25347 阅读 · 0 评论 -
交叉编译 MIPS Linux From Scratch
交叉编译 MIPS LFS 系统编译环境主机:X86 系统:Fedora 28宿主工具链:x86_64-redhat-linux(8.3.1)宿主内核:4.20.16-100.fc28.x86_64 MIPS-LFS系统运行目标平台:龙芯3A3000平台有很多 Linux 爱好者都想自己制作一个可以满足自己工作、娱乐的操作系统,大家在网上搜索制作操作系统的资料,但大都是 《Linu...原创 2019-04-08 18:37:29 · 22780 阅读 · 1 评论 -
Linux系统启动分析:inittab、rc.sysinit、rcX.d、rc.local
参考博客:https://www.cnblogs.com/mingc/p/7617038.htmlLinux系统启动分析:inittab、rc.sysinit、rcX.d、rc.local 启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设...转载 2018-03-31 11:36:49 · 508 阅读 · 0 评论 -
系统启动脚本分析:rc.sysinit
#!/bin/bash## /etc/rc.d/rc.sysinit - run once at boot time# ## Rerun ourselves through initlog // 通过 /sbin/initlog 命令重新运行自己if [ -z "$IN_INITLOG" -...转载 2018-03-31 11:31:28 · 513 阅读 · 0 评论 -
etc/init.d/functions文件解析
/etc/init.d/functions详解: functions这个脚本是给/etc/init.d里边的文件使用的,提供了一些基础的功能,看看里边究竟有些什么。首先会设置umask,path,还有语言环境,然后会设置success,failure,warning,normal几种情况下的字体颜色。下面再看看提供的重要方法checkpid:检查是否已存在pid,如果有一个存在,...转载 2018-03-31 11:19:39 · 1507 阅读 · 0 评论 -
定制化操作时用到的一些命令
yum-utilsreposync -hreposync -r fedora -p ./reposync -r fedora-source --sourceip ascp lhosts root@192.168.30.233:~ scp -r fedora/ 192.168.30.142:/home/qwe/data/:reposync原创 2017-06-29 11:46:44 · 430 阅读 · 0 评论 -
网络管理,更改host文件,实现准确的IP对应
windows中更改host文件去合理的上网,在文件搜索条搜索host 文件: “%SystemRoot%\System32\drivers\etc\hosts”用文本编辑器打开host文件,把此host文件下载下来,复制里面内容至本机host文件,若复制进本机host文件无法保存情况,打开本机host文件属性用户登录后即可保存。原创 2017-06-21 10:49:25 · 1537 阅读 · 0 评论 -
在loongson上编译LFS:从源码编译构建系统
最近在龙芯loongson3A3000上编译LFS,从源码包一步一步编译构建Linux系统,并实验成功,做出的LFS系统可以正常运行,在github上创建了一个“LFS-BOOK-loongson”项目地址是:https://github.com/lina-not-linus/LFS-BOOK-loongson。在loongson上编译LFS难点是要熟悉configure的各参数,在各别包编译...原创 2018-03-23 17:35:40 · 785 阅读 · 1 评论 -
解析出initrf.img镜像cpio
解析出initrf.img镜像cpio首先是对initrd.img文件进行类型分析:# 判断命令:file initrd.img #查看其文件类型# 输出结果是:initrd.img: XZ compressed data对判断出的文件类型看其是何种压缩方式,进行解压并用cpio输出 解压: xz -dc initrd.img | cpio -id ...原创 2018-03-30 16:28:16 · 512 阅读 · 0 评论 -
Linux中的/etc/fstab、/etc/mtab、/proc/mounts文件区别
Linux中的/etc/fstab和/etc/mtab文件区别 /etc/fstab文件:/etc/fstab文件记录静态文件系统信息 该文件记录计算机硬盘分区相关信息,启动Linux、mount挂载分区等命令执行都,都会用到fstab信息,看页面示例也是带有:#fstab文件内容格式:<file system> <mount point> ...原创 2018-03-30 16:40:42 · 2238 阅读 · 0 评论 -
exit()函数
在main函数中我们通常使用return (0);这样的方式返回一个值。但这是限定在非void情况下的也就是void main()这样的形式。exit()通常是用在子程序中用来终结程序用的,使用后程序自动结束跳会操作系统。但在如果把exit用在main内的时候无论main是否定义成void返回的值都是有效的,并且exit不需要考虑#include #inclu原创 2016-05-26 21:19:22 · 543 阅读 · 0 评论 -
软中断和信号是什么关系?
其实“软中断”(software interrupts)有两种并不等价的含义:一种是通过显式调用int指令触发的,它是相对于硬中断来说的;另一种就是*nix里的信号(signal)的别名。一般来说这两种东西并没有什么联系。前者基本上纯由CPU等硬件在处理,跟操作系统没什么关系,中断处理程序映射表(中断向量表)除外。而signal机制完全由操作系统通过代码实现,跟硬件关系也不大。当然,不排除操作系统原创 2016-05-26 21:24:24 · 1770 阅读 · 0 评论 -
linux 中 kill() 与 signal() 函数
linux 中 kill() 与 signal() 函数执行结果如下: 我想问,为什么主进程中kill()函数执行成功,但是子进程却没有执行stop()函数?不是已经设置了signal(SIGUSR1, stop);了么虽然子进程将父进程的函数重新拷贝了一份,子进程和父进程共享同一段内存空间,但不能被共享。可以通过共享内存解决这个问题。使用这个函数void* mmap(原创 2016-05-27 10:41:50 · 1135 阅读 · 0 评论 -
while(pid1 = fork()== -1);直接分号,循环语句为空
这个一般是在多线程当中用的。比如说线程A 在执行一系列操作之后对变量进行修改。线程B 需要确定在执行下面的句子时某一变量是否已经满足了要求比如说一个程序有两个线程,全局变量 bool flag = false;线程A的代码如下:{ 。。。//执行了一堆代码,可以将flag设置为true了 flag = true;}线程B的代原创 2016-05-27 11:52:16 · 2993 阅读 · 0 评论 -
exec()函数
char *argv[] 是使用dos调用程序是输入的命令,是一个二级char型指针;如:程序名为test,(当然要首先进入test.exe所在目录)输入为test str1 str2(回车)的话,str[0]就为:test(字符串);str[1]:str1;str[2]:str2;有的程序有时候在程序中要使用到这些参数。就像dos指令ping后面要加ip一样,ping就是一个程序,而后面ip就原创 2016-05-26 21:06:08 · 429 阅读 · 0 评论 -
lockf()函数
lockf()函数允许将文件区域用作信号量(监视锁),或用于控制对锁定进程的访问(强制模式记录锁定)。试图访问已锁定资源的其他进程将返回错误或进入休眠状态,直到资源解除锁定为止。当关闭文件时,将释放进程的所有锁定,即使进程仍然有打开的文件。当进程终止时,将释放进程保留的所有锁定。头文件#include 函数:int lockf(int fd, int cmd, off_t原创 2016-05-27 16:57:30 · 5824 阅读 · 0 评论 -
#include<xxxx.h>与#include<sys/xxx.h>区别
一般头文件#include在/usr/include下面,这里是标准C程序头文件,如果你的头文件前加了,#include那说明这是系统调用函数头文件,其在/usr/include/sys下面。原创 2016-07-11 08:48:44 · 4895 阅读 · 0 评论 -
给想写操作系统的同学说的前期准备
正学着操作系统课程时,萌生了一个之一想法,就是自己写一个简易的操作系统,所以写了这篇博客推荐给学完操作系统课后的同学两本书,《Orange S:一个操作系统的实现》、《30天自制操作系统》两本书。两本书都适合初写操作系统的人。这两本书的简介: 《Orange S:一个操作系统的实现》从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。书中不仅关注代码本原创 2016-04-21 20:48:59 · 601 阅读 · 0 评论 -
lock(1,1,0)与lockf(1,0,0)
lockf(1,1,0)是锁定屏幕输出,不让其他进程可以输出到屏幕,lockf(1,0,0)则是解锁.lockf(fd,1,0)是给fd文件上锁lockf(fd,0,0)是解锁配合使用,实现进程的互斥原创 2016-05-27 17:16:58 · 4855 阅读 · 2 评论 -
pause()函数
只有EINTR 有信号到达中断此函数的执行。头文件:#include 定义函数:int pause(void);函数说明:pause()会令目前的进程暂停(进入睡眠状态), 直到被信号(signal)所中断.返回值:只返回-1.pause - 等待信号内容简介#include int pause(void);描述pause() 库函数使调用进原创 2016-05-27 19:00:46 · 23761 阅读 · 1 评论 -
操作系统:进程的软中断通信实验
#include#include#include#include#include#includeint wait_flag;void stop(); int main(){ int pid1,pid2; signal(2,stop); pause(); while((pid1 = fork())== -1); if(pid1 > 0) { while((pi原创 2016-05-27 20:45:13 · 7782 阅读 · 2 评论 -
操作系统:进程的管道通信实验
#include#include#include#include#includeint pid1,pid2;int main(){ int fd[2]; char outpipe[100],inpipe[100]; while((pid1 = fork()) == -1); if(pid1 == 0) { lockf(fd[1], 1, 0); sprintf(o原创 2016-05-27 20:46:27 · 4665 阅读 · 0 评论