pindah dari Windows ke Linux [ditutup]

57

Saya perlu merekonsiliasi 2 fakta ini:

  1. Saya merasa tidak nyaman bekerja di Linux;
  2. Saya perlu mengembangkan perangkat lunak untuk Linux.

Beberapa latar belakang: Saya memiliki 10+ tahun pengalaman pemrograman di Windows (hampir secara eksklusif C / C ++, tetapi beberapa .NET juga), saya adalah pengguna FreeBSD di rumah selama sekitar 3 tahun atau lebih (kemudian harus kembali ke Windows), dan saya tidak pernah beruntung dengan Linux. Dan sekarang saya harus mengembangkan perangkat lunak untuk Linux. Saya butuh rencana.

Di Windows, Anda bisa lolos hanya dengan mengetahui bahasa pemrograman, API yang Anda koding, IDE (VisualStudio) dan beberapa alat yang sangat mendasar untuk pemecahan masalah (Tergantung, ProcessExplorer, DebugView, WinDbg). Segala sesuatu yang lain datang secara alami.

Di Linux, ini adalah cerita yang sangat berbeda. Bagaimana saya tahu apa yang akan dimuat DLL (maaf, Shared Object), jika saya menautkannya dari plugin Firefox? Apa yang setara dengan Linux dengan memasukkan __asm ​​int 3 / DebugBreak () di sumber dan menjalankan program, dan kemudian membiarkan OS memanggil debugger? Mengapa rilis build menggunakan sesuatu, yang disebut appLoader, sementara debug build bekerja dengan cara yang berbeda? Terburuk dari semua: bagaimana cara menyediakan lingkungan pengembangan Linux?

Jadi, dengan mempertimbangkan bahwa kebencian biasanya dikaitkan dengan tidak cukup tahu, apa yang akan Anda rekomendasikan? Saya setuju dengan Emacs dan GCC. Saya perlu mendidik diri saya sebagai admin / pengguna Linux, dan saya perlu belajar alat troubleshooting yang tepat (strace is cool, btw), setara dengan yang saya sebutkan di atas.

Apakah saya perlu melakukan Linux dari Awal? Atau apakah saya perlu membaca beberapa buku saja (saya sudah membaca "lingkungan pemrograman UNIX" oleh Kernighan dan "Pemrograman Lanjut ..." oleh Stevens, tetapi saya perlu belajar sesuatu yang lebih praktis)? Atau apakah saya perlu memiliki distro Linux di komputer rumah saya?

rincewind
sumber
73
Saya merasa sama tentang Windows
15
Dianggap mendapatkan pekerjaan lain yang lebih nyaman bagi Anda?
3
On Unices manadalah teman Anda. Saya akan man nmdan man ldsebagai titik awal.
dietbuddha
1
mulai menggunakan windows;)
Jigar Joshi
1
"Segala sesuatu yang lain datang secara alami"? Tentu saja itu datang secara alami, Anda sudah melakukannya selama 10 tahun. Linux tidak lebih buruk, berbeda . Dan sekarang setelah Anda 10 tahun lebih tua, otak Anda tidak mempelajari hal-hal baru semudah dulu, dan semua hal yang berbeda menjadi sesuatu yang harus Anda hilangkan. Mendekati semuanya dengan "Linux sucks" akan membuat hidup Anda sengsara.
JesperE

Jawaban:

62

Anda mungkin menemukan artikel Dynamic Linking di Linux dan Windows menarik yang menjelaskan bagaimana setiap OS melakukan tautan dinamis. Artikel Jalur Pencarian Perpustakaan Bersama menjelaskan bagaimana perpustakaan ditemukan. Juga Statis, Shared Dinamis dan loadable Linux Perpustakaan sangat baik. Satu hal yang menyenangkan tentang pustaka Linux adalah mereka memiliki dukungan yang lebih baik untuk versi dan memiliki beberapa versi pustaka sekitar daripada Windows (AFAIK, saya tidak melakukan Windows). Lihat Versi Antarmuka Perpustakaan di Solaris dan Linux untuk itu. Artikel-artikel ini harus benar-benar membuat Anda dilindungi dengan perpustakaan.

