2008-09-19 30 views
29

Tôi đang đùa giỡn với ý tưởng tạo ra một hệ điều hành hoàn toàn mới và muốn nghe những gì mọi người trên diễn đàn này tham gia? Đầu tiên là quá muộn là những đứa con trai lớn nên cố thủ trong cuộc sống của chúng ta rằng chúng ta sẽ không bao giờ có thể chuyển đổi (wow - thật là một ý nghĩ khủng khiếp ...). Nhưng nếu không phải như vậy, hệ điều hành sẽ làm gì cho bạn? Những tính năng nào là quan trọng nhất? Nên tất cả các thành phần được cài đặt riêng biệt (nói cách khác - nên hệ điều hành cơ bản thực sự không có chức năng người dùng và được thêm vào bằng cách tạo ra "plug-in" loại giống như một công cụ linh hoạt tốt?)Nếu tôi xây dựng một hệ điều hành mới, loại tính năng nào sẽ có?

Tại sao tôi muốn để làm điều này ... Tôi tò mò hơn về việc liệu có nhu cầu hay không và tôi tự hỏi, vì hệ điều hành chúng ta sử dụng nhiều nhất hiện nay (Linux, Windows, Mac OS X (BSD miễn phí)) đã được viết hơn 20 năm trước (và tôi rất hào phóng - nghĩa là lõi kép và lõi tứ không tồn tại vào lúc đó, xe buýt chậm hơn nhiều, phần cứng đắt hơn nhiều, v.v ...), tôi chỉ tò mò với công nghệ mới nếu chúng ta làm bất cứ điều gì khác ?

Tôi rất lo lắng khi đọc nhận xét của bạn.

+1

câu hỏi hay. tại sao tất cả các câu hỏi thú vị đều không mang tính xây dựng? : -/ – HorseloverFat

Trả lời

6

Để biết thêm thông tin về hạt nhân vi nguyên so với nguyên khối, hãy tìm kiếm thảo luận Linus '' với Andrew Tanenbaum.

5

Tôi rất muốn đề xuất xem xét phiên bản đầu tiên trên Linux (0,01) để ít nhất là làm cho bàn chân của bạn ướt. Bạn sẽ mucking về với lắp ráp và rất thấp cấp độ công cụ cấp thấp để thậm chí bắt đầu (đặc biệt là vào chế độ bảo vệ, đa tác vụ, vv). Và có, nó có thể đúng là "các chàng trai lớn" đã có thị trường dồn vào chân tường. Tôi không nói với bạn không làm điều đó, nhưng có thể làm một số công việc trên hạt nhân Linux sẽ là một bước đệm tốt hơn.

4

Một hệ điều hành không có chức năng người dùng nào cả. Chức năng người dùng nên được thêm vào bởi các dự án riêng biệt, điều này hoàn toàn không có nghĩa là các dự án không nên hoạt động cùng nhau!

Nếu bạn quan tâm đến chức năng người dùng, có thể bạn nên xem xét tham gia vào các dự án Môi trường máy tính để bàn hiện có như GNOME, KDE hoặc một cái gì đó.

Nếu bạn quan tâm đến chức năng cấp hạt nhân, hãy thử hack trên dẫn xuất BSD hoặc trên Linux hoặc thử tạo hệ thống của riêng bạn - nhưng đừng nghĩ quá nhiều về chức năng của người dùng. Lấy cốt lõi của một hệ điều hành đúng là rất khó và sẽ mất nhiều thời gian - muốn tái tạo lại mọi thứ không có ý nghĩa gì nhiều và sẽ khiến bạn hư không.

+0

Tôi nghĩ rằng điều này bỏ lỡ điểm của câu hỏi. Dù sao, như đoạn đầu tiên của bạn, tại sao một hệ điều hành không có bất kỳ "chức năng người dùng". Có một số ý tưởng khá cấp tiến xuất hiện trong nghiên cứu hệ điều hành hiện nay. – BobbyShaftoe

23

Để trả lời câu hỏi đầu tiên: Không bao giờ là quá muộn. Đặc biệt là khi nói đến phân khúc thị trường thích hợp và các công cụ như thế.

Thứ hai, trước khi bạn bắt đầu xuống con đường tạo ra một hệ điều hành mới, bạn nên hiểu các loại thực hiện nó là: nó sẽ là một dự án lớn.

