Dự án mã nguồn mở C đơn giản


16

Tôi đã học C và tôi đang tìm một dự án nguồn mở đơn giản (tốt nhất) để tham gia. Nó sẽ rất có thể liên quan đến việc chơi nhiều hơn và học về phần của tôi hơn là đóng góp thực tế, nhưng nó có vẻ là một cách tuyệt vời để đạt được một số kinh nghiệm và xem cách C thực sự được sử dụng. Bất kỳ ý tưởng?

27

Có bất kỳ số dự án mã nguồn mở nào được mã hóa trong C. Nếu bạn chỉ tìm kiếm tinker, thay vì đóng góp, chỉ cần chọn công cụ bạn sử dụng thường xuyên (để bạn quen với công cụ và nơi nó có thể bị thay đổi/cải thiện).

Nếu bạn đang tìm kiếm các đề xuất thực thì máy nhắn tin "ít" là một khởi đầu tốt. Nó được viết một cách gọn gàng, ngắn gọn, và it does a surprising amount

Tất nhiên điều này chủ yếu phụ thuộc vào những gì bạn quan tâm đơn giản! Tôi đã hack xung quanh với the mutt mail client - đó là viết một cách gọn gàng, mà làm cho nó dễ dàng để mở rộng, nhưng tôi thậm chí sẽ không giả vờ để hiểu làm thế nào nó hoạt động.

Bạn không đề cập đến môi trường của mình, vì vậy tôi tự do giả sử GNU/Linux. Tôi sẽ giả định thêm rằng bạn đang chạy Debian, và nếu như vậy bạn có thể tải về nguồn ứng dụng rất dễ dàng. Chỉ cần chạy điều này:

apt-get source less 
+5

Tôi vừa biết rằng bạn có thể lấy Nguồn theo cách đó, thật tuyệt vời. 08 oct. 122012-10-08 23:38:28


7

Nghe có vẻ kỳ lạ nhưng tôi nghĩ cách tốt nhất để tìm hiểu C là viết phần mở rộng C cho Python. Có nhiều phần mở rộng đơn giản mà bằng cách nào đó sử dụng API C của Python và thật thú vị khi làm việc với điều đó. (Có lẽ nó ít thú vị hơn nếu bạn không biết Python ^^)

Về cơ bản là cách tôi học được C. Đối với các mô-đun nhỏ chỉ nhìn vào Cheeseshop^Wpypi, có nhiều thư viện được viết bằng C.

Nếu không, hãy xem một số ứng dụng GUI GNOME đơn giản. Nhiều người trong số họ được viết bằng C.

+1

Hai ngón tay cái lên. Tôi sẽ đề nghị như vậy, nếu OP biết Python. API Python được thiết kế rất tốt. Nó sẽ dạy cho bạn về quản lý bộ nhớ và bạn sẽ nhận được một cái gì đó hữu ích để chơi xung quanh với tương tác. Tiện ích mở rộng Python hữu ích mà tôi đã viết: pypi.python.org/pypi/py_sg 24 sep. 082008-09-24 00:07:00


2

Bạn có thể thấy rằng các dự án đủ thú vị để có một cộng đồng nguồn mở không tầm thường, tất cả đều liên quan đến một chút phức tạp. Bản chất của con thú: nếu nó thực sự không phức tạp (hoặc không thực sự phức tạp), nó đã được giải quyết tốt và tiêu chuẩn hoặc không đủ thú vị để thu hút nhiều sự chú ý.

Sự xuất hiện của các lĩnh vực vấn đề mới phá vỡ tình trạng này, tất nhiên, vì vậy bạn chỉ cần xây dựng một cái gì đó rất thông minh rằng nó là rõ ràng sau khi thực tế ...

Đó nói, hãy xem xét dillo, mà bất chấp sự frontpage đang lặng lẽ làm việc trên phiên bản 2 (dựa trên fltk).


3

Như Steve đã đề cập, một số tiện ích UNIX chuẩn như "ít" có lẽ là một ý tưởng tuyệt vời.

Tôi cũng nghĩ rằng có thể một trình soạn thảo văn bản nhẹ có thể rất hay để thử hack. Ví dụ, "Joe" được viết bằng C và được cấp phép GPL. Dọc theo cùng một dòng, nếu bạn đang sử dụng Windows, trình chỉnh sửa "WinVi" được cấp phép GPL và được viết bằng C.

Hoặc có thể là một trò chơi dựa trên giao diện điều khiển đơn giản? Tốt hơn là văn bản, giống như trò chơi phiêu lưu/loại RP?


3

Nếu bạn muốn xem mã tốt, hãy xem nguồn sqlite.
Có hay không bạn có thể đóng góp hoặc tinker với nó Tôi không biết, nhưng nó có giá trị ít nhất là một cái nhìn để xem tốt, phong cách C sạch.

sqlite


6

Bạn đã biết ngôn ngữ nào? Bạn có biết một ngôn ngữ động như Perl/Python/Ruby/Groovy không?

Điều gì C là tốt nhất tại (theo ý kiến ​​của tôi) là lập trình cấp thấp liên quan đến truy cập phần cứng, toán học khổng lồ và các thuật toán hiệu quả cao.

Bạn sẽ nhận được sự hài lòng hơn nếu bạn không cố gắng sử dụng C để làm những việc tương tự bạn làm bằng ngôn ngữ động, nhưng hãy thử sử dụng nó cho những gì nó tốt. Vì vậy, hãy thử một số phần cứng hack! Bạn có máy ảnh kỹ thuật số, bộ định tuyến, điện thoại di động hoặc tiện ích khác với chương trình cơ sở hoặc tiện ích nguồn mở không? Hãy thử hack trên những người! Hãy thử viết một số mã để xem các tập tin nhị phân! Nếu bạn quan tâm đến toán học và khoa học, hãy tìm một số gói số liên quan đến khoa học yêu thích của bạn, và poke xung quanh trong mã.

Cuối cùng, hãy thử xem hạt nhân Linux. Chắc chắn, đó là một lớn codebase, hàng triệu dòng mã, nhưng nó cũng là cực kỳ mô-đun và được ghi chép đầy đủ. Có ít nhất hai cuốn sách rất hay về tất cả các mã: Understanding the Linux KernelLinux Device Drivers (sau này có sẵn trực tuyến miễn phí).


0

Mozilla có thể là một lựa chọn tốt cho bạn. Đối với C, bạn có thể kiểm tra mô-đun bảo mật của mình tại https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Getting_started_with_NSS