GDB sangat perkasa, pengantar yang bagus mungkin adalah Tutorial gdb RMS . Anda mungkin ingin membaca tentang breakpoints bersyarat. Agar setara, __asm(int 3)lihat pertanyaan. Atur breakpoint dalam kode C atau C ++ secara terprogram untuk gdb di Linux .

Buku Advanced Unix Programming dari Marc Rochkind adalah buku yang harus dibaca, IMHO. Memiliki banyak contoh dan mencakup semua topik POSIX / SUS dengan cara yang sangat baik. Ini buku terbaik tentang topik yang saya baca sejauh ini.

Tetapi untuk membuat hidup Anda lebih mudah, saya sebenarnya merekomendasikan untuk menggunakan API tingkat tinggi yang mengabstraksi barang untuk Anda, seperti Qt. Juga membuat penulisan lintas platform jauh lebih mudah.

Melakukan Linux Dari Awal membantu Anda mendapatkan pemahaman tentang bagaimana sistem Linux disusun, tapi saya pikir itu tidak banyak meningkatkan pengetahuan Anda tentang hal itu dari sudut pandang pengembang. Itu memang membuat Anda lebih nyaman dengan Linux, karena Anda belajar bagian apa yang ada di lingkungan Linux (dan sebagian juga mengapa ). Linux tidak akan menjadi kotak hitam besar bagi Anda setelah bekerja melalui Linux From Scratch.

rev DarkDust
sumber
Tentu saja, pada sistem 32bit, interupsi ini akan membobol debugger, jika prosesnya sudah di-debug . Itulah ini jika saya bertanya tentang. Windows memungkinkan untuk melampirkan debugger setelah jebakan terjadi. Dalam beberapa skenario, ini sangat nyaman. Dan terima kasih atas tautannya!
rincewind
6
Jawaban bagus! Catatan, untuk tutorial gdb, RMS adalah "Ryan M. Schmidt" bukan "Richard M. Stallman." (catatan penting karena Stallman adalah penulis asli GDB)
entropo
Windows memiliki Side-by-Side ( msdn.microsoft.com/en-us/library/ms229072(v=vs.80).aspx ) pemuatan perpustakaan didukung selama sekitar 12 tahun sekarang. Jadi Anda agak salah dalam hal pembuatan versi.
Claus Jørgensen
16

Jika Anda suka strace, jangan lupa ltrace: setara dengan panggilan perpustakaan.
Juga, ya, saya merekomendasikan Linux From Scratch . Ini adalah latihan yang baik dalam mengerjakan elemen-elemen inti dari OS dan bagaimana mereka cocok bersama.
Untuk perawatan referensi pemrograman sistem yang modern dan lengkap, saya akan merekomendasikan mengambil Antarmuka Pemrograman Linux .

entropo
sumber
12

Mac OS X seperti Mercedes; itu yang tercantik dan terbersih tetapi harganya sangat mahal. Windows seperti Toyota; itu akan membuat Anda di sana dan kembali.

Linux seperti hot rod; Ini untuk orang-orang untuk menggali dan membongkar dan menyatukan kembali. Linux bukan untuk seseorang yang hanya ingin menggunakan komputer; ini untuk orang yang suka komputer. Orang yang tidak suka komputer harus menjauh darinya.

Hal-hal yang Anda pelajari di Windows tidak akan menerjemahkan dengan sangat baik, tidak. Tapi Anda bisa melihat bagian dalam dan menyaksikan mesin menyala.

Cobalah untuk menggunakan Linux sebagai mainan baru, yang dapat Anda mainkan dan rangkak ke dalamnya dan lihat apa yang terjadi. Hal-hal yang mudah di Windows lebih sulit di Linux; hal-hal yang mustahil di Windows dimungkinkan di Linux.

