banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành Windows Một số thắc mắc về SDK và trình biên dich ra HĐH.  XML
  [Programming]   Một số thắc mắc về SDK và trình biên dich ra HĐH. 14/08/2008 08:40:58 (+0700) | #1 | 146725
[Avatar]
sunrise_vn
Member

[Minus]    0    [Plus]
Joined: 10/03/2008 21:06:26
Messages: 179
Location: Kim Quyên's heart
Offline
[Profile] [PM]
Em có thắc mắc này mà tìm lời giải mãi mà không được nên nhờ anh em chỉ hộ.
Thứ nhất: Sự khác biệt giửa SDK và trình biên dich ra HĐH là gì?
Thứ hai: Giả sử đã viết ra được HĐH rồi vậy SDK cho nó dùng cái gì để viết?
Thứ ba: Có sự khác biệt như thế nào giửa SDK và trình biên dich ra HĐH?
Thứ tư: Ngày xưa khi mới chế tạo ra được máy tính, lúc đó ko có HĐH hay ngôn ngữ lập trình gì hết vậy làm sao mà dùng máy?

Mong được trả lời.
What is love?
What real love can do?
[Up] [Print Copy]
  [Question]   Một số thắc mắc về SDK và trình biên dich ra HĐH. 14/08/2008 09:22:44 (+0700) | #2 | 146733
[Avatar]
computerline
Member

[Minus]    0    [Plus]
Joined: 30/03/2007 13:46:50
Messages: 144
Offline
[Profile] [PM] [Email] [WWW] [Yahoo!]

sunrise_vn wrote:
Em có thắc mắc này mà tìm lời giải mãi mà không được nên nhờ anh em chỉ hộ.
Thứ nhất: Sự khác biệt giửa SDK và trình biên dich ra HĐH là gì?
Thứ hai: Giả sử đã viết ra được HĐH rồi vậy SDK cho nó dùng cái gì để viết?
Thứ ba: Có sự khác biệt như thế nào giửa SDK và trình biên dich ra HĐH?
Thứ tư: Ngày xưa khi mới chế tạo ra được máy tính, lúc đó ko có HĐH hay ngôn ngữ lập trình gì hết vậy làm sao mà dùng máy?

Mong được trả lời. 


Mình xin trả lời vài câu hỏi của bạn theo như mình hiểu, nếu có sai sót, mong các bác ở đây góp ý dùm.
SDK là một bộ công cụ giúp cho lập trình viên có thể sử dụng để viết ra chương trình nó cũng cung cấp trình biên dịch để dịch chương trình ra mã máy, còn trình biên dịch là công cụ để dịch chương trình được viết bằng một ngôn ngữ nào đó ra mã máy.
Thật ra thì để viết hệ điều hành bạn có thể sử dụng bất cứ ngôn ngữ nào, tùy thuộc vào hệ máy bạn sử dụng và ngôn ngữ bạn thấy là thích hợp nhất, nhưng mình nghĩ để viết hệ điều hành thì chọn ngôn ngữ nào đó có thể cho phép truy cập trực tiếp bộ nhớ và dịch thẳng ra mã máy, ví dụ như C/C++, ASM (Còn các ngôn ngữ như Java, .NET thì chạy trên máy ảo, mà máy ảo lại phải chạy trên một hệ điều hành khác nữa thì không biết là có viết được hệ điều hành không )
Các máy tính thời cổ xưa sử dụng bìa đục lỗ để thể hiện chương trình, máy tính sẽ đọc những thông tin được mã hóa trong bìa này rùi thực thi nó. Nhưng khi đó máy tính còn cấu tạo đơn giản, chủ yếu là các phần tử vật lý vì vậy nó không sử dụng Hệ điều hành, mà chỉ là một tập hợp các linh kiện để sử lí các tác vụ đơn giản mà thôi.
Sau khi các vi sử lí có thể lập trình được ra đời, người ta mới nghĩ tới việc viết hệ điều hành cho máy tính.
Không có nghề gì trong xã hội là thấp hèn cả - chỉ có nhân cách mới phân biệt thấp cao
[Up] [Print Copy]
  [Question]   Một số thắc mắc về SDK và trình biên dich ra HĐH. 14/08/2008 09:42:11 (+0700) | #3 | 146735
