日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux背后的思想

5RJg_mcuworld ? 來(lái)源:嵌入式資訊精選 ? 2019-11-27 15:52 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

01 Linus Torvalds

Linus Torvalds兩次改變了技術(shù),第一次是Linux內(nèi)核,它幫助互聯(lián)網(wǎng)的發(fā)展;第二次是Git,全球開(kāi)發(fā)者使用的源代碼管理系統(tǒng)。在一次TED的采訪中,Torvalds以極其開(kāi)放的態(tài)度討論了他獨(dú)特的工作方式和性格特點(diǎn)。 Torvalds說(shuō):“我不是一個(gè)空想家,我是一名工程師,我非常樂(lè)意跟夢(mèng)想家在一起,他們行走四方,仰望蒼穹,看著滿天星辰說(shuō),“我想到那兒去?!钡沂堑皖^看路的那種人,我只想填好眼前這個(gè)坑,不讓自己掉進(jìn)去,這就是我?!?

02 關(guān)于開(kāi)源

Linus Torvald Linux并不是一個(gè)合作的產(chǎn)物,它是我一系列項(xiàng)目中的一個(gè),純粹出于自己當(dāng)時(shí)的需要,部分原因是我需要得到結(jié)果,但更重要的原因是我享受編程。這段旅程的終點(diǎn),在25年后的今天(2016),我們?nèi)晕催_(dá)到。當(dāng)年我只是想做一個(gè)完全屬于自己的項(xiàng)目,我壓根就沒(méi)想過(guò)開(kāi)源這件事。但在那之后,隨著項(xiàng)目越來(lái)越大,你會(huì)開(kāi)始想讓別人知道。感覺(jué)就像“哇,快來(lái)看看我的成果!” 成千上萬(wàn)的人想?yún)⑴c進(jìn)來(lái)(Linux內(nèi)核項(xiàng)目),但很多時(shí)候,我成為了那個(gè)斷點(diǎn),我無(wú)法讓自己跨出那一步,同上千人合作。 因此Git是我的第二個(gè)大項(xiàng)目,它存在的意義就是維護(hù)我的第一個(gè)大項(xiàng)目。事實(shí)上這就是我的工作方式。我編程并不是為了… ,我編程是因?yàn)楹猛?,但我也想做一些有意義的事情,因此我設(shè)計(jì)每一個(gè)程序僅僅是因?yàn)槲易约盒枰?而我喜歡開(kāi)源軟件的一點(diǎn)就是,它能讓形形色色的人在一起合作。我們不必相互喜歡,有時(shí)候我們甚至互相討厭。是真的,我們經(jīng)常吵得不可開(kāi)交。 科學(xué)界的開(kāi)源顯然是一種回歸,科學(xué)最初是開(kāi)源的。但之后變得越來(lái)越封閉,只存在那些昂貴的科學(xué)期刊上。開(kāi)源讓科學(xué)回歸了,我們有了arXiv和開(kāi)放期刊。

小編有話說(shuō) Linux并不是選擇了開(kāi)源,只是因?yàn)殚_(kāi)源恰好是Linux需要的。就如Linus Torvalds所說(shuō):“純粹出于自己當(dāng)時(shí)的需要?!?/p>

Linus Torvalds是睿智的,做好自己能控制的。

開(kāi)源不僅僅代表源代碼的開(kāi)放,開(kāi)源更是一種工作方式,一種教育方式。因?yàn)橛辛碎_(kāi)源,我們多了一種更好的合作共贏的工作方式;因?yàn)橛辛碎_(kāi)源,讓更多從業(yè)者和學(xué)生能夠?qū)W習(xí)到更好的技術(shù)。

03代碼的品味

Linus Torvalds 有時(shí)候你可以換個(gè)角度看問(wèn)題,重寫(xiě)代碼,排除特例,完美覆蓋所有情況,這就是好的代碼。同時(shí)也很簡(jiǎn)單,這是最基本的原則。細(xì)節(jié)非常重要。對(duì)我來(lái)說(shuō),我愿意與之共事的人,必須有好的品位。

采訪中Linus Torvalds對(duì)比了以下2個(gè)函數(shù):

小編有話說(shuō) 大牛們總是對(duì)自己嚴(yán)格要求,不僅僅是要實(shí)現(xiàn)功能,并且要優(yōu)雅的實(shí)現(xiàn)。下面我們來(lái)看看采訪中Linus Torvalds對(duì)比的兩段代碼:

1. 不怎么漂亮的代碼

