ChanServ changed the topic of #lowempire to: Low Level Empire | This channel was created for Algorithms, Compilers, OS, Hardware, CS theory stuff (low-level) | be patient, polite | don't do off top | Ask your question | Paste your codes/long texts https://paste.debian.net/ or "echo just testing! | nc termbin.com 9999" | Logs: https://freenode.irclog.whitequark.org/lowempire
lucid_0x80 has joined #lowempire
macrus has joined #lowempire
lucid_0x80 is now known as suskun
<macrus> lucid necesen
<macrus> :)
<macrus> suskun deyende nese bir serail var idi deysen o yadima dusur ama xatirlamiram nese)
<suskun> salamlar
<suskun> brat
<suskun> yaxsiyam
<suskun> shukur sen necesen?
<suskun> heee
<suskun> suskunlar :-D
<suskun> o seriali deirsen?
<macrus> sagol
<macrus> brat uaxsitam
<macrus> mende ))
<macrus> ahaha
<macrus> he deysen nese ele birsey idi
<macrus> :D
xdxdxdxd has joined #lowempire
<xdxdxdxd> Yesbyes
<xdxdxdxd> Cox tez cavab verdiy))) 🤣
xdxdxdxd is now known as nodee
<suskun> ahahah :-D
<nodee> Necesen mellim?))
<nodee> Nagaysan?)
<suskun> yaxsiyam shukur
<suskun> sen necesen aybrat
<suskun> hecne evdeyem
<suskun> shushani yaziram :-=D
<suskun> hemiseki kimi
<nodee> Salamatciligdi)) yaz e yaz shair, sennen shushaya yadigar)
<suskun> releasdan evvel bir error handler birdeki hashmap yazmaliyam :-D
<nodee> Inanirig yazarsan))
<suskun> sizde ne var ne yox
<macrus> ejdaha lucid yene mucizler yaradir ))
<macrus> :D
<suskun> ahahahah :-D abartiyorsun :_D
<macrus> salamtciliqdir sukur :)
<macrus> :D olani deyirem brat :D gorurukde :)
<suskun> helede semantic analyzerde ilisib qalmisame :-D
<suskun> variable redefinitioni
<suskun> check etmek ucun
<macrus> sene komek leiye bilsek etaga
<suskun> method yazmisdim
<macrus> istedyrdik elimzden geleni edek
<suskun> sonra ferqine vardim ki
<suskun> sen deme duz yazmamisam
<suskun> :-D
<macrus> :d ciddisen?
<suskun> cunki her funksiyanin oz scopeu olur
<suskun> men global
<suskun> scope-a
<suskun> salmisdim variablelari
<macrus> aha
<suskun> eyni anda variable adini
<suskun> ikidene ferqli funksiyaya yazanda
<suskun> error olurdu :-D
<suskun> cunki variablelari global scope-da saxlayirdim
<suskun> halbuki her funksiyanin oz scopeunda saxlamali idim
<macrus> aaa )))
<suskun> indi onu fixleyirem :-D
<macrus> localdinda olmadidlir yeni oz scopunda
<macrus> :d
<suskun> heee
<suskun> meselen
<suskun> fn square() {let x = 1;}
<macrus> yeqin torgun olmsuan yazanda :D
<suskun> let square_new() { let x = 1; }
<suskun> bu halda error olacagdi :-D
<suskun> halbuki ikidene ferqli funksiya scopeudur
<macrus> )))he basa dusdum ))
<macrus> harda ferqine vardin
<macrus> ozun test eliyedn>?
<macrus> eliyende?
<macrus> :d
<suskun> ele kodu fikirlesende
<suskun> aglima geldiki
<suskun> bu duz variant deyil axi
<macrus> :d
<macrus> can mellim :) bu bele islemeli deyil axi zad :d
<suskun> nodejs forever
<macrus> uy bile node js oxuyurma bu deyqe ))
<suskun> ahahahmezelenme
<suskun> niye python yox
<macrus> beli beli node js ejdahadire
<suskun> nodejs :-D
<macrus> ahahha
<macrus> node js cunki ejdahadir
<suskun> nodejsin babat optimizasiya mexanimzleri var
<macrus> :D
<suskun> e
<suskun> ona gore menimde
<suskun> xosum gelir
<macrus> ne kimi meslen oz core-unda?
<suskun> v8de
<macrus> libuv mene dehset lezzet eledi)
<macrus> engineda
<macrus> he engine core soxmaqlari ele ozu biyuk temadir
<macrus> :D
<suskun> onlarda deyesen mark and sweep
<suskun> istifade edir
<suskun> GC ucun
<macrus> mark sweep nedirki?
<macrus> ne edirki
<suskun> garbage collection ucun
<suskun> alqoritm
<suskun> bu obyektleri
<suskun> avtomatik deallocate edir
<suskun> pythonda
<suskun> flan
<macrus> hee basa dusdum
<suskun> pythonda da var
<macrus> node js qeder deyil
<macrus> he?
<macrus> men acigi bele basa dusudm ki node js
<suskun> pythonda da efficiency babatdir
<macrus> sirf stream isleri ucun cox idealdir
<suskun> heee
<suskun> javascriptde
<suskun> v8
<suskun> ona o giucu verir
<macrus> I/O operationlar file, db, netwok OS girsin dagitsinda
<suskun> heee
<macrus> mellim bu buffer sohbeti vare
<suskun> I/O bound olduguna gore
<suskun> ne bufferi
<macrus> file men oxuyanda o contetni buffer-de binary saxalyir, o bufferin size varda indi default 64 kb 1024 * 64 belede temxini
<macrus> file oxuyanda
<macrus> o birinci binary datani oxuyur file yazir bufferede duzdur?
<macrus> verillen encoding esasen onu encode edir qyatarir sene bufferden
<macrus> ve bufferin size-na eassen sene verir hisse hisse ,
<suskun> hee blob
<suskun> olur
<suskun> o content
<suskun> binary blob
<macrus> he ona blob deyirik biz?
<suskun> hee
<suskun> binary blob
<suskun> esas fayl osden gelene qederdir
<macrus> meselen menim file 100 kb dir-de tutaim tx file yada atiram 1MB, menim bufferin default size 64 kb-dir her defe oxuduqca bufferin size na eassen mene getiride contenti
<macrus> men bufferin size coxatlsam duzgundur ?
<suskun> sen buffere ne qeder versen o qeder allocate edecek
<suskun> o bufferi
<macrus> men bunu async streming-le ama etdyimi tessvur elede, sync yox
<macrus> he heap-de he?
<suskun> aha
<suskun> artirsan hecne
<suskun> ne qeder versen
<suskun> o qeder goturecek fayli
<suskun> copy edecek o buffere
<suskun> nodejs bele edirde
<macrus> he basa dusdum yes,
<suskun> size = buffer.size()
<macrus> aha
<nodee> Bes tutalim 100 gb datadi, ramda 16gb ondw nece bash verir?
<suskun> copy(from_fd, to_buffer, size)
<suskun> onda olacaq out of memory killer
<suskun> ise dusecek
<suskun> alqoritm var
<suskun> os terefde
<suskun> OOM killer
<suskun> istifade edilmeyen
<suskun> yaddas zonalarini
<suskun> saxlayir diskde
<macrus> bu umumi mentiqdir bes yoxsa tek node aitdir?
<nodee> Bes sen fayl copy eliyende nece bash verir?
<suskun> eger sen onun treshold valueni kecsen
<suskun> onda crash olacaq
<suskun> umumi mentiqdir
<suskun> sen
<suskun> meselen
<suskun> gotur
<nodee> Trashhold valueni os teyin edir ya ozun??
<suskun> malloc(100* 1024 * 1024 * 1024 * 1024)
<suskun> ele
<suskun> malloc(10000 * 1024 * 1024 * 1024 * 1024)
<suskun> goreceksen
<suskun> allocate olmayacaq
<suskun> cunki yaddas ayrilanda
<suskun> birinci senin yaddasiva gore hesablanir
<suskun> vma olur struktur
<suskun> virtual memory area
<suskun> linuxda
<suskun> orda butun descritprolar olur
<suskun> yaddas haqqinda
<suskun> ki ne
<suskun> qederfree var
<suskun> ne qeder
<suskun> allocated
<suskun> etc
<suskun> .
<suskun> C:\home\vmcs\Documents\shusha\src> cat /proc/meminfo
<suskun> MemFree: 675108 kB
<suskun> Buffers: 284804 kB
<suskun> MemAvailable: 5878068 kB
<suskun> MemTotal: 16322136 kB
<suskun> Cached: 6305596 kB
<suskun> SwapCached: 204 kB
<suskun> Active: 10265436 kB
<suskun> Inactive: 4824040 kB
<suskun> Active(anon): 8466340 kB
<suskun> Inactive(anon): 1340268 kB
<suskun> Active(file): 1799096 kB
<suskun> Inactive(file): 3483772 kB
<suskun> Unevictable: 192 kB
<suskun> Mlocked: 192 kB
<suskun> SwapTotal: 16670716 kB
<suskun> SwapFree: 16626684 kB
<suskun> Dirty: 3124 kB
<suskun> Writeback: 0 kB
<suskun> AnonPages: 8382524 kB
<suskun> Mapped: 1292432 kB
<suskun> Shmem: 1362080 kB
<suskun> Slab: 354232 kB
<suskun> SReclaimable: 255700 kB
<suskun> SUnreclaim: 98532 kB
<suskun> KernelStack: 19200 kB
<suskun> PageTables: 62040 kB
<suskun> NFS_Unstable: 0 kB
<suskun> Bounce: 0 kB
<suskun> WritebackTmp: 0 kB
<suskun> CommitLimit: 24831784 kB
<suskun> Committed_AS: 18893464 kB
<suskun> VmallocTotal: 34359738367 kB
<suskun> VmallocUsed: 0 kB
<suskun> VmallocChunk: 0 kB
<suskun> Percpu: 1488 kB
<suskun> HardwareCorrupted: 0 kB
<suskun> AnonHugePages: 1415168 kB
<suskun> ShmemHugePages: 0 kB
<suskun> ShmemPmdMapped: 0 kB
<suskun> HugePages_Total: 0
<suskun> HugePages_Free: 0
<suskun> HugePages_Rsvd: 0
<suskun> HugePages_Surp: 0
<suskun> Hugepagesize: 2048 kB
<suskun> Hugetlb: 0 kB
<suskun> DirectMap4k: 246868 kB
<suskun> DirectMap2M: 6987776 kB
<suskun> DirectMap1G: 10485760 kB
<suskun> faylin ancaq
<suskun> birdene prinsipide var
<suskun> mmap ile olur o cox vaxt
<suskun> pagecache deyirler ona
<suskun> sen fayli oxuyanda
<suskun> diskden olumur
<suskun> copy etmirsen
<suskun> prosto oxuyursan
<suskun> read()
<suskun> o datani
<suskun> goturub
<suskun> memoryden oxuyacaq
<suskun> linux onu hemde memoryde saxlayir
<suskun> copy edende de
<suskun> hecne
<suskun> ne qeder
<suskun> nece bayt oxuyursansa
<suskun> o qeder olcude fayli goturub copy edir yaddasa
<suskun> copy edir deyende yazir
<suskun> yaddasa
<macrus> bes men readable stream datani pipe eliyib writable yaziramsa, ve tezden pipe-la hemin teze fayli basqa yere yazirmsa burdan heresi ucun memory-de yer ayrilir he hemin erefede?
<macrus> coxlu requestler gelse nece olar eger bu webserverdise?
<suskun> fayllar descirptorlara gore onsuzda
<suskun> memoryde olur
<macrus> descirptor termini theorik olaraq file-dan basqa iselrde gorurde, onun esas megvi nedir?
dumenci has joined #lowempire
<dumenci> vma strukturunuda saxlayir butun fdleri
<dumenci> bax
<macrus> etaga bugun dedim ki nese oyrenmisem :d osdurduda o oyrendiyim lucidi dediklerin yaninda hecnedirde )))
<dumenci> sene konkret hansi sual maraglidir?
suskun has quit [Ping timeout: 256 seconds]
<macrus> umumi streaming prosesi maraqli idi islemesi
<dumenci> hansi streaming>?
<dumenci> linuxun?
<dumenci> pipe deyirsen?
<macrus> file oxumaq yazamq, olsun, video dowload etmek wathc etmek zad, pipe ozude maraqlidir
<dumenci> sen nodejsin bufferi ile pipein bufferini qarisdirma a
<dumenci> onlar basqa basqa seylerdir
<macrus> ciddi?
<dumenci> nodejsin bufferi
<dumenci> adi yaddasdir
<dumenci> elbette
<macrus> a onu bilmirdim men ele bilirdim eyni seydir
<macrus> pipe basqa yerde saxlayir he onda?
<dumenci> 64 kb sen pipei deirdin?
<macrus> yox adi file oxumagi deyirdim, stdout versin. elebil oxuyub stoud elesin
<macrus> ama pipe-la bagli dediyim ise
<macrus> bir fayli oxuyub bir yere yazmaq, sonra hemin yazilan file bir basqa yere yazmaq
<dumenci> eger
<dumenci> pipe deyirsense
<dumenci> he
<dumenci> pipe 16 dene pagedir
<dumenci> 16*4k
<dumenci> oda edir 64 kb
<macrus> page burda ne ifade edir?
<dumenci> yaddas bloku
<macrus> hee
<dumenci> bir page-de
<dumenci> 4096 baytliq melumat olur
<dumenci> 16 dene 4096 bayt tesevvur et
<macrus> aa
<macrus> azdirda cox
<dumenci> uje artiriblar
<dumenci> bu teze versiyalarda olub deyesen
<dumenci> 1mbdi
<dumenci> uje
<macrus> cox cetindir goresen ona ele mduaxile elemk artirmaq, bu qder niye az qoyurlar ki
<macrus> hede bele baxdna stanrt ucun
<macrus> qoyurlarda
<dumenci> allocation prosesi burda bas verir bax
<dumenci> pipe->bufs = kcalloc(pipe_bufs, sizeof(struct pipe_buffer),
<dumenci> GFP_KERNEL_ACCOUNT);
macrus is now known as patrikc
<dumenci> * be set by root in /proc/sys/fs/pipe-max-size
<dumenci> unsigned int pipe_max_size = 1048576;
<dumenci> * The max size that a non-root user is allowed to grow the pipe. Can
<dumenci> */
<dumenci> artura bilirsen
<dumenci> amma root user flan
<patrikc> heee
<patrikc> ozun mudaxile ede bilirsen
<patrikc> onda proc-dan
<dumenci> yeap
nodee has quit [Read error: Connection reset by peer]
<dumenci> ancaq non-root user ancaq
<dumenci> 1mb
<dumenci> istifade
<dumenci> ede biler
<patrikc> maralqidir
<dumenci> bu adi yaddasdir
<dumenci> memory
<patrikc> basa dusdum
<dumenci> kernelde de slab allocation bas verir sen pipe ucun yaddas allocate etmek isteyende
<patrikc> node js ama cox babt eliyblerde v8 i oz corelarinda istifade etmelri. node ozunun os girmeyi , asinxronlugu temin elemesi v8 ile eyni anda cox ehdaja sohbetdirde
<dumenci> nodejs ise adi user prosesi ile
<dumenci> allocate edir
<dumenci> heap
<patrikc> aa onda bular ferqli yanasiblarda
<dumenci> bax nodejsin allocationi burda bas verir
<dumenci> pipe kernele mexsusdur ona gore onu OS allocate edir
<dumenci> nodejsde buffer ise nodejsin prosesine mexsusdur
<dumenci> onuda nodejs ozu edir
<patrikc> hee onda pipe umumi olaraq shell-de necedirse node-da eynidirde
<patrikc> ela oldu))cox sagol elave melumata gore :)
<patrikc> aydinlatdin mellim
<patrikc> nese axtarirmisan ki kimi gelir men :D
<patrikc> eger ele deyilse men terpenirem ofisden eledirse gozleyim :)
<patrikc> sen nese axtarirsan kimi geldi ***
<dumenci> :-D yoo
<dumenci> shushada
<patrikc> cixim birazdan gelecem onda eve gedirem
<dumenci> belke 200 setrlik
<patrikc> :)
<dumenci> errorlar
<dumenci> var
<dumenci> onlari fix edirem
<dumenci> oang roe
<dumenci> ona gore
<patrikc> ahah
<dumenci> gec yaziram
<dumenci> sorry
<dumenci> :-D
<patrikc> :d :d
<patrikc> yorulmausan yox)))
<patrikc> narhata olma
<dumenci> sualin varsa yaz
<dumenci> problem yoxdur
<patrikc> yox dedim itdi lucid
<patrikc> haras
<patrikc> :D
<dumenci> <patrikc> hee onda pipe umumi olaraq shell-de necedirse node-da eynidirde : bu seyi tam basha dusmedim
<dumenci> nodejsdeki
<dumenci> stream.pipe
<dumenci> sen meselen
<dumenci> stdout.pipe yazanda
<dumenci> o stdout descriptoruna gonderir
<dumenci> verdiyin bufferi
<dumenci> oda adi write funksiyasidir
<dumenci> libcde
<dumenci> bax bu
<dumenci> ssize_t write(int fd, const void *buf, size_t count);
<dumenci> birinci arqumente fd olaraq
<dumenci> stdout gonderirsen
<dumenci> bufferede de
<dumenci> mesajin
patrikc has quit [Ping timeout: 246 seconds]
<dumenci> buda linux kernelin adi sys_write syscallidir
<dumenci> cat test.c
<dumenci> #include <stdio.h>
<dumenci> char buff[5] = "abcd";
<dumenci> void main(){
<dumenci> #include <unistd.h>
<dumenci> write(1, buff, 5);
<dumenci> }
<dumenci> bax meselen
<dumenci> C:\tmp> ./test
<dumenci> abcd
<dumenci> C:\tmp>
<dumenci> bax burdadir onun implementationida
<dumenci> struct fd f = fdget_pos(fd);
<dumenci> gelir burda fayl descirptoru axtarir
<dumenci> hemin lookup proseside
<dumenci> bu funskiya ile bas verir __fget_light()
<dumenci> daha sonra file descriptor table-da
<dumenci> senin verdiyin faylin descriptorun u axtarir
<dumenci> static inline struct file *__fcheck_files(struct files_struct *files, unsigned int fd)
<dumenci> struct fdtable *fdt = rcu_dereference_raw(files->fdt);
<dumenci> }
<dumenci> if (fd < fdt->max_fds) {
<dumenci> fd = array_index_nospec(fd, fdt->max_fds);
<dumenci> return rcu_dereference_raw(fdt->fd[fd]);
<dumenci> return NULL;
<dumenci> bax buda file descirptorun struktidir
<dumenci> sen stdout stdin verende
<dumenci> bunlar 0 1 2dir
<dumenci> default olaraq
<dumenci> kernel bufferi uygun descriptora gonderir
marlin has joined #lowempire
<marlin> sorry lucid eve gelirdim cixdim burdan gordum davam elemisen history-den
<marlin> oxuyum gelirem
<dumenci> okay bro isinde Ol
<marlin> he ela cox sagol lucid
<marlin> izaha gore ela idi
<marlin> tessekkur edirem
<marlin> :********
marlin is now known as macrus
<dumenci> buyur bro xosdur
<dumenci> <3
<macrus> sehetin necedir bro>
<macrus> ?
<dumenci> yqxsiyam
<dumenci> shukur
<dumenci> sagalmisam :_D
<dumenci> uje
<dumenci> dunen hercure derman icdim daha :-D
<macrus> he ela :)
<macrus> :d yaxsi eledin)
<dumenci> siz innolanda
<dumenci> gedirsiz?
<macrus> biz artiq sbahadan gelmiyecyik
<macrus> case coxalibe
<dumenci> hee
<dumenci> diqqetli olun
<dumenci> cox gezir
<dumenci> bu aralar
<dumenci> evden isleyin
<macrus> he ele qerar adliq
<macrus> artiq
<macrus> coxdur
nodee has joined #lowempire
<dumenci> usaglar
<dumenci> kimse var?
macrus is now known as patrikc
<patrikc> yes
<patrikc> mellim
<patrikc> what happened
<dumenci> rust partladire
nodee has quit [Ping timeout: 240 seconds]
dumenci has quit [Ping timeout: 260 seconds]
patrikc has quit [Ping timeout: 272 seconds]
patrikc has joined #lowempire
patrikc has quit [Client Quit]