[Avatar]
sunrise_vn
Member

[Minus]    0    [Plus]
Joined: 10/03/2008 21:06:26
Messages: 179
Location: Kim Quyên's heart
Offline
[Profile] [PM]

computerline wrote:

Mình xin trả lời vài câu hỏi của bạn theo như mình hiểu, nếu có sai sót, mong các bác ở đây góp ý dùm.
SDK là một bộ công cụ giúp cho lập trình viên có thể sử dụng để viết ra chương trình nó cũng cung cấp trình biên dịch để dịch chương trình ra mã máy, còn trình biên dịch là công cụ để dịch chương trình được viết bằng một ngôn ngữ nào đó ra mã máy.
 

Mình xin nói thêm, mình muốn hỏi là trình biên dịch ra HĐH khác với bộ SDK như thế nào. Cụ thể là SDK chỉ viết được ứng dụng cho OS mà SDK đó chạy. Còn trình biên dich ra HĐH không như vậy (ko biết đúng ko smilie ) nó biên dịch ra HĐH một việc mà SDK ko làm được. Nhưng bản chất của chúng liệu có giống nhau?! Vậy trình biên dich ra HĐH có thể viết ứng dụng được ko? Nếu có thì tệp thực thi có đuôi mở rộng là gì? Giống như Windows là *.exe còn Mac OS thì Folder cuối tên folder thêm phần ".app".
What is love?
What real love can do?
[Up] [Print Copy]
  [Question]   Một số thắc mắc về SDK và trình biên dich ra HĐH. 14/08/2008 09:51:45 (+0700) | #4 | 146736
[Avatar]
sunrise_vn
Member

[Minus]    0    [Plus]
Joined: 10/03/2008 21:06:26
Messages: 179
Location: Kim Quyên's heart
Offline
[Profile] [PM]

computerline wrote:

Thật ra thì để viết hệ điều hành bạn có thể sử dụng bất cứ ngôn ngữ nào, tùy thuộc vào hệ máy bạn sử dụng và ngôn ngữ bạn thấy là thích hợp nhất, nhưng mình nghĩ để viết hệ điều hành thì chọn ngôn ngữ nào đó có thể cho phép truy cập trực tiếp bộ nhớ và dịch thẳng ra mã máy, ví dụ như C/C++, ASM (Còn các ngôn ngữ như Java, .NET thì chạy trên máy ảo, mà máy ảo lại phải chạy trên một hệ điều hành khác nữa thì không biết là có viết được hệ điều hành không ). 

Đa số OS hiện nay được viết bằng C\C++ và có thêm ASM. Nếu nói như bạn thì ta hoàn toàn có thể dùng Visaul Basic 6.0 để viết ra OS à?!smilie. Đùa thôi. Mình cũng ko rõ bạn trả lời đúng hay sai nửa. Nhưng Các ngôn ngữ dùng để Viết ứng dụng cho OS thì thường có các tệp thư viện "Runtime". Không biết đó phải là nền cho ứng dụng ko nửa? Bạn để ý xem, khi biên dịch một ứng dụng bằng Visual Basic 6 thì nó không có tệp thư viện "Runtime" nhưng khi dùng trình đóng gói nó lại thì lại có. Không biết cho trình cài đặt hay cho nó nửa.
What is love?
What real love can do?
[Up] [Print Copy]
  [Question]   Một số thắc mắc về SDK và trình biên dich ra HĐH. 14/08/2008 09:56:11 (+0700) | #5 | 146737
[Avatar]
sunrise_vn
Member

[Minus]    0    [Plus]
Joined: 10/03/2008 21:06:26
Messages: 179
Location: Kim Quyên's heart
Offline
[Profile] [PM]

