0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

linux之父是谁_linux之父简介

lhl545545 来源:电子发烧友网 2018-02-10 10:10 次阅读

林纳斯·本纳第克特·托瓦兹——linux之父概况

著名的电脑程序员黑客。Linux内核的发明人及该计划的合作者。托瓦兹利用个人时间及器材创造出了这套当今全球最流行的操作系统(作业系统)内核之一。现受聘于开放源代码开发实验室(OSDL:Open Source Development Labs, Inc),全力开发Linux内核。

人物经历

托瓦兹1969年12月28日出生于芬兰赫尔辛基市。父亲尼尔斯·托瓦兹(Nils Torvalds)是一名活跃的共产主义者及电台记者,曾当选芬兰共产党中央委员会委员。托瓦兹家族属于在芬兰占6%的少数民族芬兰瑞典人。他毕业于赫尔辛基大学计算机系,1997年至2003年在美国加州硅谷任职于全美达公司(Transmeta Corporation),现受聘于开放源代码开发实验(OSDL:Open Source Development Labs, Inc),全力开发Linux内核。与妻子托芙(Tove,芬兰前女子空手道冠军)育有三个女孩。

与很多其他黑客不同,托瓦兹行事低调,一般很少评论商业竞争对手(例如微软)产品的好坏,但坚持开放源代码信念,并对微软等对手的FUD战略大为不满。

例如,在一封回应微软资深副总裁Craig Mundie有关开放源代码运动的评论(Mundie批评开放源代码运动破坏了知识产权)的电子邮件中,托瓦兹写道:“我不知道Mundie是否听说过艾萨克·牛顿(Isaac Newton)爵士?他不仅因为创立了经典物理学(以及他和苹果的故事)而出名,也还因为说过这样一句话而闻名于世:我之所以能够看得更远,是因为我站在巨人肩膀上的缘故。”托瓦兹又说道:“我宁愿听牛顿的也不愿听Mundie的。他(牛顿)虽然死了快300年了,却也没有让房间这样得臭气熏天。”

现年47岁的林纳斯目前受聘于开放源代码开发实验室(OSDL,Open Source Development Labs),全身心的开发Linux内核。尽管这位年轻人看上去毫不起眼,比如林纳斯曾在他的自传《乐者为王》(Just for Fun)中自嘲:“我是一个长相丑陋的孩子,凡是见过我小时候照片的人,都会觉得我的相貌酷似河狸。再想象一下我不修边幅的衣着,以及一个托瓦兹家族祖祖辈辈遗传下来的大鼻子,这样,在你脑海中我的模样就形成了。”但这丝毫也影响不了林纳斯对整个商业社会的巨大价值—Linux代表着网络时代新形式的开放知识产权形态,这将从根基上颠覆以Windows为代表的封闭式软件产权的传统商业模式。更重要的是,这样的颠覆早已悄悄的出现在了商业社会的各个角落

托瓦尔兹对成功的独特见解

当在科技行业谈到实现名利的时候,一个有远见的,像史蒂夫·乔布斯一样伟大的人物浮现在我的脑海里,他通常能够设计出令人想不到的产品。但这也不是LinusTorvalds能够成为世界上最知名的程序员的理由(他经常与好莱坞明星在奥斯卡颁奖典礼上上亲密交谈)。

当托瓦尔兹还是个大学生,他发明了开源的操作系统Linux,在当今世界的操作系统领域是最具生命力的(包括谷歌和Facebook均采用该操作系统)。世界上最快的超级计算机也采用该系统,同时,也是Android的核心。

他于1991年发明该操作系统,描述该系统为“开源的操作系统,只是因为爱好,并且不会把它做得很大很专业”。Linux因为它的大和专业在当今世界是如此的重要。这是开源项目的典范,或者任何人都可以做出自己的贡献。自2005年以来,来自1200公司的近12000名程序员把他们的代码添加到主要的Linux操作系统(称为内核)。除了发明了操作系统,托瓦尔兹也发明了一种方,很多人一起工作在一个电脑程序项目。他发明的方法叫做Git,Git本身创建了自己的行业(从Torvalds没有获得任何帮助的情况下),但是如Github,提供给Git价值20亿美元的启动资金。

托瓦尔兹说,如果他是一个有远见的人,那么这一切就不会发生。当他在一次和来自IEEE的斯蒂芬·卡斯采访中说到(和我们强调):我相信,为了linux的成功,我不知道我自己究竟做了哪些。当我开始的时候,如果我坚信有一天我能成功,所以到现在我一直在坚持下去。有时候普你需要很多的自信,相信你能做到……

