Linux Mint Türkiye

Diğer => Konu Dışı => Konuyu başlatan: dlyalcin - 31 Mayıs 2014, 02:47:16

Başlık: Assembly Hakkında
Gönderen: dlyalcin - 31 Mayıs 2014, 02:47:16
Bilişim teknolojileri kendine has bir yetenek gerektiriyor. Linux Mint bu kadar kolay olmasaydı Linux' a geçmem, devam etmem imkânsızdı. Bu konuda oldukça yeteneksizim. Bir programlama dili öğrenip -- çünkü birden fazlasını öğrenme ihtimâlim az -- onunla devam etmeyi istiyorum. Yani 3 - 5 tane programlama dili öğrenip, şu programda şu dili, diğerinde bu dili kullanayım diyemem; çünkü o kadar dil öğrenecek, o konuda yoğunlaşacak potansiyelim yok. Assembly' nin yazımı zor fakat hızlı çalışan bir dil olduğunu duydum. İhtiyacım olan şeyleri sâdece Assembly öğrenerek yapabilir miyim? Yazımı sürecinin uzun sürmesi problem değil. Assembly istendiğinde tüm ihtiyaçları görebilecek güçlü bir dil midir? Cevaplara şimdiden teşekkürler
Başlık: Ynt: Assembly Hakkında
Gönderen: fmete - 31 Mayıs 2014, 03:16:08
Zevk için mi öğrenmek istiyorsun? Yoksa dil öğrenerek yazılımlar geliştirip, günlük hayatta kullanmak veya satmak mı istiyorsun? Ayrıca Assembly makine kodlarının (ikilik düzen) sembolik gösterimlerinden oluşan bir dil ve bildiğim kadarıyla farklı işlemcilere göre yazım kodları değişiyor. Bana kalırsa assembly öğrenmesi oldukça zor ve gereksiz.
Açıkçası bende alanımdışı olduğu için (bilgisayarcı değilim) çok vakit ayıramıyorum bu işlere. Birçok dili öğrenmek için çalıştım ama hep yarım kaldı ama yinede birşeyler yapabilecek/düzenleyebilecek kadar öğrendim. Eğer günlük hayatta kullanmak ve kendi işlerini kolaylaştıracak programlar yazmak istiyorsan, herşeyin bulutlaştığı günümüzde, web tabanlı bir (ben PHP tercih ediyorum) dil öğren derim. Tabi bu işler veri kaydetme/süzme/analiz etme/düzenleme gibi tabir yerindeyse işletim sisteminden bağımsız işlerse uygun düşer. (Şunuda ekleyeyim PHP'de uçbirim komutlarını verebileceğin fonksiyonlar mevcut, bunu python veya shell script kodları ile desteklersen, çalıştığın pc üzerindede birçok işlemi yapabilirsin.) Web tabanlı uygulamaların avantajı; her platformda çalışıyor olması ve kolayca erişilebilir olması.(tablet, cep telefonu, farklı işletim sistemleri, gerekli olan bir tarayıcının olması) Ayrıca javascipt (jquery, ajax...) gibi bir betik dili ve css öğrenirsen, güzel şeyler ortaya çıkarabilirsin.
Web tabanlı olmayan bir dil önerecek olursam, vaktin olursa C öğren (bir yerde hala neler yapılabilineceğine dair sınırı belli değil diye okumuştum), eğer vakit ayıramam dersen Python ideal olur sanırım. Hazır kütüphaneleri ile birçok şeyi kolayca yapmana imkan veriyor ve google üzerinde birçok döküman mevcut.
Başlık: Ynt: Assembly Hakkında
Gönderen: dlyalcin - 31 Mayıs 2014, 03:29:20
Teşekkürler! Öncelikle zevk için. Python konusunda, denedim fakat 3.x kullanma kılavuzu henüz tam Türkçe'ye çevrilmedi. 2.x ise ileride kullanımdan kalkacak. Hattâ yapabileceğimi bilsem direk makine dili öğrenip o dilde programlama yapmak istiyorum diyeceğim. Ama çok zor. Assembly' i donanıma mümkün olduğu kadar yakın olduğu için tercih ediyorum. Fakat C kadar güçlü bir dil mi, onu bilmiyorum. Meselâ Python ile işletim sistemi gibi şeyler yazılamıyor. Ama C ile yazılıyor. Assembly' nin ne kadar güçlü olduğunu öğrenmek istiyorum aslında. C kadar güçlü bir dil mi Assembly
Başlık: Ynt: Assembly Hakkında
Gönderen: fmete - 31 Mayıs 2014, 17:02:15
Assemly sembolik makine dili, yani aslında direk donanıma komut gönderiyorsun. Bir nevi ikilik düzende yazılan kodları sembollerle yazıyorsun, kendi kodları ile. Bu durumda herşeyi yapabilirsin. Assembly ile yapılmış işletim sistemi bile var (http://www.menuetos.net/index.htm) adamlar üşenemden yazmış. C'nin wiki sayfasında;
Alıntı
1973'e kadar C yeterince güçlü bir hale gelmiş ve ilk başta PDP-11/20 assembly dili ile yazılan UNIX'in çekirdeğinin büyük kısmı C ile yeniden yazılmıştı.

Böylece UNIX, çekirdeği bir assembly dili ile yazılmayan ilk işletim sistemlerinden biri olmuştu
Bana kalırsa madem zevk için öğrenmek istiyorsanız , C öğrenin.
Başlık: Ynt: Assembly Hakkında
Gönderen: dlyalcin - 31 Mayıs 2014, 17:32:27
Unix çekirdeğinin C ile tekrar yazılmasının sebebi nedir? Assembly daha hızlı diye duymuştum.
Başlık: Ynt: Assembly Hakkında
Gönderen: fmete - 02 Haziran 2014, 14:39:18
Konuya vakıf değilim ancak bir tahmin yürütürsem; assembly yazma için her mimari ve işlemci için farklı makine kodları yazmak gerekecekti, doğal olarak çekirdeği yazmak muhtmelen zor ve karmaşık bir hal alacaktı. Muhtemelen C'nin farklı donanımlar üzerinde derlenebilecek kütüphaneleri mevcut olduğu için kolaylık sağlamıştır.
İşin ehli arkadaşlar aydınlatırsa bende bu teorik kısmı merak ediyorum? Alaylı olunca bazı şeyleri detaylı bilemiyoruz  :)
Başlık: Ynt: Assembly Hakkında
Gönderen: Quaoar - 13 Temmuz 2014, 18:25:08
Kod: [Seç]
# The helloWorld.s file contains the source for a linux-x86_64 hello world
# example using the new 64 bit system call ABI.
# 2014 John Wassilak
#
# Compile with :
#     as -o helloWorld.o helloWorld.s
#     ld -e main -o helloWorld -s -Os helloWorld.o
.section .rodata                       # The rodata section contains the
                                       #     constants used by the program.
string: .ascii "Hello, world!\n"       # The string constant contains the
                                       #     string to be printed.
length: .quad . - string               # The length constant contains the
                                       #     length of the string constant.
.section .text                         # The text section contains the
                                       #     executable instructions of the
                                       #     program.
.globl main                            # Declare the main symbol as global so
                                       #     that the linker can see it.
main:                                  # The main symbol is the entry point of
                                       #     the program.
mov   $1, %rax                         # Move 1(sys_write) into rax.
mov   $1, %rdi                         # Move 1(fd stdOut) into rdi.
mov   $string, %rsi                    # Move the location of the string
                                       #     constant into rsi.
mov   length, %rdx                     # Move the length of the string
                                       #     constant into rdx.
syscall                                # Print the string constant to stdOut by
                                       #     making a system call.
                                       #     written = sys_write(
                                       #         stdOut, string, length
                                       #     )
mov   %rax, %rdi                       # Move the number of bytes written to
                                       #     rdi.
mov   $60, %rax                        # Move 60(sys_exit) into rax.
syscall                                # Terminate the process, returning the
                                       #     number of bytes written by
                                       #     sys_write as the exit status.
                                       #     sys_exit(written)
Eğer zevk için bir hello world programı için bile anlaşılamayacak kadar anlamsız sembollerle uğraşmak istiyorsanız size iyi şanslar :D
Başlık: Ynt: Assembly Hakkında
Gönderen: Genizcil_N - 14 Temmuz 2014, 21:38:10
Konu hortlamış. Zevk için program yapmak yerine program kırmakla(cra ck) uğraşılabilir. c rackesme.de gibi siteler bu konuda eğitim için iyi.
Başlık: Ynt: Assembly Hakkında
Gönderen: Quaoar - 15 Temmuz 2014, 14:36:22
Siz beni yanlış anladınız. Demeye çalıştığım Assembly gibi zor bir dil yerine başka bir dil öğrenmesiydi.
Başlık: Ynt: Assembly Hakkında
Gönderen: Genizcil_N - 15 Temmuz 2014, 15:40:12
[member=56]Quaoar[/member] yanlış anlamadığımı düşünüyorum. İletiyi farklı bir öneride bulunmak için yazdım.  :)