remove_list_entry(entry){ prev = NULL; walk = head; // Walk the list while (walk != entry) { prev = walk; walk = walk->next;} // Remove the entry by updating the // head or the previous entry if(!prev) { head = entry->next; } else { prev->next = entry->next;}}上面的代碼,需要區(qū)分要移除的成員是否為鏈表的頭一個(gè)成員。需要單獨(dú)處理特例情況(要移除的成員為鏈表的頭一個(gè)成員)。這個(gè)函數(shù)比較好理解,這里小編就不做更多的解釋了。 2.好的代碼

remove_list_entry(entry){ // The "indirect" pointer points to the // *address* of the thing we'll update indirect = &head; // Walk the list, looking for the thing that // points to the entry we want to remove while ((*indirect) != entry)) { indirect = &(*indirect)->next; } // .. and just remove it *indirect = entry->next;} 這個(gè)代碼完全不需要單獨(dú)處理特例情況,程序整體更加整潔、優(yōu)雅。其實(shí)現(xiàn)原理為:指針變量indirect保存的是鏈表成員結(jié)構(gòu)體中的next成員的地址(head指針也可這樣看),如下圖所示:

所以變量*indirect就相當(dāng)于是前一個(gè)鏈表成員的next成員(相對(duì)于要移除的成員來(lái)說(shuō))。當(dāng)找到要移除的成員后,進(jìn)行如下操作即可:

*indirect = entry->next;

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 互聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    55

    文章

    11353

    瀏覽量

    110533
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11831

    瀏覽量

    219656
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3725

    瀏覽量

    97467

原文標(biāo)題:Linux 背后的思想(內(nèi)含 Linus 在 TED 采訪視頻)

文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何理解Linux內(nèi)核中的PCIe驅(qū)動(dòng)

    我們習(xí)慣了用 Verilog 去死磕 PCIe 的底層協(xié)議狀態(tài)機(jī)。但一旦越過(guò)硬件邊界來(lái)到操作系統(tǒng)層面,Linux 內(nèi)核是如何接管并驅(qū)動(dòng)這些 PCI/PCIe 設(shè)備的呢?由于不同的 CPU 架構(gòu)實(shí)現(xiàn)了
    的頭像 發(fā)表于 04-11 17:22 ?1317次閱讀

    內(nèi)存泡沫,和它背后的幽靈訂單

    內(nèi)存泡沫,和它背后的幽靈訂單
    的頭像 發(fā)表于 02-10 00:37 ?1.2w次閱讀
    內(nèi)存泡沫,和它<b class='flag-5'>背后</b>的幽靈訂單

    Linux設(shè)備樹(shù)到底是啥?一張圖看懂硬件適配的「翻譯官」

    你有沒(méi)有想過(guò):同一份 Linux 內(nèi)核鏡像,為啥能在不同型號(hào)的開(kāi)發(fā)板上跑起來(lái)?比如一塊 ARM 架構(gòu)的開(kāi)發(fā)板,今天換個(gè)顯示屏、明天加個(gè)傳感器,內(nèi)核不用重新編譯就能識(shí)別新硬件 —— 這背后,設(shè)備樹(shù)(Devicetree) 功不可沒(méi)。
    的頭像 發(fā)表于 02-09 17:01 ?1354次閱讀
    <b class='flag-5'>Linux</b>設(shè)備樹(shù)到底是啥?一張圖看懂硬件適配的「翻譯官」

    Linux音頻開(kāi)發(fā)必藏!這個(gè)官網(wǎng)藏著從驅(qū)動(dòng)到應(yīng)用的全套解決方案

    打開(kāi)alsa-project.org,首先會(huì)被這句簡(jiǎn)介擊中:"為 Linux 系統(tǒng)提供音頻與 MIDI 功能的核心架構(gòu)"。作為 2.6 版本后 Linux 內(nèi)核默認(rèn)的音頻子系統(tǒng)
    的頭像 發(fā)表于 02-06 16:56 ?3255次閱讀
    <b class='flag-5'>Linux</b>音頻開(kāi)發(fā)必藏!這個(gè)官網(wǎng)藏著從驅(qū)動(dòng)到應(yīng)用的全套解決方案

    深入Linux內(nèi)核:進(jìn)程調(diào)度的核心邏輯與實(shí)現(xiàn)細(xì)節(jié)

    ,背后都離不開(kāi)內(nèi)核調(diào)度算法的精準(zhǔn)操控。今天,我們就從優(yōu)先級(jí)、調(diào)度算法、時(shí)間片分配到底層實(shí)現(xiàn),全方位拆解Linux內(nèi)核進(jìn)程調(diào)度的核心邏輯。 一、進(jìn)程調(diào)度的“身份標(biāo)識(shí)”:優(yōu)先級(jí)與分類(lèi) 要理解調(diào)度邏輯,首先得搞懂:進(jìn)程憑什么“插隊(duì)”?答案
    的頭像 發(fā)表于 12-24 07:05 ?4630次閱讀
    深入<b class='flag-5'>Linux</b>內(nèi)核:進(jìn)程調(diào)度的核心邏輯與實(shí)現(xiàn)細(xì)節(jié)

    分享一個(gè)Linux音頻開(kāi)發(fā)實(shí)用站:ALSA項(xiàng)目官網(wǎng)使用指南

    經(jīng)常和Linux音頻打交道的朋友,大概率聽(tīng)過(guò)ALSA(Advanced Linux Sound Architecture),它是Linux系統(tǒng)里負(fù)責(zé)音頻和MIDI功能的基礎(chǔ)架構(gòu),日常用的很多音頻相關(guān)
    的頭像 發(fā)表于 12-10 07:03 ?860次閱讀
    分享一個(gè)<b class='flag-5'>Linux</b>音頻開(kāi)發(fā)實(shí)用站:ALSA項(xiàng)目官網(wǎng)使用指南

    學(xué)習(xí)Linux應(yīng)該從哪里開(kāi)始?

    在工業(yè)控制、邊緣計(jì)算、人工智能這些領(lǐng)域,有一句幾乎約定俗成的話: “會(huì)不會(huì) Linux,決定了你能走多遠(yuǎn)?!?但對(duì)很多剛?cè)腴T(mén)的工程師來(lái)說(shuō),Linux 看起來(lái)像個(gè)龐大又神秘的世界——命令行、驅(qū)動(dòng)、內(nèi)核
    的頭像 發(fā)表于 10-16 09:51 ?594次閱讀
    學(xué)習(xí)<b class='flag-5'>Linux</b>應(yīng)該從哪里開(kāi)始?

    SSH 遠(yuǎn)程連接內(nèi)網(wǎng) Linux 服務(wù)器

    利用 ZeroNews,您可對(duì)用內(nèi)網(wǎng)的 Linux 服務(wù)器進(jìn)行統(tǒng)一的 SSH 遠(yuǎn)程連接管理,當(dāng)用戶外出時(shí),可通過(guò) ZeroNews 分配的公網(wǎng)域名地址,快速訪問(wèn)企業(yè)內(nèi)部、家庭的 Linux
    的頭像 發(fā)表于 09-17 19:52 ?620次閱讀
    SSH 遠(yuǎn)程連接內(nèi)網(wǎng) <b class='flag-5'>Linux</b> 服務(wù)器

    重磅!智慧水利背后的NTP時(shí)間同步服務(wù)器揭秘!

    重磅!智慧水利背后的NTP時(shí)間同步服務(wù)器揭秘!
    的頭像 發(fā)表于 09-10 10:41 ?967次閱讀
    重磅!智慧水利<b class='flag-5'>背后</b>的NTP時(shí)間同步服務(wù)器揭秘!

    Linux 應(yīng)用開(kāi)發(fā)手冊(cè)

    T507linux應(yīng)用開(kāi)發(fā)手冊(cè)
    發(fā)表于 08-22 17:01 ?15次下載

    Linux權(quán)限體系解析

    你真的了解Linux權(quán)限嗎?大多數(shù)人只知道rwx,但Linux的權(quán)限體系遠(yuǎn)比你想象的復(fù)雜和強(qiáng)大。今天我們深入探討Linux的12位權(quán)限體系,這是每個(gè)運(yùn)維工程師都應(yīng)該掌握的核心知識(shí)。
    的頭像 發(fā)表于 07-23 16:57 ?1118次閱讀

    一文掌握Linux命令

    作為一名運(yùn)維工程師,熟練掌握Linux命令是基本功中的基本功。無(wú)論是日常工作中的系統(tǒng)維護(hù),還是面試時(shí)的技術(shù)考核,Linux命令都是繞不開(kāi)的核心技能。本文將從實(shí)戰(zhàn)角度出發(fā),系統(tǒng)梳理運(yùn)維工程師必須掌握的Linux命令,并結(jié)合實(shí)際場(chǎng)景
    的頭像 發(fā)表于 07-22 15:23 ?750次閱讀

    華為工程師總結(jié)Linux筆記

    1-1 所示 1.2 Linux 操作系統(tǒng)簡(jiǎn)介 Linux 操作系統(tǒng)是基于 UNIX 以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng),Linux 能運(yùn)行各種工具軟件
    發(fā)表于 07-14 15:28

    SDX75:5G-A高性能路由器背后的機(jī)遇與困境

    5G-A高性能路由器背后的機(jī)遇與困境
    的頭像 發(fā)表于 05-24 17:03 ?1386次閱讀
    SDX75:5G-A高性能路由器<b class='flag-5'>背后</b>的機(jī)遇與困境

    Linux系統(tǒng)管理的核心概念

    在前一篇文章中,我們深入探討了Linux中的文件操作命令,如cp、mv、rm,以及文本處理命令grep、wc和管道符。本文將繼續(xù)深入Linux系統(tǒng)管理的核心概念,包括root用戶的角色、用戶和用戶組
    的頭像 發(fā)表于 05-15 17:05 ?857次閱讀
    富平县| 玉环县| 凤翔县| 建始县| 图们市| 化州市| 黄龙县| 大埔县| 隆昌县| 盐山县| 西峡县| 平湖市| 柳林县| 都江堰市| 丽水市| 吉隆县| 东平县| 潮州市| 平罗县| 宜章县| 邯郸县| 通化县| 阜阳市| 宜章县| 宜宾市| 无极县| 榕江县| 德安县| 嘉定区| 马关县| 高要市| 南皮县| 东明县| 育儿| 石楼县| 利辛县| 永修县| 于都县| 岢岚县| 宜兰市| 锦屏县|