2023记录
2023/11/21
Vocabulary 107
- festive atmosphere
- gnaw
- reed
- gravitational pull
- stark clean
- subversive
- abiding
- saddle
- antiquated
- laborer
2023/11/19
Vocabulary 106
- stiffen
- gel
- mortal
- precipitous
- postdate
- estate
- thorny
- antibiotic
- tumble
- trumpeter
- wasp
- sting
- hovercraft
- concerted effort
- oxen
- scrape
- rubble
- twig
- glossy
- soundproof earmuff
- landslide
- anesthesia
- brook
- pronounced scar
- vestige
- ford
- lash
- cyclone
- uproot
- photosensitive
- ink stain
2023/11/18
Vocabulary 105
- lifesaver
- brochure
- advent
- finesse
- confide
- stylized
- sluggish
- primal instinct
- grazing land
- topography
- clutch
- telecommuter
- facade
- field research
- semi-molten
- charging outlet
- colonel
- sensibility
- impesonation
- flare
- chagrin
- demolition
- jellyfish
- oratorio
- cowhand
- spinach
- softwood
- vie
- squarely
2023/11/17
Vocabulary 104
- stipulate
- infusion
- jubilant
- combustible
- vaulted doorway
- theist
- repertory
- emancipate
- scarlet
- dispense
- portraiture
- incongruity
- wear away
- pierce
- entrenched position
- hilly
- photosynthesis
- spanking
- flashy hotel
- fanatical
- tint
- infest
- antedate
- obliterate
- auger
- stanza
- fortress
2023/11/16
Vocabulary 103
- atheist
- aquarium
- clog
- radical clean
- hatchery
- smelting
- combustion
- crustacean
- menace
- potent
- coalescence
- custodian
- precarious
- hump
- sprout
- pronghorn
- disrepute
- appraisal
- courtship
- nomadic
- solder
- fanaticism
- ravine
- crevice
- overtire
- fend for oneself
- shaft
- strenuously
- mainspring
2023/11/15
Vocabulary 102
- credence
- quench
- tenderness
- graft
- puncture
- lethal
- corn starch
- slip one’s mind
- steadfast
- perennial
- yawn
- reimburse
- perpetuate
- plaster
- carat
- pocketbook
- plainly
- trainload
- tactile
- stunt
- screwdriver
- equilateral triangle
- armory
- retool
- ascrible
- abut
- scarecrow
- aggravate
- hatchet
- venturesome
- towering
- intrinsic
- one strand of row
- vomit / common complication
- majesty
2023/11/14
Vocabulary 101
- grandeur
- swamp
- genial
- alloy
- percitipation
- frivolity
- kingkong
- analogous
- consonant
- sow
- nonconformist
- in distress
- counteract
- carnivorous
- eloquent
- distort
- commissioned to do
- volatile
- pole repel
- lodge
- embryonic
- meteorite
- attainment
- embellish
- labyrinth
- lithograph
- paddler
- snowdrift
- substantiate
- venom
2023/11/13
Vocabulary 100
- wed
- tundra
- spangle
- cadence
- waging a rebellion
- hoe
- haphazard
- wedge-shaped
- illegible
- baptisim
- barrel
- grumble
- prospector
- insanity
- complementary
- crossbone
- prod
- living quarters
- entanglement
- fauna
- handicap
- syrup
- fixture
- bandleader
- ragtime
- sloop
- stipulation
- screw the lid
- trespass
2023/11/12
Vocabulary 99
- melodrama
- canopy
- terrestrial
- diagonally
- inundate
- polygonal
- notch
- peck
- aurora
- acclaimed
- concerto
- tortuous
- glaciated
- conversant
- succumb
- excavate
- masonry
- prolific
- mania
- assimilate
- terminus
- waste disposal
- contraction
- neon
- handicraft
2023/11/11
Vocabulary 98
- creep
- bandanna
- endotherm
- crumble
- nonhuman primate
- blacksmith
- sarcastic
- rayon
- sea cucumber
- lethargic
- preoccupation
- stagnant
- speck
- quadrilateral
- stern expression
- plank
- crude ore
- pine tree
- translucent
- improvisation
- proofread
- stimuli
- barge
- sheath
- quarter
- conjecture
- mercantile
- beaded
- camouflage
- sit sideways
- bland
- herald
2023/11/10
Vocabulary 97
- tapering
- pore
- thousandfold
- courtly
- arithmetic
- subdivision
- cubic function
- avid
- attain
- graze
- smog
- sunlit
- stroke
- gibe
- reclamation
- retentive
- frisky kitten
- floodplain
- pamphelet
- voracious
- assortment
- hustle
- burgeon
- postulate
- gaseous
2023/11/09
Vocabulary 96
- fumigate
- aloof
- tap
- vicinity
- escalator
- made an appropration
- vowel
- recompose
- veining
- gilding
- replenish
- pebble
- impermeable
- condensation
- illusive
- upland
- alder
- adept
- chilli
- motif
- backdrop
- horn
- brisk
- dissimilar
- eventful
- melodious
- propensity
- aversion
2023/11/08
Vocabulary 95
- discernible
- repulse
- animated
- sanctuary
- pineapple
- retrospective
- parasitic
- carbonhydrate
- subsisted
- penal
- wring out the cloth
- stamina
- litter
- seismic
- Baroque
- continuum
- expel
- charitable
- embryo
- aquamarine
2023/11/07
Vocabulary 94
- perpendicular
- gemstone
- foreshadow
- provincialism
- curator
- protagonist
- condiment
- ketchup
- succinct
- mammoth
- torrential
- scruple
- irradiate
- encroach
- utilitarian
- swarm
- potted plant
- exalted
- cabin
- affliction
- reptile
- deity
- blast
- neoclassical
- serene
- rawhide
- boulder
- postcard
- rage
2023/11/06
Vocabulary 93
- deft
- resonance
- impediment
- sect
- sweeping
- subdue
- keep a straight posture
- sidestep
- supple
- determinant
- adversity
- shrivel
- detest
- pedagogy
- dagger
- charcoal
- silicate
- paleontologist
- optometrist
- assemblage
- shrub
- outmoded
- aria
- cello
- foul
- monochromatic
- intricately
- gull
- gorilla
- dumb
- flair
2023/11/05
Vocabulary 92
- chateau
- combination
- quantum
- membrane
- encase
- bloom
- procelain
- cellist
- amnesia
- bleak
- troupe
- resort package
- haunted
- lore
- perimeter
- assembly
- slimy
- glorify
- pinpoint
- cubism
- elliptical
- indented
- maize
- ductile
- inflict
2023/11/04
Vocabulary 91
- genesis
- ware
- yelp
- intrigue
- deformation
- luminosity
- stimulant
- ferry
- husk
- feeble
- wither
- confined to bed
- marshy
- seamount
- fishing rod
- cling
- dash off
- latent
- torrent
- lumbering
- cast-iron
- quail egg
- slime
- raze
- aromatic
- flabby
- fortuitously
- gentility
2023/11/03
Vocabulary 90
- hazel
- canyon
- amble
- chronological
- cardinal number
- rite
- rustic
- juvenile
- stagecoach
- zigzag
- lethargy
- frugal
- juncture
- rumble
- exterminate
- crockroach
- tensile band
- herculean
- glacial
- weary
- magnesium
- hasten
- rubbery toy
- rectify
- jade bracelet
- refurbish
- incise
- utensil
- edifice
2023/11/02
Vocabulary 89
- fraction
- jolting
- bow
- afflict
- dormant
- grasshopper
- instrumental
- drudgery
- viscosity
- vent
- igloo
- permeate
- overcast
- imposing
- announcer
- procupine
- concave
- crumple
- dissertation
- soloist
- torque
- larvae
- antiseptic
- lineage
- willow
- originality
- fungus
- annihilate
- luster
- scuba
- discerning
- imprint
- reverently
2023/11/01
Vocabulary 88
- painstaking
- psychoanalysis
- pauper
- courier
- symbology
- irritable
- fable
- crimson
- equilibrium
- wade
- telegraph
- incredulity
- heyday
- impersonal
- weathering
- impending
- suspend
- upscale
- pristine
- fleeting
- sociable
- igneous
- engrave
- vigor
- spawn
- stickpin
- sustenance
- deign
- banner
- maverick
- absenteeism
- dorsal fin
- additive
- terrain
2023/10/31
Vocabulary 87
- chubby
- checkout counter
- inherent
- preponderance
- tinplate
- innate
- incongruous
- ward off
- enterprising
- seduce
- posthumous
- rattle
- topsoil
- intruder
- pry open
- watercourse
- sushi
- salmon roe
- kinetic
- delirium
- wholesome
- fray
- larynx
- hummingbird
- to and fro
- potter
- impair
2023/10/30
Vocabulary 86
- weep
- boardinghouse
- emblem
- impersonate
- chimpanzee
- bouquet
- tableland
- pathogen
- foe
- disagreeable
- devise
- negate
- gallantry
- urbanite
- chamber music
- libel
- newscast
- cannibalism
- icicle
- irritated
- flyspeck
- distended
- kerosene
- fermentation
2023/10/29
Vocabulary 85
- heavenly
- teeth is crooked
- formidable
- homogenize
- solar cell
- etiquette
- multistory
- patriarch
- ladybug
- kennel
- scavenger
- liger
- crossbreeding
- engraving
- incandescent
- lodging
- mortar
- impartially
- belie
- industrious
- treadmill
- seismograph
- flock to
- fluorescent
- juxtaposition
- subterranean
- pertinent
2023/10/28
Vocabulary 84
- defecate
- plainspoken
- renunciation
- gush
- cavity
- captivity
- cardiac
- chaste
- monk
- sedentary
- sectional view
- laurel
- wreath
- proliferation
- tract
- outlying area
- glazed surface of pastry
- tapestry
- dripstone
- pollinate
- shellfish
- pumpkin
- apartheid
- prudent
- weld
- grind
- surcharge
- outermost
- deciduous
2023/10/27
Vocabulary 83
- buggy
- overtax
- sparingly
- citadel
- jolt
- hay
- hurl
- defective
- rarefy
- with their hand laced
- detergent
- foremost
- seclude
- cumbersome
- accredit
- pliable
- overt
- boon
- patriarchal
- facelift
- ailment
- proprietor
- gazette
- conglomerate
- adobe
- figurehead
- venerable
- tender
- synonymous
- secrete
- enzyme
- tally
- forebear
- domesticate
- chisel
- stout
- crowbar
- galvanization
2023/10/26
Vocabulary 82
- flagella
- osprey
- feudal
- treason
- soverein
- elongate
- upheaval
- turquoise
- slab
- epidermis
- trilogy
- pitch
- zenith
- rooster
- hinterland
- rattlesnake
- bonanza
- riducule
- subdicipline
- complement
- compliment
- stratum
- lithosphere
- eccentricity
- congenial
- sewer system
2023/10/25
Vocabulary 81
- embroidery
- precursor
- epic
- brownish
- clan
- strip
- cramped
- carving
- an army of
- flake
- dispersal
- surpassingly
- mold
- landmass
- hinder
- dues
- paucity
- debris
- pasta
- loom
- methodology
- ardent
- acumen
- skimp
- incessant
- infirmary
- adjunct
- quilter
- indefinite
- erratic
- beard
- mediate
- feat
- creek
2023/10/24
Vocabulary 80
- parapsychology
- serrated
- boarder
- mime
- philology
- tapeworm
- yardstick
- invertibrate
- cabinet-maker
- inclined
- medieval
- incapacitate
- vegetation
- coil
- multiply
- crab
- sponge
- dismember
- rugged path
- averse
- chronology
- indent
- ceremonial
- sprawl
- exorbitant
- sumptuous
- vault
2023/10/23
Vocabulary 79
- pigment
- bandmaster
- crippling
- stumble
- caterpillar
- seismology
- tow
- pliant
- defrost
- intrepid
- pique
- saliva
- locomotive
- involuntary
- aggravating
- convival
- homespun
- novice
- excavation
- abraisive
- sandpaper
- algae
- dent
- graphite
- drop in
- sundial
- polo
- equestrian
- checkup
- lustrous
- wizard
- infuse
2023/10/22
Vocabulary 78
- prose
- culinary
- culinary
- sap
- sap
- sloe
- enclose
- interdependence
- urbanism
- elicit
- lull
- splendor
- starfish
- tranquil
- complicity
- incisive
- superintendent
- greyhound
- temperance
- amenity
- pane
- pyramid
- horned
- weariness
- uncharted
- mimicry
- eviscerate
- dreary
- sapphire
- nuclei
- conspicuously
- octopus
- warrantable
- audit
2023/10/21
Vocabulary 77
- league
- lobster
- puddle
- remnant
- affluent
- nonconformity
- a pivotal figure
- careerism
- synthesize
- contender
- pluto
- foghorn
- forestall
- unwieldly
- artisan
- girder
- frugality
- tenement
- suspense
- devoid
- cast into
- wrought iron
- waive
- preeminent
- prodigy
- trickle
- orchard
- spit
- ornament
- treacherous
- unbridled
2023/10/20
Vocabulary 76
- ballonist
- preservative
- choreography
- plumage
- unravel
- pretense
- bequest
- saction
- neuron
- balmy
- dim
- salient
- convex
- deprivation
- dilution
- walkout
- ferromagnetic
- populous
- scaled
- misanthropy
- sanctimonious
- ordinance
- gyration
- decimal
2023/10/19
Vocabulary 75
- assorted
- hail
- stellar
- typify
- fort
- bust
- contour
- foment
- proceeding
- cornet
- slothful
- trapper
- sloft
- stationary
- slash
- blade
- silversmith
- brooch
- thorn
- whittle
- corn
- mimic
- coinage
- lateral
- gallant
- staple
- melodic
- saxophone
- symphony
- abound
- seam
- autobiography
- rejuvenate
- dispose of
2023/10/18
Vocabulary 74
- scrub
- fender
- lucrative
- tributary
- receptor
- snug
- mesmerize
- flavoring
- tentacle
- despoil
- shipwright
- stardom
- subduct
- mournful
- iconographic
- flora
- utterance
- plight
- strata
- chromosphere
- enrage
- merger
- milieu
- fluffy
- symbiotic
- trove
- stash
- discreet
- mason
- dime
- memorandum
- recount
- rinse
- torpor
- strap the safety belt
- shutter
- raven
- mural
2023/10/17
Vocabulary 73
- elusive
- ornamentation
- disinterested
- learn by rote
- expressly
- porous
- wreck
- pack animal
- forbidding
- burrow
- woolly
- counterclockwise
- slipper
- olfactory
- pollinator
- vitalist
- squash
- paraglider
- kiln
- flint
- carapace
- odorless
- postage
- jumble
- tavern
- utopian
- propulsion
- intermittent
- rebuke
- metabolism
- locomote
- scrap
- incense
- spinal cord
- ore
2023/10/16
Vocabulary 72
- quarry
- saga
- contemplate
- garb
- exemplary
- audible
- walnut
- gems
- saucer
- diction
- hatchling
- narcotic
- thigh
- manure
- dietition
- impede
- plump
- formative
- wit
- tribal
- alchemy
- disintegrate
- shy away from
2023/10/15
Vocabulary 71
- Jerusalem
- inclination
- loathsome
- flickering
- ultimatum
- ensemble
- limestone
- aquatic
- extremity
- forage
- rehabilitation
- hedgehog
- rote
- spine
- undistorted
- preside over
- polygon
- harmonica
- doctrine
- regimentation
- abolitionist
- interlock
- exacting
- dehydrate
- gourmet
- imbibe
- attire
- sneeze
- codify
- sloping
- ambivalence
- glaze
- intoxication
2023/10/14
Vocabulary 70
- brawl
- customarily
- flounder
- audition
- knapsack
- sack
- outgrow
- dilate
- pupils
- bang
- drowsy
- ham
- penchant
- nocturnal
- saline
- arduous
- verse
- glean
- paramount
- unearth
- adjoin
- portrayal
- snack bar
- wane
- accommodating
- creditor
- offspring
- laboriously
- discourse
- herbicide
- proclivity
- glassware
- receptacle
- enactment
- cube
- despoiler
- yarn
- dismay
- chickpea
- condor
- choke
2023/10/13
Vocabulary 69
- bolster
- lampshade
- mug
- cast off
- multitude
- adminster
- intravenously
- caricature
- discern
- monotonous
- roost
- amino acid
- culminate
- brittle
- taxicab
- anomaly
- dart
- termite
- skydiving
- exhilarating
- slavish
- ooze
- wrinkle
- revitalization
- sewerage
2023/10/12
Vocabulary 68
- frigid
- apportion
- darling
- percolate
- refraction
- bending
- squirrel
- depot
- affectionate
- urbane
- compliment
- deference
- paraphrase
- appreciable
- ajar
- civility
- glandular
- gauge
- infiltrate
- undertaking
- renounce
- rift
- cider
- corps
- insulin
- primordial
- barb
- specimen
- veneration
- congenital
- layman
- perishable
2023/10/11
Vocabulary 67
- unbridgeable
- farce
- unrestrained
- legging
- heed
- signify
- comic
- teem with
- scotch
- sustained
- sentimental
- rupture
- granite
- folly
- inflexible
- meager
- inhibit
- susceptible
- ice sheet
- perch
- facsimile
- thatch
- venomous
- denomination
- ablaze
- ambience
- petal
- accompaniment
2023/10/10
Vocabulary 66
- sinuous
- varnish
- wary
- heredity
- abrasion
- mannerism
- myriad
- avant-garde
- improviser
- connoisseur
- liquor
- arthritis
- braid
- crosscut
- legume
- crayon
- circumference
- threadlike
- hue
- rampant
- niche
- detrimental
- slum
- tectonics
- mulberry
- popular tune
- adornment
- oyster
- spontaneity
- tadpole
- quartz
- catch on
- stocky
- gravitational force
- effluent
2023/10/09
Vocabulary 65
- pensive
- blush
- symbiosis
- fungi
- percussion
- patronizing
- negligent
- vine
- twine
- flamboyant
- quiescent
- perspiration
- finch
- financing
- topographical
- usher in
- snoring
- communal
- emboss
- barbed wire
- stilt
- itinerary
- yolk
- slumber
- avocation
- disperse
- subside
- suite
- harmonic
- whim
2023/10/08
Vocabulary 64
- wristwatch
- indigestion
- ratify
- myth
- acronym
- methodically
- in accord with
- occupant
- draft animal
- tableware
- antiquity
- sporadically
- solitude
- scenic
- conclusive
- pestilential
- cultivate
- strenuous
- weed
- hub
- subractive
- soothe
- minuscule
- wavy
- innumberable
- megaphone
2023/10/07
Vocabulary 63
- faucet
- conifer
- decadent
- fir
- prairie
- refrigerant
- exuberant
- hem
- dietectics
- weaverbird
- inextricably
- pedagogic
- rendition
- microbe
- pastel
- magnentic prospecting
- irritating
- every now and then
- turnpike
- slender
- concentric
- extol
- protectionist
- patch
- platelike
- roam
- seedling
- eminence
- plasma
2023/10/06
Vocabulary 62
- plow
- dismal
- stature
- diversion
- crude oil
- assert
- solicitor
- miniature
- bluff
- rivalry
- anesthetic
- microcosm
- sloth
- crisscross
- mingle
- blast furnace
- inorganic chemical
- astute
- earthenware
- platitude
- hornbill
- escapist
- capillary
- tilt
- agitation
- frown
- conjectural
- broad-brimmed
- gourmand
- render its verdict
- temporal
- populate
2023/10/05
Vocabulary 61
- consternation
- supplant
- ripe
- reap
- sequester
- deplete
- blanket
- portend
- lumber
- pollen
- postoperative
- circumscribe
- introspective
- brawling
- demolish
- transmuted
- recipe
- shuffle the deck
- jelly
- light bulb
- haunted
- archipelago
- amenable
- floral
- bark
- disillusion
- baboon
- centennial
- horde
- stich
2023/10/04
Vocabulary 60
- choir
- anarchist
- crow
- emancipation
- physiology
- scaffolding
- scour
- feverishly
- immobilize
- chapel
- dissenter
- lunar eclipse
- clam
- proceeds
- disposition
- furry
- stately
- elixir
- gulp
- acordian
- pulp
- viscous
- chivalry
- pitcher
- prototypical
- dispense with
- frenetic
- gospel
- prohibitively
- tardiness
- vessel
- cacti
- salinity
- colloquial
- itinerant
2023/10/03
Vocabulary 59
- grease
- petrification
- lament
- enclosure
- vertebrate
- recital
- syllable
- swampy
- delectable
- palette
- moat
- treasure trove
- arid
- compound eyes
- prodigious
- choppy
- inferiority
- pinch
- shear
- suspender
- quaint
- linen
- pendant
- stipend
- cyclone
- aboreal
- permeable
- dogged
- atrophy
2023/10/02
Vocabulary 58
- shaft
- snap
- flay
- gild
- furrow
- hew
- clinch
- efface
- incise
- abduct
- rend
- implement
- embezzle
- bonanza
- flank
- glaze
2023/10/01
Vocabulary 57
- disinterested
- exquisite
- utterly
- chaste
- bulky
- exhale
- howl
- remit
- gibe
- incorruptible
2023/09/30
Vocabulary 56
- sensuous
- elation
- faminish
- gorge
- brisk
- enrapture
- ravish
- suspense
- exultant
- fluster
- languid
- inquisitive
2023/09/29
Vocabulary 55
- ignoble
- supple
- feeble
- insular
- minute
- fateful
- tenor
- sloppy
- skimpy
2023/09/28
Vocabulary 54
- feat
- extol
- esteem
- revere
- hilarious
- disreputable
- grandeur
- decorum
- laudable
- homage
2023/09/27
Vocabulary 53
- avid
- disposition
- meticulous
- scornful
- contemptible
- metial
- fatuous
- torpid
- intrepid
- on steroids
- ubiquitous
- scrupulous
2023/09/26
Vocabulary 52
- deceit
- fraudulant
- homicide
- pilferage
- blackmail
- extort
- belie
- declude
- auspicuous
- purge
- prune
- readily
- accomplice
- decimation
2023/09/25
Vocabulary 51
- renounce
- enthrall
- coddle
- treason
- modulate
- entail
- eschew
- redeem
- incite
- avert
- demur
- succumb
2023/09/24
Vocabulary 50
- stamina
- caliber
- adept
- stunt
- sluggish
- indolent
- sanity
- stern
- lusty
- prodigal
- slug
- feud
- thump
- impale
- sheathe
2023/09/23
Vocabulary 49
- snobbish
- flighty
- undaunted
- austerity
- astetic
- strife
- belliterent
- lavish
- copious
- manifold
- baste
- aasail
- abmonish
- repel
- valor
2023/09/22
Vocabulary 48
- rehabilitate
- jumble
- pacify
- dilate
- convene
- muddle
- pitful
- haunt
- scanty
- mollify
- engender
- headway
- transfix
- incessant
- incipient
2023/09/21
Vocabulary 47
- conspicuous
- slender
- britle
- sneak
- lurk
- encompass
- confluence
- seclusion
- inflate
- entice
- emaciate
- flimsy
2023/09/20
Vocabulary 46
- stingy
- forfeit
- deplete
- ebb
- indefinite
- deform
- coil
- hump
- convex
- engross
- enrapture
- intoxicate
- charisma
- stuffy
- haphazard
2023/09/19
Vocabulary 45
- sleive
- flip
- trudge
- chuckle
- jerk
- hurl
- hilarity
- aura
- sullen
- trample
- shove
- dab
- etiquette
- bidding
- triage
2023/09/18
Vocabulary 44
- fraternal
- hinge
- congenial
- replender
- supplant
- arduous
- strentuous
- deferential
- plight
- sway
2023/09/17
Vocabulary 43
- hectic
- drudgery
- audition
- congruity
- concerted
- supersede
- sickle
- shovel
- smear
- vault
- flounder
- gild
- tub
- officeholding
2023/09/16
Vocabulary 42
- perilous
- maim
- balmy
- palatable
- aroma
- stink
- ethereal
- malleable
- gratuitous
- gist
- gradient
- dexterous
- rule of thumb
2023/09/15
Vocabulary 41
- hackneyed
- sloppy
- fraust
- sporadic
- suffuse
- detriment
- jeopardy
- odor
- hectic
- lofty
- crooked
- panacea
- superstitution
- momentous
- cardinal
- ponderous
- catholic
- pungent
- erratic
- fraught
2023/09/14
Vocabulary 40
- expedient
- pertinent
- fidelity
- tally
- advisable
- caustic
- probity
- refined
- sober
- acrimony
- infallible
2023/09/13
Vocabulary 39
- dingy
- sedate
- defile
- unbecoming
- fervent
- categorical
- exorbitant
- unblemished
- virtuous
- colossal
- commodious
- veer
- capacious
- guileless
- blemish
2023/09/12
Vocabulary 38
- surmise
- holocaust
- carnage
- cataclysm
- avalanche
- afflict
- lethal
- defunct
- smother
- expire
- idyllic
- mill
- fixture
- footbeat
- mishap
2023/09/11
Vocabulary 37
- sojourn
- scorch
- desolate
- barren
- sterile
- clod
- stout
- stodgy
- regimen
- slag
- dwell
- drowsy
- apt
- auspice
- guise
- doze
- strap
- beguile
2023/09/07
Vocabulary 36
- disparge
- deride
- slander
- acclaim
- cynical
- accentuate
- depict
- coax
- effuse
- grumble
- aspersion
- sardronic
- elucidate
- expound
2023/09/05
Vocabulary 35
- bombastic
- pretentious
- disseminate
- impart
- vanity
- liaison
- conceit
- disband
- culpable
- rebuke
- reproach
- hubbub
- oration
- equivocate
2023/09/03
Vocabulary 34
- incisive
- inborn
- innane
- barley
- rudimentry
- broccoli
- seasoning
- condiment
- spinach
- beet
- nibble
- sesame
- rye
- edible
- oats
- mustard
- cereal
- cabbage
- inbibe
2023/09/02
Vocabulary 33
- gauge
- specimen
- doctrine
- dissect
- twingle
- dingy
- burnish
- dusky
- deflect
- heterogeneous
- homogeneous
- impertinent
- gleam
- ablaze
- intrinstically
- abtruse
- gush
2023/09/01
Vocabulary 32
- permeate
- spout
- meander
- influx
- prestine
- juncture
- interclude
- improvise
- extant
- nocturnal
- cursory
- forthright
- impromptu
- abiding
- overdue
- initerate
- girdle
- imbue
- postulate
- fringe
2023/08/31
Vocabulary 31
- impotence
- tug
- impute
2023/08/30
Vocabulary 30
- belittle
- spineless
- pitful
- meek
- genial
- crooked
- canny
- austerity
- composure
- discreet
- prudent
- hardheaded
- bashful
- tractable
- acumen
- exquisite
- affable
- facile
- courteous
- gregarious
2023/08/29
Vocabulary 29
- unquenchable
- surmount
- insinuate
- zigzag
- stroll
- vanquish
- rumble
- bequest
- heredity
- pamphlet
- cram
- quell
- bondage
- penchant
- ferret
- adjourn
- blunt
- rashly
2023/08/28
Vocabulary 28
- headless
- erroneous
- futile
- offhand
- recollection
- ruminate
- haunt
- blunder
- oblivion
- grope
- tardy
- retard
- propensity
- shackle
- cramp
- impetiment
- inure
- subdue
- transript
- protract
2023/08/27
Vocabulary 27
- steadfast
- stronghead
- elusion
- inteligible
- elusive
- rapacious
- equivocal
- scrap
- disfigure
- divulge
- perplex
- vinticate
- ilegible
- Entry Formalities
- discern
- engulf
- disembark
- anihilate
- connive
2023/08/26
Vocabulary 26
- dissipate
- bestow
- despatch
- extricate
- harness
- interplay
- procure
- cobble
- prop
- prod
- forsake
- contrive
- dubious
- profane
- ardor
- ardent
- solicitous
- abashed
- bliss
- grounchy
- chafe
- grudge
2023/08/25
Vocabulary 25
- overcast
- toment
- overbearing
- trying
- fussy
- contemptuous
- presumptuous
- astound
- petrify
- impetuous
- disarrange
- derange
- lovelorn
- nostalgia
- cower
- crave
- orlorn
- dejected
- downcast
- frenzy
- haughty
- picturesque
- mug shot
- preclude
- mold
- portrait
- vituoso
- embroider
2023/08/24
Vocabulary 24
- conjure
- aesthetic
- arcade
- dadaism
- baroge
- membrane
- parasite
- vital
- subsist
- posterity
- fermentation
- metabolism
- carbohydrate
- glucose
- secrete
- morphology
- respiration
- assimilate
- fresco
2023/08/23
Vocabulary 23
- doomed
- dogma
- consecrate
- creed
- fatalism
- doctrine
- atheism
- immerse
- enchant
- exodus
- oracle
- facet
- cone
- column
- ellipse
- deduction
- polygon
- fraction
- inference
- abacus
- dispersion
- plumb
- intersect
- circumference
- circuitous
- heresy
- caliber
2023/08/22
Vocabulary 22
- celestial body
- asteroid
- cluster
- interferometer
- corona
- planteau
- contour
- hemisphere
- ebb
- ledge
- insular
- islet
- oasis
- outskirt
- cosmopolitan
- subterrane
- cavern
- basin
- salinity
- topography
- cistern
- endemic
- Arctic
- terrestrial
- meridian
- crevice
2023/08/21
Vocabulary 21
- lunar
- Saturn
- mercury
- Venus
- Mars
- Jupiter
- supernova
- holism/holistic
- dwarf
- planetoid
- stellar
- interstellar
- pseudoscience
- meteor shower
- comet
- astrology
- constellation
2023/08/20
Vocabulary 20
- vein
- sediment
- aluminum
- seism
- seismology
- ruby
- quartz
- magnitude
- porehole
- pit
- pitfall
- squirt
- emerald
- lithosphere
- lithogemous
- magma
- alchemy
- solubility
- sear
- kindle
- iodine
- platinum
- scorch
- hackneyed
- hydronic
- ammonia
- helium
2023/08/19
Vocabulary 19
- husk
- pollen
- stalk
- leafstalk
- bud
- petal
- leaflet
- timber
- timbre
- laurel
- sprout
- germinate
- rosette
- photosynthesis
- bleach
- catalyst
- catalysis
- silica
- methane
- caustic
- neutralize
- pigment
- tin
- hydrocarbon
- tint
- stem
- herb
2023/08/18
Vocabulary 18
- anthropology
- tribe
- descent
- aboriginal
- forerunner
- cranial
- hominid
- nomatic
- starsh
- spore
- pollinate
- luxuriant
- flora
- acoustic
- transpire
- quiver
- brim
- brink
- rim
- constituent
2023/08/17
Vocabulary 17
- conduct
- instill
- didactic
- discipline(subject)
- sermon
- dission
- oscillation
- ion
- neutron
- electron
- proton
- nucleus
- band
- sonar
- ultrasonics
- resonation
- shafe
- declivity
- ventilation
- dilute
- attrition
- clot
- clutter
- impetus
- optical
- thaw
- expedite
- thermodynamics
- sublimate
2023/08/16
Vocabulary 16
- string
- wind
- percussion
- orchestra
- chorus
- episode
- conservatory
- movement
- harsh
- euphonious
- priest
- figurehead
- envoy
- autocrat
- aristocrat
- foe
- beneficiary
- malcontent
- disciple
- throng
- assassin
- anthropologist
- paleoanthropologist
- advant-garde
2023/08/15
Vocabulary 15
- counsel
- playwright
- clergy
- archeologist
- choreographer
- imagist
- herist
- philantropist
- connoisseur
- orator
- micer
- debtor
- benefactor
- inferior
- fanatic
- novice
- adherent
- barbaric
- pricursor
- bandit
- alumni
- proprietor
- illiterate
- botanist
- satirist
2023/08/14
Vocabulary 14
- saddle
- jurisdiction
- blizzard
- balmy
- dank
- moisture
- serene
- arid
- chilly
- tepid
- gale
- breeze
- blast
- meteorology
- drizzle
- pricipitate
- pricipitation
- dew
- hail
- downpour
- droplet
- tempist
2023/08/13
Vocabulary 13
- runway incursion
- illicit
- inruly
- domineering
- heirage
- indemnity
- captivity
- plaintiff
- abstain
- stipulate
- substantiate
- confiscate
- arbitration
- acquit
- credential
- plea
- condone
- incriminate
- denounce
- cipher
- fort
- beset
- envelop
- besiege
- corps
- squad
- encroach
- despoil
- repulse
- expedition
- dissimulate
- hatchet
- armament
- exterminate
2023/08/12
Vocabulary 12
- cohort
- cogent
- succinct
- clause
- genre
- linguistic
- phonetic
- tense
- verse
- emend
- adage
- fable
- paraphrase
- adaptation
- abridge
- excerpt
- synopsis
- petition
- confedrate
- regimen
- confer
- hustle
- deport
- oust
- municipal
- anarchism
- potent
2023/08/11
Vocabulary 11
- garlic
- plow
- reservatory
- prolific
- aquaculture
- husbandry
- insecticide
- silt
- squash
- hay
- poultry
- sow
- cowshed
- seedbed
- sheepfold
- pigpen
- graze
- manure
- horticulture
- abidicate
- sawtooth
- causality
- gorge
- meadow
- canyon
- scenic
- limpid
- puddle
2023/08/10
Vocabulary 10
- catching
- anatomy
- malnourished
- aerobic
- tingle
- susceptible
- numb
- gash
- sterile
- inoculation
- fester
- intoxicate
- fracture
- lean
- sustenance
- relapse
- morbid
- bruise
2023/08/09
Vocabulary 9
- needy,poor,indigent
- penury
- drawback
- exponent
- redress
- ration
- rebate
- inventory
- inertia
- residue
- acting
- disburse
- reimburse
- garner
- patronage
- barter
- bond
- means
- ransome
- current & saving & credit account
- noxious
- sewage
- ozonosphere
- decibell
- fume
- polygamous
- clan
- rustic
- exotic
- marital
- genteel
- patriarchal
2023/08/08
Vocabulary 8
P177
- in lockstep
- dazzle
- illegible
- discretion
- discern
- vindicate
- dogmatic
- tangle
- entangle
- confound
- enigma
- elude
- captivate
- riddle
- labyrinth
2023/08/07
Vocabulary 7
- heavy handed 高压的,大手大脚的,用某物过多
- relinquish 不情愿放弃
- egregious 糟糕的
- negatively cached
- irksome 令人烦恼的
- semicolon 分号
- quadratic 平方的
- massive heart attack
2023/08/06
Vocabulary 6
- hindsight
- bombard
- electorate
- anti-semitism
- ephemeral 短暂的
- coarse-grained
2023/08/04 - 2023/08/05
参加了2023华为开发者大会,见世面了…
2023/08/03
Vocabulary 5
- depose
- electorate
2023/08/02
Vocabulary 4
- wrangle 争吵
- franchisor 特许经营人
- denote 表示
- onerous
- sporadic 零星的
- side-step
- bisection method
- intersection
- redhanded 当场抓获的
- denominator 分母
- adhesive 有粘性的
- tier
- myopia
Open Harmony 1
- BearPi Nano
- Riscv32
- 开发方式:烧录、编辑在Windows上进行,(交叉)编译在远程的Linux服务器上进行
- usleep & Gpio*
- *.gn
- 原本文档里的下载连接失效了,新的网址
- hello_world & LED
2023/08/01
Vocabulary 3
- inter-machine & intra-machine
- devise 设计
- de-facto
- scaffold
- indictment
- refute
- full fledged
- testbed
- premise
- i.e. & i.g.
- ranger
2023/07/30
Excel 中的小技巧
- Excel中的公式其实就好像是一门编程语言,表达力很强
- COUNTIF 根据条件计数
- SUMIF & SUMIFS 根据条件求和
- 快速选中某个范围内的单元格 Shift键
- 通配符*和?,快速匹配
- 筛选 + 排序
- 数据 -> 分列 便于拆分一些有规律的字符串,比如说时间信息
Matlab
- 函数作为参数传递,@func
2023/07/27
- 今天调研了一下各大公司技术岗位的招聘情况,还是有一些收获的
聚类算法
- 分类问题:已知分类,聚类问题:未知分类
- 基于距离(系统分析、系统聚类、K-means聚类算法、k++-means聚类算法 )or 基于密度(DBSCAN)
2023/07/26
Vocabulary 2
- boilerplate
- chronological
- lexicographic
- contiguous
MapReduce & Bigtable & GFS
- 这三者的关系?
2023/07/25
Vocabulary 1
- rudimentry 基本的
- bimodal 双峰的
- break down 分解
- modal 情态动词、模式的
- marked departure 显著的差异
灵敏性检验
- 衡量某个参数改变对最后得到的结果的影响
- 保证结果的稳健性
- 多目标规划需要标准化+加权
2023/07/24
Go Programming Language Notes 2
Write a go module
go mod init zrt.ink/example
go mod edit -replace zrt.ink=../example
go mod tidy
Allocation with new & composite literal & make
make create slice & map & channel only
When making a slice, the capacity can be omitted
package main
func main() {
v := make([]int, 100)
v[0] = 42
var p *[]int = new([]int)
*p = make([]int, 100, 100)
}
package main
import "fmt"
type Animal struct {
name string
idx int
}
func main() {
p := new(Animal)
fmt.Println(p.idx, p.name)
if p.name == "" {
fmt.Println(`p.name == ""`)
}
q := &Animal{}
fmt.Println(q.idx)
if q.name == "" {
fmt.Println(`q.name == ""`)
}
}
Recover
package main
import (
"fmt"
)
type RecoverableError string
type UnrecoverableError string
func (e RecoverableError) Error() string {
return string(e)
}
func (e UnrecoverableError) Error() string {
return string(e)
}
func safelyDo(x int) (err error) {
err = nil
defer func() {
if e := recover(); e != nil {
err = e.(RecoverableError)
fmt.Println("Recoverable Error")
}
}()
do(x)
return err
}
func do(x int) {
if x != 42 {
panic(UnrecoverableError("Unrecoverable Error"))
} else {
panic(RecoverableError("Recoverable Error"))
}
}
func main() {
safelyDo(42)
// safelyDo(0)
}
Type Selection
package main
// type selection
import (
"fmt"
)
type type1 struct {
x int
}
type type2 struct {
y int
}
type type3 struct {
z int
}
type Type interface {
run()
}
func (t type1) run() {
}
func (t type2) run() {
}
func (t type3) run() {
}
func dispatcher(t Type) {
switch v := t.(type) {
case type1:
fmt.Println(v.x)
case type2:
fmt.Println(v.y)
default:
fmt.Println("unknown")
}
}
func main() {
var t1, t2, t3 Type
t1 = type1{1}
t2 = type2{2}
t3 = type3{3}
dispatcher(t1)
dispatcher(t2)
dispatcher(t3)
}
Unit Test
- xxxx_test.go
- Function Name TestXxxx
- testing.T & testing.Fatalf()
Misc
- string.Fields()
- Log.Fatal()
Command Line Basic
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
for _, s := range os.Args {
fmt.Println(s)
}
fmt.Println("Enter Text:")
reader := bufio.NewReader(os.Stdin)
input, err := reader.ReadString('\n')
if err != nil {
fmt.Println("Error occur")
return
}
input = strings.TrimSuffix(input, "\n")
fmt.Println(input)
}
2023/07/23
Go Programming Language Notes 1
- for range 语法
var arr [4]int
for i,v:= range arr{
}
- Channel <- ch & c<-v & sync & close & for range
- Mutex lock & unlock 使用defer解锁
- 方法,*Type和Type的区别(指针和值传递的区别、interface)
- string.Fields(需要 import “string”)
2023/07/22
Golang 应该关注的地方
- 基本控制语句(if、循环、变量声明、变量类型)
- 函数(传参、返回)
- slice
- 并发(Channel)
- 模块化和构建
- 常用的库函数
- 异常处理(nil?)
- 单元测试
- OOP相关
2023/07/21
DPDK
- Data Plane Development Kit
- 本质上是为了减少拷贝次数(内核态 <-> 用户态)(Zero Copy)
- 用户态驱动:需要暴露一些接口,让用户态控制设备(UIO),通过一些接口(如read)返回中断的次数
- PMD(Poll Mode Driver):如果中断次数过多,内核态和用户态之间反复切换,不利于性能,因此,每次中断时,将设备关中断,采取轮询的方式,没有网络包到来的时候恢复中断,希望一次处理更多的网络包。(启发:Interrupt + Poll 似乎是一种优化的方法)
- 疑问:是否会有安全问题?如何解决的?
Futex
- Fast User-space mutual EXclusiion
- 减少可睡眠互斥锁的加锁次数
- 也可以用来实现条件变量
File System
基于inode的文件系统
- Ext4
- 目录也是文件,利用原有的机制
- 多级inode
- Super Block & inode
基于表的文件系统
- NTFS:MFT(Master File Table)、Sparse File、各种属性、日志支持等
- FAT(File Allocation Table):短文件名
2023/07/20
调度
调度指标
- 平均周转时间(批任务比较看重)
- 平均响应时间 (交互型任务)
- 实时性:要在截止时间(deadline)前完成
- 公平性:避免出现饥饿现象
经典调度方法
- 先来先服务(First Come First Service):
1、长短任务混合时,短任务等待时间过长
2、不利于IO密集型任务,IO利用率低,IO密集型的作业完成IO后只能等待,不能够发起下一次IO
- 短作业优先(SJF)
1、长任务饥饿的问题
2、有利于交互型、IO密集型任务
- Round Robin(时间片轮转):平均周转时间可能较长,但是响应时间比较短
优先级调度
多级队列(MLQ):分为多个队列,每个队列有一个优先级,队列中的调度策略可以是SJF、RR等,避免饥饿:等待时间过长的提升优先级
多级反馈队列(Multi-Level Feedback Queue):
1、短作业优先级较高,每级队列的任务运行超出一定时间后,调整到优先级较低的队列当中
2、低优先级更长的时间片
3、定期将所有任务提升到优先级最高的队列
- 最高相应比优先(HRRN):Highest Response Ratio Next
公平共享调度策略(NEW)
- 基于份额(Share)、虚拟时间(virtual time)
- 彩票调度(Lottery Scheduling):概率收敛,如果次数太少可能不能达到公平
- 步幅调度(Stride Scheduling):初始值如何设置来避免新的任务过度占用CPU?
fork & rfork & vfork & clone & posix_spawn
- fork有一定的性能问题(复制页表的开销)
- vfork 父进程阻塞直到子进程exit或调用execve
- posix_spawn 相当于 fork + exec
- clone 和 vfork 可以更细粒度地调整创建进程的行为
2023/07/19
内核线程
- 需要保存内核的上下文(少保存一些寄存器)
- 内核线程之间的切换主要是内核栈的切换
- 疑问:Linux的内核线程怎样实现?上下文有哪些?
优化系统调用
- 将一些变量映射到用户的地址空间(如Linux中的vdso机制)。
- 共享内存:需要有一个处理器核运行内核态,不断地轮询其他核用户态的请求,这样其他核就不会发生用户态和内核态之间的切换。
- 共享内存中,内核态处理可能会成为一个瓶颈,因此可以多个核运行内核态。
- 也可以一次系统调用进行,从而分摊一次切换的代价,提高整个系统的吞吐率。
内生性 & 外生性
- 计量经济学的概念
2023/07/18
纤程(Fiber)
- 系统上的概念,其实和协程差不多,只不过协程是编程语言提供的一种抽象
- 开销比较低,表现在:需要保存的寄存器少一些,不用进行内核态和用户态的切换
- ucontext:setcontext(类似于yield in Golang)
多线程下的fork()调用
- 如果把所有线程都复制到新线程当中,可能会导致一些意外的结果,比如说某个线程在执行fork调用时,另外一个线程正在执行write调用,可能会导致write调用被执行两次(取决于时序)
- 因此,POSIX简化了要求,只复制调用fork的那一个线程,并且建议尽快调用exec(),减少空间的浪费(如果是Copy On Write,其实不太浪费)。
L4微内核对IPC的优化
- IPC性能是微内核优化的一个重点
- 短消息传递:寄存器传参、虚拟寄存器传参
- 长消息传递:内核负责在一个临时的映射区域里传递、接口优化->允许一次调用传递多个不连续的缓冲区,分摊开销
- 长消息传递优化:共享内存映射
- 切换优化:惰性调度 + 直接进程切换(绕过调度器、利用原有Cache)
2023/07/17
KVM/ARM(接着昨天的写)
- 中断虚拟化:ARM中有一个GIC(Generic Interrupt Controller),而虚拟化的ARM架构提供了vGIC(virtual Generic Interrupt Controller),而GIC又分为CPU的Interface和Ditributor,中断的处理过程中包括了EOF和ACK等机制,而在arm中,这两个操作都可以由硬件完成。
- IO虚拟化:主要使用了virtio,对MMIO的读写会导致陷入KVM当中
- 疑问1:对于多个不同的VM,KVM内部是怎样管理的?
- split-mode virtualization:ARM专门为那种运行在bare metal上的Hypervisor(比如说Xen)设计了Hyp mode,但对于KVM这种位于操作系统内核中的VMM来说,需要经过很大的修改才能够使得Kernel的代码运行在Hyp mode中(Hyp mode 和 Kernel mode有不一致的地方),因此设计者提出了split-mode virtualization。简单来说,在Hyp mode中运行lowvisor,在kernel mode当中运行highvisor,当从VM陷入到KVM时,先进入lowvisor,做一些必要的工作,然后转到处于kernel mode的highvisor,完成大部分的工作,而返回时则按照相反的顺序进行。有意思的是,开发的时候有个问题比较有意思:
An important issue in developing KVM/ARM was how to get access to Hyp mode across the plethora of available ARM SoC platforms supported by Linux.
如果在一开始初始化Hyp mode需要BIOS提供相关支持(install trap handler),否则kernel启动的时候可能会crash,这需要很多的外部支持。 而最终选择的方法是让内核在Hyp mode模式下启动,在启动过程中KVM/ARM检测当前是Kernel Mode还是Hyp Mode,并且有不同的应对方法。
- 提到了Catch 22(第二十二条军规)这个问题:想要给内核贡献这样一个重要功能需要先成为Known Contributor,但成为known contributor又要先贡献代码。 因此,作者认为,先从小的地方贡献(比如说清理内核代码、使得代码更加通用)
2023/07/16
KVM/ARM
- IO
- 中断
- CPU
- 内存
- KVM/ARM 合并进入内核主线的过程让人印象深刻
- split mode virtualization(适应ARM的相关设计)
- Code Reuse
2023/07/15
缓存一致性
- 多核下non-inclusive 的cache中的数据需要通过一定手段保持一致
- LLC(Last Layer Cache)
- 解决方法directory-based & snoop-based
- MSI协议:Modified、Shared、Invalid 读取的时候如果是在Shared状态则直接读取、写之前要将其他核心的cache设置为Invalid,注意传输旧的缓存行(原因:缓存一致性以缓存行为为粒度,而一个cacheline大小一般为64个字节,一般来说只会修改其中一个部分,因此要传输旧的缓存行)
内存一致性模型
- 严格一致性模型(Strict Consistency)、顺序一致性模型(Sequential Consistency)、TSO(Total Store Order)、弱序一致性模型(Weak-order Consistency)
- 严格一致性模型认为两个操作不可能同时发生,处理器核看到的是全局时钟下的顺序
- 顺序一致性模型:不同核心看到的操作一致(全局顺序),每个核心自己的读写操作可见顺序与程序顺序相同,可能出现一个核上的更新另一个核上的读操作无法读到。
- TSO 不保证写读的全局可见顺序
- 弱序一致性:写写、写读、读写、读读都不保证
- 前提/研究对象:不同地址而且没有依赖(数据依赖、地址依赖)
- 利用内存屏障来解决问题
- ARM -> Weak-order Consistency x86 -> TSO
同步原语的可扩展性
- 当CPU核数比较多的时候,对同一个Cache Line的争抢导致在内存一致性协议上开销增大,从而出现核数增加反而性能下降的情况
- 解决方法:MCS队列
- NUMA下Cohert锁:全局锁+NUMA节点上的锁,全局锁直到本NUMA节点上的所有请求得到满足后释放,需要解决饥饿问题和公平性问题:限制单个NUMA节点的请求。(尽可能减少跨NUMA节点的迁移)
Side Channel & Covert Channel
- Flush + Reload
- Flush + Flush
- Prime + Probe
- Evict + Reload
- Meltdown
- Spectre
TEE
- Intel SGX(Secure Guard eXtension)、Enclave concept
- 应用、OS、虚拟机级别的隔离
- 两大特征:隔离执行 + 远程认证
- 操作系统、Hypervisor不可信的情况下的解决方案
MISC
- Linux Test Project(syscall测试)
- kernelci(Fengguang Wu?)(硬件兼容性)
- selftest
- 软件兼容性(POSIX相关的测试)
- 性能测试?
2023/07/14
不同类型的操作系统
- 简要结构内核
- 宏内核
- 微内核(内核态功能比较少,提供IPC、进程/线程等功能,大多数功能在用户态以服务的形式实现,比如,缺页中断处理可以在用户态进行,减小攻击面,某个模块崩溃的时候缩小影响面),比较有代表性的是MACH、L4微内核
- Exokernel,也叫做外核,内核主要提供资源抽象和硬件的多路复用
- Mutilkernel 异构计算
NUMA
- 内存控制器容易称为瓶颈,一些内存控制器分布在不同的核心上,本地和远端访问内存时间的不同的架构称为NUMA
- 远端访问需要通过互联总线(interconnect)来与远端节点通信
- NUMA节点由一个或多个CPU核心构成
- NUMA-aware: 1、提供NUMA感知的接口,让应用决定 2、尽可能将内存分配在本地节点
- Linux:绑定模式、优先模式(从最近的NUMA节点分配)、交错模式,libnuma封装了相关调用
IPC(Inter-Process Communication)
- 建立连接的方式
- Naming Service
- 权限检查(Capability)
- 如何提高IPC的性能(减少拷贝的次数、参数传递的方式、LRPC的迁移线程模型)
- IPC的几种方式(共享内存、信号量Semaphore、信号、管道等)
- Android Binder IPC(Binder IPC模块、线程池、动态增加线程数量以及设置线程数量的上限、Handle的抽象、服务发现)
cond_wait() & cond_signal() & cond_broadcast()
- 生产者消费者问题
- cond_wait() 放在while循环的原因?
- cond_signal()需要每次调用?
- cond_signal 和 释放锁的顺序调换过来会怎么样?
2023/07/13
文件系统的崩溃一致性(Crash Consistency)
- redo log & undo log & WAL(Write Ahead Log)(至少要写两次)
- Soft Update & 依赖追踪(循环依赖)& 撤销操作(重新开机时可以一边修复一边接收新的请求)
- 同步写入(低效的方法)
- 写时拷贝(容易出现写放大的现象,尤其是写入数据比较小的情况下,如1字节)
- Ext4 文件系统不同的日志模式(ordered、journal、writeback)(针对文件数据,非元信息)
- Log-structured File System(LFS)& Wear Leveling & Segment(一种折衷的方法)
- FUSE(用户态文件系统):容易调试、和内核隔离、可以使用丰富的第三方库
2023/07/12
科学、技术、工程和应用
今天看了一个视频,有一点印象比较深刻,讲的是科学、技术、工程和应用之间的区别。科学主要解决的是是什么和为什么,而技术主要解决的是怎么做,而工程解决的是如何多快好省地解决问题。举个例子:对于造一把刀这件事来说,科学指出什么样的材料可以造一把能用地刀(陶瓷或钢铁),而技术指出怎样造这样一把刀,而工程则是低成本地大批量生产这样的刀,而应用则类似于‘切西瓜的n种方法’。
系统虚拟化
最近读了一下SJTU的《操作系统原理和实现》,总结一下系统虚拟化的部分的内容
一个演进的VMM(Virtual Machine Monitor)
前提:当前ISA下所有敏感指令都是特权指令,都会引起下陷
这一小节首先提出了一个最小的VMM0,在这个VMM中客户操作系统内核只能够执行用户ISA下的指令。VMM1在VMM0的基础上添加了时钟中断,本质上还是利用在用户态执行特权指令会最终会进入VMM中这个特点,来做一些信息的更新或者说行为的模拟,比如更新时钟中断的间隔这个指令本身是特权指令,导致虚拟机陷入虚拟机监视器,虚拟机监视器在这个过程中更新实际上位于内存的时间间隔。VMM2添加了虚拟机内核态和用户态之间切换的功能(设置一个变量指示当前是内核态还是用户态,从而在陷入VMM的时候可以将一些工作交给虚拟机系统来做)。VMM3增加了虚拟机多线程,但VMM本身不需要作任何改动。VMM4则通过宿主系统的线程来模拟VMM的vCPU(virtual CPU),从而重用宿主操作系统上的一些调度策略,简化了实现。
CPU 虚拟化(不可虚拟化架构)
- 解释执行
- 动态二进制翻译(基本块的概念、缓存)
- 扫描-翻译(在翻译中替换掉不下陷的敏感指令,有些敏感指令不下陷到内核导致VMM无法接入)
- 半虚拟化(Hypercall,virio中也用到了类似的机制)
- 硬件虚拟化(Intel VT-x,一套寄存器)(ARM 的则有多组寄存器,切换时不需要专门对虚拟机中的寄存器进行保存)
内存虚拟化
- 影子页表
- 直接页表(半虚拟化,通过hypercall等机制)
- 硬件第二阶段地址翻译
- 内存气球(Memory Ballooning),解决Semantic Gap
IO虚拟化
- 软件模拟
- 半虚拟化的方式(virio 简化驱动实现,一次陷入提交更多的数据)
- 设备直通,解决安全问题(IOMMU),从硬件上实现不同虚拟机共享一个设备(对虚拟机而言看起来是独占)–SR-IOV
中断虚拟化
- 物理中断
- 虚拟中断
KVM 和 QEMU
- KVM是机制,QEMU是策略(QEMU还要负责IO虚拟化等内容)
- KVM以/dev/kvm 的形式暴露出来,QEMU通过ioctl系统调用与其交互
2023/07/04
x86_64里面有一条endbr64指令,看了一些相关的资料,发现里面的内容还是很多的,Intel把它叫做Contro-flow Enforcement Technology(CET),简单来说,跳转指令执行后如果跳转到的指令不是endbr64的话,处理器抛出异常,这是一种JOP(Jump Oriented Programming)攻击的缓解措施(Mitigation)。
在这之前的历史也十分有趣,在这之前还有一种攻击手段叫做ROP(Return Oriented Programming),简单来说就是利用程序本身漏洞改写保存在栈上函数的返回地址,从而使得函数返回时跳转到一个错误的地方,一种防护方法就是在原有的栈之外设立一个影子栈(Shadow Stack),入栈出栈操作在两个栈上同时进行,如果出栈的结果不一致,处理器抛出错误,阻断了ROP攻击。只不过还没怎么看过具体实现,感觉有时间可以看看……
看了一些资料发现ASLR(Address Space Layout Randomization)技术也是可以被绕过的,loadtime、runtime等不同阶段都会有一些信息(code locator)可以被攻击者利用来猜出其他模块被加载到的地址,比如栈上会存储caller函数的地址,如果能够获得这个地址,的确是可以猜到一些信息,从而实施JOP这样的攻击。
看了一下musl malloc()的实现,主要还是通过brk()系统调用来获得内存,cat /proc/${pid}/maps 可以看到它所在的区域叫做Heap,第一次调用brk(0)的时候,获得当前heap地址。
疑问1: musl ldso里struct dso::deps的作用?
2023/07/03
读了一下ld.so的Man Page,了解到
LD_DEBUG
&LD_SHOW_AUXV
这两个环境变量的作用, musl和glibc的ld.so(动态连接器都是可以通过命令行启动).知道了Kernel是怎样向动态链接器传递信息的(Auxiliary Vector),而Dynamic Linker可以通过esp寄存器的值(由内核设置)找到到Auxiliary Vector的起始地址,而这个Auxiliary Vector会包括一些只有Kernel知道并由Kernel填写信息,比如说主程序加载的位置(AT_BASE)
看了一下musl libc的动态链接器最开始的汇编(_dlstart),做的事情很简单,也就是将esp寄存器的值和 .DYNAMIC段的地址作为参数传递(按照X86_64参数传递的Calling Convention)给_dlstart_c函数(用C语言编写),然后_dlstart_c开始后面的一系列操作.
动态连接器一开始对自己进行重定位的过程很有意思.
疑问1: 有一些动态库可能会遇到多级的依赖,比如说:a.out依赖于libfunc.so,而libfunc.so又依赖于libc.so,musl libc的动态链接器是怎样处理这种情况的?我在LD_DEBUG=symbols:binding 的情况下用了一下glibc的ldso,发现它好像只解析a.out到libfunc.so的符号引用,而libfunc.so到libc.so的引用似乎是通过一种Lazy Binding的方式在运行时解决?
疑问2: 看了一下musl ldso的代码,对malloc & calloc等函数的处理很特别(外部实现对内部实现的替换?),感觉需要深入了解一下?