chuyển từ Windows sang Linux [đã đóng]


57

Tôi cần phải hòa giải 2 sự thật này:

  1. Tôi không cảm thấy thoải mái khi làm việc trên Linux;
  2. Tôi cần phát triển phần mềm cho Linux.

Một số nền tảng: Tôi có hơn 10 năm kinh nghiệm lập trình trên Windows (hầu như chỉ có C / C ++, nhưng cũng có một số .NET), tôi là người dùng FreeBSD tại nhà trong khoảng 3 năm hoặc lâu hơn (sau đó phải quay lại Windows) và tôi chưa bao giờ gặp nhiều may mắn với Linux. Và bây giờ tôi phải phát triển phần mềm cho Linux. Tôi cần một kế hoạch.

Trên Windows, bạn có thể thoát khỏi việc chỉ cần biết ngôn ngữ lập trình, API mà bạn đang mã hóa, IDE (VisualStudio) và một số công cụ rất cơ bản để khắc phục sự cố (Depends, ProcessExplorer, DebugView, WinDbg). Mọi thứ khác đến một cách tự nhiên.

Trên Linux, đó là một câu chuyện rất khác. Làm thế quái nào tôi biết được DLL (xin lỗi, đối tượng được chia sẻ) sẽ tải, nếu tôi liên kết với nó từ plugin Firefox? Tương đương với Linux khi chèn __asm ​​int 3 / DebugBreak () vào nguồn và chạy chương trình, sau đó để HĐH gọi trình gỡ lỗi? Tại sao các bản dựng phát hành địa ngục sử dụng một cái gì đó, được gọi là appLoader, trong khi các bản dựng gỡ lỗi hoạt động bằng cách nào đó khác nhau? Điều tồi tệ nhất: làm thế nào để cung cấp môi trường phát triển Linux?

Vì vậy, tính đến sự thù hận thường liên quan đến việc không biết đủ, bạn sẽ đề nghị gì? Tôi ổn với Emacs và GCC. Tôi cần phải tự học như một quản trị viên / người dùng Linux và tôi cần học các công cụ xử lý sự cố thích hợp (strace rất tuyệt, btw), tương đương với các công cụ tôi đã đề cập ở trên.

Tôi có cần làm Linux từ Scratch không? Hoặc tôi chỉ cần đọc một số cuốn sách (Tôi đã đọc "Môi trường lập trình UNIX" của Kernighan và "Lập trình nâng cao ..." của Stevens, nhưng tôi cần học một cái gì đó thực tế hơn)? Hay tôi cần có một số bản phân phối Linux trên máy tính ở nhà?


73
Tôi cảm thấy như vậy về Windows

15
Được coi là nhận một công việc khác mà bạn cảm thấy thoải mái hơn?

3
Trên Unices manlà bạn của bạn. Tôi sẽ man nmman ldnhư một điểm khởi đầu.
dietbuddha

1
bắt đầu sử dụng windows;)
Jigar Joshi

1
"Mọi thứ khác đến một cách tự nhiên"? Tất nhiên là nó tự nhiên, bạn đã làm nó được 10 năm. Linux không tệ hơn, nó khác . Và bây giờ khi bạn 10 tuổi, bộ não của bạn không học được những điều mới dễ dàng như trước đây và tất cả những điều khác biệt trở thành thứ bạn phải học. Tiếp cận toàn bộ mọi thứ với "Linux hút" sẽ khiến cuộc sống của bạn trở nên khốn khổ.
JesperE

Câu trả lời:


62

Bạn có thể thấy bài viết Liên kết động trong Linux và Windows thú vị giải thích cách mỗi hệ điều hành thực hiện liên kết động. Bài viết Đường dẫn tìm kiếm thư viện chia sẻ giải thích cách tìm thấy các thư viện. Ngoài ra Thư viện Linux tĩnh, chia sẻ động và có thể tải là rất tốt. Một điều thú vị về các thư viện Linux là họ có hỗ trợ tốt hơn cho việc tạo phiên bản và có một số phiên bản của thư viện xung quanh so với Windows (AFAIK, tôi không làm Windows). Xem Phiên bản giao diện thư viện trong Solaris và Linux để biết điều đó. Những bài viết này sẽ thực sự giúp bạn được bảo hiểm với các thư viện.