Nó chỉ là một lập trình viên bình thường "làm xước ngứa" loại dự án? Nếu vậy, thì bằng mọi cách hãy tiếp tục - bạn có thể học được rất nhiều thứ bằng cách thực hiện nó. Nhưng nếu bạn làm điều đó cho sản phẩm, bạn không nên bắt đầu con đường đó cho đến khi bạn xem xét tất cả các hệ điều hành hiện tại đang được phát triển (có nhiều thứ bạn nghĩ lúc đầu) và tìm ra bạn muốn thay đổi chúng.

Hoàn toàn có thể là nỗ lực sẽ tốt hơn cho việc cải thiện/thay đổi hệ thống nguồn mở hiện có. Ngay cả đối với thử nghiệm của riêng bạn, nó có thể dễ dàng hơn để có được kết quả bạn muốn nếu bạn bắt đầu với một cái gì đó đã được phát triển.

+3

Thực ra, nó không phải là xấu. Xây dựng một hệ điều hành nhiều tỷ đô la, chắc chắn đó là một công việc lớn. Tuy nhiên, xây dựng một hệ điều hành thử nghiệm thực sự không phải là xấu. Minix 3 nhỏ hơn 10.000 dòng. – BobbyShaftoe

+0

Tôi đã từng tham dự một bài giảng được gọi là "xây dựng một hệ điều hành trong 2 giờ". Các giảng viên đã xây dựng phần lớn của một hệ điều hành trong thời gian này, trong khi giải thích từng bước. Tất nhiên, hệ điều hành này hầu như không thể khởi động được, nhưng vẫn còn. (Tiết lộ đầy đủ: anh ta không bắt đầu với 0 dòng mã, anh ta có một số thành phần cơ bản, nhưng vẫn còn nhỏ). – keyser

4

Check-out CosmosSingularity, những đại diện cho những gì tôi muốn từ một hệ điều hành tương lai ;-) Edit: SharpOS là một nỗ lực OS quản lý. Được đề xuất bởi yshuditelu

+0

Cosmos (-t), còn SharpOS là một hệ điều hành C# khác đang được phát triển. Ngoài ra, họ đang cố gắng chỉ sử dụng mã được quản lý. –

+0

Typo cố định, cảm ơn bạn cũng đã tham khảo SharpOS, không biết về nó. –

+0

Tôi nghĩ Singularity là gọn gàng và là một dự án tuyệt vời nhưng tôi không tin rằng đó là tương lai của các hệ điều hành. – BobbyShaftoe

15

Tại sao xây dựng hệ điều hành trực tiếp trên máy vật lý? Bạn sẽ chỉ được mucking xung quanh trong ngôn ngữ lắp ráp;). Chắc chắn, đó là niềm vui, nhưng tại sao không giải quyết một hệ điều hành cho một máy ảo?

Nói một hệ điều hành chạy trên máy ảo Java/.NET/Parrot (bạn đặt tên nó), có thể dễ dàng được truyền qua mạng và có thể chạy một loạt phần mềm.

Nó sẽ bao gồm những gì?

  • Một số cách để lưu trữ dữ liệu (FS truyền thống sẽ không cắt nó)
  • Một mô hình cho các quy trình/đề (hoặc chỉ cần chiếm quyền điều khiển các công cụ được cung cấp bởi các máy ảo?)
  • Công cụ để tương tác với các quá trình này v.v.

Vì vậy, hãy tạo một Nền tảng đơn giản có thể được thực thi trên máy ảo được sử dụng rộng rãi. Đặt trong một số chức năng mát mẻ cho một niche cụ thể (điện toán đám mây?). Đi!

+1

Tôi không chắc chắn điều này thậm chí có ý nghĩa. – BobbyShaftoe

+4

Trên thực tế, tôi nghĩ rằng nó có thể chỉ có ý nghĩa: Hãy suy nghĩ của một ứng dụng như một máy trong một "nhà nước" cụ thể. Nếu bạn có thể xác định máy đó (hệ điều hành) và cách nó hoạt động, thì ứng dụng có thể được thu nhỏ ở đây và ở đó mà không lo lắng về những gì nó thực sự đang chạy trên ... –

+2

Làm cho tinh thần với tôi. – spoulson

2

Điểm mấu chốt ... tập trung vào mục tiêu của bạn và thậm chí quan trọng hơn là mục tiêu của người khác ... giúp đáp ứng những nhu cầu đó. Không bao giờ bắt đầu bằng công nghệ.

Tôi khuyên bạn không nên tạo Hệ điều hành của riêng mình. (Sự gián đoạn geeky của riêng tôi ... Nhìn vào Cloud ComputingAmazon EC2)