Jika Anda menyukai komputer, Anda dapat menyukai Linux; jika Anda tidak menyukai komputer mengapa Anda pemrograman sama sekali?

Andy Canfield
sumber
13
+1, untuk " Hal-hal yang mudah di Windows lebih sulit di Linux; hal-hal yang tidak mungkin di Windows dimungkinkan di Linux ". Saya akan menambahkan " Sedangkan Windows mendorong makanan yang sudah dicerna ke dalam mulut Anda, dengan Linux Anda memiliki kemungkinan untuk memasak dan hadiah untuk ini adalah Anda bisa makan apa yang Anda suka " ... Tentu saja, apakah itu bisa dimakan atau tidak sangat tergantung pada seberapa baik koki Anda ...
Alain Pannetier
14
@Andy: "Windows itu seperti Toyota" . Toyota memiliki kualitas yang jauh lebih baik daripada Windows.
Pasang kembali Monica
4
@ SK-logic, Tepatnya. Tanpa terlibat dalam perang agama lain, silakan pertimbangkan yang berikut ini. Untuk alasan strategis dan finansial semata, MS menargetkan audiens sebanyak mungkin. Hal-hal teknis yang ingin diketahui oleh pengguna yang ingin dikendalikan oleh komputer dikuburkan sehingga tidak ada masalah dengan Jones. Anda berakhir dengan birokrasi di mana-mana DEP, GPO, "Pemasang tepercaya", API pribadi atau tersembunyi, "boot perbaikan sendiri", dll. Geeks tidak memperbaiki Windows, mereka hanya memilih keluar. Linux tidak memiliki tujuan hegemonik yang sama; itu dilakukan oleh pengguna untuk pengguna. Itulah intinya.
Alain Pannetier
3
@ SK-logic - "jika Anda memiliki sumber Windows" ... :-)
Rory Alsop
3
"Pikiran menyebutkan beberapa hal yang" mustahil di Windows "dan" mungkin di Linux "- Saya menemukan bug dalam skrip sistem Linux dan memperbaikinya. Saya telah menemukan bug di Windows tetapi tidak pernah bisa memperbaikinya. Misalkan Anda memiliki image ISO (CD) dalam file disk, saya dapat me-mount itu sebagai drive di Linux, dapatkah Anda melakukannya di Windows? Dan ingat bahwa hampir semua yang ada di Linux adalah gratis, dan hampir semua yang ada di Windows memerlukan aplikasi eksklusif yang mahal.
Andy Canfield
9

Bagaimana kalau Anda berkembang di Mono dengan Monodevelop? Ini akan membantu Anda memulai dengan cukup mudah dengan menggunakan kembali pengalaman Anda di .NET.

Johann Blais
sumber
Saya mencoba ini baru-baru ini - beberapa perbedaan dengan Visual Studio, tentu saja, tetapi saya bangun dan berlari di malam hari. Ini adalah jalur migrasi yang bagus.
JBRWilkinson
8

Ini menakutkan ketika Anda melihatnya dari awal (seperti jika Anda adalah seorang pengembang Linux yang ditugaskan untuk melakukan pengembangan Windows). Saya akan mengatasi masalah yang satu ini pada suatu waktu.

  • Pertama-tama dapatkan pengaturan lingkungan Anda (compiler, IDE - ya mereka ada, Netbeans / Eclipse dll.)
  • Selanjutnya dapatkan apis level yang lebih tinggi diinstal (boost / Qt dll.)
  • Mulai perlahan-lahan, jika ada masalah segera untuk dipecahkan, dapatkan kompilasi kode (atau mulai menulis dari awal dll.) Seperti Anda akan menangani proyek pengembangan apa pun, dapatkan hal-hal yang Anda ketahui berfungsi terlebih dahulu (yaitu hal-hal yang tidak memerlukan OS spesifik interaksi), dan kemudian ketika Anda menemukan masalah - pencarian, saya yakin seseorang di luar sana telah menemukan masalah yang sama sebelumnya dan telah menyelesaikannya ..