GDB rất hùng mạnh, một lời giới thiệu tốt có lẽ là Hướng dẫn gdb của RMS . Bạn có thể muốn đọc lên các điểm dừng có điều kiện. Để tương đương để __asm(int 3)xem câu hỏi Đặt điểm dừng trong mã C hoặc C ++ theo chương trình cho gdb trên Linux .

Cuốn sách Lập trình Unix nâng cao từ Marc Rochkind là một cuốn sách phải đọc, IMHO. Có rất nhiều ví dụ và bao gồm tất cả các chủ đề POSIX / SUS theo cách được giải thích rất rõ. Đó là cuốn sách hay nhất về chủ đề này tôi đã đọc cho đến nay.

Nhưng để làm cho cuộc sống của bạn dễ dàng hơn, tôi thực sự khuyên bạn nên sử dụng API highlevel trừu tượng hóa mọi thứ cho bạn, như Qt. Cũng làm cho việc viết đa nền tảng dễ dàng hơn nhiều.

Làm Linux từ Scratch giúp bạn hiểu về cách một hệ thống Linux được tạo ra, nhưng tôi nghĩ nó không cải thiện nhiều kiến ​​thức của bạn về quan điểm của các nhà phát triển. Mặc dù vậy, nó giúp bạn thoải mái hơn với Linux, khi bạn tìm hiểu những phần nào có trong môi trường Linux (và một phần cũng là lý do tại sao ). Linux sẽ không phải là một hộp đen lớn đối với bạn sau khi làm việc với Linux From Scratch.


Chắc chắn, trên hệ thống 32 bit, ngắt này sẽ xâm nhập vào trình gỡ lỗi, nếu quá trình này đã được gỡ lỗi . Đó là điều này nếu tôi hỏi về. Windows cho phép đính kèm trình gỡ lỗi sau khi bẫy xảy ra. Theo một số kịch bản, điều này là vô cùng thuận tiện. Và cảm ơn các liên kết!
rincewind

6
Câu trả lời chính xác! Lưu ý, đối với hướng dẫn gdb, RMS là "Ryan M. Schmidt" chứ không phải "Richard M. Stallman." (một lưu ý quan trọng vì Stallman là tác giả gốc của GDB)
entropo

Windows đã tải thư viện Side-by-Side ( msdn.microsoft.com/en-us/l Library / ms229072 ( v = vs.80 ) .aspx ) được hỗ trợ trong khoảng 12 năm nay. Vì vậy, bạn khá sai lầm về phiên bản.
Claus Jørgensen

16

Nếu bạn thích strace, đừng quên ltrace: tương đương cho các cuộc gọi thư viện.
Ngoài ra, vâng, tôi khuyên dùng Linux From Scratch . Đây là một bài tập tốt trong việc tìm ra các yếu tố cốt lõi của HĐH và cách chúng khớp với nhau.
Để xử lý tham chiếu lập trình hệ thống hoàn chỉnh, hiện đại, tôi khuyên bạn nên chọn Giao diện lập trình Linux .


12

Mac OS X giống như một chiếc Mercedes; đó là đẹp nhất và sạch nhất nhưng chi phí rất nhiều. Windows giống như một chiếc Toyota; nó sẽ đưa bạn đến đó và trở lại.

Linux giống như một cây gậy nóng; Đó là để mọi người đào sâu vào và tách ra và đặt lại với nhau. Linux không dành cho người chỉ muốn sử dụng máy tính; nó dành cho những người yêu thích máy tính. Những người không thích máy tính nên tránh xa nó.

Những thứ bạn học được trong Windows sẽ không dịch rất tốt, không. Nhưng bạn có thể nhìn thấy bên trong và xem động cơ chạy.

Hãy thử lấy Linux làm đồ chơi mới, để bạn có thể chơi và bò vào và xem điều gì đang xảy ra. Những thứ dễ dàng trong Windows thì khó hơn trong Linux; những điều không thể có trong Windows là có thể có trong Linux.

Nếu bạn yêu thích máy tính, bạn có thể yêu Linux; Nếu bạn không thích máy tính, tại sao bạn lại lập trình?


13
+1, cho " Những điều dễ dàng trong Windows khó hơn trong Linux; những điều không thể có trong Windows là có thể có trong Linux ". Tôi đã thêm " Trong khi Windows đẩy thức ăn đã được tiêu hóa vào miệng, với Linux, bạn có khả năng nấu ăn và phần thưởng cho điều này là bạn có thể ăn những gì bạn thích " ... Tất nhiên, dù nó có ăn được hay không phụ thuộc rất nhiều vào việc bạn là một đầu bếp giỏi như thế nào ...
Alain Pannetier

14
@Andy: "Windows giống như một chiếc Toyota" . Toyota có chất lượng tốt hơn nhiều so với Windows.
Tái lập lại

4
@ SK-logic, Chính xác. Không tham gia vào một cuộc chiến tôn giáo khác, xin vui lòng xem xét những điều sau đây. Vì lý do chiến lược và tài chính đơn thuần, MS nhắm đến đối tượng lớn nhất có thể. Các công cụ kỹ thuật mà người dùng nhận biết máy tính muốn có thể kiểm soát được chôn vùi khỏi tầm mắt để Jones không gặp vấn đề. Bạn kết thúc với băng đỏ ở khắp mọi nơi DEP, GPO, "Trình cài đặt đáng tin cậy", API riêng tư hoặc ẩn, "tự sửa chữa khởi động", v.v. Các chuyên viên máy tính không sửa lỗi Windows, họ chỉ chọn không tham gia. Linux không có cùng mục tiêu bá quyền; nó được thực hiện bởi người dùng cho người dùng. Đó là toàn bộ vấn đề.
Alain Pannetier

3
@ SK-logic - "nếu bạn có nguồn Windows" ... :-)
Rory Alsop

3
"Hãy đặt tên cho một vài điều" không thể có trong Windows "và" có thể có trong Linux "- Tôi đã tìm thấy một lỗi trong tập lệnh hệ thống Linux và đã sửa nó. Tôi đã tìm thấy các lỗi trong Windows nhưng không bao giờ có thể sửa chúng. có hình ảnh ISO (CD) trong một tệp đĩa, tôi có thể gắn nó như một ổ đĩa trong Linux, bạn có thể làm điều đó trong Windows không? Và hãy nhớ rằng gần như mọi thứ trong Linux đều miễn phí và gần như mọi thứ trong Windows đều cần một ứng dụng độc quyền đắt tiền.
Andy Canfield

9

Làm thế nào về bạn phát triển trên Mono với Monodevelop? Điều này sẽ giúp bạn bắt đầu khá dễ dàng bằng cách sử dụng lại trải nghiệm của bạn trong .NET.


Tôi đã thử điều này gần đây - một số khác biệt với Visual Studio, tất nhiên, nhưng tôi đã dậy và chạy vào một buổi tối. Đó là một con đường di cư tuyệt vời.
JBRWilkinson

8

Thật đáng ngại khi bạn nhìn vào nó ngay từ đầu (giống như nếu bạn là một nhà phát triển Linux được giao nhiệm vụ thực hiện một số phát triển Windows). Tôi sẽ giải quyết vấn đề này tại một thời điểm.

  • Trước tiên hãy thiết lập môi trường của bạn (trình biên dịch, IDE - vâng, chúng tồn tại, Netbeans / Eclipse, v.v.)
  • Tiếp theo, cài đặt apis cấp cao hơn (boost / Qt, v.v.)
  • Bắt đầu chậm, nếu có vấn đề ngay lập tức cần giải quyết, hãy biên dịch mã (hoặc bắt đầu viết từ đầu, v.v.) Giống như bạn sẽ giải quyết bất kỳ dự án phát triển nào, hãy lấy những thứ bạn biết làm việc trước tiên (ví dụ: những thứ không cần hệ điều hành cụ thể tương tác), và sau đó khi bạn gặp khó khăn - tìm kiếm, tôi chắc chắn có ai đó đã gặp phải vấn đề tương tự trước đây và đã giải quyết nó ..

Quan trọng nhất, để lại tất cả các ý kiến ​​chủ quan của bạn ở cửa. Và không, bạn không cần phải là một bậc thầy để phát triển Linux, tôi biết đủ để đi xung quanh, và không phải tất cả mọi thứ - nhưng tôi cảm thấy thoải mái với điều đó ...


