2021-08-29 认识linux

面试时总被问起linux和多线程,所以在此记录我的linux学习之旅。

认识linux

linux之父:Linus Torvalds

【Linux历史:Linux内核设计与实现 Robert Love】
1991年,Linus Torvalds为当时新推出的、使用Intel 80836的微处理器的计算机开发了一款全新的操作系统,linux就此诞生。当时,Linus作为一名大学生,苦恼于不能随心所欲的使用unix,他热衷于使用Minix,一种教学用的unix,但是由于minix有许可证,他不能轻易修改和发布该系统的源代码,也不能对开发者做的设计做任何轻举妄动,这让他耿耿于怀。他决定自己开发操作系统。他开始写了一个简单的终端仿真程序,用于连接到本校的大型unix上。经过一年的研发,linus受伤很快就有了不成熟但是五脏俱全的unix,1991年年底,他在internet上发布的了早期版本。linux吸引了很多开发者、黑客对其代码进行修改和完善。如今它已经被广泛移植到ARM、powerPC等其他体系结构上,用于最轻小的电子设备,同时也用于庞大的服务数据中心上。
Linux是类unix系统,但是它不是unix。尽管Linux借鉴了Unix的许多设计并且实现了Unix的API,但是它没有像其他Unix那样直接使用Unix的源代码。

【Linux历史:Linux操作系统实用教程 刘振洪、吴敏凤.】
Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:Unix操作系统、MINIX操作系统、GNU计划、POSIX标准和Internet网络。
20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和macOS这几种。Unix价格昂贵,不能运行于PC;DOS显得简陋,且源代码被软件厂商严格保密;MacOS是一种专门用于苹果计算机的操作系统。此时,计算机科学领域迫切需要一个更加完善、强大、廉价和完全开放的操作系统。由于供教学使用的典型操作系统很少,因此当时在荷兰当教授的美国人AndrewS.Tanenbaum编写了一个操作系统,名为MINIX,为了向学生讲述操作系统内部工作原理。MINIX虽然很好,但只是一个用于教学目的的简单操作系统,而不是一个强有力的实用操作系统,然而最大的好处就是公开源代码。全世界学计算机的学生都通过钻研MINIX源代码来了解电脑里运行的MINIX操作系统,芬兰赫尔辛基大学大学二年级的学生Linus Torvalds就是其中一个,在吸收了MINIX精华的基础上,Linus于1991年写出了属于自己的Linux操作系统,版本为Linux0.01,是Linux时代开始的标志。他利用Unix的核心,去除繁杂的核心程序,改写成适用于一般计算机的x86系统,并放在网络上供大家下载,1994年推出完整的核心Version1.0,至此,Linux逐渐成为功能完善、稳定的操作系统,并被广泛使用。

什么是GNU

Linux最让人感兴趣的特征是它是一个非商业化产品,是一个互联网上的协作开发项目,是一个自由(开源)软件。任何人都可以进行内核开发。它使用GNU的General Public License(GPL)第二版作为限制条款,如果你打算为了发布的目的修改,更新或改进任何受通用公共许可证约束的软件,你所修改的软件同样必须受到GNU通用许可证条款的约束。这样做的结果是,你可以自由获取内核源码并随意修改它,但如果你希望发布你修改过的内核,你也得保证让得到你的内核的人同时享有你曾经享受过的所有权利,当然,包括全部源代码。
“GNU”是“GNU’s Not Unix!”(GNU并非Unix!)

【GNU的历史:来源知乎匿名用户】
“Unix 系统被发明之后,大家用的很爽。但是后来开始收费和商业闭源了。一个叫 RMS 的大叔觉得很不爽,于是发起 GNU 计划,模仿 Unix 的界面和使用方式,从头做一个开源的版本。然后他自己做了编辑器 Emacs 和编译器 GCC。GNU 是一个计划或者叫运动。在这个旗帜下成立了 FSF,起草了 GPL 等。接下来大家纷纷在 GNU 计划下做了很多的工作和项目,基本实现了当初的计划。包括核心的 gcc 和 glibc。但是 GNU 系统缺少操作系统内核。原定的内核叫 HURD,一直完不成。同时 BSD(一种 UNIX 发行版)陷入版权纠纷,x86 平台开发暂停。然后一个叫 Linus 的同学为了在 PC 上运行 Unix,在 Minix 的启发下,开发了 Linux。注意,Linux 只是一个系统内核,系统启动之后使用的仍然是 gcc 和 bash 等软件。Linus 在发布 Linux 的时候选择了 GPL,因此符合 GNU 的宗旨。最后,大家突然发现,这玩意不正好是 GNU 计划缺的么。于是合在一起打包发布叫 GNU / Linux。然后大家念着念着省掉了前面部分,变成了 Linux 系统。实际上 Debian,RedHat 等 Linux 发行版中内核只占了很小一部分容量。”

Linux介绍

操作系统是指在整个系统中负责完成最基本功能和系统管理的部分。这些部分包括内核、设备驱动程序、启动引导程序、命令行shell或者其他种类的用户界面、基本的文件管理工具和系统工具。
Linux系统的基础是内核、C库、工具机和系统的基本工具,如登陆程序和shell。它也支持现代的X Windows系统,这样就可以使用完整的图形用户桌面环境,如GNOME。

Linux特点

基本思想

Linux的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。

完全免费

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

完全兼容POSIX1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现代电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

优点

1.Linux由众多微内核组成,其源代码完全开源;
2.Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;
3.Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;

常用命令及技巧

1、date:打印或者设置系统的日期和时间
2、stty-a:可以查看或者打印控制字符(Ctrl-C、Ctrl-D、Ctrl-Z等)
3、passwd:用passwd-h查看
4、logout,login:登录shell的登录和注销命令
5、more,less,head tail:显示或部分显示文件内容
6、lp/lpstat/cancel,lpr/lpq/lprm:打印文件
7、chmod u+x:更改文件权限
8、rm -fr dir:删除非空目录
9、cp -R dir:拷贝目录
10、fg jobid:可以将一个后台进程放到前台
11、kill的作用:send a signal to a process、eg:kill-9发送的是SIG_KILL信号,具体发送什么信号可以通过man kill查看、
12、ps的用法,ps-e或ps-o pid,ppid,session,tpgid,comm(其中session显示的sessionid,tpgid显示前台进程组id,comm显示命令名称)
13 ip a 查看ip地址信息的命令
14 zcat /proc/config.gz > config 到内核配置文件

[1]. 百度百科
[2]. Linux 内核实现与设计
[3]. Linux操作系统实用教程 刘振洪、吴敏凤
[4]. 知乎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值