Yang terpenting, tinggalkan semua pendapat subjektif Anda di depan pintu. Dan tidak, Anda tidak perlu menjadi guru untuk berkembang di Linux, saya cukup tahu untuk berkeliling, dan tidak semuanya - tapi saya nyaman dengan itu ...

Nim
sumber
1
+1 Nim: StackExchange memiliki banyak informasi sebelumnya di sini. Saya merasa paling nyaman dalam rasa Unix, tetapi saat ini bekerja di lingkungan pengembangan Windows dan mencari SE telah menjawab hampir semua pertanyaan saya dalam waktu yang sangat singkat.
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.

Berapa lama waktu yang Anda butuhkan untuk menjadi mahir dalam bekerja di lingkungan windows. Anda mungkin mengatakan itu mudah Anda baru saja mulai. Tapi Anda sudah beberapa tahun bekerja dengan windows sebelum itu. Berapa lama Anda menggunakan windows sebelum Anda menulis program tinju Anda. Itu 8 tahun bagi saya, meskipun sekarang saya sudah menggunakan Linux hampir secara eksklusif selama 5 tahun. Saya sekarang lebih mahir di Linux daripada di windows. Anda harus memberi diri Anda setidaknya waktu sebanyak itu untuk mengenal sistem baru.

Mulailah dengan daftar aplikasi yang Anda tidak bisa hidup dengan di windows dan mencari alternatif di dunia * nix. http://alternativeto.net/ dan bagian bacaan lebih lanjut Wikipedia dapat membantu di sini.

Berikut adalah daftar perangkat lunak alternatif yang terbukti sangat berguna. Berikut adalah beberapa alternatif untuk hal-hal yang Anda sebutkan.

Sumber daya bermanfaat lainnya dalam berpindah dari satu sistem ke sistem lainnya

Tentang menjadi pengguna yang lebih baik atau pengguna admin, lihat sumber daya ini

Sepertinya ini sudah lama sejak Anda melihat dunia * nix. Saya akan merekomendasikan beberapa rilis distro baru dari fedora , suse , debian , atau stasiun kerja pilihan saya Ubuntu .

Sekarang Anda mungkin bisa lolos dengan tidak mengetahui internal sistem dan hanya dasar-dasar seperti di windows. Saya tidak akan hanya mencoba untuk pergi dengan minimum. Jika Anda melihat Linux sebagai alat yang benar-benar membantu Anda dalam pengembangan dan bukan hanya sistem operasi yang Anda kembangkan, akan sangat membantu.

Linux From Scratch akan jauh lebih penting jika Anda secara khusus mengembangkan Linux adalah pengertian yang sangat spesifik dan teknis. IE yang ingin Anda kembangkan untuk kernel, atau port program Anda ke komputer super yang menjalankan Linux. Ini akan sangat bermanfaat, tidak pernah kurang. Saya pikir Anda mungkin bisa meninggalkan itu selama beberapa bulan sementara Anda hanya mencoba untuk pergi di Ubuntu. Ubuntu akan sedekat dengan hal - hal yang hanya berfungsi di dunia mac dan windows.

nelaaro
sumber
1
Debian bukan distro baru. :-P Ini masih pilihan yang baik.
Steve S
SuSE dan Fedora juga tidak ... SuSE berusia 15 tahun sekarang, Fedora memang salah satu distro "muda" yang berusia 8 tahun. Tetap, +1.
DarkDust
1
@Darkdust @ Steve-s baru seperti dalam rilis terbaru,
nelaaro
6

Saya pikir Anda menjawab pertanyaan Anda dalam pertanyaan:

"Di Windows, Anda bisa lolos hanya dengan mengetahui bahasa pemrograman, API yang Anda koding, IDE (VisualStudio) dan beberapa alat yang sangat mendasar untuk pemecahan masalah (Tergantung, ProcessExplorer, DebugView, WinDbg). Segala sesuatu yang lain datang secara alami. "