1
+1 Nim: StackExchange có một lượng thông tin tuyệt vời trước đây tại đây. Tôi cảm thấy thoải mái nhất với các hương vị của Unix, nhưng hiện đang làm việc trong môi trường phát triển Windows và tìm kiếm SE đã trả lời gần như tất cả các truy vấn của tôi trong một khoảng thời gian rất ngắn.
Rory Alsop

6

The success or failure of many thing in life comes down to our attitude, looking for positives and keeping your mind focused on the positives will do more to adide you as you start down this new interesting adventure.

Mất bao lâu để bạn trở nên thành thạo khi làm việc trong môi trường windows. Bạn có thể nói thật dễ dàng khi bạn mới bắt đầu. Nhưng bạn đã có một vài năm làm việc với các cửa sổ trước đó. Bạn đã sử dụng windows bao lâu trước khi bạn viết chương trình nắm tay của mình. Đó là 8 năm đối với tôi, tất cả mặc dù tôi đã sử dụng Linux gần như chỉ trong 5 năm. Bây giờ tôi thành thạo Linux hơn trong các cửa sổ. Bạn nên dành cho bản thân ít nhất thời gian đó để làm quen với một hệ thống mới.

Bắt đầu với danh sách các ứng dụng mà bạn không thể sống ngoài cửa sổ và tìm kiếm các lựa chọn thay thế trong thế giới * nix. http://alternativeto.net/ và các phần đọc thêm của Wikipedia có thể hữu ích ở đây.

Dưới đây là danh sách các phần mềm thay thế có thể chứng minh là rất hữu ích. Dưới đây là một số lựa chọn thay thế cho những điều bạn đề cập.

Các tài nguyên hữu ích khác trong việc chuyển từ hệ thống này sang hệ thống khác

Về việc trở thành người dùng quyền lực tốt hơn hoặc người dùng quản trị viên hãy xem các tài nguyên này

Có vẻ như đã được một thời gian kể từ khi bạn nhìn vào thế giới * nix. Tôi muốn giới thiệu một số bản phát hành distro mới từ fedora , suse , debian hoặc trạm làm việc ưa thích của tôi Ubuntu .

Bây giờ bạn có thể thoát khỏi việc không biết các phần bên trong của hệ thống và chỉ những điều cơ bản như trong các cửa sổ. Tôi sẽ không chỉ cố gắng để đi với mức tối thiểu. Nếu bạn thấy Linux là một công cụ thực sự hỗ trợ bạn trong quá trình phát triển và không phải là một hệ điều hành mà bạn phát triển thì nó sẽ hữu ích.

Linux From Scratch sẽ quan trọng hơn nhiều nếu bạn đặc biệt phát triển cho Linux là một ý nghĩa rất cụ thể và kỹ thuật. IE bạn muốn phát triển cho kernel hoặc chuyển bạn lập trình sang siêu máy tính chạy Linux. Nó sẽ rất hữu ích không bao giờ là ít. Tôi nghĩ rằng bạn có thể rời khỏi đó trong vài tháng trong khi bạn cố gắng truy cập Ubuntu. Ubuntu sẽ gần với thế giới hoạt động của mac và windows.


1
Debian không chính xác là một bản phân phối mới. :-P Nó vẫn là một lựa chọn tốt.
Steve S

Cả SuSE và Fedora đều không ... SuSE đã 15 tuổi, Fedora thực sự là một trong những "người trẻ" hơn 8 tuổi. Tuy nhiên, +1.
DarkDust

1
@Darkdust @ Steve-s mới như trong các bản phát hành mới nhất,
nelaaro

6

Tôi nghĩ bạn đã trả lời câu hỏi của bạn trong câu hỏi:

"Trên Windows, bạn có thể thoát khỏi việc chỉ cần biết một ngôn ngữ lập trình, API mà bạn đang mã hóa, IDE (VisualStudio) và một số công cụ rất cơ bản để khắc phục sự cố (Depends, ProcessExplorer, DebugView, WinDbg). "

