eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaBudowa własnego linuksowego komputerka
Ilość wypowiedzi w tym wątku: 68

  • 51. Data: 2022-06-04 15:41:58
    Temat: Re: Budowa własnego linuksowego komputerka
    Od: heby <h...@p...onet.pl>

    On 02/06/2022 14:28, J.F wrote:
    >> A po co te segmenty i w czym są lepsze w porównaiu gdy proces ma
    >> najzwyczajniej pamięc RAM dla siebie, jak chce?
    > Sprawa jest taka, ze program unixowy ma swój kod, powiedzmy ze stały,
    > ma dane w pamieci, ktorych ilosc moze rosnac i ma stos, ktory tez moze
    > rosnąc.

    Stosy w typowych systemach operacyjnych są śmiesznie małe. Tak około
    1000x mniej niż dostepna pamięć i raczej mało kto narzeka.

    > I te dwa rosnące obszary stanowią problem, bo trzeba je jakos umiescic
    > w pamieci.

    Nie stanowią problemu, choć nie mogę wykluczyć, że bardzo źle napisany
    program może marudzić. Shit happens.

    > W dodatku Unix to system wielozadaniowy, wiec mamy wiele procesów,
    > kazdy z apetytem na pamiec. I z pożądaną wzajemną ochroną.

    To nie ma związku z segmentacją. Segmentacja to tylko dziadowski system
    przełączania banków pamięci z 8-bit maszyn, zaszyty w procesorze. Tak,
    troche przesadzam, ale prawdę mówiąc niewiele. Jak zerkniesz na to jakie
    machnizmy były popluarne na Z80 i 6502 do ogarniania pamięcu >64k to
    niebezpiecznie blisko koncepcji segmentacji wylądujesz. x86 zrobił to
    tylko "lepiej" czyli skrajnie skomplikował proste zagadnienie adresacji
    pamięci a potem dodawał w kolejnych wersjach procesorów coraz to nowsze
    "usprawnienia w odpowiedzi na potrzeby rynku" które zakończyły się tym,
    że obecnie z tego nikt nie korzysta, bo to guano, zaprojaktowanie
    skrajnie bezmyślnie i psute iteracyjnie przez dziesięciolecia.

    https://en.wikipedia.org/wiki/Memory_segmentation

    [...]In a x86-64 architecture it is considered legacy and most
    x86-64-based modern system software don't use memory segmentation.
    Instead they handle programs and their data by utilizing memory-paging
    which also serves as a way of memory protection.[...]

    Czyli wyszło jak wykle, u Intela.

    > Nowsze programy ładują jeszcze dynamicznie biblioteki, wiec trzeba
    > wiecej nowego miejsca.

    Bibliteki shared sa zazwyczaj kompilowane z kodem position independent
    (sprawdzić, czy to nie zabawkowy Windows) i znowu, to nie ma związu z
    segmentacją. Procesory bez segmentacji też ładuja te bibliteki w trybie
    współdzielenia i też je dzielą. x86 się do tego nie nadaje z powodu
    żałosnych problemów z kodem PI, ale już AMD64 tak.

    Co zabawne, współdzielenie biblitek jest znacznie łatwiejsze w systemach
    bez ochrony pamieci (Amiga OS). I było powszechne w latach 80 w
    systemach bez MMU, co nie oznacza, że było rozsądne (fragmentacja była
    problemem).


  • 52. Data: 2022-06-04 17:36:25
    Temat: Re: Budowa własnego linuksowego komputerka
    Od: Dawid Rutkowski <d...@w...pl>

    sobota, 4 czerwca 2022 o 15:28:49 UTC+2 heby napisał(a):
    > On 01/06/2022 10:55, Dawid Rutkowski wrote:
    > > Segmentacja daje to samo co stronicowanie.
    > > Bo stronicowanie to segmentacja z wieloma segmentami o tej samej wielkości.
    > > Ma zalety, ale też wady - większe zapotrzebowanie na pamięć.
    > > A w takim Linuxie (szczególnie na x86) masz i segmentację i stronicowanie -
    wykorzystywane
    > > są zalety jednej i drugiej metody.
    > Oczywiście.
    >
    > https://pl.wikipedia.org/wiki/Segmentacja_pami%C4%99
    ci
    >
    > [...] Segmentacja jest rozwiązaniem bardzo eleganckim, lecz na tyle
    > kłopotliwym, że obecnie praktycznie się jej nie stosuje [...] Aby
    > segmentację uczynić niewidoczną, Linux wykorzystuje jeden segment o
    > adresie bazowym 0x0 i rozmiarze 4GB.[...]

    Aleś sobie źródło znalazł.
    Piłeś, nie pisz.
    Tak jak o kompilacji jako działaniu programu...
    Chyba że o emoticonach zapominasz.
    Ale nawet jeśli, to kiepski żart.


  • 53. Data: 2022-06-04 18:21:52
    Temat: Re: Budowa własnego linuksowego komputerka
    Od: heby <h...@p...onet.pl>

    On 04/06/2022 17:36, Dawid Rutkowski wrote:
    >> https://pl.wikipedia.org/wiki/Segmentacja_pami%C4%99
    ci
    >> [...] Segmentacja jest rozwiązaniem bardzo eleganckim, lecz na tyle
    >> kłopotliwym, że obecnie praktycznie się jej nie stosuje [...] Aby
    >> segmentację uczynić niewidoczną, Linux wykorzystuje jeden segment o
    >> adresie bazowym 0x0 i rozmiarze 4GB.[...]
    > Aleś sobie źródło znalazł.

    Pierwsze z brzegu. Potrzebujesz więcej?

    https://www.oreilly.com/library/view/understanding-t
    he-linux/0596002130/ch02s03.html

    [...]However, Linux uses segmentation in a very limited way. In fact,
    segmentation and paging are somewhat redundant since both can be used to
    separate the physical address spaces of processes: segmentation can
    assign a different linear address space to each process, while paging
    can map the same linear address space into different physical address
    spaces. Linux prefers paging to segmentation for the following reasons:[...]

    > Piłeś, nie pisz.

    Ale zdajesz sobie sprawę, że ta rada działa w obie strony?

    > Ale nawet jeśli, to kiepski żart.

    Zdecydowanie. Tym bardziej że pochodzi z humorystycznej ksiązki
    "Understanding the Linux Kernel". Najwidoczniej autor nie czyta usenetu,
    bo by wiedział jak jest naprawdę.


  • 54. Data: 2022-06-04 19:01:47
    Temat: Re: Budowa własnego linuksowego komputerka
    Od: Dawid Rutkowski <d...@w...pl>

    sobota, 4 czerwca 2022 o 18:22:55 UTC+2 heby napisał(a):
    > On 04/06/2022 17:36, Dawid Rutkowski wrote:
    > >> https://pl.wikipedia.org/wiki/Segmentacja_pami%C4%99
    ci
    > >> [...] Segmentacja jest rozwiązaniem bardzo eleganckim, lecz na tyle
    > >> kłopotliwym, że obecnie praktycznie się jej nie stosuje [...] Aby
    > >> segmentację uczynić niewidoczną, Linux wykorzystuje jeden segment o
    > >> adresie bazowym 0x0 i rozmiarze 4GB.[...]
    > > Aleś sobie źródło znalazł.
    > Pierwsze z brzegu. Potrzebujesz więcej?
    >
    > https://www.oreilly.com/library/view/understanding-t
    he-linux/0596002130/ch02s03.html
    >
    > [...]However, Linux uses segmentation in a very limited way. In fact,
    > segmentation and paging are somewhat redundant since both can be used to
    > separate the physical address spaces of processes: segmentation can
    > assign a different linear address space to each process, while paging
    > can map the same linear address space into different physical address
    > spaces. Linux prefers paging to segmentation for the following reasons:[...]
    >
    > > Piłeś, nie pisz.
    >
    > Ale zdajesz sobie sprawę, że ta rada działa w obie strony?
    > > Ale nawet jeśli, to kiepski żart.
    > Zdecydowanie. Tym bardziej że pochodzi z humorystycznej ksiązki
    > "Understanding the Linux Kernel". Najwidoczniej autor nie czyta usenetu,
    > bo by wiedział jak jest naprawdę.

    Albo Ty nie czytałeś książki i/lub tego, co ja napisałem.
    W Linuxie stronicowanie jest podstawą, z segmentacji używane jest niedużo - i tylko
    to, co dobre.
    Można tak, bo to, co złe, ale niezbędne w segmentacji, załatwia - o wiele lepiej -
    stronicowanie.
    A samo stronicowanie jest segmentacją z wieloma segmentami o jednakowej (albo max.
    kilku ustalonych) wielkości segmentu.
    Załatwia całość OS, więc aplikacje w ogóle o tym nie muszą wiedzieć, chyba że wchodzą
    niuanse Harvard/Princetown.


  • 55. Data: 2022-06-04 20:31:24
    Temat: Re: Budowa własnego linuksowego komputerka
    Od: heby <h...@p...onet.pl>

    On 04/06/2022 19:01, Dawid Rutkowski wrote:
    >> Zdecydowanie. Tym bardziej że pochodzi z humorystycznej ksiązki
    >> "Understanding the Linux Kernel". Najwidoczniej autor nie czyta usenetu,
    >> bo by wiedział jak jest naprawdę.
    > Albo Ty nie czytałeś książki i/lub tego, co ja napisałem.

    Bardzo możliwe, że jedno z tych dwóch na pewno.

    > W Linuxie stronicowanie jest podstawą, z segmentacji używane jest niedużo - i tylko
    to, co dobre.

    A co konkretnie jest dobre w segmentacji i używane?


  • 56. Data: 2022-06-05 11:11:19
    Temat: Re: Budowa własnego linuksowego komputerka
    Od: Dawid Rutkowski <d...@w...pl>

    sobota, 4 czerwca 2022 o 20:32:26 UTC+2 heby napisał(a):
    > On 04/06/2022 19:01, Dawid Rutkowski wrote:
    > >> Zdecydowanie. Tym bardziej że pochodzi z humorystycznej ksiązki
    > >> "Understanding the Linux Kernel". Najwidoczniej autor nie czyta usenetu,
    > >> bo by wiedział jak jest naprawdę.
    > > Albo Ty nie czytałeś książki i/lub tego, co ja napisałem.
    > Bardzo możliwe, że jedno z tych dwóch na pewno.
    > > W Linuxie stronicowanie jest podstawą, z segmentacji używane jest niedużo - i
    tylko to, co dobre.
    > A co konkretnie jest dobre w segmentacji i używane?

    Zdecydowanie łatwiej i szybciej sprawdzić, czy adres, z którego pobierane/zapisywane
    są dane, mieści się w granicach JEDNEGO segmentu (o danym adresie bazowym i
    długości), niż we wszystkich stronach.
    I czy atrybuty segmentu pozwalają na przeprowadzenie danej operacji.
    Zapewne rodzaj cache dla danych jednego segmentu danego typu (pewnie tego
    wskazywanego przez rejestry segmentowe) jest też w procesorze.
    A samą pamięć wirtualną robimy oczywiście na stronicowaniu, nie trzeba wywalać całych
    segmentów - lub kombinować z dzieleniem ich na kawałki.


  • 57. Data: 2022-06-05 13:44:11
    Temat: Re: Budowa własnego linuksowego komputerka
    Od: heby <h...@p...onet.pl>

    On 05/06/2022 11:11, Dawid Rutkowski wrote:
    >>> W Linuxie stronicowanie jest podstawą, z segmentacji używane jest niedużo - i
    tylko to, co dobre.
    >> A co konkretnie jest dobre w segmentacji i używane?
    > Zdecydowanie łatwiej i szybciej sprawdzić, czy adres, z którego
    pobierane/zapisywane są dane, mieści się w granicach JEDNEGO segmentu (o danym
    adresie bazowym i długości), niż we wszystkich stronach.

    I tego się uzywa?

    > I czy atrybuty segmentu pozwalają na przeprowadzenie danej operacji.
    > Zapewne rodzaj cache dla danych jednego segmentu danego typu (pewnie tego
    wskazywanego przez rejestry segmentowe) jest też w procesorze.

    I tego się używa?

    > A samą pamięć wirtualną robimy oczywiście na stronicowaniu, nie trzeba wywalać
    całych segmentów - lub kombinować z dzieleniem ich na kawałki.

    I tego się używa?


  • 58. Data: 2022-06-05 18:50:58
    Temat: Re: Budowa własnego linuksowego komputerka
    Od: Dawid Rutkowski <d...@w...pl>

    niedziela, 5 czerwca 2022 o 13:45:14 UTC+2 heby napisał(a):
    > On 05/06/2022 11:11, Dawid Rutkowski wrote:
    > >>> W Linuxie stronicowanie jest podstawą, z segmentacji używane jest niedużo - i
    tylko to, co dobre.
    > >> A co konkretnie jest dobre w segmentacji i używane?
    > > Zdecydowanie łatwiej i szybciej sprawdzić, czy adres, z którego
    pobierane/zapisywane są dane, mieści się w granicach JEDNEGO segmentu (o danym
    adresie bazowym i długości), niż we wszystkich stronach.
    > I tego się uzywa?

    W Linuxie na x86 tak - tak realizowana jest ochrona pamięci, zarówno kernel space /
    user space jak i separacja procesów.
    Po prostu dlatego, że 386 to ma.
    386 ma o wiele więcej rejestrów niż 8086 - tyle że nie ogólnego przenaczenia, tylko
    specjalizowanych.
    ARM nie ma, więc ochronę pamięci w Linuxie robi się inaczej.

    > > I czy atrybuty segmentu pozwalają na przeprowadzenie danej operacji.
    > > Zapewne rodzaj cache dla danych jednego segmentu danego typu (pewnie tego
    wskazywanego przez rejestry segmentowe) jest też w procesorze.
    > I tego się używa?

    Samo się używa, jak to cache.
    A atrybutów segmentu - oczywiście, do ochrony.
    Np. żeby nie pozwolić wykonać danych.
    Co i tak by mogło nie pójść z powodu cache, szczególnie w wieloprocesorowości.

    > > A samą pamięć wirtualną robimy oczywiście na stronicowaniu, nie trzeba wywalać
    całych segmentów - lub kombinować z dzieleniem ich na kawałki.
    > I tego się używa?

    Stronicowania chyba jednak na pewno tak. Znowu piłeś?


  • 59. Data: 2022-06-05 19:09:37
    Temat: Re: Budowa własnego linuksowego komputerka
    Od: heby <h...@p...onet.pl>

    On 05/06/2022 18:50, Dawid Rutkowski wrote:
    >>> Zdecydowanie łatwiej i szybciej sprawdzić, czy adres, z którego
    pobierane/zapisywane są dane, mieści się w granicach JEDNEGO segmentu (o danym
    adresie bazowym i długości), niż we wszystkich stronach.
    >> I tego się uzywa?
    > W Linuxie na x86 tak

    Zapytam na wszelki wypadek: sugerujesz, że Linux używa segmentacji do
    *czegokolwiek* poza ustawieniem jej tak, aby nie przeszkadzała?

    > Po prostu dlatego, że 386 to ma.

    386 ma tez real mode. Kiepski to powód do używania.

    > 386 ma o wiele więcej rejestrów niż 8086 - tyle że nie ogólnego przenaczenia, tylko
    specjalizowanych.
    > ARM nie ma, więc ochronę pamięci w Linuxie robi się inaczej.

    Zgadnij ile procesorów na świecie ma segmentację. Zastanów się, również
    ostrożnie, jakie interesujace ficzery generuje segmentacja po stronie
    kodu asseblerowego. Podpowiem: podobne miewa architektura Harvard i
    pozostawiają traume taką samą jak powórnywanie pointerów pod DOSem.

    Możesz przybliżyć nam po ch.. komu segmentacja w systemie Unixowym,
    który nie ma takowej segmentacji na ani jednej implementacji użytecznej
    do czegokolwiek?

    >>> I czy atrybuty segmentu pozwalają na przeprowadzenie danej operacji.
    >>> Zapewne rodzaj cache dla danych jednego segmentu danego typu (pewnie tego
    wskazywanego przez rejestry segmentowe) jest też w procesorze.
    >> I tego się używa?
    > Samo się używa, jak to cache.

    Ja pytam nie o to, jak jest zworkaroudowane w procesorze bo tego nie
    wiemy. Czy Linux *używa* segmentacji do czegokolwiek użytecznego.

    > A atrybutów segmentu - oczywiście, do ochrony.

    A czego ochrony? Jest coś dodatkowego do ochrony, czego nie chroni paging?

    > Np. żeby nie pozwolić wykonać danych.

    Ojej. To już nonexec bit w stronicowaniu się nie nadaje?

    Zaznaczam też, że to relatywnie nowy ficzer, tak na marginesie.

    > Co i tak by mogło nie pójść z powodu cache, szczególnie w wieloprocesorowości.

    Interesujące. Dalej mówimy o x86 czy sobie przeskoczyliśmy na jakies DEC
    Alpha z jego niespójnym cache?

    >>> A samą pamięć wirtualną robimy oczywiście na stronicowaniu, nie trzeba wywalać
    całych segmentów - lub kombinować z dzieleniem ich na kawałki.
    >> I tego się używa?
    > Stronicowania chyba jednak na pewno tak. Znowu piłeś?

    Pytanie było o *segmentację*. To że się używa stronicowania, nie
    powoduje że segmentacja ma jakiekolwiek użyteczne funckcje.

    Mam wrażenie, że troche się pogubiliśmy w dyspucie między segmentacją a
    stronicowaniem.

    Pozwól więc, że wyklaruje: segmantacji się nie używa poza problem, że
    nie da się jej wyłaczyć, więc Linux zamiata ją pod dywan olewajac mniej
    więcej w 100%.

    Stronicowania się używa.

    Pisałeś że coś z segmentacji Linux używa.

    Chciałbym wiedzieć *CO* używa. Głównie dlatego że 40 lat temu i dzisiaj
    segmantacja to jedne z najbardziej debilnych pomysłów w technologii CPU
    i mam nadzieje że autor będzie się w piekle przewracał.


  • 60. Data: 2022-06-06 12:03:57
    Temat: Re: Budowa własnego linuksowego komputerka
    Od: "J.F" <j...@p...onet.pl>

    On Sun, 5 Jun 2022 09:50:58 -0700 (PDT), Dawid Rutkowski wrote:
    > niedziela, 5 czerwca 2022 o 13:45:14 UTC+2 heby napisał(a):
    >> On 05/06/2022 11:11, Dawid Rutkowski wrote:
    >>>>> W Linuxie stronicowanie jest podstawą, z segmentacji używane jest niedużo - i
    tylko to, co dobre.
    >>>> A co konkretnie jest dobre w segmentacji i używane?
    >>> Zdecydowanie łatwiej i szybciej sprawdzić, czy adres, z którego
    pobierane/zapisywane są dane, mieści się w granicach JEDNEGO segmentu (o danym
    adresie bazowym i długości), niż we wszystkich stronach.
    >> I tego się uzywa?
    >
    > W Linuxie na x86 tak - tak realizowana jest ochrona pamięci, zarówno kernel space /
    user space jak i separacja procesów.
    > Po prostu dlatego, że 386 to ma.

    Ale 386 ma tez ochrone pamieci na poziomie pamieci stronicowania.

    A na poziomie segmentow ... nie wymaga to jawnego poslugiwania sie
    segmentami? A Linux chyba tego nie robi.

    > 386 ma o wiele więcej rejestrów niż 8086 - tyle że nie ogólnego przenaczenia, tylko
    specjalizowanych.
    > ARM nie ma, więc ochronę pamięci w Linuxie robi się inaczej.
    >
    >>> I czy atrybuty segmentu pozwalają na przeprowadzenie danej operacji.
    >>> Zapewne rodzaj cache dla danych jednego segmentu danego typu (pewnie tego
    wskazywanego przez rejestry segmentowe) jest też w procesorze.
    >> I tego się używa?
    >
    > Samo się używa, jak to cache.
    > A atrybutów segmentu - oczywiście, do ochrony.
    > Np. żeby nie pozwolić wykonać danych.
    > Co i tak by mogło nie pójść z powodu cache, szczególnie w wieloprocesorowości.
    >
    >>> A samą pamięć wirtualną robimy oczywiście na stronicowaniu, nie trzeba wywalać
    całych segmentów - lub kombinować z dzieleniem ich na kawałki.
    >> I tego się używa?
    >
    > Stronicowania chyba jednak na pewno tak. Znowu piłeś?

    J.

strony : 1 ... 5 . [ 6 ] . 7


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: