Programmazione di basso livello con Mac OS X

Pubblicità

lucaroot

Nuovo Utente
Messaggi
38
Reazioni
6
Punteggio
24
Salve a tutti, spero di aver scelto la sezione giusta.. Studio Ingegneria Informatica e avendo la necessità di acquistare una nuova macchina per lo studio sto pensando di investire in un Macbook pro 13 2015 8GB RAM.
Attualmente lavoro con C e Assembly x86 (in particolar modo per il debug e la decompilazione di eseguibili.
Vengo da Ubuntu, quindi sono abituato a programmare terra terra con un blocco note e con il terminale, chiedo a chi lavora/programma su Mac OS X se il sistema operativo, essendo di mentalità un po' più chiusa rispetto al pinguino, limita la "libertà" rispetto ai sistemi Linux. Si riesce a lavorare bene a basso livello ? (scusate la spiegazione un po' grezza ma non so bene come descrivere questa situazione)

Grazie in anticipo :figo:.
 
Ultima modifica:
Ciao,
se programmi in C e in Assembly quello che hai detto potrebbe risultare una bestemmia di fronte a un programmatore.
I sistemi operativi di casa Apple sono indubbiamente Unix-like , ma con il tempo i due sistemi Linux e Ios hanno preso due strade diverse , e posso dirti con certezza che cambia quasi tutto.
Li regna il objective-C è quello il linguaggio maggiormente supportato.
:ciaociao:
 
Ciao! innanzitutto grazie della risposta :), posso chiederti cosa a un programmatore C risulterebbe una bestemmia ? Il fatto che io voglia programmare con C ed Assembly su Mac OS X ?
Ho provato Mac OS X una volta ( in modo non approfondito, al mediaworld ahahah) e ho notato che la sintassi terminale è molto simile, il compilatore gcc è supportato nativamente, gdb ecc. Ho visto molta gente al politecnico lavorare al C su queste macchine, sopprattutto i prof di informatica e devo dire che eseguono più o meno le stesse azioni che faccio io su ubuntu Linux.
 
Ultima modifica:
I tuoi professori al 100% lo usano perchè è perfettamente compatibile con lo standard POSIX.
Ma questo non fa di lui un computer ottimale per programmare e ti spiego il perchè:

-Il sistema operativo non è open source.
-Non è basato sul C , attenzione questo non significa che il sistema non sia buono , ma tu e io che siamo programmatori C abbiamo dei vantaggi a programmare su un sistema basato sul linguaggio che utilizziamo.

Poi ognuno è libero di fare quel che vuole , ma Linux da quel pizzico di libertà e velocità in più che secondo me rende più facile la produzione del codice.
:ciaociao:
 
Salve a tutti, spero di aver scelto la sezione giusta.. Studio Ingegneria Informatica e avendo la necessità di acquistare una nuova macchina per lo studio mi sto pensando di investire in un Macbook pro 13 2015 8GB RAM.
Attualmente lavoro con C e Assembly x86 (in particolar modo per il debug e la decompilazione di eseguibili.
Vengo da Ubuntu, quindi sono abituato a programmare terra terra con un blocco note e con il terminale, chiedo a chi lavora/programma su Mac OS X se il sistema operativo, essendo di mentalità un po' più chiusa rispetto al pinguino, limita la "libertà" rispetto ai sistemi Linux. Si riesce a lavorare bene a basso livello ? (scusate la spiegazione un po' grezza ma non so bene come descrivere questa situazione)

Grazie in anticipo :figo:.

Perché non un dell xps 13 o qualche altro ultrabook :) ?
Comunque, siccome vorrei imparare a reversare ad alti livelli un giorno, mi potresti indicare un'ottima guida(gratuita possibilmente), con la quale possa sia imparare l'assembly a livello teorico, sia esercitarmi :) ?
 
Ultima modifica da un moderatore:
@Todd il Dell xps 13 Dev edition è una delle mie opzioni :grat:.
Sono veramente indeciso, non so, il mac mi da quell'idea di solidità di sistema che linux non mi da (windows non lo prendo neanche in considerazione).
Siccome devo usarlo come macchina primaria non vorrei incappare in problemi in cui sono gia incappato, la scorsa settimana Ubuntu in dual boot mi ha crashato e non so come non so perhè andava in bootloop, così, dal nulla.. in quell'occasione mi sono reso conto che non sono ancora un vero pro:figo: di linux perchè non sono stato capace di ripristinarlo senza perdere la mia configurazione (dati, programmi ecc.)
Perciò stavo pensando che in questi anni, mentre mi alleno su linux, sarebbe una buona idea lavorare su un sistema solido di cui non mi devo preoccupare.
Ovviamente se avete consigli o delucidazioni sono ben accette :).
 
avendo la necessità di acquistare una nuova macchina per lo studio mi sto pensando di investire in un Macbook pro 13 2015 8GB RAM.

E fai benissimo. Non è un caso che i mac siano diffusissimi proprio tra gli sviluppatori. Si può parlare del costo e allora qualcuno potrebbe dire "Eh ma...". Se invece parliamo dal punto di vista tecnico, i mac sono macchine ben ingegnerizzate e puoi installarci windows e linux ( bootcamp nel gergo apple ) oltre al nativo os x.

Non ci sono ragioni per cui la programmazione a basso livello non sia fattibile. OS X fornisce di default il compilatore Clang ( basato su LLVM, che si sta pian piano sostituendo a Gcc anche nel mondo opensource ) ed è possibile installarvi Gcc. Assembler ne trovi a iosa, praticamente tutti quelli che girano su linux, freebsd e compagnia. Esiste un programma che si chiama Brew ed è un package manager molto capace, che fa capo a dei repository contenenti svariate migliaia di pacchetti unix.

Stesso discorso vale per i software di reverse engineering. L'unico carente è il terminale di default, che però può essere sostituito con l'ottimo iTerm2.

p.s. vorrei correggere DClaudio1990 sulla questione opensource. Effettivamente OS X non è totalmente opensource, ma il sistema base lo è e i sorgenti sono accessibili ( a cominciare dal kernel ) Open Source - Releases

p.p.s. objective-c è il linguaggio che Apple ha imposto agli sviluppatori della sua piattaforma, ma non c'è nessuna costrizione tecnica in questo senso. Tant'è che proprio objective-c ha pagato il prezzo maggiore dall'uscita di swift ( il nuovo linguaggio di apple creato per sostituire objective-c ).
 
@Todd Per l'assembly io sto usando questa guida che a mio parere (fino a dove sono arrivato ora) è ottima, unico neo la sintassi at&t che alcuni ritengono meno pulita e leggibile di quella intel. http://linuxdidattica.org/docs/altre_scuole/planck/assembly-linux/assembly-linux.pdf
Per il linguaggio C ed Assembly intel su Linux seguo un testo dell'Apogeo "L'arte dell'hacking" vol 1 e 2, il titolo può sembrare un po' tamarro ma ti assicuro che ti si apre un mondo :asd:.

- - - Updated - - -
@pabloski grazie della risposta, da come argomenti sembra che tu programmi su mac.. se la deduzione è giusta posso chiederti che linguaggio usi e come ti trovi nell'usare un mac per programmare?
Hai mai provato a programmare su un sistema gnu/linux?
 
E fai benissimo. Non è un caso che i mac siano diffusissimi proprio tra gli sviluppatori. Si può parlare del costo e allora qualcuno potrebbe dire "Eh ma...". Se invece parliamo dal punto di vista tecnico, i mac sono macchine ben ingegnerizzate e puoi installarci windows e linux ( bootcamp nel gergo apple ) oltre al nativo os x.

Non ci sono ragioni per cui la programmazione a basso livello non sia fattibile. OS X fornisce di default il compilatore Clang ( basato su LLVM, che si sta pian piano sostituendo a Gcc anche nel mondo opensource ) ed è possibile installarvi Gcc. Assembler ne trovi a iosa, praticamente tutti quelli che girano su linux, freebsd e compagnia. Esiste un programma che si chiama Brew ed è un package manager molto capace, che fa capo a dei repository contenenti svariate migliaia di pacchetti unix.

Stesso discorso vale per i software di reverse engineering. L'unico carente è il terminale di default, che però può essere sostituito con l'ottimo iTerm2.

p.s. vorrei correggere DClaudio1990 sulla questione opensource. Effettivamente OS X non è totalmente opensource, ma il sistema base lo è e i sorgenti sono accessibili ( a cominciare dal kernel ) Open Source - Releases

p.p.s. objective-c è il linguaggio che Apple ha imposto agli sviluppatori della sua piattaforma, ma non c'è nessuna costrizione tecnica in questo senso. Tant'è che proprio objective-c ha pagato il prezzo maggiore dall'uscita di swift ( il nuovo linguaggio di apple creato per sostituire objective-c ).

Riguardo ai software di reverse engineering sono un po' in disaccordo. A quanto so, essendo stato il 2000 o circa, l'anno d'oro del reversing, i più comuni software di RE sono stati pensati per girare su xp 32 bit. Per il resto sono d'accordo ;)
@lucaroot, purtroppo monto windows 10 :O(per quanto apprezzi il mondo Gnu/Linux, neanche a me questi sistemi danno una sensazione di solidità, un po' per effetto placebo, un po' perché confido più nelle compagnie che negli sviluppatori "amatoriali")
 
Ultima modifica da un moderatore:
Vi sbagliate di grosso. Ubuntu, sopratutto nella versione LTS, è usata da molti sviluppatori, aziende, server etc... Dietro Ubuntu c'è una società: Canonical. Ubuntu è sviluppata sia dalla Community che da sviluppatori pagati da Canonical. Io da quando uso Ubuntu, non ho mai visto nei miei PC bootloop... e uso sempre versioni in sviluppo... I bug ci sono in qualsiasi OS, avrà i suoi difetti, ma nella versione LTS, Ubuntu è una roccia.

George Hotz realizza un'auto a guida automatica con Ubuntu

La stessa Google usa Ubuntu, molti suoi sviluppatori:

Migliaia di dipendenti Google usano Ubuntu, grazie a Goobuntu | TUXJournal.net

Ford, etc...

Ford utilizza Ubuntu per lo sviluppo dei nuovi sistemi di guida automatica

Per non parlare di tutti gli sviluppatori di giochi, che fanno il porting su GNU/Linux/SteamOS, usano Ubuntu come riferimento. Infatti Unity3D è supportato ufficialmente solo su Ubuntu.
 
Pubblicità
Pubblicità
Indietro
Top