前言

  最近上陈渝老师的《高级操作系统》,需要在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. Ubuntu下远程访问MySQL数据库

    MySQL远程访问的命令 格式: mysql -h主机地址 -u用户名 -p用户密码 jack@jack:~$ mysql -h192.168.5.154 -usaledata -pEnter pas ...

  2. ubuntu使用crontab

    crond服务通常被放在/etc/init.d/crond , 这样就可以在系统启动后自动启动crond服务. linux中的用户使用crontab命令来配置cron任务. crontab在/etc目 ...

  3. 有感PMI Exam Dev Workshop

    有幸參加了PMI协会在上海举办的PMI Exam Development Workshop活动.这是PMI协会第二次在中国举办此活动,上一次是2009年北京. 我第一次參加,感觉收获非常多. 我们知道 ...

  4. WPF datagrid 如何隔行变色

    <DataGrid AlternationCount="2"> <DataGrid.RowStyle> <Style TargetType=" ...

  5. jira使用

    JIRA的生产者把JIRA定义为Professional Issue Tracker,即它是一个专业的问题跟踪管理的软件.这里的"问题"对应的英文单词是Issue,所以含义比较广, ...

  6. mapreduce 关于小文件导致任务缓慢的问题

    小文件导致任务执行缓慢的原因: 1.很容易想到的是map task 任务启动太多,而每个文件的实际输入量很小,所以导致了任务缓慢 这个可以通过 CombineTextInputFormat,解决,主要 ...

  7. 用wfastcgi在IIS下部署Django&Flask

    Django跟Flask在Linux底下都可以很方便地以FastCGI模式部署,貌似IIS下面不很好配置,而且IIS也缺少一个像PHPmanager一样的全自动配置工具,在公司服务器上部署起来颇费周折 ...

  8. [LeetCode]题解(python):072-Edit Distance

    题目来源: https://leetcode.com/problems/edit-distance/ 题意分析: word1最少通过多少步可以变成word2.word1只能进行一下的操作.a)插入一个 ...

  9. UIWebView的三种加载方式

    一.使用UIWebView 将web content 嵌入到应用上. API提供了三种方法: - (void)loadRequest:(NSURLRequest *)request; - (void) ...

  10. RatProxy

    http://book.51cto.com/art/201212/374023.htm http://www.oschina.net/p/ratproxy/similar_projects