IO系统-基本知识
注:本文档主要整理了Linux下IO系统的基本知识,是整理的网易云课堂的学习笔记,老师讲得很不错,链接如下:Linux IO系统
1.Linux操作系统的基本构成
内核:操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网络系统;控制系统和硬件之间的相互通信;决定着系统的性能和稳定性。
shell:提供给用户界面的软件。
文件系统、应用程序

1.1 基本术语
1.文件和文件系统
文件:数据或设备的一种逻辑组织;
文件系统:文件间关系管理的一种逻辑组织。
2.程序和进程
程序:计算机执行的指令集合;
进程:程序的一个运行实例,操作系统资源分配的最小单位。
3.线程(轻量级进程)
程序运行的基本单位,一个进程内部可以有一个或若干线程同时运行。
4.信号
Linux系统中进程通信的一种技术,异步程序设计的基础。
5.客户端和服务器
2 启动流程
- 芯片和部分外围电路的初始化
- 加载内核
- 加载最小文件系统
- 加载硬盘上的根文件系统
- 启动1号进程/sbin/init

bootloader:就是在操作系统内核运行之前运行的一段小程序,主要功能有:初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。它是严重依赖于硬件,在嵌入式开发中建立一个通用的bootloader几乎是不可能的。在Linux中称为grub。
init进程:Linux系统启动的第一个进程(1号进程),0号进程为内核进程(swapper进程)。功能:执行/etc/init.d目录中的所有脚本文件,启动某些系统的服务;执行sbin/getty初始化0、1和2(标准输入、标准输出和标准错误);执行/bin/login启动用户登录程序;管理孤儿进程。
3内存管理
3.1 功能
1.进程隔离
保护独立的进程,防止互相的干涉数据和存储空间。
2.自动分配和管理
动态的分配,分配对管理员是透明的。
3.支持模块化的程序设计
能够定义程序模块,并且动态的创建、销毁模块,改变模块大小。
4.保护和访问控制
允许一部分内存可以由各种用户以各种方式进行访问。
5.长期存储
关键后长时间保护信息

虚拟寻址:

3.2 内存管理
3.2.1段页式内存管理
- 进程在虚拟内存中分为代码段、数据段和堆栈段
- 进程在段中有许多固定大小的块组成,这些块称为页
- 虚拟地址由段号、页号和页中偏移量构成
- 虚地址和存储中实地址(物理地址)的动态映射(以页为单位)
- 缺页:消除了进程全部载入内存中、按需调页
4.系统调用
系统调用是指操作系统提供给用户程序的一组"特殊"接口,用户程序可以通过这组接口来获得操作系统内核提供的特殊服务。

5. Linux进程的运行状态
内核态:进程运行在内核空间;
运行态:进程运行在用户空间。
6. UNIX标准
(1)ISO C(标准C)
(2)IEEE POSIX:在Linux中用户编程接口(API)遵循了UNIX最流行的应用编程界面标准POSIX标准,这些系统调用编程接口主要通过C库(libc)实现的。
IO系统-基本知识的更多相关文章
- L012-linux系统文件属性知识深入详解小结
L012-linux系统文件属性知识深入详解小结 最近的学习重点不在这上面,所以更新的比较慢,再加上母亲住院,感情问题,一系列吧,愿快点度过这黑色的4月份,希望我能在5月份阳光起来,加油! 回归正题 ...
- 从零开始山寨Caffe·拾贰:IO系统(四)
消费者 回忆:生产者提供产品的接口 在第捌章,IO系统(二)中,生产者DataReader提供了外部消费接口: class DataReader { public: ......... Blockin ...
- 从零开始山寨Caffe·陆:IO系统(一)
你说你学过操作系统这门课?写个无Bug的生产者和消费者模型试试! ——你真的学好了操作系统这门课嘛? 在第壹章,展示过这样图: 其中,左半部分构成了新版Caffe最恼人.最庞大的IO系统. 也是历来最 ...
- java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET
java中的io系统详解 - ilibaba的专栏 - 博客频道 - CSDN.NET 亲,“社区之星”已经一周岁了! 社区福利快来领取免费参加MDCC大会机会哦 Tag功能介绍—我们 ...
- io系统
一.浅谈io系统 io系统的结构化思想是:输入-转换流-装饰器-输出. 对于字节流来说,常见的结构类为: package com.handchina.yunmart.middleware.servic ...
- 彻底明白Java的IO系统
java学习:彻底明白Java的IO系统 文章来源:互联网 一. Input和Output1. stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO中,所有 ...
- 什么是PROFINET IO系统的实时性
实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行. PROFINET IO系统的实时性就是指当有一个外部事件发生时,从输入信号到传输.到控制 ...
- Java的IO系统
Java IO系统 "对语言设计人员来说,创建好的输入/输出系统是一项特别困难的任务." 由于存在大量不同的设计方案,所以该任务的困难性是很容易证明的.其中最大的 ...
- 如何系统学习知识图谱-15年+IT老兵的经验分享
一.前言 就IT而言,胖子哥算是老兵,可以去猝死的年纪,按照IT江湖猿龄的规矩,也算是到了耳顺之年:而就人工智能而言,胖子哥还是新人,很老的新人,深度学习.语音识别.人脸识别,知识图谱,逐个的学习了一 ...
随机推荐
- get_free_page 和其友
如果一个模块需要分配大块的内存, 它常常最好是使用一个面向页的技术. 请求整个页也 有其他的优点, 这个在 15 章介绍. 为分配页, 下列函数可用: get_zeroed_page(unsigned ...
- Java逻辑思维训练题
两柱香问题题目:有两柱不均匀的香,每柱香燃烧完需要1个小时,问:怎样用两柱香切出一个15分钟的时间段?这个题的重点就是怎么切. 答案:将甲香的一头点着,将乙香的两头点着,当乙香燃烧完时,说明已经过了半 ...
- LuoguP3066 逃跑的BarnRunning Away From…
LuoguP3066 先吐槽一下,这道题名字好长啊 一个非常明显的思路,利用倍增数组不断向上跳.直到数值大于\(L\),然后直接差分统计答案就好了. 这种ZROI也考过,不多赘述了. 我们来考虑主席树 ...
- asp.net core 3.0 JObject The collection type 'Newtonsoft.Json.Linq.JObject' is not supported
在asp.net core 3.0 中,如果直接在Controller中返回 Jobject 类型,会抛出如下错误: The collection type 'Newtonsoft.Json.Linq ...
- 特殊字符,如Emoji表情Base64存储到数据库
有些特殊字符,如Emoji,存储到oracle数据库就会变成乱码,解决方案就是Base64转码后存储到数据库,取出后再解码传输,经过验证是可以的. 编码存储,接收参数转json再.ToString() ...
- AutoCad .Net二次开发求两曲线最小距离
测试结果: 主要思路:假设有两条曲线分别是c1和c2,把c1按照1的距离划分我这里用变量jd表示,得到一个曲线集合coll,然后遍历coll,得到coll中每一个曲线的两个端点,再用这两个端点分别求离 ...
- 【温故知新】Java web 开发(三)Form表单与上传下载文件
简介:在一和二的基础之上,这次来记录下如何在页面提交表单数据,以及文件的上传和下载整个流程,请求也不仅限于GET了,也有POST了. 1. 为了方便,在 webapp 下直接新建一个 index.ht ...
- Nginx 究竟如何处理事件?
在了解了网络事件以及事件分发收集器以后,让我们来了解 Nginx 是怎么样处理事件的? Nginx 事件循环 当 Nginx 刚刚启动时,在等待事件部分,也就是打开了 80 或 443 端口,这个时候 ...
- Java江湖之设计模式
Java江湖之设计模式 ps:最近在学习设计模式,感觉这个是个装逼神器呀,就跟武功一样. 某日,senior同学看见rookie同学在练功. 问,"你练得什么武功?" ...
- java 多线程 快速入门
------------恢复内容开始------------ java 多线程 快速入门 1. 进程和线程 什么是进程? 进程是正在运行的程序它是线程的集合 进程中一定有一个主线程 一个操作系统可以有 ...