Gues what, di Linux Anda bisa lolos hanya dengan mengetahui bahasa pemrograman, API (atau pasangan), IDE Anda (Eclipse atau NetBeans, bahkan Geany, Emacs, atau vim, jika Anda mau) dan beberapa alat dasar untuk pemecahan masalah ( gdb, tracing tools, lint, htop, ps).

Anda memiliki banyak pengetahuan yang diinvestasikan dalam ekosistem pemrograman Windows. Sebagian besar dari itu (semoga) pengetahuan abstrak (apa itu kompiler, debugger, pustaka bersama, proses, utas? Apa yang mereka lakukan?) Yang akan ditransmisikan dengan mudah, setelah Anda mendapatkan kecepatan pada alat yang berbeda. Beberapa spesifik domain (Apa DLL ditautkan ketika saya menambahkan X ke proyek?), Tetapi bahkan pindah dari satu kelas bahasa ke yang lain dalam Windows akan memerlukan beberapa pembelajaran baru.

Instal Ubuntu atau Fedora di VM, baca beberapa tutorial C ++ Hello World di Eclipse atau NetBeans, dan beberapa debugging di tutorial Eclipse / NetBeans, dan biarkan kemampuan alami otak Anda untuk beradaptasi mengambil alih. Ini akan menerjemahkan ide untuk Anda jika Anda rileks dan menjalankannya.

Justin
sumber
3

Saya belajar Unix secara umum dengan membaca halaman manual. Anda setidaknya harus membaca skim mereka. Ya, maksud saya semuanya. Metode yang saya gunakan untuk cd ke direktori halaman manual, dan serang mereka satu bagian pada suatu waktu.

Saya menggunakan ini:

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

... mengganti .1 dengan nomor bagian yang Anda baca, .2, .3, dll. Tekan ctrl-Z ctrl-C untuk keluar dari loop. Jarak tempuh Anda mungkin berbeda-beda jika distro linux Anda menyimpan berbagai hal secara berbeda, yaitu bukan sebagai cmdname.1.gz.

Pergi melalui deskripsi, dan lebih banyak lagi jika itu sesuatu yang menarik. Bagian 1, 2 dan 3 adalah yang paling penting bagi seorang programmer. 1 mencakup perintah pengguna umum, yang meliputi alat kompilasi Anda, dan berbagai utilitas forensik. 2 adalah panggilan sistem, dan 3 adalah panggilan perpustakaan.

Hack Saw
sumber
2
Saya sarankan untuk menjalankan xmansebagai antarmuka yang lebih "ramah". Pilih bagian, klik halaman manual, baca itu. Bilas, ulangi.
ΤΖΩΤΖΙΟΥ
Saya sudah lupa tentang hal-hal seperti itu. Keadaan dokumentasi di tanah bebas OS kurang dari ideal, dan saya menemukan alat sering memperburuknya, jadi saya berhenti menggunakannya. Saya hanya bisa berasumsi mereka menjadi sedikit lebih baik?
Hack Saw
3

Jangan memaksakan diri untuk melakukan sesuatu yang tidak Anda sukai. Gunakan Windows sebagai lingkungan pengembangan Anda, menulis kode portabel, kompilasi silang untuk Linux, dan hanya mengujinya sesekali dalam VM.

Logika SK
sumber
2

Saya tidak yakin itu berfungsi untuk platform tetapi untuk bahasa pemrograman, saya merasa terbantu untuk memikirkan bagaimana saya menjadi terbiasa dan nyaman dengan yang saya pahami dan mencoba untuk memutar ulang pengalaman dan kegiatan tersebut untuk apa yang saya ' Saya mencoba belajar.

Mungkin sesuatu di jalur itu?

Namun secara umum, minat dan kepercayaan diri saya dengan GNU / Linux telah membuatnya jauh lebih menggerumit (dan membutuhkan bermain-main pada hari-hari awal) daripada Windows. Saya perlu mengacaukan banyak hal agar pekerjaan berjalan lancar dan itu membantu saya belajar banyak hal. Segalanya jauh lebih baik sekarang, tetapi semua jam itu membantu.