computerline wrote:

Các máy tính thời cổ xưa sử dụng bìa đục lỗ để thể hiện chương trình, máy tính sẽ đọc những thông tin được mã hóa trong bìa này rùi thực thi nó. Nhưng khi đó máy tính còn cấu tạo đơn giản, chủ yếu là các phần tử vật lý vì vậy nó không sử dụng Hệ điều hành, mà chỉ là một tập hợp các linh kiện để sử lí các tác vụ đơn giản mà thôi.
Sau khi các vi sử lí có thể lập trình được ra đời, người ta mới nghĩ tới việc viết hệ điều hành cho máy tính. 

Đục như thế nào nhỉ? Rồi nguyên vật liệu là gì? Để call bác Bill để hỏi smilie .
What is love?
What real love can do?
[Up] [Print Copy]
  [Question]   Một số thắc mắc về SDK và trình biên dich ra HĐH. 14/08/2008 13:10:47 (+0700) | #6 | 146786
facialz
Elite Member

[Minus]    0    [Plus]
Joined: 20/07/2004 03:48:17
Messages: 197
Location: HoChiMinh city
Offline
[Profile] [PM]
Tui nghĩ thế này:

sunrise_vn wrote:

Thứ nhất: Sự khác biệt giửa SDK và trình biên dich ra HĐH là gì?
Thứ hai: Giả sử đã viết ra được HĐH rồi vậy SDK cho nó dùng cái gì để viết?
Thứ ba: Có sự khác biệt như thế nào giửa SDK và trình biên dich ra HĐH?
 

Trình biên dịch để biên dịch, còn SDK bao gồm các công cụ hỗ trợ khác.

sunrise_vn wrote:
Thứ tư: Ngày xưa khi mới chế tạo ra được máy tính, lúc đó ko có HĐH hay ngôn ngữ lập trình gì hết vậy làm sao mà dùng máy? 

H Đ H có thì tốt, nhưng không nhất thiết phải có mới được. Có bộ xử lí tức là có ngôn ngữ máy, có thể lập trình được rồi.

sunrise_vn wrote:
Đục như thế nào nhỉ? Rồi nguyên vật liệu là gì?  

Đục bằng 1 cái máy giống như máy chữ. Vật liệu là những tấm bìa có nhiều hàng nhiều cột. Mỗi cột nhiều ô, mỗi ô là 1 bit, không đục là 0, đục là 1. Như thế mỗi cột viết 1 kí tự, mỗi bìa dùng để viết 1 dòng (lệnh hay số liệu). Nếu lỡ tay làm rớt tập bìa thì file chương trình hay số liệu sẽ bị xáo trộn lộn tùng phèo. smilie
[Up] [Print Copy]
  [Question]   Một số thắc mắc về SDK và trình biên dich ra HĐH. 14/08/2008 19:23:50 (+0700) | #7 | 146803
[Avatar]
sunrise_vn
Member

[Minus]    0    [Plus]
Joined: 10/03/2008 21:06:26
Messages: 179
Location: Kim Quyên's heart
Offline
[Profile] [PM]

facialz wrote:
Tui nghĩ thế này:
Trình biên dịch để biên dịch, còn SDK bao gồm các công cụ hỗ trợ khác.
 

Mình hiểu ý của bồ. Như vậy công cụ để biên dịch ra HĐH được gọi là gì nhỉ? Theo mình biết, để biên dịch lại nhân Linux 2.6.x thì dùng các công cụ:
Code:
Gnu C                      2.95.3           # gcc --version
Gnu make                3.78             # make --version
binutils                     2.12             # ld -v
util-linux                   2.10o            # fdformat --version
module-init-tools       0.9.10           # depmod -V
e2fsprogs                 1.29             # tune2fs
jfsutils                      1.1.3            # fsck.jfs -V
reiserfsprogs             3.6.3            # reiserfsck -V 2>&1|grep reiserfsprogs
xfsprogs                   2.1.0            # xfs_db -V
pcmcia-cs                 3.1.21           # cardmgr -V
quota-tools               3.09             # quota -V
PPP                          2.4.0            # pppd --version
isdn4k-utils               3.1pre1          # isdnctrl 2>&1|grep version
nfs-utils                    1.0.5            # showmount --version
procps                      3.1.13           # ps --version
oprofile                     0.5.3            # oprofiled --version

