前言

  最近上陈渝老师的《高级操作系统》,需要在ucore实验平台上完成一个麻雀虽小五脏俱全的OS,本着看过一小半《30天自制操作系统》的自信,以为这不过是小case,怎料被虐得惨不忍睹,好多源代码看不懂,难受的无助感四处蔓延。但是,这点小小的挫折怎能打击一个内心强大的程序猿呢?仔细分析了一下难点,其实汇编语言和Linux C编程不够熟练,连Linux一些常用的Shell命令都想不起来,真是不应该。so 花时间去学吧,昨晚在紫荆那儿淘了一本《Linux C编程……》,正适合我这种Linux菜鸟循序渐进地学。从今天开始系统地学习汇编语言和Linux C编程,还有总结整理相关的OS原理,Go on!

Linux的起源、特点和版本号

  Linux OS是一个类UNIX OS,最早由芬兰人Linus Torvalds设计。后来经过世界各地成千上万的志愿者设计和实现,目的是为了建立不受任何商品化软件版权制约的、全世界都可以自用使用的OS。虽然Linux借鉴了UNIX的许多思想,但是所有的源代码都是重写的。

  Linux具备以下一些重要特点:

  • Linux是一个免费软件。这个不用多说。全世界无数的程序员的精华作品,而且还在不断地改善壮大。
  • 完全兼容POSIX1.0标准。
  • 多用户、多任务系统。多用户是指每个用户都对自己的文件设备有相应独立的权利,相互之间不受影响。多任务是指多个程序可以独立地运行。
  • 良好的用户界面。Linux为用户提供了两种界面:文本界面和图形用户界面。我们都来用Shell吧,哈哈。
  • 支持多种文件系统。
  • 丰富的网络功能。极其完善的内置网络功能可以说是linux领先于其他OS的一大特点。
  • 可靠的系统安全。
  • 良好的可移植性。Linux可以在从微型计算机到大型计算机的任何环境和任何平台上运行。我正想入手个树莓派来玩玩呢。

  Linux的版本号也挺有意思的。值得注意的是,Linux的版本号其实是分为两部分的,即内核(Kernel)和发行套件(Distribution)版本,这两者是相对独立的。

  Linux每个内核版本都是类似x.y.zz-www的一组数字,其中,x.y为Linux的主版本号,zz是次版本号,www则是发行号(它和发行版本号无关)。在Ubuntu的Shell中输入“uname -a”命令可以查看相应的内核版本。我在虚拟机上查看了一下内核版本,如下图所示。

  而发行套件本质上只是Linux的一个大软件包,在Kernel的基础上集成了类似C/C++编译器、Perl脚本解释程序、Shell命令解释器等。较为流行的发行版本有Ubuntu、Fedora、Debian、红旗Linux等。在Shell中可以通过“sudo lsb_release -a”来查看相应的发行套件版本。

  我觉得Linux中有几个术语也是应该了解的。

  • GNU(GNU’s Not UNIX),目的是为了实现一个符合UNIX系统接口标准、软件丰富而且可以自由使用的软件库。
  • GPL(GNU General Public License)GNU通用公共许可证,GPL要求在发布软件的同时必须发布源代码,而且允许任何用户能够以源代码的形式将软件复制或者发布给别的用户。
  • POSIX(Portable Operating System Interface of UNIX)可移植的UNIX操作系统接口。

