Linux学习三:操作系统与开闭源软件

1、操作系统概念与内核

1.1 操作系统的概念

操作系统(Operating System, OS)其实也是一组程序, 这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件。

因为内核主要在管控硬件与提供相关的能力(例如存取硬盘、网络功能、CPU资源取得等), 这些管理的动作是非常的重要的,如果使用者能够直接使用到核心的话,万一用户不小心将内核程序停止或破坏, 将会导致整个系统的崩溃!因此内核程序所放置到内存当中的区块是受保护的! 并且开机后就一直常驻在内存当中。

Linux学习三:操作系统与开闭源软件

计算机系统主要由硬件构成,然后核心程序主要在管理硬件,提供合理的计算机系统资源分配(包括CPU资源、内存使用资源等等), 因此只要硬件不同(如x86架构与RISC架构的CPU),核心就得要进行修改才行。


1.2 内核的5大功能

  1. 提供系统调用的接口(System call interface):刚刚谈过了,这是为了方便程序开发者可以轻易地通过与内核的沟通,将硬件的资源进一步的利用, 于是需要有这个简易的接口(API)来方便程序开发者。
  2. 进程管理(Process control) :总有听过所谓的『多任务环境』吧?一部计算机可能同时间有很多的工作跑到CPU等待运算处理, 内核这个时候必须要能够控制这些工作,让CPU的资源作有效的分配才行!另外, 良好的CPU排程机制(就是CPU先运作那个工作的排列顺序)将会有效的加快整体系统效能。
  3. 内存管理(Memory management):控制整个系统的内存管理,这个内存控制是非常重要的,因为系统所有的程序代码与数据都必须要先存放在内存当中。 通常内核会提供虚拟内存的功能,将物理内存和虚拟内存做一个映射,当内存不足时可以提供内存置换(swap)的功能
  4. 文件系统管理(Filesystem management) :文件系统的管理,例如数据的输入输出(I/O)等等的工作,还有不同文件格式的支持等等, 如果你的内核不认识某个文件系统,那么您将无法使用该文件格式的文件,例如:Windows 98就不认识NTFS文件格式的硬盘;
  5. 设备驱动(Device drivers) :就如同上面提到的,硬件的管理是内核的主要工作之一,当然,装置的驱动程序就是内核需要做的事情, 好在目前都有所谓的『可加载模块』功能,可以将驱动程序编辑成模块,就不需要重新的编译内核啦!

在这里顺便提一下:在linux中 uname -r 可以用来查阅内核版本。

Linux学习三:操作系统与开闭源软件

2、开源软件与闭源软件

2.1 关于GNU计划、自由软件与开放源代码

GNU计划对于整个自由软件与开放原始码软件来说是占有非常重要的角色!为什么要称为GNU呢?其实GNU是GNU’s Not Unix的缩写。在 GNU 计划的范畴之内就称为自由软件(Free Software)

一个软件挂上了GPL版权宣告之后,他自然就成了自由软件!

这个软件就具有以下的特色:

  • 取得软件与源代码:你可以根据自己的需求来执行这个自由软件;
  • 复制:你可以自由地复制该软件;
  • 修改:你可以将取得的源代码进行程序修改工作,使之适合你的工作;
  • 再发行:你可以将你修改过的程序,再度的自由发行,而不会与原先的撰写者冲突;
  • 回馈:你应该将你修改过的程序代码回馈于社群!
  • 注意你所修改的任何一个自由软件不能这样:

  • 修改授权:你不能将一个GPL授权的自由软件,在你修改后而将它取消GPL授权~
  • 单纯贩卖:你不能单纯地贩卖自由软件。(自由软件是可以销售的,不过不可仅仅销售该软件,应该同时搭配售后服务与相关手册~ 这些可就需要工本费了)
  • Linux学习三:操作系统与开闭源软件

    2.1 闭源软件

    相对于Open Source的软件会释出源代码,Close source的程序则仅推出可执行的二进制程序(binary program)而已。

    这种软件的优点是有专人维护,你不需要去更动他;缺点则是灵活度大打折扣,用户无法变更该程序成为自己想要的样式! 此外,若有木马程序或者安全漏洞,将会花上相当长的一段时间来除错!这也是所谓专利软件(copyright)常见的软件出售方式。 虽然专利软件常常代表就是需要花钱去购买,不过有些专利软件还是可以『免费』提供大众使用的!

    免费的专利软件代表的授权模式有:

  • Freeware:不同于Free software,Freeware为【免费软件】而非【自由软件】虽然它是免费的软件,但是不见得要公布其原始码, 要看发布者的意见!这个东西与Open Source毕竟是不太相同的东西,此外,目前很多标榜免费软件的程序很多都有小问题! 例如假借免费软件的名义,实施用户数据窃取的目的! 所以【来路不明的软件请勿安装】
  • Shareware:共享软件这个名词就有趣了!与免费软件有点类似的是,Shareware在使用初期,它也是免费的,但是, 到了所谓的【试用期限】之后,你就必须要选择【付费后继续使用】或者【将它删除】的宿命,通常,这些共享软件都会自行编写失效程序,让你在试用期限之后就无法使用该软件。

  • 3、POSIX规范

    为了让自己的Linux能够兼容于Unix系统,托瓦兹开始将一些能够在Unix上面运作的软件拿来在Linux上面跑。 不过,他发现到有很多的软件无法在Linux这个核心上运作。

    这个时候他有两种做法, 一种是修改软件,让该软件可以在Linux上跑, 另一种则是修改Linux,让Linux符合软件能够运作的规范! 由于Linux希望能够兼容于Unix,于是托瓦兹选择了第二个作法【修改Linux】! 为了让所有的软件都可以在Linux上执行,于是托瓦兹开始参考标准的POSIX规范。

    POSIX是可携式操作系统接口(Portable Operating System Interface)的缩写,重点在规范核心与应用程序之间的接口, 这是由美国电器与电子工程师学会(IEEE)所发布的一项标准喔!


    我是小钱嵌入式,会不断地和大家分享嵌入式相关的内容,智能化时代的到来,促就了未来一定是个全民编程的时代 ,如果你觉得我的分享对你有所帮助,请不要吝惜你的点赞和关注写作不易,兄弟姐妹们的点赞和关注,就是我分享最大的动力,谢谢!,欢迎在评论区和我一起讨论。

    来源:小钱嵌入式

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2021年10月1日
    下一篇 2021年10月1日

    相关推荐