Linux, z czym to się tak naprawdę je?

0

Witam, jestem nowy na forum. Konto założyłem specjalnie by zdobyć odpowiedź na nurtujące mnie pytanie. Jestem po drugim roku studiów informatycznych. Nie nauczyłem się zbyt dużo na zajęciach. Miałem już Systemy operacyjne, ale moja wiedza po nie jest większa niż przed. Od niedawna zacząłem poważnie zastanawiać się nad tym co będę robić po studiach. Chce spróbować różnych rzeczy, w tym niskopoziomowego programowania(nie chodzi mi tutaj dokładnie o asm). Zastanawiam się jak to jest z tym Linuxem. Działa on na zasadzie OpenSource, więc jego kod jest dostępny. Chce się pobawić w "środku".

  1. Co to jest wersja binarna? I są jakieś inne? Czym się różnią?
  2. Jak zacząć z Linuxem(umiem BASH,C,C++,ASM, programowałęm pod linuxm to co było na SO)?
  3. Zastanawiam się, czy można samemu zrobić dystrybucję? Tzn. wiem że mozna, ale jak(chodzi mi o to by pozbyć się wszystkiego co jest mi niepotrzebne, gdybym na komputerze chciał tylko np. oglądać wideo, nic innego mi nie jest potrzebne)?
  4. Czy można zainstalować samo jądro i potem dodawać nowe rzeczy? Jakoś musiało być na początku, jak to z tym jest?
  5. Jak programować w jądrze? bardzo się różni od normalnego programowania?
  6. Jak to jest z systemami embedded? Co wejdę na nową stronę to nowa definicja i już sam nie wiem, czy linux może byc embedded, jak to zrobić?

Proszę o odpowiedzi tylko na pytania zadane przez autora tekstu. Z góry dziękuję wszystkim którzy zechcą mi pomóc(odpowiedzieć na pytania), wszystkich innych proszę o danie sobie spokój z docinkami.

0
Nju napisał(a):
  1. Co to jest wersja binarna? I są jakieś inne? Czym się różnią?

Chodzi o już skompilowaną, poza tym są jeszcze źródła

Nju napisał(a):
  1. Czy można zainstalować samo jądro i potem dodawać nowe rzeczy? Jakoś musiało być na początku, jak to z tym jest?

W teorii pewnie by można, ale to sztuka dla sztuki

Nju napisał(a):
  1. Jak to jest z systemami embedded? Co wejdę na nową stronę to nowa definicja i już sam nie wiem, czy linux może byc embedded, jak to zrobić?

System taki to po prostu gotowe "pudełko" które ma w sobie komputer, system typu embedded i coś tam robi od razu po podpięciu robi (przykładem może być np smart TV albo bankomat Od strony użytkownika jest to "magiczna skrzynka" którą kupujesz, podpinasz i od razu działa, bez konieczności instalowania czegokolwiek. W zasadzie nie musi nawet wiedzieć że tam jest komputer

0
  1. Jak zacząć z Linuxem(umiem BASH,C,C++,ASM, programowałęm pod linuxm to co było na SO)?

To zależy co chcesz osiągnąć. Czy chcesz napisać program dla dystrybucji? Czy chcesz zmienić coś w dystrybucji? Czy chcesz rozszerzyć dystrybucję? Czy chcesz stworzyć swoją dystrybucję?

  1. Zastanawiam się, czy można samemu zrobić dystrybucję? Tzn. wiem że mozna, ale jak (chodzi mi o to by pozbyć się wszystkiego co jest mi niepotrzebne, gdybym na komputerze chciał tylko np. oglądać wideo, nic innego mi nie jest potrzebne)?

Można.
http://www.wikihow.com/Build-Your-Own-Linux-Distro
http://unix.stackexchange.com/questions/87011/how-to-easily-build-your-own-linux-distro
http://www.linuxfromscratch.org/
http://www.tuxradar.com/content/how-build-your-own-linux-distro

  1. Jak programować w jądrze? bardzo się różni od normalnego programowania?

Po prostu programujesz. Programowanie polega na rozwiązywaniu różnych problemów/zagadnień poprzez implementację rozwiązań w kodzie wybranego języka. W zależności od tego co chcesz osiągnąć i w jakim środowisku będziesz chciał to osiągnąć narzędzia i sposoby będą inne.

http://www.tldp.org/LDP/lkmpg/2.6/html/lkmpg.html

0

3 i 4. Można, zainteresuj się hasłem "Linux from Scratch". Ale możliwe, że prościej będzie wziąć dystrybucję odpowiednio minimalną (Debian, Arch, Gentoo) i tylko do niej dodawać kolejne rzeczy. Własnoręcznie tworzona dystrybucja to sporo pracy, która niekoniecznie jest potrzebna.
6. Urządzenia embedded, oprócz tego, że to czarne skrzynki, to zazwyczaj robią jedną rzecz (a dobrze) i działają bez ingerencji człowieka. Czy tam jest Linux, Windows, własne oprogramowanie, komputer na x86, ARM, mikrokontroler... to już zależy od tego, co urządzenie ma robić.

0

@Gjorni chce osiągnąć wszystko co napisałeś, oczywiści po kolei(chce zobaczyć jak wszystko "smakuje" i czy czuje się w tym dobrze). Jakieś rady/artykuły/książki? Co do twojej odp. na pytanie 5. Źle się wyraziłem. Chodzi mi o to, że program "Hello World" napisany w C, ale dla jądra nie ma nawet funkcji main() tylko _init. Dzięki za linki :)
@Ktos Wiem, że to pewnie sporo pracy, ale nic nie szkodzi. Czytałem, że dzięki temu lepiej zrozumiem system i łatwiej będzie mi na nim pracować.BTW. kiedy uczyłem się programować w C, miałem problemy, dopiero po zajęciach z ASM i gdy zainteresowałem sie architekturą, doszło do mnie wiele niuansów języka. O wiele prościej jest mi teraz pisać. Myślę, że z linuxem będzie podobnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1