Tôi hoàn toàn đồng ý rằng trước hết nó sẽ giúp bằng cách xác định mục tiêu của bạn là gì. Tôi là một người hâm mộ lớn của trải nghiệm người dùng và không chỉ nghĩ đến mục tiêu của riêng bạn mà còn là mục tiêu của người xem/người dùng/người khác. Khi bạn có những mục tiêu đó, hãy chuyển sang bước tiếp theo để biết cách đạt được mục tiêu đó.

Ngày nay hệ điều hành là gì? kernal, Hệ điều hành, Máy chủ ảo, Linux, Windows Server, Windows Home, Ubuntu, AIX, zSeries OS/390, et al. Tôi đoán đây là định nghĩa tốt về hệ điều hành ... Wikipedia

Tôi thích khẩu hiệu của Sun "the Network is the computer" cũng ... nhưng công ty của họ đã thực sự giảm trong thập kỷ qua.

Trên lưu ý đó của Mạng là máy tính ... một lần nữa, tôi đặc biệt khuyên bạn nên xem Amazon EC2 và thông thường hơn là cloud computing.

+0

Nhưng "điện toán đám mây" là một vấn đề cơ bản khác nhau. – BobbyShaftoe

2

Trước tiên bạn có thể muốn tham gia dự án triển khai hệ điều hành hiện tại hoặc ít nhất hãy xem những gì người khác đã triển khai.

Ví dụ: AROS đã có từ 10 năm trở lên trong việc tạo ra hệ điều hành sở thích và hiện có thể sử dụng được theo nhiều cách.

Hoặc làm thế nào về thứ gì đó phù hợp hơn? Kiểm tra Symbios, một hệ điều hành hoàn toàn đa nhiệm (theo phong cách Windows) - cho CPU Z80 4MHz (Amstrad CPC, MSX). Có lẽ bạn sẽ muốn viết một cái gì đó như thế này, đó là ít hơn một vết cắn hơn một hệ điều hành thế hệ tiếp theo đầy đủ.

1

Tôi nghĩ rằng bạn đang đúng về các hệ điều hành hiện tại của chúng tôi đã cũ. Ai đó đã nói rằng tất cả các hệ điều hành đều bị hút. Và có, chúng tôi không có vấn đề với họ? Gọi nó là BSOD, Sad Mac hoặc Panic Kernel. Hệ thống tệp của chúng tôi không thành công, có bảo mật và độ tin cậy sự cố.

Microsoft theo đuổi cách tiếp cận thú vị với hạt nhân Singularity của nó. Nó cô lập các quy trình trong phần mềm, sử dụng một máy ảo tương tự như .NET và xác minh chính thức các phương thức. Về cơ bản tất cả IPC dường như được chính thức xác định và xác minh, ngay cả trước khi một chương trình được chạy.

Nhưng có một vấn đề khác với nó - Singularity là chỉ một hạt nhân. Bạn không thể chạy ứng dụng không được thiết kế cho nó trên đó. Đây là một hình phạt rất lớn, làm cho quá trình chuyển đổi cuối cùng (Singularity không công khai) khá khó khăn. Nếu bạn quản lý để sản xuất một cái gì đó có lợi thế kỹ thuật tương tự, nhưng với một kế hoạch chuyển tiếp thực sự (suy nghĩ về IPv4-> IPv6 vấn đề, hoặc làm thế nào Windows có rất nhiều thị phần trên máy tính để bàn), đó có thể là rất lớn!

Nhưng bắt đầu từ số nhỏ cũng không phải là lựa chọn tồi. Linux bắt đầu như thế này, và có nhiều trường hợp khi nó dẫn đến thiết kế tốt hơn. Nhỏ là đẹp. Dễ thay đổi hơn. Dễ trồng hơn. Dù sao chúc may mắn!

21

Đầu tiên, một câu chuyện nhỏ. Vào năm 1992, trong hội nghị Win32 đầu tiên (Hội nghị các nhà phát triển chuyên nghiệp MS), tôi đã có cơ hội ngồi ăn trưa với một ông Dave Cutler (Kiến trúc sư trưởng về những gì mà hầu hết mọi người biết bây giờ là Windows NT, Windows 2000, XP, v.v.).

Tôi đã từng làm việc trên nhóm Đa phương tiện tại IBM Boca Raton về những gì bạn có thể nhớ, OS/2. Đã làm việc trên OS/2 trong nhiều năm, và nhận ra "chữ viết trên tường" nơi OSes đang đi, tôi hỏi anh ta, "Dave, Windows NT sẽ đưa chúng ta vào thế kỷ tiếp theo hay có những ý tưởng khác trên lí trí ?". Câu trả lời của anh cho tôi như sau:

