Portál AbcLinuxu, 30. dubna 2025 09:05
Existuju nejaké vzorky kódu Applu a opensource verzie ?
Dôvod portovania linuxu na hardvér applu ?
Existuju nejaké vzorky kódu Applu a opensource verzie ?opensource.apple.com a git.dolezel.info. Tohle není úplně 100% ukázka, ale první díl tohoto souboru (až po #else) a tento můj soubor to také trochu ilustrují. Nebo třeba masochismus Applu, který se dá nahrazovat minimem assembleru pro snazší portování. Hodně věcí v Applu se šije horkou jehlou, bez rozmyslu. Pak jsou výsledkem hacky kvůli zachování ABI, nahodile vlepované kusy kódu do jiného kódu, duplicity apod.
Dôvod portovania linuxu na hardvér applu ?Nejak jsem nepochopil otázku. Já Linux neportuju, Linux na ppc dávno chodí.
setjmp/longjmp
mě mírně děsí Je vidieť ako ľudia chránia vyvojárov pred super ultra mega užasným Apple systémom. Ktorý je tak úžasne súper, že si užívateľia nechaju diktovať čo je správne a čo nie. Alebo nemôžu zniesť, že by ich užasné MAC aplikácie fungovali na inom systéme ako len jedinom správnom systéme.
register n = (count + 7) / 8; /* count > 0 assumed */
switch (count % 8)
{
case 0: do { *to = *from++;
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while (--n > 0);
}
Toto je validní C kód ( žádná chyba ).
switch
vevnitř v do
, ne obráceně jako v Duff's device. Duff's device slouží k ompimalizaci - částečnému rozbalení smyčky, kdežto v tom článku ten switch slouží k rozlišení výstupu setjmp()
. Celej ten switch
mají ještě obalen v do { ... } while(0)
, nejspíš proto, aby tím vznikl vlastní sub-scope pro jmp_buf
.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.