热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《鸟哥的Linux私房菜-基础学习篇(第三版)》(二)

第1章Linux是什么1.Linux是什么首先谈了Linux是什么。就是一套操作系统,即内核与系统调用接口那两层。早期的Linux是针对386来开发的。然

第1章 Linux是什么

       1. Linux是什么

       首先谈了Linux是什么。就是一套操作系统,即内核与系统调用接口那两层。早期的Linux是针对386来开发的。

       然后谈了Linux之前Unix的历史

       1)1969年之前:Bell、MIT与GE的“Multics”系统。20世纪60年代初期,MIT开发了分时操作系统(CTSS),可以让大型主机通过提供多个终端机建以连接进入主机,但此时的终端机只具有输入/输出功能。

       2)1969年:Ken Thompson的小型File Server System。该系统是以汇编语言编写的,就是UNIX的原型。这个文件系统有两个重要的概念:所有的程序或系统装置都是文件;不管构建编辑器还是附属文件,所写的程序只有一个目的就是有效地完成目标。

       3)1973年:UNIX正式诞生,Ritchie等人用C语言写出了第一个正式的UNIX内核。这个改变也使得UNIX很容易被移植到不同的机器上。

       4)1977年:重要的UNIX分支—BSD诞生。Bill Joy改进了UNIX内核,命名为Berkeley Software Distribution(BSD)。

       5)1979年:重要的System V架构与版权声明。早期的UNIX只用在服务器和大型工作站上,但1979年AT&T提出的System V 第七版UNIX最重要的特点是可以支持x86架构的个人计算机系统。目前被称为纯种的UNIX指的就是System V和BSD这两套。

       6)1984年之一:x86架构的Minix操作系统诞生。谭宁邦教授自己动手写了Minix这个Unix Like的内核程序。

       7)1984年之二:GNU项目与FSF基金会成立。Stallman(史托曼)发起了GNU项目,目的是创建一个自由的、开放的UNIX操作系统(Free UNIX)。此外,他还开发了C语言的编译程序GNU C Complier(GCC),他还成立了自由软件基金会(Free Software Foundation),还开发了编辑器Emacs,还编写了更多可以被调用的C函数库(GUN C Library)以及可以被用来操作操作系统的基本接口bash shell。

       8)1988年:图形接口XFree86项目。其实是X Window System + Free + x86的整合名称。

       9)1991年:芬兰的赫尔辛基大学的Linus Torvalds开发了Linux系统内核。

       最后又谈了关于GNU项目。将源码连同软件程序释出的举动称为自由软件运动。GNU具有通用公共许可证(GPL),GNU就是GNU's Not UNIX的意思。自由软件的重点不是指“免费”的,而是指具有“自由度”的软件,即用户可以自由执行、复制、再发行、学习、修改与强化自由软件。自由软件是可以销售的,但应同时搭配售货服务与相关手册。自由软件工作者主要收益是来自服务费。另外,GPL也是可以从事商业行为的。

       2. Torvalds的Linux开发

       首先谈了Minix。托瓦兹通过这个的源码学到了很多内核程序设计的概念。

       然后谈了对386硬件的多任务测试。托瓦兹探索了386的硬件。

       接着又谈了初次释出Linux 0.02。托瓦兹通过GNU项目提供的bash工作环境软件以及gcc编译程序等自由软件顺利编写了内核程序。由于他放置内核的那个FTP网站的目录为Linux,所以这个内核便被称为Linux。为了让Linux能够兼容UNIX,他修改了Linux,并参考POSIX规范(可携式操作系统接口,重点在于规范内核与应用程序之间的接口)。

       还谈到了Linux开发:虚拟团队的产生。经历了“单一个人维护阶段”到“广大志愿者加入阶段”再到“内核功能细部分工开发阶段”。由于托瓦兹和他的助手都没有见过面,所以他的团队也成为虚拟团队。

       又谈到了Linux的内核版本。类似于2.6.18-92.e15分别对应着主版本.次版本.释出版本-修改版本。主、次版本为奇数代表是开发中的版本;主、次版本为偶数代表是稳定的版本;释出版本是主、次版本架构不变的情况下,新增的功能累积到一定的程度后所新释出的内核版本。Linux版本指的是内核版本,常说的Linux系统则是说的distribution。

       最后就谈到了Linux distribution。“Kernel + Software + Tools”的可完全安装系统称为Linux distribution。每个Linux distribution都遵循了Linux Standard Base(LSB)标准和File system Hierarchy Standard(FHS)规范,差异并不大。如果安装在个人计算机上推荐使用团队版,如果用在服务器上推荐使用商业版,更稳定。中文Linux的翻译靠的是CLE这个套件。

       3. Linux的特色      

       UNIX Like是目前服务器类型的操作系统的统称。

       首先谈了Linux的特色

       1)自由与开放的使用与学习环境。

       2)配备需求低廉。

       3)内核功能强大而稳定。

       4)独立作业。

       随后谈到了Linux的优缺点。优点是:

       1)稳定的系统。

       2)免费或少许费用。

       3)安全性、漏洞的快速修补。

       4)多任务、多用户。

       5)用户与用户组的规划。

       6)相对比较不耗资源的系统。

       7)适合需要小内核程序的嵌入式系统。

       8)整合度佳且多样的图形用户界面(GUI)。

       缺点是:

       1)需要使用命令行模式操作。

       2)没有特定的支持厂商。

       3)游戏的支持度不足。

       4)专业软件的支持度不足。

       最后谈了关于授权。有几个授权模式:

       1)Open Source(开放源码)。除了可执行的软件本身外,一定伴随着源码的释出。如GNU,BSD,Apache License等。

       2)Close Source。仅推出可执行的二进制程序。其中Freeware是“免费软件”,不一定要公开源码;Shareware是共享软件,初期免费,试用期到了要付费。


