91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

Linux背后的思想

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

掃碼添加小助手

加入工程師交流群

01 Linus Torvalds

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

02 關(guān)于開源

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

小編有話說 Linux并不是選擇了開源,只是因為開源恰好是Linux需要的。就如Linus Torvalds所說:“純粹出于自己當(dāng)時的需要。”

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

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

03代碼的品味

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

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

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

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ū)分要移除的成員是否為鏈表的頭一個成員。需要單獨處理特例情況(要移除的成員為鏈表的頭一個成員)。這個函數(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;} 這個代碼完全不需要單獨處理特例情況,程序整體更加整潔、優(yōu)雅。其實現(xiàn)原理為:指針變量indirect保存的是鏈表成員結(jié)構(gòu)體中的next成員的地址(head指針也可這樣看),如下圖所示:

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

*indirect = entry->next;

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

    關(guān)注

    55

    文章

    11340

    瀏覽量

    110028
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11772

    瀏覽量

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

    關(guān)注

    90

    文章

    3716

    瀏覽量

    97225

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

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

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

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

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

    分享一個Linux音頻開發(fā)實用站:ALSA項目官網(wǎng)使用指南

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

    Linux 應(yīng)用開發(fā)手冊

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

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

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

    一文掌握Linux命令

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

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

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

    Linux權(quán)限管理基礎(chǔ)入門

    Linux的廣闊天空中,權(quán)限管理猶如一只翱翔的雄鷹,掌控著系統(tǒng)的安全與秩序。掌握Linux權(quán)限,不僅能讓你的系統(tǒng)管理更加得心應(yīng)手,還能有效防止未授權(quán)訪問和數(shù)據(jù)泄露。本文將帶你深入探索Linux權(quán)限的奧秘,助你成為權(quán)限管理的高手
    的頭像 發(fā)表于 05-06 13:44 ?786次閱讀
    <b class='flag-5'>Linux</b>權(quán)限管理基礎(chǔ)入門

    Linux常用命令大全

    Linux常用命令是指在Linux操作系統(tǒng)中廣泛使用的命令工具,這些命令工具可以完成各種不同的任務(wù),如管理文件和目錄、操作進(jìn)程、網(wǎng)絡(luò)通信、軟件安裝等。
    的頭像 發(fā)表于 05-03 18:08 ?1899次閱讀

    Linux主要的性能有哪些?

    ? 什么是Linux? ? Linux是一套自由傳播的類Unix操作系統(tǒng),是一個基于posix和unix的多用戶、多任務(wù)、支持多線程和多cpu的操作系統(tǒng)。它的基本思想有兩點,一切都是文件和每個軟件
    的頭像 發(fā)表于 04-30 18:09 ?687次閱讀
    <b class='flag-5'>Linux</b>主要的性能有哪些?

    完整版—單片機(jī)編程思想(推薦下載!)

    單片機(jī)的編程思想,希望能幫助大家寫出簡明的代碼 內(nèi)容簡介 以單片機(jī)裸環(huán)境為基礎(chǔ),為編程者定義了一個微操作系統(tǒng)(MOS)的編程環(huán)境,并面向應(yīng)用中不斷提高的需求對編程策略進(jìn)行了深度剖析與研究,從而分離
    發(fā)表于 04-16 15:06

    Linux網(wǎng)絡(luò)設(shè)置與基礎(chǔ)服務(wù)

    Linux網(wǎng)絡(luò)設(shè)置與基礎(chǔ)服務(wù)
    的頭像 發(fā)表于 04-09 11:51 ?3448次閱讀
    <b class='flag-5'>Linux</b>網(wǎng)絡(luò)設(shè)置與基礎(chǔ)服務(wù)

    [迅為]Linux開發(fā)小技巧:Remote - SSH插件

    [迅為]Linux開發(fā)小技巧:Remote - SSH插件
    的頭像 發(fā)表于 04-01 15:46 ?1199次閱讀
    [迅為]<b class='flag-5'>Linux</b>開發(fā)小技巧:Remote - SSH插件