Noufal Ibrahim
sumber
2

Saya adalah salah satu dari dua orang yang ditugaskan dengan sesuatu yang serupa, tetapi berbeda. Saya bekerja di distrik sekolah K-12, dan sistem bisnis (SDM, keuangan, dll ...) bermigrasi dari dB HP3000 / TurboImage ke platform Linux / MS SQL. Saya nyaman dengan sisi MS SQL. Tapi bukan sisi Linux. Kami berdua berada di sisi admin, bukan sisi pemrograman. Pemrograman dilakukan di luar - aplikasi bisnis pihak ke-3 untuk K-12 orgs.

Saya mengambil kelas Intro to Linux (Redhat) akhir pekan 5 pada akhir pekan - sebagian besar dilakukan dalam mode command line - dan itu layak waktu bagi saya sebagai lompatan cepat ke Linux cara melakukan sesuatu. Jelas YMMV tergantung pada kelas / guru.

Anda menyebutkan 'Terburuk dari semua: bagaimana cara menyediakan lingkungan pengembangan Linux?'? Karena Anda sudah terbiasa dengan Windows, saya sangat menyarankan Anda mendapatkan salinan vmWare Workstation. Dengan itu Anda dapat menjadikan Windows sebagai workstation Anda, dan menginstal Linux sebagai sistem tamu - hapus, bilas, dan ulangi sesuai kebutuhan. Ketika Anda mendapatkan pengaturan yang baik, saya yakin Anda dapat memotretnya, tetapi saya tidak bisa memastikan versi mana yang mampu dari aspek snapshotting. Dan jika Anda masuk ke vmWare Workstation untuk mengaktifkan beberapa pengaturan pengembangan - tentu saja, tambah memori.

Saya juga tidak keberatan merekomendasikan menggunakan CentOS sebagai OS Linux untuk para tamu. Dari apa yang saya pahami, ini seperti RedHat tanpa branding dan / atau promosi penjualan dan / atau biaya dukungan. Saya tidak terbiasa dengan rasa Linux lainnya, jadi tidak bisa memberi masukan pada mereka.

Greg

Gregory Thomson
sumber
1

Saya suka kedua platform dan untuk semua perbedaan dalam antarmuka pengguna dan sistem ramah lingkungan, saya menemukan mereka lebih mirip daripada berbeda di bawah penutup. Bahkan, untuk sebagian besar konsep Windows Anda dapat menemukan yang setara Linux hanya dengan mencari di Internet.

Karena itu, saya sangat menyarankan belajar bagaimana melakukan hal-hal dengan "cara Unix". Gunakan baris perintah daripada buggy GUI front-end (saya berbicara sebagian besar tentang gdb di sini); jangan mencari IDE, dan pelajari cara menggunakan seperangkat alat khusus. Pilih editor yang baik (menunjuk ke vim) dan pelajari dengan baik. Baca caranya makemeskipun Anda tidak berencana untuk menjadi ahli. Mungkin Anda bahkan menyukai Linux. Itu ramah geek dan menyenangkan untuk dimainkan.

Nemanja Trifunovic
sumber
1

Pertimbangkan ini: Anda pernah tidak tahu apa-apa tentang Windows, tetapi Anda mempelajarinya dan lama-kelamaan menjadi nyaman dengannya.

Kemudian MS mengubah sistem pemrograman apa pun yang Anda sukai menjadi .NET dan Anda tidak lagi tahu apa-apa tentang DLLS, COM, dan apa pun, Anda harus mempelajari hal-hal seperti assemblies, GAC, domain aplikasi. Anda belajar itu ok.

Jadi mengapa Anda sekarang khawatir melakukan hal yang sama dengan Linux?