事实上,我真的不知道它最终什么时候能够实现,意味着我会一直做下去。我可能会听取他人的建议,听取外部的意见,其他人加入该项目,我认为这样更容易,更有趣。有时候人们不需要别人的同意,但可以一直做自己喜欢的事情。

Linux之父话糙理不糙

Linus Torvalds曾经在十多年前尝试用C++来开发Linux内核,由于种种原因,很快失败了。自那时起他就不时表达对C++的不满。刘江blog上的记录的这个事件只是最近的一次而已。尽管言辞激烈,但其实话糙理不糙。

时至今日,在一般的场合下,C和C++语言的主要用途就是系统级软件的开发。具体地说,C/C++写平台、工具和基础库,支持高层的语言来完成应用逻辑。 在9月份《程序员》杂志上刊登的一篇《微软架构师谈编程语言发展》的文章里,Brian Beckman直截了当地说,C++语言主要是用来开发别的语言的。这话片面一点,如果改成 “C++语言主要是用来支持别的语言的”,那就大体没错了。

做系统软件开发的时候,重要的是理解系统的运作方式,那些漂亮的抽象手法和高级特性是次要的。

有一个有趣的现象,不少做系统软件的老手,在用过一段C++之后,又回到C。因为在这个层次上,C++对于C的优势就不突出了。那些高级的抽象结构往往是 不必要的,反而是由于抽象层次的提高,使得开发者要弄清楚“下面实际发生的事情”变得不太容易了。所以很多老手实际上觉得用C语言控制力更强一些,更得心 应手一些。真正的C语言高手,对于语言和编译器都很熟悉了,基本上在写C时候就已经知道编译器优化以后产生汇编代码是个什么样子,甚至可以改变C代码来引 导编译器产生最优化的机器码。而C++的机制很丰富,很多机制是为了满足高层应用和框架的需求而准备的,在这个层次上发挥不出来,反而把清晰性给牺牲掉 了。很多时候,一个简单的语句,到底背后会发生什么,即使是老手也说不清。比如:

std::string s(“Linux Torvalds“);

std::string scopy = s;

上面这段代码不过是创建两个内容相同的字符串副本,但是没有任何一个人能够在不了解更多信息的情况下清楚地描述背后所发生的事情,因为不同的STL对于 string的实现方式不同,因此在copy assignment时表现也不同,有的可能是简单地复制字符串对象,有的可能具有ref-counting机制,需要创建对象、设定对象值、增加引用计 数,有的没有考虑线程安全性,有的考虑了线程安全性,还得加锁解锁,对不起,加解锁也还有很多做法。创建新的string对象时,有时还需要调用内存分配 器,而这个东西的实现又五花八门,有的直接new char[],有的从内建的memory pool申请,memeory pool是不是线程安全的?对不起,这次可能又要涉及加解锁问题。memeory pool会不会已经满了?要不要次第调用new/malloc申请新的内存块?总之,后面的事情够多够复杂,没有相当功力,对平台了解不够深入,很难说出个子午卯酉来。

一个字符串复制尚且如此,别的高级特性就更不用说了。所以很多人宁可麻烦一点,也不愿意使用C++,这还是可以理解的。

就我个人来说,我还是愿意用C++的,特别是在C里写一遍又一遍realloc的时候,就想起 string::operator+=()的好处来了。大概是STL给我的印象太深了,写算法程序的时候,不用STL就觉得不爽,一个transform 就可以搞定的事情,非要用for循环,这会让我感觉浑身不自在。所以一般情况下,拿到一个什么问题,我还是会用C++去解决的。对我来说, Torvalds的话其实是很中肯的,即使是用C++,也要尽可能搞清楚其背后发生的事情,这样在写low level程序的时候才会有把握。如果是设计应用级别的程序,就尽可能不用C/C++,把底层的事情都忘掉,专心专意做好应用层的设计才是正道。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11219

    浏览量

    208872
收藏 人收藏

    评论

    相关推荐

    Linux应用编程的基本概念

    Linux应用编程涉及到在Linux环境下开发和运行应用程序的一系列概念。以下是一些涵盖Linux应用编程的基本概念。
    的头像 发表于 10-24 17:19 180次阅读

    Linux实用命令大全

    Linux实用命令大全
    的头像 发表于 10-23 13:50 178次阅读
    <b class='flag-5'>Linux</b>实用命令大全

    Linux内核测试技术

    Linux 内核是Linux操作系统的核心部分,负责管理硬件资源和提供系统调用接口。随着 Linux 内核的不断发展和更新,其复杂性和代码规模也在不断增加。因此,确保内核的稳定性和可靠性变得尤为重要
    的头像 发表于 08-13 13:42 428次阅读
    <b class='flag-5'>Linux</b>内核测试技术

    freebsd和linux哪个好用

    操作系统历史和起源: FreeBSD和Linux都是基于UNIX的操作系统。FreeBSD起源于加州大学伯克利分校的BSD项目,而Linux则是由Linus Torvalds在1991年创建
    的头像 发表于 08-08 10:29 561次阅读

    QNX与Linux基础差异对比

    对于QNX系统和Linux系统的内核差异,我们抛开宏内核、微内核之类的争议不谈。单纯从开发应用的角度而言,QNX和Linux系统的差异到底有多大,在开发的时候需要注意哪些细节问题?
    发表于 04-17 10:52 690次阅读

    使用 PREEMPT_RT 在 Ubuntu 中构建实时 Linux 内核

    盟通技术干货构建实时Linux内核简介盟通技术干货Motrotech如果需要在Linux中实现实时计算性能,进而有效地将Linux转变为RTOS,那么大多数发行版都可以打上名为PREE
    的头像 发表于 04-12 08:36 2189次阅读
    使用 PREEMPT_RT 在 Ubuntu 中构建实时 <b class='flag-5'>Linux</b> 内核

    linux多线程编程实例

    linux线程
    的头像 发表于 02-15 21:16 412次阅读
    <b class='flag-5'>linux</b>多线程编程实例

    linux和windows的区别 linux系统一般用来干嘛

    Linux和Windows是两种不同的操作系统,有着不同的设计理念和用途。本文将对Linux和Windows的区别进行详细分析,并介绍Linux系统的常见用途。 一、设计理念和架构 1.1
    的头像 发表于 02-05 14:06 870次阅读

    DIY个人的Linux开发板教程

    作者简介:大佬已在硬创社开源了近50款开发板,动手能力极强,于去年年底开始接触学习Linux,并由全志V3s、F1C200S等芯片开始上手DIY个人的Linux开发板。
    的头像 发表于 01-07 09:52 1950次阅读
    DIY个人的<b class='flag-5'>Linux</b>开发板教程

    基于Debian的Sparky Linux 7.2的亮点

    Linux kernel 6.1 LTS 提供支持,Sparky Linux 7.2采用 LXQt 1.2.0 和 KDE Plasma 5.27.5,现在提供 ARMHF 和 ARM64 镜像。
    的头像 发表于 12-14 10:13 566次阅读
    基于Debian的Sparky <b class='flag-5'>Linux</b> 7.2的亮点

    如何在Linux中使用htop命令

    本文介绍如何在 Linux 中使用 htop 命令。
    的头像 发表于 12-04 14:45 1898次阅读
    如何在<b class='flag-5'>Linux</b>中使用htop命令

    ubuntu和linux的区别

    Ubuntu和Linux是两个相关但不完全相同的概念,它们之间有着一些区别。在开始深入讨论Ubuntu和Linux之间的区别之前,让我们首先了解一下这两个概念的含义。 Linux是一种开源操作系统
    的头像 发表于 11-27 17:06 2311次阅读

    Linux网络基本配置与管理

    Linux是一种开源操作系统,被广泛用于服务器和网络设备中。在Linux中,网络配置和管理是一个重要且复杂的任务。本篇文章将详细介绍Linux网络基本配置和管理的知识。 网络配置文件: 在Li
    的头像 发表于 11-27 16:51 883次阅读

    linux的常用命令

    Linux入门 1.1 Linux的介绍 (1)linux是一款操作系统,免费开源,安全高效,稳定,能处理高并发 (2)企业级的项目部署到linux/unix服务器运行 1.2
    的头像 发表于 11-24 16:04 564次阅读
    <b class='flag-5'>linux</b>的常用命令

    linux docker安装部署

    了解如何在Linux上安装和部署Docker。 一、安装Docker 在开始之前,请确保您的Linux系统满足以下要求: 64位版本的Linux操作系统,包括Ubuntu、CentOS等。 L
    的头像 发表于 11-23 09:27 1055次阅读