99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux背后的思想

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

掃碼添加小助手

加入工程師交流群

01 Linus Torvalds

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

02 關于開源

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

小編有話說 Linux并不是選擇了開源,只是因為開源恰好是Linux需要的。就如Linus Torvalds所說:“純粹出于自己當時的需要?!?/p>

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

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

03代碼的品味

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

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

小編有話說 大牛們總是對自己嚴格要求,不僅僅是要實現(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保存的是鏈表成員結構體中的next成員的地址(head指針也可這樣看),如下圖所示:

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

*indirect = entry->next;

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

    關注

    55

    文章

    11249

    瀏覽量

    106368
  • Linux
    +關注

    關注

    87

    文章

    11509

    瀏覽量

    213711
  • 編程
    +關注

    關注

    88

    文章

    3689

    瀏覽量

    95225

原文標題:Linux 背后的思想(內含 Linus 在 TED 采訪視頻)

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    華為工程師總結Linux筆記

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

    Linux權限管理基礎入門

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

    Linux主要的性能有哪些?

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

    完整版—單片機編程思想(推薦下載?。?/a>

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

    Linux網絡設置與基礎服務

    Linux網絡設置與基礎服務
    的頭像 發(fā)表于 04-09 11:51 ?2572次閱讀
    <b class='flag-5'>Linux</b>網絡設置與基礎服務

    干貨來嘍!實用樹莓派Linux編譯指南

    通常情況下,模組對接的Linux協(xié)議是USB協(xié)議,模組通過USB插入Linux設備后可直接使用,系統(tǒng)會檢測出設備的標識:PID VID。 然而實際運用中,時有新手朋友問: Linux對新手用戶實在
    的頭像 發(fā)表于 12-18 16:31 ?541次閱讀
    干貨來嘍!實用樹莓派<b class='flag-5'>Linux</b>編譯指南

    揭秘國外IP代理背后的技術原理與運作機制

    國外IP代理背后的技術原理與運作機制主要基于代理服務器和IP地址的轉發(fā)機制。
    的頭像 發(fā)表于 11-23 17:32 ?645次閱讀

    Linux應用編程的基本概念

    Linux應用編程涉及到在Linux環(huán)境下開發(fā)和運行應用程序的一系列概念。以下是一些涵蓋Linux應用編程的基本概念。
    的頭像 發(fā)表于 10-24 17:19 ?644次閱讀

    Linux實用命令大全

    Linux實用命令大全
    的頭像 發(fā)表于 10-23 13:50 ?645次閱讀
    <b class='flag-5'>Linux</b>實用命令大全

    Linux根文件系統(tǒng)的掛載過程

    Linux根文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點,它是內核啟動時掛載的第一個文件系統(tǒng)。
    的頭像 發(fā)表于 10-05 16:50 ?960次閱讀

    如何構建Linux根文件系統(tǒng)

    構建Linux根文件系統(tǒng)是一個涉及多個步驟和概念的過程,它對于Linux系統(tǒng)的啟動和運行至關重要。
    的頭像 發(fā)表于 10-05 16:47 ?680次閱讀

    linux驅動程序如何加載進內核

    Linux系統(tǒng)中,驅動程序是內核與硬件設備之間的橋梁。它們允許內核與硬件設備進行通信,從而實現(xiàn)對硬件設備的控制和管理。 驅動程序的編寫 驅動程序的編寫是Linux驅動開發(fā)的基礎。在編寫驅動程序之前
    的頭像 發(fā)表于 08-30 15:02 ?1097次閱讀

    小白也會的,在linux上跑android應用的方案

    介紹一個可以在linux上跑安卓應用的linux桌面——OpenFDE
    的頭像 發(fā)表于 08-23 11:14 ?1226次閱讀
    小白也會的,在<b class='flag-5'>linux</b>上跑android應用的方案

    Linux內核測試技術

    Linux 內核是Linux操作系統(tǒng)的核心部分,負責管理硬件資源和提供系統(tǒng)調用接口。隨著 Linux 內核的不斷發(fā)展和更新,其復雜性和代碼規(guī)模也在不斷增加。因此,確保內核的穩(wěn)定性和可靠性變得尤為重要
    的頭像 發(fā)表于 08-13 13:42 ?1264次閱讀
    <b class='flag-5'>Linux</b>內核測試技術

    freebsd和linux哪個好用

    操作系統(tǒng)歷史和起源: FreeBSD和Linux都是基于UNIX的操作系統(tǒng)。FreeBSD起源于加州大學伯克利分校的BSD項目,而Linux則是由Linus Torvalds在1991年創(chuàng)建
    的頭像 發(fā)表于 08-08 10:29 ?1015次閱讀