• 沒有找到結果。

原始碼 原始碼 原始碼 原始碼的取得來源 的取得來源 的取得來源 的取得來源、 、 、 、管理方式與提供方式 管理方式與提供方式 管理方式與提供方式 管理方式與提供方式

7.2 訪談內容與歸納 訪談內容與歸納 訪談內容與歸納 訪談內容與歸納

7.2.1 原始碼 原始碼 原始碼 原始碼的取得來源 的取得來源 的取得來源 的取得來源、 、 、 、管理方式與提供方式 管理方式與提供方式 管理方式與提供方式 管理方式與提供方式

訪談第一部份的主題想要瞭解廠商在開發系統程式時,原始碼之取得來源、管理方 式與提供給客戶的方式。訪談的題目主要有:系統程式的原始碼來源、對於不同來源的 原始碼是否使用相同進的管理方式、客戶要求提供原始碼的情形、實際提供原始碼給客

80

戶的方式。藉以瞭解相關廠商就系統開發時的程式管理模式,以及廠商與客戶的合作模 式與實際處理提供程式原始碼需求時,不同廠商所採取的因應之道。

7.2.1.1 系統程式的 系統程式的 系統程式的 系統程式的原始碼 原始碼 原始碼 原始碼來源 來源 來源 來源

1.1.

1.1. 晶片設計公司晶片設計公司晶片設計公司晶片設計公司

A1 表示公司的系統程式,大多是由公司的研發部門一字一句刻劃出來的,但若是 可以在網路上取得免費資源的作業系統或檔案系統等程式時,便會使用開放原始碼。而 B1、B3 則說 B 公司的程式除了作業系統使用開放原始碼的 Linux 作業系統外,其他大 多為自行開發而成119

受訪者C3 的回答說明了 C 公司的系統程式來源可能相當多元,他表示:

「當然方式有很多啦,那大部分,剛開始一定是先自創,先從無到有,假設系統越 來越大的時候,那就會從 open source,去尋找一些合用的套件回來,有時候找不到的 話,或是有需要比較高品質或是比較穩定性的軟體的話,可能就會用採購的方式,例如 說一些作業系統…像這些要講求穩定高品質的東西喔,基本上是會由外購,然後來縮短 開發的時程跟品管測試的時程,至於應用的話,就是應用面的程式的話,有一些是自行 開發,有一些就是,比方說有一些特殊的應用的話,可能就直接買現成的…。」。 2.

2.

2.

2. 系統開發廠商系統開發廠商系統開發廠商系統開發廠商

受訪者 D1 表示該公司所合作的晶片設計公司,會因為晶片功能的不同而將系統程 式區分為兩個部份,一部分是由晶片設計公司自己開發而成的程式,由於這個部份的程 式不屬於開放原始碼,所以原始碼完全不開放。另外一個部份則是以 Linux 作業系統為 基礎而開發出來的程式,上層使用的是 Android 平台的系統程式,晶片設計公司利用 Android 平台而開發一些功能。針對 Android 平台的系統程式屬於相對公開的部份,D 公 司的工程師都可以自由下載這些原始碼,由於晶片設計公司的公司網頁上就有提供原始 碼的下載,因此包含 D 公司之客戶或其他人也都可以自由取得、下載。

受訪者E1 說明 E 公司所使用的原始碼主要由供應商(晶片設計公司)提供,E 公

119 需注意的是,由於音訊處理的規格很多,因此通常會使用彈性較大的軟體而非硬體來處理音訊,由於

音訊處理程式因為與硬體的相依性較低,也較容易利用商用授權的方式取得,所以不少公司會將音訊處 理的原始碼與一般的系統程式的原始碼加以區隔。至於影像處理相關的程式,有的公司因為產品功能較 為簡單而不需要提供影像處理的功能,對於提供影像播放功能的產品而言,通常因為影像處理需要較多 的運算而會以硬體作為實現演算法的主體,而軟體相對需搭配硬體來設計,也較少使用開放原始碼。換 言之,在系統程式中,除了影音的應用外,其餘較一般性的功能使用開放原始碼的機會較大。

81

司會以供應商提供的原始碼為基礎,再對系統程式作進一步的開發與改寫。但 E1 也提 到,供應商願意提供原始碼的原因是建立在彼此有良好的合作關係上,事實上,E 公司 也曾經因為與供應商產生不愉快,而未能取得完整的原始碼,可見晶片設計公司與系統 開發廠商之間的關係也將影響原始碼的取得與否。此外,E 公司並未購買(被授權使用)

商用軟體,也未使用開放原始碼。

7.2.1.2 原始碼 原始碼 原始碼 原始碼的管理方式 的管理方式 的管理方式 的管理方式

無論是晶片設計公司或系統開發廠商,廠商們在進行系統程式開發時,為了管理的 方便,程式通常會以分層的方式來劃分。受訪者 B1 提到 B 公司在開發系統程式時,會 針對軟體堆疊的不同,決定系統工程師可以接觸的範圍。簡單來說,參與上層程式的系 統工程師所能看到的原始碼範圍較小,參與下層程式開發的系統工程師所接觸的原始碼 之範圍較大。

受訪者 B1:

「…應該說 driver layer 的人可以看到全部的 code, 然後 middle ware 只能看到 middle ware 以上,ap 的人只能看到 AP 以上…」。

受訪者 A1 認為,使用分層控管的方式建構整個系統的架構是為了後續在維護原始 碼時會比較方便,並且在考量原始碼維護的便利性起見,如果能夠不要提供原始碼給使 用者時,盡量不要提供原始碼給客戶,因為會發生客戶使用先前版本的原始碼加以改 動,而衍生雙方所使用的原始碼不一致的情況,在這種原始碼脫勾的情況下,若是後續 要再整併功能時就會很痛苦。

