
操作系统
思绪缥缈
这个作者很懒,什么都没留下…
展开
-
微内核操作系统
转载 2020-10-13 22:52:25 · 443 阅读 · 0 评论 -
一文搞定Linux进程和线程(详细图解)
Linux 进程和线程本篇文章我们就深入理解一下 Linux 内核来理解 Linux 的基本概念之进程和线程。系统调用是操作系统本身的接口,它对于创建进程和线程,内存分配,共享文件和 I/O 来说都很重要。我们将从各个版本的共性出发来进行探讨。基本概念Linux 一个非常重要的概念就是进程,Linux 进程和我们在现代操作系统中探讨的进程模型非常相似。每个进程都会运行一段独立的程序,并且在初始化的时候拥有一个独立的控制线程。换句话说,每个进程都会有一个自己的程序计数器,这个程序计数器用来记录转载 2020-09-18 17:38:18 · 13898 阅读 · 0 评论 -
关于进程的一点理解
在任何时刻需要记住一点:任何某一时刻CPU只能执行一条指令,为一个进程服务,而不是多个进程服务。什么是多进程?比如你可以一边听网易音乐,一边聊天;这是两个不同的进程,这就是多进程;但是上文说某一时刻CPU只能干一件事情,是否矛盾? 在操作系统的管理下,所有正在运行的进程轮流使用CPU,每个进程允许占用CPU的时间非常短(比如1毫秒),这样用户根本感觉不出来 CPU是在轮流为多个进程服务,就好象所有的进程都在不间断地运行一样,给用户的感觉就是并行。但实际上在任何一个时间内有且仅...转载 2020-09-18 17:35:37 · 342 阅读 · 0 评论 -
操作系统面试题(三)
请你来说一说协程参考回答:1、概念:协程,又称微线程,纤程,英文名Coroutine。协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,在适当的时候再返回来接着执行。例如:def A() :print '1'print '2'print '3'def B() :print 'x'print 'y'print 'z'由协程运行结果可能是12x3yz。在执行A的过程中,可以随时中断,去执行B,B也可能在执行过程中中断再去执行A。但协程的特点在转载 2020-09-18 17:33:48 · 11339 阅读 · 2 评论 -
操作系统面试题(二)
请你讲述一下互斥锁(mutex)机制,以及互斥锁和读写锁的区别参考回答:1、互斥锁和读写锁区别:互斥锁:mutex,用于保证在任何时刻,都只能有一个线程访问该对象。当获取锁操作失败时,线程会进入睡眠,等待锁释放时被唤醒。读写锁:rwlock,分为读锁和写锁。处于读操作时,可以允许多个线程同时获得读操作。但是同一时刻只能有一个线程可以获得写锁。其它获取写锁失败的线程都会进入睡眠状态,直到写锁释放时被唤醒。注意:写锁会阻塞其它读写锁。当有一个线程获得写锁在写时,读锁也不能被其它线程获取;写者优.转载 2020-09-18 17:32:31 · 8720 阅读 · 0 评论 -
操作系统面试题(一)
请你说一下进程与线程的概念,以及为什么要有进程线程,其中有什么区别,他们各自又是怎么同步的参考回答:基本概念:进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。每个线程都独自占用一个虚拟处理器:独自的寄存器组,指令计数器和处理器状态。每个线程完成不同的任务,但是共享同一地址空间(也就是同样的动态内存,映射文件,目标代码等等)转载 2020-09-18 17:29:36 · 9462 阅读 · 0 评论 -
从内核文件系统看文件读写过程
阅读目录系统调用 虚拟文件系统 I/O 缓冲区 Page Cache Address Space 文件读写基本流程回到顶部系统调用操作系统的主要功能是为管理硬件资源和为应用程序开发人员提供良好的环境,但是计算机系统的各种硬件资源是有限的,因此为了保证每一个进程都能安全的执行。处理器设有两种模式:“用户模式”与“内核模式”。一些容易发生安全问题的操作都被限制在只有内核模式下才可以执行,例如I/O操作,修改基址寄存器内容等。而连接用户模式和内核模式的接口称之为系统调用。应用程序代码运转载 2020-09-06 23:06:20 · 255 阅读 · 0 评论 -
Ubuntu 19.10安装fcitx输入法
1.安装拼音输入法sudo apt-get install fcitx-pinyin其它输入法的名称如下//拼音:fcitx-pinyin、fcitx-sunpinyin、fcitx-googlepinyin、fcitx-sogoupinyin//五笔:fcitx-table、fcitx-table-wubi、fcitx-table-wbpy(五笔拼音混合)2、在/usr/share/applications路径中找到并执行StartupApplications,把fcitx设为自...原创 2020-08-27 22:38:33 · 1256 阅读 · 0 评论 -
Linux expect用法介绍
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。expect自动交互流程:spawn启动指定进程---expect获取指定关键字---send向指定程序发送指定字符---执行完成退出.注意该脚本能够执行的前提是安装了expectapt-get install -y expectexpect常用命令总结:spawn 交互程序开始后面跟命令或者指定程序expect 获原创 2020-07-25 14:10:34 · 426 阅读 · 0 评论 -
SSH 保持连接不断开
使用ssh连接服务器,长久不使用,连接会自动断开,然后控制台就会卡死,如何解决这一问题,大猪下来会给出两个方案给小伙伴们选择。方案一服务器主动保持连接登录ssh服务器vim /etc/ssh/sshd_config添加如下两句ClientAliveInterval 120ClientAliveCountMax 720重启sshd服务systemctl restart sshd第一句意思是服务端每间隔120s会向客户端发送一个空数据包 第二句表示服务.转载 2020-07-22 00:26:48 · 1638 阅读 · 0 评论 -
ubuntu设置不休眠
sudo vi /etc/systemd/logind.conf打开文件后修改下面这行:#HandleLidSwitch=suspend改成这样:HandleLidSwitch=ignore保存文件,重启 Login Manager 服务:sudo restart systemd-logindUbuntu系统不睡眠设置完成,配置文件的 “ignore” 值告诉 Ubuntu 当笔记本合上后不要睡眠或挂起。不要改动其它设置然后保存文件即可大功千成了。...原创 2020-07-22 00:24:44 · 3654 阅读 · 0 评论 -
ubuntu-19.04 设置开机启动脚本
ubuntu-19.04不能像ubuntu14一样通过编辑rc.local来设置开机启动脚本,通过下列简单设置后,可以使rc.local重新发挥作用。1、建立rc-local.service文件sudo vi /etc/systemd/system/rc-local.service2、将下列内容复制进rc-local.service文件[Unit]Description=/etc/rc.local CompatibilityConditionPathExists=/etc/rc.原创 2020-07-21 01:55:26 · 351 阅读 · 0 评论 -
Linux 五种IO模型
上一篇《聊聊同步、异步、阻塞与非阻塞》已经通俗的讲解了,要理解同步、异步、阻塞与非阻塞重要的两个概念点了,没有看过的,建议先看这篇博文理解这两个概念点。在认知上,建立统一的模型。这样,大家在继续看本篇时,才不会理解有偏差。那么,在正式开始讲Linux IO模型前,比如:同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。1 概念说明#在进行解释之前,首先要说明几个概念:用户空间和内核空间进程切换转载 2020-07-04 11:57:25 · 482 阅读 · 0 评论 -
Ubuntu19.04连接路由器动态IP上网
step1:修改如下文件:sudo vi /etc/netplan/01-network-manager-all.yaml添加如下内容:# Let NetworkManager manage all devices on this systemnetwork: version: 2 renderer: NetworkManager ethernets: enp3...原创 2020-03-11 11:30:27 · 299 阅读 · 0 评论 -
ssh在Docker容器间建立互信
方案1:使用docker自定义网络前提1 关闭防火墙sudo systemctl stop firewalld.service #停止firewallsudo systemctl disable firewalld.service #禁止firewall开机启动2 更换下载源3 安装Docker1 自定义网络由于容器的网络是在启动时由docker en...原创 2019-11-15 12:43:07 · 491 阅读 · 0 评论 -
ubuntu设置时区
ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai">/etc/timezone &&\ dpkg-reconfigure -f noninteractive tzdata原创 2019-11-07 20:44:13 · 131 阅读 · 0 评论 -
Ubuntu18.04执行localedef -i en_US -f UTF-8 en_US.UTF-8报错
Ubuntu18.04执行localedef -i en_US -f UTF-8 en_US.UTF-8报如下错误:[error] character map file `UTF-8' not found: No such file or directory[error] cannot read character map directory `/usr/share/i18n/charmap...原创 2019-11-07 20:03:27 · 6995 阅读 · 0 评论 -
Docker架构分析
1 背景1.1 Docker简介Docker是Docker公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。目前,Docker可以在容器内部快速自动化部署应用,并可以通过内核虚拟化技术(namespaces及cgroups等)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以Docker容器在运行...转载 2019-11-06 14:10:11 · 137 阅读 · 0 评论 -
Linux查看系统block size的多种方法
1.tune2fs命令查看block size大小:[root@localhost tmp]# tune2fs -l /dev/sda1|grep "Block size"Block size: 1024/dev/sda1 为/boot 分区的挂载点;2.stat命令查看block size大小:[root@localhost tmp]# stat ...转载 2018-11-25 22:40:01 · 1206 阅读 · 0 评论 -
Linux查看系统block size大小的方法
1.tune2fs命令查看block size大小:[root@localhost tmp]# tune2fs -l /dev/sda1|grep "Block size"Block size: 1024/dev/sda1 为/boot 分区的挂载点;2.stat命令查看block size大小:[root@localhost tmp]# stat ...转载 2018-11-25 22:46:32 · 8279 阅读 · 0 评论 -
扇区、磁盘块、页、页框、缓冲区之间的关系
扇区、磁盘块、页、页框、缓冲区之间的关系!扇区是块设备传输数据的基本单元,也就是说它是块设备中最小的寻址单位,扇区通常的大小为512B。块是内核对文件系统的一种抽象,也就是说内核执行的所有磁盘操作都是以块为基本单位的。可以简单的将扇区和块理解为:扇区是硬件设备传输数据的最小单位,而块是操作系统传输数据的最小单位。一个块通常对应一个或多个相邻的扇区,由于内核将块作为对文件系统操作的最小单...转载 2018-11-25 22:59:24 · 7245 阅读 · 0 评论 -
Linux内存管理之一 分段与分页
现代操作系统的内存管理机制有两种:段式管理和页式管理。段式内存管理,就是将内存分成段,每个段的起始地址就是段基地址。地址映射的时候,由逻辑地址加上段基地址而得到物理地址。纯粹的段式内存管理的缺点很明显,就是灵活性和效率比较差。首先是段的长度是可变的,这给内存的换入换出带来诸多不便,如何选择一个段的长度是一个棘手的问题;其次进程在运行过程中,可能会扩充地址空间,这就要增加段,从而造成进程的地址空间...转载 2018-11-25 23:06:57 · 775 阅读 · 0 评论 -
Win10关闭ThinkPadT460触摸板
1.下载并安装 联想驱动管理2.打开 联想驱动管理中的 驱动管理,安装提示中的所有驱动3.重启电脑4.打开win10的设置->设备->触摸板->其他设置->ThinkPad->启用TouchPad前面的对号取消掉...原创 2018-12-04 13:32:59 · 4409 阅读 · 0 评论 -
Ubuntu18.04宽带上网
打开终端,输入如下命令:sudo pppoeconf根据提示输入用户名和秘密即可。原创 2018-12-08 16:39:04 · 1086 阅读 · 0 评论 -
ubuntu 网络配置修改interface eth0 not configured
首先注释/etc/network/interfaces eth0的相关配置后重启网络:sudo /etc/init.d/networking restart再用ifconfig来查看网络配置,eth0的配置依旧存在,再用ifdown来试试看sudo ifdown eth0提示:ifdown: interface eth0 not configured后来发现if...原创 2019-07-23 17:25:02 · 7135 阅读 · 0 评论 -
[Warning] IPv4 forwarding is disabled. Networking will not work.
打docker镜像时,提示:[Warning] IPv4 forwarding is disabled. Networking will not work.该问题的根源在宿主机,只需要修改宿主机内核参数net.ipv4.ip_forward=1。具体步骤如下(操作系统为ubuntu14.04):1.vi /etc/sysctl.conf,添加如下内容: echonet.ipv4.i...原创 2019-07-23 17:43:07 · 296 阅读 · 0 评论 -
Ubuntu18.04设置中文环境
ubuntu系统中,存在两个系统变量:$LANG和$LANGUAGE 分别控制语言环境和地区,这两个变量是从/etc/default/locale中读取的,因此设置语言环境又两种方法。方法一:临时修改export LANG='zh_CN:UTF_8'export LANGUAGE='zh_CN:zh'echo $LANG输出: zh_CN:UTF_8echo $LANGUAGE...原创 2019-08-29 17:27:59 · 1206 阅读 · 0 评论 -
Ubuntu14.04出现循环登录无法进入图形界面的问题
1.问题描述在开始的登录界面,我们需要输入一个密码,然后进入到我们的桌面环境,但是反复输入密码之后一直不能进入界面。一直停留在输入密码的那个界面。2.解决方案 命令行进入后,查看当前用户目录下.xsession-errors或.xsession-errors.old ,定位问题的根本原因,才可以找到问题的解决方案。PS:我遇到的问题是自己在ubuntu上安装了一个自己写的小软件,系...原创 2018-10-15 18:57:01 · 1363 阅读 · 0 评论