Ada banyak tutorial 'buat Anda memulai' di web untuk semua jenis lingkungan pemrograman. Sekarang Anda mengatakan GCC jadi saya akan menganggap pengembangan C ++. Dapatkan sendiri Eclipse, instal CDT (c dev tools) di atas platform Eclipse Anda (Eclipse adalah IDE multi-tujuan, Anda dapat menggunakannya untuk C ++, PHP, Java, apa pun - tetapi Anda perlu menginstal tooling untuk bahasa Anda karena Anda tidak akan benar-benar menginginkan semuanya pra-instal seperti VS dan membutuhkan 3 hari untuk menginstal :))

Ada tutorial yang mudah digunakan di seluruh web. IBM punya satu di sini yang cukup komprehensif.

Alat debugging ... eclipse telah tertanam ( tutorial ), tetapi Anda dapat menemukan banyak alat seperti yang Anda sebutkan, cukup cari di web dan Anda akan menemukan banyak pilihan. Ini akan membawa Anda sedikit waktu untuk mencari tahu cara membaca dump inti (sebagai lawan dari windows userdump misalnya) tetapi Anda akan sampai di sana.

Mungkin juga bermanfaat memulai blog dengan pengalaman Anda, tidak hanya itu akan memungkinkan Anda untuk mengingatkan diri sendiri tentang apa yang telah Anda lakukan (mis. Mengatur gerhana bagaimana Anda menyukainya, Anda akan lupa ketika Anda perlu melakukannya lagi dalam sebuah tahun) tetapi itu akan membantu orang lain dalam situasi Anda.

gbjbaanb
sumber
0

Saya tidak berpikir Anda perlu melakukan Linux dari awal. Jika saya jadi Anda, saya akan pergi untuk Ubuntu. Lebih nyaman, dan berdasarkan debian, ada banyak materi teknis yang tersedia.

Jika Anda ingin lebih banyak menyelam di Linux, Gentoo adalah pilihan yang bagus. Ini mengharuskan Anda untuk membaca cukup banyak tentang konfigurasi dan kernel, tetapi juga memberi Anda cukup sistem fungsional untuk bekerja di af

anders.norgaard
sumber
0

Google "Seni pemrograman Unix" dan membacanya. IMO, kesulitan utama Anda adalah filosofi yang berbeda, dan buku itu adalah bacaan yang bagus untuk ini.

Ini juga memperkenalkan Anda pada beberapa perbedaan yang tidak jelas tetapi secara teknis sangat penting antara * n * x dan sistem Windows - ini menjadi kunci untuk memahami mengapa melakukan sesuatu dengan cara lain masuk akal di Linux.

pengguna59625
sumber
1
... dan itu juga memberi Anda banyak alat dan teknik untuk digunakan di Linux.
0

Pertanyaan pertama yang saya tanyakan adalah apa yang ingin Anda kembangkan? Jika itu aplikasi berbasis gui maka itu bisa berbeda dari keharusan menulis sesuatu seperti ekstensi kernel.

Dalam kasus aplikasi gui, saya menemukan metode termudah adalah dengan menggunakan Qt, yang memiliki lingkungan pengembangannya sendiri (Qt-Creator) dan menjadi cross-platform, memungkinkan Anda untuk belajar hanya satu API yang dapat digunakan untuk Windows / Linux / OSX dan bahkan pengembangan ponsel. Seperti studio visual di Windows, atau XCode di OSX, Anda dapat membuat dan menata jendela dan item dari editor grafis dan API sangat mudah diambil dengan banyak aplikasi sampel.

Jika Anda perlu mendapatkan lebih banyak level rendah, maka setelah Anda mengetahui jalan-jalan di linux pada baris perintah, tahu cara melintasi direktori, memanipulasi file, memahami izin, dll., Maka mulailah membaca cara menyusun program sederhana dengan gcc, cara menautkan file dan menjalankan file yang dapat dieksekusi dan kemudian cara debug dengan gdb.

Atau, jika itu agak menakutkan, Anda bisa mengunduh Eclipse atau IDE lain, tetapi Anda mungkin akan menjadi lebih nyaman dengan Linux dalam jangka panjang, jika Anda menempatkan waktu dan usaha ke dalam baris perintah terlebih dahulu.

Kesatria Kegelapan
sumber