有的受訪者表示,公司所開發的系統程式,亦使用了開放原始碼。至於對於原始碼 的管理方式,則根據原始碼來源的不同,使用不同的管理方式。簡單來說,基本的準則 是,對於花錢購入的程式,也就是經由商業授權而取得的原始碼,其管理會較嚴密。受 訪者 B2 對 B 公司內部程式的管理與規劃表示:

「…架構上大概就是 AP 層,然後 middleware、然後 driver,然後最下面是 OS…,

一些你跟人家有保密協定的,就只有部份的人特定的人看得到程式原始碼,那其他就開 放讓人家看…」。

82

7.2.1.3 客戶要求提供 客戶要求提供 客戶要求提供 客戶要求提供原始碼 原始碼 原始碼 原始碼的需求 的需求 的需求 的需求

1.

1.

1.

1. 晶片設計公司晶片設計公司晶片設計公司晶片設計公司

由受訪者的回答可以看出晶片設計公司認為,系統開發廠商雖然會希望取得較完整 的系統程式原始碼,但身為系統程式的提供者,晶片設計公司傾向由自己提供穩定功能 的程式,即,以目的碼方搭配呼叫函式的方式提供給客戶,而不需要花費太大的心力來 維護兩邊的原始碼。

受訪者 B1:

「…客戶其實也是希望你的模組能夠動他就不會需要去看你的程式碼啊!除非他 是剛好就是有東西要加在裡面才會需要看你的程式碼,就是人家他也不一定想看你的程 式碼,大部分都是想用多少才問多少,工程師應該都這樣,如果我們底下的程式碼可以 省的話就不需要提供,debug 我們自己 de 就對了啦……我倒是沒有遇過客戶一定要看我 們某一支程式,我們會提供給他的會是一些 API,比如說,我們把 AP 層丟給他們,那我 們 middleware 就會提供他們一些可以呼叫的 API,那 API 底下我們要怎麼改都沒有關 係,只要我們可以達到他們的功能,他其實不 care…因為他們想要自己掌握的話就是 AP,AP 他們就會自己作阿,然後如果就是 AP 以下的東西有問題,我們就會解阿!…」。

受訪者 C1 表示會根據客戶所需求的功能而提供系統程式的原始碼,若客戶需要的 是單純的而且很簡單的動作,就提供比較上層的原始碼,如果客戶希望作一些比較多個 別的運用,才會開放比較底層的原始碼給客戶。

2.

2.

2.

2. 系統開發廠商系統開發廠商系統開發廠商系統開發廠商

任職於系統開發廠商的受訪者 D1,在被問到與晶片設計公司之間的合作方式時,

也說明因為系統開發廠商的開發時程都比較趕,對於系統程式也不希望做太大更動,基 本的架構及配置都會沿用由供應商(即,晶片設計公司)所提供的,只是視客戶的需求 再作一些改變,而且晶片設計公司也會視系統開發廠商的需要與購買的晶片數量,決定 是否提供部份的原始碼給系統開發廠商。

在被詢問是否提供原始碼給客戶時,受訪者 D1 表示,該公司的客戶相對較強勢,

當初在洽談合作關係時,D 公司便是因為同意較其他供應商開放更多的原始碼而擊敗競 爭對手,讓合作的客戶同意與 D 公司進行合作。也因此,相較於 E 公司的客戶僅要求使 用者介面與目的碼的情形,D 公司的客戶會取得較多的原始碼。

83

7.2.1.4 提供程式的方式 提供程式的方式 提供程式的方式 提供程式的方式

1.

1.

1.

1. 晶片設計公司晶片設計公司晶片設計公司晶片設計公司

受訪者 C2 談到晶片設計公司的原始碼來源,以及後續提供給客戶的技術支援時,

表示C 公司的系統程式可依據原始碼的開放與否分成兩種類型,其中不對外開放的部份 主要有系統程式的核心與對外採購的中間層軟體,會提供給客戶的則是上層的應用程式 與使用者介面等程式。大原則就是只要牽涉到對外採購的,買進來的,通通不開放;客 戶所要求的程式若與底層硬體的驅動程式相關時,C 公司在開發時就會作成是可開放式 的;上層的系統程式則因為客戶通常會需要頻繁的修改,因此也會配合開放程式的原始 碼。開放的部份就以原始碼的方式開放給客戶,不開放原始碼的程式,則以目的碼程式 庫的方式,搭配標頭檔的函式介面提供給客戶。

2.

2.

2.

2. 系統開發廠商系統開發廠商系統開發廠商系統開發廠商

任職於系統廠的受訪者 D1 與E1 在被問及公司是否提供系統程式的原始碼給客戶,

以及如何提供時,兩人的回答說明了,不同公司所採用的作法也不盡相同。D 公司所開 發的原始碼原則上不會提供給客戶,例外情形則是所取得的原始碼本身便是使用開放原 始碼授權條款的狀況;E 公司則因為程式的原始碼若非由晶片設計公司提供,便是自行 開發而得,並未使用開放原始碼,因此從未提供任何得原始碼給客戶。

7.2.1.5 小結 小結 小結 小結

藉由受訪者的說明可以發現,系統開發廠商與晶片設計公司取得原始碼的目的在於

藉由受訪者的說明可以發現,系統開發廠商與晶片設計公司取得原始碼的目的在於

相關文件