Vậy GNU C, GNU Make đó gọi là gì?, có thể viết được ứng dụng trên Linux ko? Nếu có thể ta có thể xem nó là một bộ SDK ko?
What is love?
What real love can do?
[Up] [Print Copy]
  [Question]   Re: Một số thắc mắc về SDK và trình biên dich ra HĐH. 15/08/2008 05:09:38 (+0700) | #8 | 146907
[Avatar]
Tal
Member

[Minus]    0    [Plus]
Joined: 15/09/2007 16:50:17
Messages: 67
Offline
[Profile] [PM]
Công cụ để biên dịch ra hệ điều hành hay bất cứ các chương trình nào khác gọi là Compiler.

Hệ điều hành hay cái gì gì đi nữa thì cũng là các chỉ thị nhị phân chạy trong bộ nhớ máy tính. Hệ điều hành khác các chương trình khác ở chỗ nó cung cấp môi trường cho các chương trình ứng dụng chạy (web browser, editor...). Còn các chương trình ứng dụng thì dựa vào hệ điều hành để phát triển lên.

SDK chỉ là chương trình ứng dụng. Nó cung cấp chức năng soạn thảo, trình biên dịch mã nguồn, công cụ gỡ lỗi v.v. Nói tóm lại là 1 công cụ tích hợp nhiều tính năng để giảm bớt thao tác cho lập trình viên. Không dùng SDK (chỉ cần compiler, editor) là bạn có thể viết chương trình được rồi.

GNU C, GNU Make là các công cụ giúp biên dịch mã nguồn. Mỗi thứ làm công việc khác nhau. Ví dụ: gcc thì dịch chương trình viết bằng C ra chỉ thị máy trên nền linux. Mỗi lần dịch ta có thể gõ gcc -o fileketqua filenguon.c. Nhưng nếu có hàng ngàn file thì phải gõ hàng ngàn lần mệt quá -> người ta nghĩ ra make. Viết lệnh dịch 1 lần thôi vào 1 file rồi chương trình căn cứ theo lệnh đã viết tự động dịch cho ta....
[Up] [Print Copy]
  [Question]   Re: Một số thắc mắc về SDK và trình biên dich ra HĐH. 02/11/2008 11:27:48 (+0700) | #9 | 157333
compiz_tux
Member

[Minus]    0    [Plus]
Joined: 04/09/2008 13:08:09
Messages: 10
Offline
[Profile] [PM]

sunrise_vn wrote:
Như vậy công cụ để biên dịch ra HĐH được gọi là gì nhỉ? 

Tal wrote:
Công cụ để biên dịch ra hệ điều hành hay bất cứ các chương trình nào khác gọi là Compiler.  

Công cụ biên dịch hệ điều hành thường được gọi là tool-chain, hiểu nôm na là 1 tập các công cụ. Nó thường bao gồm compiler, linker và các utility khác. Toolchain khác nhau tùy mỗi loại hệ điều hành và kiến trúc phần cứng(ví dụ NetBSD/x86, Linux/ARM).

sunrise_vn wrote:
Nếu có thể ta có thể xem nó là một bộ SDK ko? 

Tal wrote:
Không dùng SDK (chỉ cần compiler, editor) là bạn có thể viết chương trình được rồi.  

SDK bao gồm các thành phần chính như: compiler, linker và tập các API. Nếu chỉ có compiler và linker thì thậm chí không thể viết 1 ứng dụng (C/C++, Java, Pascal) để in ra 1 câu Hello World đơn giản trên 1 hệ thống có hay không có hệ điều hành.
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|