Đoán xem, trên Linux, bạn có thể thoát khỏi việc chỉ cần biết ngôn ngữ lập trình, API (hoặc một vài), IDE của bạn (Eclipse hoặc NetBeans, thậm chí Geany, Emacs hoặc vim, nếu bạn muốn) và một số công cụ cơ bản để khắc phục sự cố ( gdb, công cụ truy tìm, lint, htop, ps).

Bạn có rất nhiều kiến ​​thức được đầu tư vào hệ sinh thái lập trình Windows. Phần lớn trong số đó là (hy vọng) kiến ​​thức trừu tượng (trình biên dịch, trình gỡ lỗi, thư viện dùng chung, quy trình, luồng? Họ sẽ làm gì?) Sẽ dễ dàng chuyển đổi, khi bạn bắt kịp tốc độ trên các công cụ khác nhau. Một số là miền cụ thể (DLL nào được liên kết khi tôi thêm X vào dự án?), Nhưng ngay cả việc chuyển từ một lớp ngôn ngữ này sang ngôn ngữ khác trong Windows sẽ yêu cầu một số cách học mới.

Cài đặt Ubuntu hoặc Fedora trong VM, đọc một số hướng dẫn C ++ Hello World trong Eclipse hoặc NetBeans và một số gỡ lỗi trong hướng dẫn Eclipse / NetBeans và để khả năng thích ứng tự nhiên của não bạn. Nó sẽ dịch ý tưởng cho bạn nếu bạn thư giãn và chỉ cần thực hiện nó.


3

Tôi đã học Unix nói chung bằng cách đọc các trang man. Bạn ít nhất nên lướt qua chúng. Vâng, ý tôi là tất cả chúng. Phương pháp tôi sử dụng nó để cd vào các thư mục trang man và tấn công chúng từng phần một.

Tôi sử dụng cái này:

for i in *; do f=`basename $i .gz`; man `basename $f .1` ; done

... thay thế .1 bằng số phần bạn đang đọc, .2, .3, v.v. Nhấn ctrl-Z ctrl-C để thoát khỏi vòng lặp. Số dặm của bạn có thể thay đổi nếu bản phân phối linux của bạn lưu trữ những thứ khác nhau, tức là không phải là cmdname.1.gz.

Chỉ cần xem qua các mô tả, và nhiều hơn nữa nếu nó là một cái gì đó thú vị. Phần 1, 2 và 3 là quan trọng nhất đối với một lập trình viên. 1 bao gồm các lệnh người dùng chung, bao gồm các công cụ biên dịch của bạn và các tiện ích pháp y khác nhau. 2 là các cuộc gọi hệ thống và 3 là các cuộc gọi thư viện.


2
Tôi khuyên bạn nên khởi động xmannhư một giao diện thân thiện hơn nữa. Chọn một phần, nhấp vào trang người đàn ông, đọc nó. Rửa sạch, lặp lại.
ΤΖΩΤΖΙΟΥ

Tôi đã quên những điều như vậy. Tình trạng tài liệu trên đất hệ điều hành miễn phí ít hơn lý tưởng và tôi thấy các công cụ thường làm cho nó tồi tệ hơn, vì vậy tôi đã ngừng sử dụng chúng. Tôi chỉ có thể cho rằng họ đã khá hơn một chút?
Hack Saw

3

Đừng ép bản thân làm điều gì đó bạn không thích. Sử dụng Windows làm môi trường phát triển của bạn, viết mã di động, biên dịch chéo cho Linux và chỉ thỉnh thoảng kiểm tra mã trong máy ảo.


2

Tôi không chắc nó hoạt động cho nền tảng nhưng đối với ngôn ngữ lập trình, tôi thấy thật hữu ích khi nghĩ về việc tôi làm quen và thoải mái với những thứ tôi giỏi và cố gắng phát lại những trải nghiệm và hoạt động đó cho những gì tôi m cố gắng học.

Có lẽ một cái gì đó trên những dòng?

Nói chung, mặc dù vậy, sự quan tâm và tự tin của tôi đối với GNU / Linux đã trở nên dễ hiểu hơn (và yêu cầu phải mày mò trong những ngày đầu) so với Windows. Tôi cần phải lộn xộn với rất nhiều thứ để làm cho mọi thứ hoạt động và điều đó đã giúp tôi học được rất nhiều thứ. Bây giờ mọi thứ đã tốt hơn rất nhiều nhưng tất cả những giờ đó đã giúp ích.