"M ...., Windows NT là hệ điều hành cuối cùng mà bất cứ ai sẽ phát triển từ đầu!". Rồi anh nhìn tôi, nhấp một ngụm bia và nói, "Sau đó, một lần nữa, bạn có thể thức dậy vào thứ bảy tới sau một đêm đặc biệt tốt với cô gái của bạn, và có một cách tiếp cận hoàn toàn mới cho một hệ điều hành, ' sẽ khiến điều này trở nên xấu hổ. "

Đưa cuộc hội thoại đó vào ngữ cảnh và thực tế tôi đang học đại học theo đuổi bằng Thạc sĩ (chuyên về thiết kế Hệ điều hành), tôi muốn nói TẤN có chỗ cho hệ điều hành mới. Vấn đề là đưa mọi thứ vào quan điểm. Mục tiêu mục tiêu của bạn cho hệ điều hành này là gì? Không gian vấn đề gì đang cố gắng phục vụ?

Đặt tất cả điều này vào quan điểm sẽ cho bạn biết chỉ ra rằng bạn có thực sự đặt tầm nhìn của mình vào một mục tiêu đạt được hay không.

Đó là tất cả những gì được nói, tôi thứ hai một bình luận trước đó lưu ý về việc nhìn vào những thứ như "Singularity" (trọng tâm của một cuộc nói chuyện mà tôi đã cho mùa xuân vừa qua trong một trong các lớp học của tôi ....), hoặc nếu bạn thực sự muốn để "chìm răng của bạn vào" một hệ điều hành trong giai đoạn trứng nước .... nhìn vào "ReactOS".

Sau đó, một lần nữa, WebOS, như gOS, và tương tự, có lẽ là nơi chúng tôi đang đứng đầu trong thập kỷ tới. Hoặc sau đó một lần nữa, một người nào đó đặc biệt tươi sáng có thể thức dậy sau một buổi tối đặc biệt hiệu quả với người phụ nữ hoặc bạn trai của họ, và có "ý tưởng lớn tiếp theo" trong các hệ điều hành.

+0

+1 dành cho Dave Cutler! Ngoài ra, yeah Tôi đồng ý Singularity là thú vị nhưng tôi nghĩ rằng có lẽ nó được quá nhiều sự chú ý. – BobbyShaftoe

+0

"M ...." điều này sẽ không được "marcelo.lopezjr" phải không? lol –

+0

+1 cho 'buổi tối sinh nhật với người phụ nữ hoặc bạn trai' (mặc dù - nếu bạn đang suy nghĩ về các hệ điều hành khi bạn có buổi tối hiệu quả với bạn bè hoặc bạn bè, bạn có thể làm sai) – HorseloverFat

1

dự án dị checkout, làm điều gì đó mang tính cách mạng

1

Tôi đã luôn luôn muốn một hệ điều hành đã được cơ bản không có gì nhưng một slate tươi.Nó sẽ được xây dựng trong hỗ trợ plugin cho phép bạn xây dựng giao diện người dùng, ứng dụng, bất cứ điều gì bạn muốn.

Hệ thống này sẽ hoạt động giống như hộp cát Lua cho trò chơi sẽ hoạt động, trừ đi các giới hạn. Bạn có thể xây dựng một hệ thống plugin hoặc mô-đun sẽ có quyền truy cập vào nhiều hệ thống con khác nhau mà bạn sẽ sử dụng. Ví dụ, nếu bạn đã viết một ứng dụng trình duyệt web, bạn sẽ cần tải thư viện mạng và sử dụng nó trong tập lệnh plugin của bạn. Cần 'bảo mật'? Tải thư viện.

Sự khác biệt giữa điều này và Linux là, Linux là một hệ điều hành nhưng có trình quản lý cửa sổ chạy trên đầu trang của nó. Trong hệ điều hành lý thuyết này, bạn sẽ có thể thực hiện "nhìn" và "cảm nhận" chung của một loạt các cửa sổ trong hệ thống plugin, hoặc bạn có thể tạo một giao diện tùy chỉnh.

Sự khác biệt giữa điều này và Windows là hoàn toàn tùy chỉnh và hoàn toàn có nghĩa là nếu bạn không muốn thực hiện bất kỳ mật mã nào, bạn có thể làm điều đó hoặc nếu bạn muốn tùy chỉnh cửa sổ đã có, bạn có thể làm việc đó đi. Không có gì được đóng lại cho bạn.

Trong hệ điều hành lý thuyết này, có một hệ điều hành có hệ thống plugin. Hệ thống plugin sử dụng một ngôn ngữ đơn giản và mạnh mẽ.

2

