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

Linux, z czym to się tak naprawdę je?
NJ
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 7 lat
  • Postów:39
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.

KA
naucz się korzystać z google, bo jak z takimi rzeczami masz problem i lecisz na forum to co będzie dalej?
NJ
rzeczami? ty nawet z czytaniem masz problem lol. Google jest wielkie, a forum jest od zadawania pytań. Może od razu zlikwidujmy forum, po co komu? Ludzie przychodzą tutaj i proszą o odpowiedzi... a to gamonie, do szkoły ich wysłać
KA
widząc o co pytasz i że jesteś po 2 roku daję ci tylko dobrą radę :]
NJ
bylem po pierwszym, miałem 5 z C i praktycznie 0 wiedzy praktycznej, zadawałem "głupie pytania", takie jak tutaj, odnośnie architektury i asm. Wyszło mi tylko na dobre. Nie ma głupich pytań, są tylko głupie odpowiedzi.
SI
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 7 godzin
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

edytowany 2x, ostatnio: sig
Gjorni
  • Rejestracja:około 12 lat
  • Ostatnio:około 3 lata
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


The quieter you become, the more you are able to hear.
Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 14 godzin
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ć.

NJ
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 7 lat
  • Postów:39
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.

edytowany 1x, ostatnio: Nju
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)