0.引言?軟件開發(fā)之路是充滿荊棘與挑戰(zhàn)之路,也是充滿希望之路。Java學(xué)習(xí)也是如此,沒(méi)有捷徑可走。夢(mèng)想像《天龍八部》中虛竹一樣被無(wú)崖子醍醐灌頂而輕松獲得一甲子功力,是很不現(xiàn)實(shí)的。每天仰天大叫"天神啊,
Atitit attilax提出的軟件開發(fā)發(fā)展趨勢(shì)與概念1. 長(zhǎng)期化 復(fù)用化 跨平臺(tái) 可移植性 12. 通用化 通用 化的渠道至少有3種 12.1. 模塊化 12.2. 標(biāo)準(zhǔn)化接口 12.3. 改造將
?????? ?前言:這是我在公司內(nèi)部的一個(gè)培訓(xùn),培訓(xùn)完之后特地整理成一篇文章。???????? 應(yīng)該說(shuō)這是一個(gè)很大的題目,在這里我只是簡(jiǎn)單談?wù)勎业囊恍┬牡皿w會(huì),不當(dāng)之處,還請(qǐng)大家賜教。???????
本周工作中,我花了整整一周的時(shí)間來(lái)嘗試調(diào)試一個(gè)段錯(cuò)誤。我以前從來(lái)沒(méi)有這樣做過(guò),我花了很長(zhǎng)時(shí)間才弄清楚其中涉及的一些基本事情(獲得核心轉(zhuǎn)儲(chǔ)、找到導(dǎo)致段錯(cuò)誤的行號(hào))。于是便有了這篇博客來(lái)解釋如何做那些事情! 在看完這篇博客后,你應(yīng)該知道如何從“哦,我的程序出現(xiàn)段錯(cuò)誤,但我不知道正在發(fā)生什么”到“我知道它出現(xiàn)段錯(cuò)誤時(shí)的堆棧、行號(hào)了! ”。
了解 Yocto、Buildroot、 OpenWRT,和改造過(guò)的桌面發(fā)行版以確定哪種方式最適合你的項(xiàng)目。
近日,谷歌已經(jīng)為其新興開源的 Fuchsia OS 添加了一個(gè) Guest App,以使 Linux 應(yīng)用程序能夠在 Fuchsia 中作為虛擬機(jī)(VM)運(yùn)行。這個(gè) Guest App 使用了一個(gè)叫作 Machina 的庫(kù),相比傳統(tǒng)的模擬器,Guest App 與宿主操作系統(tǒng)的集成更加緊密。
Linux下各文件夾的結(jié)構(gòu)說(shuō)明及用途介紹
Linux基本命令總結(jié)大全,有這個(gè)文章就夠了。
Linux 被部署到比 Linus Torvalds 在他的宿舍里開發(fā)時(shí)所預(yù)期的更廣泛的設(shè)備。令人震驚的支持了各種芯片,使得Linux 可以應(yīng)用于大大小小的設(shè)備上:從 IBM 的巨型機(jī)到不如其連接的端口大的微型設(shè)備,以及各種大小的設(shè)備。它被用于大型企業(yè)數(shù)據(jù)中心、互聯(lián)網(wǎng)基礎(chǔ)設(shè)施設(shè)備和個(gè)人的開發(fā)系統(tǒng)。它還為消費(fèi)類電子產(chǎn)品、移動(dòng)電話和許多物聯(lián)網(wǎng)設(shè)備提供了動(dòng)力。
Linux下面,目標(biāo)文件、共享對(duì)象文件、可執(zhí)行文件都是使用ELF文件格式來(lái)存儲(chǔ)的。程序經(jīng)過(guò)編譯之后會(huì)輸出目標(biāo)文件,然后經(jīng)過(guò)鏈接可以產(chǎn)生可執(zhí)行文件或者共享對(duì)象文件。linux下面使用的ELF文件和Windows操作系統(tǒng)使用的PE文件都是從Unix系統(tǒng)的COFF文件格式演化來(lái)的。
系統(tǒng)調(diào)用是應(yīng)用程序和操作系統(tǒng)內(nèi)核之間的功能接口。其主要目的是使得用戶可以使用操作系統(tǒng)提供的有關(guān)設(shè)備管理、輸入/輸入系統(tǒng)、文件系統(tǒng)和進(jìn)程控制、通信以及存儲(chǔ)管理等方面的功能,而不必了解系統(tǒng)程序的內(nèi)部結(jié)構(gòu)和有關(guān)硬件細(xì)節(jié),從而起到減輕用戶負(fù)擔(dān)和保護(hù)系統(tǒng)以及提高資源利用率的作用。
drivers中file_operations的mmap操作的作用是: 將設(shè)備驅(qū)動(dòng)內(nèi)核空間的內(nèi)存映射到用戶空間里,可以通過(guò)用戶空間中的mmap系統(tǒng)調(diào)用代替系統(tǒng)調(diào)用write和read。目的是提高讀寫效率。
ALSA是Advanced Linux Sound Architecture 的縮寫,目前已經(jīng)成為了linux的主流音頻體系結(jié)構(gòu),想了解更多的關(guān)于ALSA的這一開源項(xiàng)目的信息和知識(shí)
部分軟件開發(fā)項(xiàng)目依靠結(jié)合代碼檢查、結(jié)構(gòu)測(cè)試和功能測(cè)試來(lái)識(shí)別軟件缺陷。盡管這些傳統(tǒng)技術(shù)非常重要,而且能發(fā)現(xiàn)大多數(shù)軟件問(wèn)題,但它們無(wú)法檢查出當(dāng)今復(fù)雜系統(tǒng)中的許多共性錯(cuò)誤。本文將介紹如何避免那些隱蔽然而常見的錯(cuò)誤,并介紹的幾個(gè)技巧幫助工程師發(fā)現(xiàn)軟件中隱藏的錯(cuò)誤。
一位81年,工作了10年一直從事軟件項(xiàng)目開發(fā), 加入過(guò)五家公司的軟件開發(fā)工程師的自述。
本文將介紹如何避免那些隱蔽然而常見的錯(cuò)誤,并介紹的幾個(gè)技巧幫助工程師發(fā)現(xiàn)軟件中隱藏的錯(cuò)誤。大部分軟件開發(fā)項(xiàng)目依靠結(jié)合代碼檢查、結(jié)構(gòu)測(cè)試和功能測(cè)試來(lái)識(shí)別軟件缺陷。
使用GNU的工具我們?nèi)绾卧贚inux下創(chuàng)建自己的程序函數(shù)庫(kù)?一個(gè)“程序函數(shù)庫(kù)”簡(jiǎn)單的說(shuō)就是一個(gè)文件包含了一些編譯好的代碼和數(shù)據(jù),這些編譯好的代碼和數(shù)據(jù)可以在事后供其他的程序使用。程序函數(shù)庫(kù)可以使整個(gè)程序更加模塊化,更容易重新編譯,而且更方便升級(jí)。
本文討論了 Linux 內(nèi)核中可用的大量同步或鎖定機(jī)制。這些機(jī)制為 2.6.23 版內(nèi)核的許多可用方法提供了應(yīng)用程序接口(API)。但是在深入學(xué)習(xí) API 之前,首先需要明白將要解決的問(wèn)題。
Linux 的虛擬內(nèi)存管理有幾個(gè)關(guān)鍵概念: 每個(gè)進(jìn)程有獨(dú)立的虛擬地址空間,進(jìn)程訪問(wèn)的虛擬地址并不是真正的物理地址 虛擬地址可通過(guò)每個(gè)進(jìn)程上頁(yè)表與物理地址進(jìn)行映射,獲得真正物理地址 如果虛擬地址對(duì)應(yīng)物理地址不在物理內(nèi)存中,則產(chǎn)生缺頁(yè)中斷,真正分配物理地址,同時(shí)更新進(jìn)程的頁(yè)表;如果此時(shí)物理內(nèi)存已耗盡,則根據(jù)內(nèi)存替換算法淘汰部分頁(yè)面至物理磁盤中。