Wpis z mikrobloga

Dobra Mirki, pałka sie przegła.

O co chodzi? Poziom abstrakcji dzisiejszych komputerów mnie po prostu #!$%@?, a ja jestem z tych, którzy lubią wiedzieć jak wszystko działa pod maską.

Jak zaczynałem programować w gimbie to takich problemów nie miałem, bo wtedy sam język wysokiego poziomu był czymś nowym itp. Teraz, kiedy pisze sobie w C, zastanawiam się jak to wszystko działa. Jak działa obsługa plików, jak to jest, że możemy wypisywać dane na ekran za pomocą funkcji puts itp. Ale to zaszło tak daleko, bo zamiast uczyć się faktycznie programowania, technik i algorytmiki, skończyłem na implementacji jakiegoś prymitywnego kernela, którego i tak robiłem w oparciu o jakieś tutoriale. A jeśli chciałbym implemenotwać jakiś prymitywny OS to i tak zabraknie mi wiedzy z algorytmiki i powstaje błędne koło... ( ͡° ʖ̯ ͡°)

Proszę Was o pomoc. Zamiast zaczynać od góry (języki wysokiego poziomu), chciałbym uczyć się od dolu (oczywiście w granicach rozsądku, bo pewne rzeczy i tak będę musiał uznać poprostu za czarną skrzynkę jak np. surowe instrukcje procesora chociaz kto wie?) w taki sposób aby to wszystko zaczeło mi się układać. Nie chciałbym też popadać w paranoje.

Jak sobie z tym poradzić? Jak działa hardware, te wszystkie architektury procesorów itp.?
Jak mogę sobie to uporządkować? Znacie jakieś dobre książki?

Dodam tylko, że teraz dopiero ide na studia, ale nie chce czekać aż zacznie się rok szkolny.

#programowanie
  • 26
Jeszcze to ci się może przydać: http://ref.x86asm.net/

Generalnie uważam, że warto trochę ogarnąć ASM, klepnąć w nim mały program odwołujący się do API systemu albo napisać małą część liczącą coś w jak najbardziej wydajny sposób... i w sumie tyle. Wiedza wyniesiona z takiego ćwiczenia w zupełności powinna wystarczyć do programowania na "wyższym poziomie". Wszystko ponad to to raczej rzucanie sobie niepotrzebnie kłód pod nogi.
@kalectwo: Jak to po co? Komputery są zajebiste, mógłbym czytać o nich calymi dniami. Klepanie GUI w oparciu o bilbioteki i API których nie rozumiem faktycznie mało mnie przekonuje jeśli o to Ci chodzi, ale nie odrzucam programowania wysokopoziomowego jako takiego. Poprostu denerwuje mnie to dlaczego nie tłumaczy się tego poziomu abstrakcji tylko odrazu każe się klepać soft pod konkreny OS czy coś.
@Malakian: ale po to jest ta abstrakcja przecież, żeby nie musieć wiedzieć co dokładnie dzieje się pod spodem. Stąd nazwa.
Też nie lubię wyrwanego z kontekstu szajsu, ale trzeba przestać myśleć o tym, na jakie dokładnie opcody tłumaczą się instrukcje js'a na stronie, a zacząć myśleć na poziomie warstw, na jakiej te języki operują.