2

Tôi là một trong hai người được giao nhiệm vụ với một cái gì đó tương tự, nhưng khác nhau. Tôi làm việc trong khu học chánh K-12 và hệ thống kinh doanh (nhân sự, tài chính, v.v ...) đang chuyển từ db HP3000 / TurboImage sang nền tảng Linux / MS SQL. Tôi cảm thấy thoải mái với phía MS SQL. Nhưng không phải là phía Linux. Hai chúng tôi ở bên quản trị, không phải bên lập trình. Việc lập trình được thực hiện bên ngoài - ứng dụng kinh doanh của bên thứ 3 cho K-12 org.

Tôi đã tham gia lớp học giới thiệu 5 tuần vào Linux (Redhat) vào cuối tuần - được thực hiện chủ yếu ở chế độ dòng lệnh - và nó đáng để tôi dành thời gian để nhanh chóng bắt đầu cách làm việc của Linux. Rõ ràng YMMV tùy thuộc vào lớp / giáo viên.

Bạn đã đề cập đến 'Điều tồi tệ nhất: làm thế nào để cung cấp môi trường phát triển Linux?'? Vì bạn đã rất quen thuộc với Windows, tôi thực sự khuyên bạn nên lấy một bản sao của vmWare Workstation. Với điều đó, bạn có thể giữ Windows làm máy trạm của mình và cài đặt Linux làm hệ thống khách - xóa, rửa và lặp lại khi cần. Khi bạn có được một thiết lập tốt, tôi tin rằng bạn có thể chụp nhanh nó, nhưng tôi không thể chắc chắn phiên bản nào có khả năng của khía cạnh chụp nhanh. Và nếu bạn đi theo tuyến vmWare Workstation để kích hoạt nhiều thiết lập phát triển - chắc chắn sẽ tăng bộ nhớ.

Tôi cũng không ngại giới thiệu sử dụng CentOS làm HĐH Linux cho khách. Theo những gì tôi hiểu, nó giống như RedHat mà không có thương hiệu và / hoặc chi phí bán hàng và / hoặc chi phí hỗ trợ. Tôi không quen thuộc với các hương vị Linux khác, vì vậy không thể cung cấp đầu vào cho các hương vị đó.

Greg


1

Tôi thích cả hai nền tảng và cho tất cả sự khác biệt trong giao diện người dùng và hệ sinh thái dev, tôi thấy chúng giống nhau hơn là khác nhau. Trong thực tế, đối với hầu hết các khái niệm Windows, bạn có thể tìm thấy một Linux tương đương chỉ bằng cách tìm kiếm trên Internet.

Phải nói rằng, tôi thực sự khuyên bạn nên học cách làm mọi thứ theo "cách Unix". Sử dụng dòng lệnh thay vì giao diện người dùng GUI bị lỗi (Tôi đang nói chủ yếu về gdb ở đây); đừng tìm IDE, và học cách sử dụng một bộ công cụ chuyên dụng thay thế. Chọn một trình soạn thảo tốt (chỉ vào vim) và tìm hiểu nó tốt. Đọc cách làm makeviệc ngay cả khi bạn không có kế hoạch trở thành một chuyên gia. Có lẽ bạn thậm chí có thể thích Linux. Nó là thân thiện và vui vẻ để chơi với.


1

Hãy xem xét điều này: bạn đã từng không biết gì về Windows, nhưng bạn đã học được nó và theo thời gian đã trở nên thoải mái với nó.

Sau đó, MS đã thay đổi bất kỳ hệ thống lập trình nào mà bạn cảm thấy thoải mái với .NET và bạn không còn biết gì về DLLS, COM và bất cứ điều gì, bạn phải học những thứ như tập hợp, GAC, miền ứng dụng. Bạn đã học những ok.

Vậy tại sao bây giờ bạn lại lo lắng về việc làm tương tự với Linux?

