Linux编程入门(1)-理解系统编程

一些概念

操作系统职责:计算机用操作系统来管理所有的资源,并将不同的设备和不同的程序连接起来。

操作系统与普通程序一样,在内存中运行。它的特殊之处是,能把普通程序与其他程序或者设备连接起来。

内存空间用来存放程序和数据,所有的程序都必须在内存空间中才能运行,用来容纳操作系统的内存空间叫做系统空间,容纳应用程序的内存空间叫做用户空间

操作系统也被称为内核。程序要从键盘得到数据,必须向内核发出请求;若在显示器上显示结果,也要通过内核,程序中所有对设备的操作都是通过内核进行的。

操作系统的基本功能:(1)防止硬件被失控的应用程序滥用;(2)向应用程序提供简单一致的机制来控制复杂而又通常大不相同的低级硬件设备。

在进行系统编程时,必须对系统的结构和工作方式有更深的了解,要知道内核提供哪些服务(系统调用),如何使用他们,系统有哪些资源和设备,不同的资源和设备如何操作。

系统资源

  1. 处理器(Processor)

    处理器是执行程序指令的硬件设备。内核能够安排一个程序的执行、停止、恢复执行。

  2. 输入输出(I/O)

    程序中所有的输入/输出的数据、终端的输入/输出数据以及硬盘的输入/输出数据,都经过内核。

  3. 进程管理(Process Management)

    进程指程序的一次运行。内核与进程相关的服务有:新建进程、终止进程、进程调度。

  4. 内存(Memory)

    内存是计算机系统中很重要的资源,程序必须被装载到内存中才可运行。内核的职责之一是内存管理。

  5. 设备(Device)

    计算机系统可以有各种各样的外设,他们的操作方式各不相同。内核能够提供简单而统一的操作方式。

  6. 计时器(Timers)

    程序的工作与时间有关,内核可以通过系统调用向应用程序提供计时器服务。

  7. 进程间通信(Interprocess Communication)

    计算机的世界中,内核提供的服务使不同的进程间通信成为可能,通信也是资源。

  8. 网络(Networking)

    网络通信也是内核提供的服务。

用户角度理解Linux

  1. 登陆-运行程序-注销

    在登陆过程中,当用户名和密码验证后,系统会启动一个叫 shell 的进程,由这个进程处理用户的请求。shell为用户提供服务,shell和用户之间的连接由内核控制。

    shell在屏幕上显示提示符,用户可以在提示符后输入要运行的程序的名字,内核负责把用户的输入传输给shell。

    用户注销时,内核会结束所有分配这个用户的进程。

  2. 目录操作

    • 目录树

      在Linux系统中,文件和目录被组织成树状结构,Linux提供相应的指令来对目录进行操作。如图为目录树的一部分

      在这里插入图片描述

      文件系统的最顶端是“/”,叫做根目录。大多数的Linux系统都在根目录下有 /etc、/home、/bin、/proc 等几个子目录,都有特定用途。

    • 目录操作指令

      (1)ls——列出目录内容

      (2)cd——改变当前目录

      (3)pwd——显示当前目录

      (4)mkdir、rmdir——新建、删除目录

  3. 文件操作

    • 文件操作指令

      (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的系统功能是由多个程序的协作而实现的。
  • 编写系统程序,必须对系统调用和相关的数据结构有深入的理解。

公众号【一起学嵌入式】,一起学习、一起成长

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zsky_01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值