<![CDATA[Latest posts for the topic "Một số thắc mắc về SDK và trình biên dich ra HĐH."]]> /hvaonline/posts/list/23.html JForum - http://www.jforum.net Một số thắc mắc về SDK và trình biên dich ra HĐH. /hvaonline/posts/list/24309.html#146725 /hvaonline/posts/list/24309.html#146725 GMT Một số thắc mắc về SDK và trình biên dich ra HĐH.

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.]]>
/hvaonline/posts/list/24309.html#146733 /hvaonline/posts/list/24309.html#146733 GMT
Một số thắc mắc về SDK và trình biên dich ra HĐH.

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 :D ) 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".]]>
/hvaonline/posts/list/24309.html#146735 /hvaonline/posts/list/24309.html#146735 GMT
Một số thắc mắc về SDK và trình biên dich ra HĐH.

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 à?!:D. Đù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.]]>
/hvaonline/posts/list/24309.html#146736 /hvaonline/posts/list/24309.html#146736 GMT
Một số thắc mắc về SDK và trình biên dich ra HĐH.

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 :D .]]>
/hvaonline/posts/list/24309.html#146737 /hvaonline/posts/list/24309.html#146737 GMT
Một số thắc mắc về SDK và trình biên dich ra HĐH.

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. :D ]]>
/hvaonline/posts/list/24309.html#146786 /hvaonline/posts/list/24309.html#146786 GMT
Một số thắc mắc về SDK và trình biên dich ra HĐH.

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?]]>
/hvaonline/posts/list/24309.html#146803 /hvaonline/posts/list/24309.html#146803 GMT
Re: Một số thắc mắc về SDK và trình biên dich ra HĐH. /hvaonline/posts/list/24309.html#146907 /hvaonline/posts/list/24309.html#146907 GMT Re: Một số thắc mắc về SDK và trình biên dich ra HĐH.

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.]]>
/hvaonline/posts/list/24309.html#157333 /hvaonline/posts/list/24309.html#157333 GMT