Linux的起源、特点和版本号的更多相关文章

  1. Linux系统起源及主流发行版

    Linux系统起源及主流发行版   本文首先介绍了三大服务器系统,然后介绍了Linux系统的出现背景.以及主要release版本,最后介绍了Linux的文件系统和目录结构.   服务器系统,即安装在服 ...

  2. 【转】查看 Linux 发行版名称和版本号的 8 种方法

    如果你加入了一家新公司,要为开发团队安装所需的软件并重启服务,这个时候首先要弄清楚它们运行在什么发行版以及哪个版本的系统上,你才能正确完成后续的工作.作为系统管理员,充分了解系统信息是首要的任务. 查 ...

  3. LINUX下动态库及版本号控制

    针对同一动态组件的不同版本链接和加载. 一.概念                  DLL HELL字面意思是DLL"灾难",是由于com组件(动态库)升级引起的程序不能运行的情况 ...

  4. LINUX总结第13篇:LINUX下动态库及版本号控制

    感觉讲得挺详细 注: ln 命令用法 ln –s 源文件 目标文件 (目标文件即为软链接文件) 可用ls -l查看软链接文件具体指向哪个文件 目录[-] 1. File libhello.c 2. F ...

  5. Linux通过网卡驱动程序和版本号的信息

    检查卡制造商和信号 查看基本信息:lspci 查看详情:lspci -vvv   # 3小作文v 查看卡信息:lspci | grep Ethernet 查看网卡驱动 查看网卡驱动信息:lspci - ...

  6. Linux系统中查询发行版本号以及内核版本的命令总结

    了解Linux发行版本的版本号是一项非常重要的事情,大多数软件对系统的版本都有要求,发行版本号与软件不匹配,软件将无法安装或者无法使用.这边集合市面上流行的Linux发行版本版本号查询方法.有了这边文 ...

  7. Linux 小知识翻译 - 「版本号」的命名方式

    包括OS,所有的软件都有版本号信息.一般来说,版本号的增大表示软件的功能增强了或者修正了一些Bug,也就是表示软件更新了. 版本号的命名方式没有统一的标准.每种软件都不一样. 大部分情况下,版本号以「 ...

  8. linux下node.js 查版本号和更新 how to update node

    我用的Mac,不是windows,不太清楚那个怎么搞. Linux下就是终端直接命令 //查版本号 node --version // v6.10.1 我很久没更了 //更新 //先清理Npm的cac ...

  9. Linux学习笔记-centos查看版本号和内核信息

    1.查看centos系统版本号: 打开终端窗口: cat /etc/redhat-release 2.查看Linux内核版本信息: uname -a 或者 在图形化桌面右上角点开设置,在设置窗口选择详 ...

随机推荐

  1. InitParam与ContextParm的异同

    web.xml里面可以定义两种参数:(1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下: xml 代码 <context-param> ...

  2. oracle db_unnqiue_name db_name sid_name instance_name service_name

  3. HDU 11488 Hyper Prefix Sets (字符串-Trie树)

    H Hyper Prefix Sets Prefix goodness of a set string is length of longest common prefix*number of str ...

  4. HDU5280 Senior&#39;s Array(简单DP)

    题目链接:pid=5280">传送门 题意: 给定一个长度为n的序列,和一个改动的值p,必须从原序列中选一个位置改动成p, 求改动后的区间和的最大值. 分析: 枚举位置+最大区间和. ...

  5. Linux系统编程——进程调度浅析

    概述 操作系统要实现多进程.进程调度不可缺少. 有人说,进程调度是操作系统中最为重要的一个部分.我认为这样的说法说得太绝对了一点,就像非常多人动辄就说"某某函数比某某函数效率高XX倍&quo ...

  6. Hive索引

    1.        Hive索引概述 Hive的索引目的是提高Hive表指定列的查询速度. 没有索引时.类似'WHERE tab1.col1 = 10' 的查询.Hive会载入整张表或分区.然后处理全 ...

  7. android技术牛人的博客[转]

    Android+JNI调用–文件操作 开发环境:Windows xp sp3 +MyEclipse 8.6+android2.3.3+jdk1.6+android-ndk-r6b JNI概述:     ...

  8. 关于iOS8上本地通知接收不到的问题

    在iOS8系统开发使用本地通知时,会出现如下的相关提示语: 1 Attempting to schedule a local notification2 with an alert but haven ...

  9. jbpmAPI-8

    8.1. Process Instance State jBPM允许某些信息的持久性存储.本章描述了这些不同类型的持久性,以及如何配置它们.存储的信息的一个例子是运行时状态的过程.存储过程运行时状态是 ...

  10. Git Version recovery command introduction - git reset

    reset命令有3种方式: git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息 git re ...