Tôi nghĩ rằng việc xây dựng một hệ điều hành mới từ đầu đến giống với các hệ điều hành hiện tại trên thị trường là lãng phí thời gian. Thay vào đó, bạn nên suy nghĩ về những gì hệ điều hành sẽ được như 10-20 năm kể từ bây giờ. Trực giác của tôi là họ sẽ rất khác nhau để làm cho chúng hầu như không thể nhận ra bởi các tiêu chuẩn ngày nay. Hãy nghĩ về các khung công tác như Facebook (gasp!) Cho các mô hình về cách các HĐH trong tương lai sẽ hoạt động như thế nào.

0

Bạn cũng có thể cân nhắc việc đi với MINIX, đây là điểm khởi đầu tốt.

0

Để người khởi tạo diễn đàn này, mũ của tôi dành cho bạn thưa bạn vì dám nghĩ nhiều hơn về các thuật ngữ táo bạo và lý tưởng về ngành CNTT. Đầu tiên và quan trọng nhất, Câu hỏi của bạn chính xác là loại bạn sẽ nghĩ nên tham gia vào một đối tượng rộng lớn hơn nhờ Khoa học Máy tính hưng thịnh khắp thế giới & sự cởi mở được chúng tôi dạy bởi hệ điều hành Linux cách mạng, chỉ mới bắt đầu giành được trái tim và tâm trí của rất nhiều trên đó bằng cách strengthing giao diện người dùng thân thiện của nó. Vì vậy, kudo trên đẩy phong bì.

Nếu tôi đang theo dõi chính xác, bạn cho rằng đã cho các thành quả lao động của chúng tôi cho đến nay, việc phát triển thêm phần cứng & Phần mềm pha chế có thể hoặc ít nhất phải ít thông thường hơn. Ý nghĩa, tất nhiên, là bất kỳ phát triển mới nào cũng sẽ đạt được mục tiêu của nó nhanh hơn so với những gì là điển hình. Tuy nhiên, khách hàng tiềm năng của một hệ điều hành hoàn toàn mới @thời gian này sẽ là một thách thức - để nói rằng ít nhất - chỉ vì có quá nhiều ma sát ở đó đã xảy ra giữa Linux & Windows. Nó thực sự là một trận chiến giữa mã nguồn mở & tư tưởng độc quyền. Bart Roozendaal trong một bình luận ở trên chứng minh quan điểm của tôi một cách độc đáo. Hãy quên đi ý tưởng đổi mới và bất kỳ khả năng nào có thể đến từ một hệ điều hành dựa trên nhiều hiện đại hơn, cho những thứ như vậy là thứ yếu. Những gì anh ta hỏi về cơ bản là, bạn sẽ ở bên cạnh lợi nhuận hay không? Anh ta đưa vị trí của mình đi một cách dễ dàng ở đây. Như bạn biết, Windows nổi tiếng về cách tiếp cận độc quyền của nó liên quan đến thị trường, phần mềm và công nghệ khác. Nó đã duy trì một deathgrip trên quyền bá chủ của nó kể từ khi sự tồn tại của nó và đáng buồn là các cửa sổ os được racked với lỗi bất tận & backdoors.

Một lần nữa, tôi hoan nghênh bạn vì đã tham gia một con đường ít đi và hy vọng giả mạo phía trước và không bị nản chí. Cá nhân, tôi muốn thấy một hệ điều hành khác ngoài kia ... một hiện đại hơn nhiều.

1

Nếu bạn đang yêu cầu những gì tôi muốn thấy trong một hệ điều hành, tôi có thể cung cấp cho bạn một danh sách.Tôi chỉ tham gia vào lập trình vì vậy tôi không chắc liệu có thể làm được điều này hay không, nhưng tôi có thể cho bạn ý tưởng của tôi.

  1. Tôi muốn thấy một hệ điều hành được phát triển (bên cạnh những hệ điều hành chính), trong đó nó không phải là một nỗi đau để làm cho card không dây hoạt động. Đó là con thú cưng số 1 của tôi với hầu hết những cái tôi đã thử.

  2. Thật tuyệt khi thấy một hệ điều hành được thiết kế bởi một lập trình viên cho các lập trình viên khác. Có nó để bạn có thể chạy các chương trình cho tất cả các hệ điều hành khác nhau. Tôi không biết nếu đó là có thể mà không có một bản sao của các cửa sổ và OSX nhưng nó sẽ thực sự chết tiệt mát mẻ nếu tôi có thể kiểm tra tính tương thích của các chương trình tôi viết với tất cả các hệ điều hành.

Các vấn đề liên quan