Có rất nhiều hướng dẫn 'giúp bạn bắt đầu' trên web cho tất cả các loại môi trường lập trình. Bây giờ bạn nói GCC vì vậy tôi sẽ giả định phát triển C ++. Nhận cho mình Eclipse, cài đặt CDT (c dev tools) trên nền tảng Eclipse của bạn (Eclipse là một IDE đa năng, bạn có thể sử dụng nó cho C ++, PHP, Java, bất cứ điều gì - nhưng bạn cần cài đặt công cụ cho ngôn ngữ của mình vì bạn sẽ không thực sự muốn nó được cài đặt sẵn như VS và mất 3 ngày để cài đặt :))

Có các hướng dẫn dễ sử dụng trên tất cả các trang web. IBM có một cái ở đây khá toàn diện.

Công cụ gỡ lỗi ... nhật thực có nhúng ( hướng dẫn ), nhưng bạn có thể tìm thấy nhiều công cụ như công cụ bạn đã đề cập, chỉ cần tìm kiếm trên web và bạn sẽ tìm thấy nhiều tùy chọn. Bạn sẽ mất một chút thời gian để tìm ra cách đọc kết xuất lõi (ví dụ như đối với một người dùng windows chẳng hạn) nhưng bạn sẽ đến đó.

Cũng có thể đáng để bắt đầu một blog với kinh nghiệm của bạn, nó không chỉ cho phép bạn tự nhắc nhở mình về những gì bạn đã làm (ví dụ như thiết lập nhật thực như thế nào bạn thích, bạn sẽ quên khi bạn cần làm lại thời gian của năm) nhưng nó sẽ giúp những người khác trong tình huống của bạn.


0

Tôi không nghĩ bạn cần làm Linux từ Scratch. Nếu tôi là bạn, tôi sẽ đi Ubuntu. Nó thoải mái hơn, và dựa trên debian, có rất nhiều tài liệu kỹ thuật có sẵn.

Nếu bạn muốn có thêm một lần lặn đầu tiên vào Linux, Gentoo là một lựa chọn tốt. Nó đòi hỏi bạn phải đọc khá nhiều về cấu hình và hạt nhân, nhưng nó cũng cung cấp cho bạn khá nhiều hệ thống chức năng để hoạt động trong af


0

Google "Nghệ thuật lập trình Unix" và đọc nó. IMO, khó khăn chính của bạn là triết lý khác nhau, và cuốn sách đó là cách đọc tuyệt vời cho việc này.

Nó cũng giới thiệu cho bạn một số khác biệt không rõ ràng nhưng về mặt kỹ thuật rất quan trọng giữa các hệ thống * n * x và Windows - đây là những chìa khóa để hiểu tại sao làm mọi thứ theo cách khác có ý nghĩa trên Linux.


1
... Và nó cũng giới thiệu cho bạn rất nhiều công cụ và kỹ thuật để sử dụng trên Linux.

0

Câu hỏi đầu tiên tôi muốn hỏi là bạn muốn phát triển cái gì? Nếu đó là một ứng dụng dựa trên gui thì điều đó có thể khác với việc phải viết một cái gì đó như phần mở rộng kernel.

Trong trường hợp ứng dụng gui, tôi thấy phương pháp đơn giản nhất là sử dụng Qt, có môi trường phát triển riêng (Qt-Creator) và đa nền tảng, cho phép bạn tìm hiểu chỉ một API có thể được sử dụng cho Windows / Linux / OSX và thậm chí phát triển di động. Giống như studio hình ảnh trong Windows hoặc XCode trong OSX, bạn có thể tạo và bố trí các cửa sổ và các mục từ trình chỉnh sửa đồ họa và API rất dễ dàng để tải với vô số ứng dụng mẫu.

Nếu bạn cần có thêm cấp độ thấp hơn, thì một khi bạn biết cách sử dụng linux trên dòng lệnh, biết cách duyệt thư mục, thao tác với tệp, hiểu quyền, v.v., thì hãy bắt đầu đọc cách biên dịch chương trình đơn giản với gcc, Làm thế nào để liên kết các tệp và chạy tệp thực thi và sau đó làm thế nào để gỡ lỗi với gdb.

Ngoài ra, nếu điều đó có vẻ hơi nản chí, bạn có thể tải xuống Eclipse hoặc IDE khác, nhưng về lâu dài bạn có thể sẽ trở nên thoải mái hơn với Linux, nếu bạn đặt thời gian và nỗ lực vào dòng lệnh trước.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.