网站首页 > 技术教程 正文
一些概念
操作系统职责:计算机用操作系统来管理所有的资源,并将不同的设备和不同的程序连接起来。
操作系统与普通程序一样,在内存中运行。它的特殊之处是,能把普通程序与其他程序或者设备连接起来。
内存空间用来存放程序和数据,所有的程序都必须在内存空间中才能运行,用来容纳操作系统的内存空间叫做系统空间,容纳应用程序的内存空间叫做用户空间。
操作系统也被称为内核。程序要从键盘得到数据,必须向内核发出请求;若在显示器上显示结果,也要通过内核,程序中所有对设备的操作都是通过内核进行的。
操作系统的基本功能:(1)防止硬件被失控的应用程序滥用;(2)向应用程序提供简单一致的机制来控制复杂而又通常大不相同的低级硬件设备。
在进行系统编程时,必须对系统的结构和工作方式有更深的了解,要知道内核提供哪些服务(系统调用),如何使用他们,系统有哪些资源和设备,不同的资源和设备如何操作。
系统资源
- 处理器(Processor)处理器是执行程序指令的硬件设备。内核能够安排一个程序的执行、停止、恢复执行。
- 输入输出(I/O)程序中所有的输入/输出的数据、终端的输入/输出数据以及硬盘的输入/输出数据,都经过内核。
- 进程管理(Process Management)进程指程序的一次运行。内核与进程相关的服务有:新建进程、终止进程、进程调度。
- 内存(Memory)内存是计算机系统中很重要的资源,程序必须被装载到内存中才可运行。内核的职责之一是内存管理。
- 设备(Device)计算机系统可以有各种各样的外设,他们的操作方式各不相同。内核能够提供简单而统一的操作方式。
- 计时器(Timers)程序的工作与时间有关,内核可以通过系统调用向应用程序提供计时器服务。
- 进程间通信(Interprocess Communication)计算机的世界中,内核提供的服务使不同的进程间通信成为可能,通信也是资源。
- 网络(Networking)网络通信也是内核提供的服务。
用户角度理解Linux
登陆-运行程序-注销
在登陆过程中,当用户名和密码验证后,系统会启动一个叫 shell 的进程,由这个进程处理用户的请求。shell为用户提供服务,shell和用户之间的连接由内核控制。
shell在屏幕上显示提示符,用户可以在提示符后输入要运行的程序的名字,内核负责把用户的输入传输给shell。
用户注销时,内核会结束所有分配这个用户的进程。
目录操作
- 目录树
在Linux系统中,文件和目录被组织成树状结构,Linux提供相应的指令来对目录进行操作。如图为目录树的一部分
文件系统的最顶端是“/”,叫做根目录。大多数的Linux系统都在根目录下有 /etc、/home、/bin、/proc 等几个子目录,都有特定用途。
- 目录操作指令
(1)ls——列出目录内容
(2)cd——改变当前目录
(3)pwd——显示当前目录
(4)mkdir、rmdir——新建、删除目录
文件操作
- 文件操作指令
(1)cat,more,less,pg——查看文件内容
(2)cp——文件复制
(3)rm——文件删除
(4)mv——重命名或移动文件
(5)lpr,lp——打印文件
- 文件许可权限
每个文件都有文件所有者和文件许可权限。许可权限分为3组,通过 ls -l 命令可以看到。
- rwx rwx rwx r:read, w:write, x:execute
user goup other
与3组许可权限对应,用户也被分为3组:user 文件所有者;group 与文件所有者同组的用户;other 其他用户。每组用户都可以有3种权限:读、写、执行。
系统角度看Linux
Linux系统编程中3个重要的方面:
- 通信。某个用户或进程如何与其他用户或进程交换信息?
- 协作。程序如何来协调多个进程使得他们能够没有冲突的访问共享资源?
- 网络访问。互相独立的计算机通过网络连接到一起,计算机中的程序是如何来使用网络呢?
Linux主要结构
内存被分为系统空间和用户空间,内核和它的数据结构位于系统空间,用户程序位于用户空间。用户通过终端连接到系统。文件存放在磁盘上,各种各样的设备被内核直接管理。用户程序可以通过内核来访问设备。用户也可以通过网络接入系统。
小结
- 计算机系统包含了很多系统资源,程序利用这些资源来对数据进行存储、转换和处理。
- Linux内核是多用户系统的一个中央管理程序,可以对程序和资源进行管理
- 用户访问设备必须经过内核
- 一些Linux的系统功能是由多个程序的协作而实现的。
- 编写系统程序,必须对系统调用和相关的数据结构有深入的理解。
- 上一篇: Linux查看网卡速率
- 下一篇: 如何查找你的 Linux 系统私有 IP 地址?
猜你喜欢
- 2025-05-30 Linux系统调用详解(实现机制分析)
- 2025-05-30 Linux系统中的who命令你真的会用吗?
- 2025-05-30 利用for循环查找硬盘序列号
- 2025-05-30 Ubuntu系统下COM口测试教程
- 2025-05-30 linux系统查看软件安装目录的方法
- 2025-05-30 Linux系统安装后一般操作
- 2025-05-30 Linux/Unix 系统中find命令用法
- 2025-05-30 linux基础03:怎样通过SSH终端工具远程连接linux虚拟机?
- 2025-05-30 linux系统查看usb摄像头参数(设备节点、分辨率等)
- 2025-05-30 如何查找你的 Linux 系统私有 IP 地址?
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)