推荐阅读
  • 如何在Linux环境中高效地创建、编译与运行C语言代码
    本文面向第一次在linux尝试写C语言程序的新人。有经验的请绕行。C语言用法不是本文介绍的关键,本文只是引入如何第一次在linux系统下编写、编译和执行一个简单的c程序。学会后请自行深入 ... [详细]
  • 本文详细介绍了使用响应文件在静默模式下安装和配置Oracle 11g的方法。硬件要求包括:内存至少1GB,具体可通过命令`grep -i memtotal /proc/meminfo`进行检查。此外,还提供了详细的步骤和注意事项,确保安装过程顺利进行。 ... [详细]
  • 在 Linux 系统中,`/proc` 目录实现了一种特殊的文件系统,称为 proc 文件系统。与传统的文件系统不同,proc 文件系统主要用于提供内核和进程信息的动态视图,通过文件和目录的形式呈现。这些信息包括系统状态、进程细节以及各种内核参数,为系统管理员和开发者提供了强大的诊断和调试工具。此外,proc 文件系统还支持实时读取和修改某些内核参数,增强了系统的灵活性和可配置性。 ... [详细]
  • 系统管理员可以通过多种方法实时监控Linux系统中的用户活动,包括当前已登录的用户及其正在进行的操作。利用特定的命令和工具,管理员可以轻松获取这些信息,确保系统的安全性和稳定性。例如,使用`who`、`w`或`last`等命令可以快速查看当前登录的用户及其活动详情。 ... [详细]
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • 在Linux/WSL环境中,本文对Shell任务的并行处理进行了详细的测试与分析。通过多种并行处理技术,如GNU Parallel和xargs,探讨了如何有效提升任务执行效率和系统资源利用率。实验结果表明,合理配置并行参数能够显著缩短任务完成时间,提高系统整体性能。此外,文章还介绍了Shell脚本编写的基本原则和最佳实践,为读者提供了实用的参考。 ... [详细]
  • Python数据分析入门指南:全面了解Python在数据科学中的应用 ... [详细]
  • 如何利用Apache与Nginx高效实现动静态内容分离
    如何利用Apache与Nginx高效实现动静态内容分离 ... [详细]
  • C语言实现:深入解析希尔排序算法
    C语言实现:深入解析希尔排序算法 ... [详细]
  • 本文探讨了将PEBuilder转换为DIBooter.sh的方法,重点介绍了如何将DI工具集成到启动层,实现离线镜像引导安装。通过使用DD命令替代传统的grub-install工具,实现了GRUB的离线安装。此外,还详细解析了bootice工具的工作原理及其在该过程中的应用,确保系统在无网络环境下也能顺利引导和安装。 ... [详细]
  • 深入RTOS实践,面对原子操作提问竟感困惑
    在实时操作系统(RTOS)的实践中,尽管已经积累了丰富的经验,但在面对原子操作的具体问题时,仍感到困惑。本文将深入探讨RTOS中的原子操作机制,分析其在多任务环境下的重要性和实现方式,并结合实际案例解析常见的问题及解决方案,帮助读者更好地理解和应用这一关键技术。 ... [详细]
  • 深入解析Java中的进程与线程机制
    在Java中,进程与线程是程序执行的基本单元。进程代表了程序的运行实例,包含了独立的内存空间和系统资源,如CPU时间、内存、文件和I/O接口。操作系统通过进程来管理和分配这些资源,确保每个程序能够高效、安全地运行。线程则是进程内的基本调度单位,多个线程可以共享进程的资源,从而实现高效的并发处理。本文将深入探讨Java中的进程与线程机制,分析其工作原理和应用场景。 ... [详细]
  • 深入解析C语言中的大小端字节序存储机制
    在C语言中,当编译器执行“创建变量”的指令时,会为该变量在内存中分配相应的存储空间。对于整型变量,其值通常以二进制补码形式存储。此外,不同系统采用的大端或小端字节序对数据的实际存储方式有显著影响,理解这些机制有助于开发者更好地控制数据的读写过程。 ... [详细]
  • Android数组截取技巧及JNI数组交互在仓库构建中的应用分析
    在Android开发中,数组截取技巧和JNI数组交互在仓库构建中的应用具有重要意义。JNI提供了两种主要的数组处理方法:一是生成原生层数组的副本,二是直接通过数组指针进行操作。在进行字符串处理时,如果需要执行其他复杂操作,可以结合这两种方法以提高效率和灵活性。此外,合理利用这些技术可以显著提升应用程序的性能和稳定性。 ... [详细]
  • 前言: 网上搭建k8s的文章很多,但很多都无法按其说明在阿里云ecs服务器成功搭建,所以我就花了些时间基于自己成功搭建k8s的步骤写了个操作手册,希望对想搭建k8s环境的盆友有所帮 ... [详细]
author-avatar
如梦幻般的童心_900
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有